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
gotonextch ;
169
170
case '.' :pointflag = 1 ; gotonextch ;
170
- case 'l' :longflag = 1 ; gotonextch ;
171
+ case 'l' :if (longflag ) {
172
+ longlongflag = 1 ; gotonextch ;
173
+ }else {
174
+ longflag = 1 ; gotonextch ;
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
}