70
70
* causing nast effects.
71
71
**************************************************************/
72
72
73
- /*static char _id[] = "$Id: snprintf.c,v 1.6 1998/09/18 05:20:22 momjian Exp $";*/
73
+ /*static char _id[] = "$Id: snprintf.c,v 1.7 1998/09/23 03:11:24 scrappy Exp $";*/
74
74
static char * end ;
75
75
static int SnprfOverflow ;
76
76
@@ -126,6 +126,7 @@ dopr (char *buffer, const char *format, ... )
126
126
int ch ;
127
127
long value ;
128
128
int longflag = 0 ;
129
+ int longlongflag = 0 ;
129
130
int pointflag = 0 ;
130
131
int maxwidth = 0 ;
131
132
char * strvalue ;
@@ -167,7 +168,11 @@ dopr (char *buffer, const char *format, ... )
167
168
len = va_arg ( args , int );
168
169
goto nextch ;
169
170
case '.' : pointflag = 1 ; goto nextch ;
170
- case 'l' : longflag = 1 ; goto nextch ;
171
+ case 'l' : if (longflag ) {
172
+ longlongflag = 1 ; goto nextch ;
173
+ } else {
174
+ longflag = 1 ; goto nextch ;
175
+ }
171
176
case 'u' : case 'U' :
172
177
/*fmtnum(value,base,dosign,ljust,len,zpad) */
173
178
if ( longflag ){
@@ -186,7 +191,11 @@ dopr (char *buffer, const char *format, ... )
186
191
fmtnum ( value , 8 ,0 , ljust , len , zpad ); break ;
187
192
case 'd' : case 'D' :
188
193
if ( longflag ){
194
+ if ( longlongflag ) {
195
+ value = va_arg ( args , long long );
196
+ } else {
189
197
value = va_arg ( args , long );
198
+ }
190
199
} else {
191
200
value = va_arg ( args , int );
192
201
}
0 commit comments