On Tue, 22 Sep 1998, Bruce Momjian wrote:
> > Irix doesn't have snprintf, so I'm talking about your ports. They
> > are missing %lld formats.
>
> OK, we need our ports snprintf() to understand %lld. Marc?
Ack...I just borrowed what was in sendmail...are you saying that
sendmail doesn't work under Irix either? :(
Ah, okay, just looking at the source code itself...neat, I think
:) How does this look? '%lld == long long', correct?
*** snprintf.c.orig Tue Sep 22 22:41:46 1998
--- snprintf.c Tue Sep 22 22:44:26 1998
***************
*** 126,131 ****
--- 126,132 ----
int ch;
long value;
int longflag = 0;
+ int longlongflag = 0;
int pointflag = 0;
int maxwidth = 0;
char *strvalue;
***************
*** 167,173 ****
len = va_arg( args, int );
goto nextch;
case '.': pointflag = 1; goto nextch;
! case 'l': longflag = 1; goto nextch;
case 'u': case 'U':
/*fmtnum(value,base,dosign,ljust,len,zpad) */
if( longflag ){
--- 168,178 ----
len = va_arg( args, int );
goto nextch;
case '.': pointflag = 1; goto nextch;
! case 'l': if(longflag) {
! longlongflag = 1; goto nextch;
! } else {
! longflag = 1; goto nextch;
! }
case 'u': case 'U':
/*fmtnum(value,base,dosign,ljust,len,zpad) */
if( longflag ){
***************
*** 186,192 ****
--- 191,201 ----
fmtnum( value, 8,0, ljust, len, zpad ); break;
case 'd': case 'D':
if( longflag ){
+ if( longlongflag ) {
+ value = va_arg( args, long long );
+ } else {
value = va_arg( args, long );
+ }
} else {
value = va_arg( args, int );
}