@@ -75,7 +75,7 @@ typedef long long long_long;
75
75
* causing nast effects.
76
76
**************************************************************/
77
77
78
- /*static char _id[] = "$Id: snprintf.c,v 1.9 1998/10/07 17:12:52 momjian Exp $";*/
78
+ /*static char _id[] = "$Id: snprintf.c,v 1.10 1998/10/08 00:34:47 momjian Exp $";*/
79
79
static char * end ;
80
80
static int SnprfOverflow ;
81
81
@@ -130,7 +130,11 @@ static void
130
130
dopr (char * buffer , const char * format ,...)
131
131
{
132
132
int ch ;
133
+ #ifdef HAVE_LONG_INT_64
134
+ long_long value ;
135
+ #else
133
136
long value ;
137
+ #endif
134
138
int longflag = 0 ;
135
139
int longlongflag = 0 ;
136
140
int pointflag = 0 ;
@@ -204,7 +208,14 @@ dopr(char *buffer, const char *format,...)
204
208
case 'U' :
205
209
/* fmtnum(value,base,dosign,ljust,len,zpad) */
206
210
if (longflag )
207
- value = va_arg (args , long );
211
+ {
212
+ #ifdef HAVE_LONG_INT_64
213
+ if (longlongflag )
214
+ value = va_arg (args , long_long );
215
+ else
216
+ #endif
217
+ value = va_arg (args , long );
218
+ }
208
219
else
209
220
value = va_arg (args , int );
210
221
fmtnum (value , 10 , 0 , ljust , len , zpad );
@@ -213,7 +224,14 @@ dopr(char *buffer, const char *format,...)
213
224
case 'O' :
214
225
/* fmtnum(value,base,dosign,ljust,len,zpad) */
215
226
if (longflag )
227
+ {
228
+ #ifdef HAVE_LONG_INT_64
229
+ if (longlongflag )
230
+ value = va_arg (args , long_long );
231
+ else
232
+ #endif
216
233
value = va_arg (args , long );
234
+ }
217
235
else
218
236
value = va_arg (args , int );
219
237
fmtnum (value , 8 , 0 , ljust , len , zpad );
@@ -235,14 +253,28 @@ dopr(char *buffer, const char *format,...)
235
253
break ;
236
254
case 'x' :
237
255
if (longflag )
256
+ {
257
+ #ifdef HAVE_LONG_INT_64
258
+ if (longlongflag )
259
+ value = va_arg (args , long_long );
260
+ else
261
+ #endif
238
262
value = va_arg (args , long );
263
+ }
239
264
else
240
265
value = va_arg (args , int );
241
266
fmtnum (value , 16 , 0 , ljust , len , zpad );
242
267
break ;
243
268
case 'X' :
244
269
if (longflag )
245
- value = va_arg (args , long );
270
+ {
271
+ #ifdef HAVE_LONG_INT_64
272
+ if (longlongflag )
273
+ value = va_arg (args , long_long );
274
+ else
275
+ #endif
276
+ value = va_arg (args , long );
277
+ }
246
278
else
247
279
value = va_arg (args , int );
248
280
fmtnum (value , -16 , 0 , ljust , len , zpad );
@@ -312,15 +344,23 @@ int ljust,
312
344
313
345
static void
314
346
fmtnum (value , base , dosign , ljust , len , zpad )
315
- long value ;
347
+ #ifdef HAVE_LONG_INT_64
348
+ long_long value ;
349
+ #else
350
+ long value ;
351
+ #endif
316
352
int base ,
317
353
dosign ,
318
354
ljust ,
319
355
len ,
320
356
zpad ;
321
357
{
322
358
int signvalue = 0 ;
359
+ #ifdef HAVE_LONG_INT_64
360
+ unsigned long long uvalue ;
361
+ #else
323
362
unsigned long uvalue ;
363
+ #endif
324
364
char convert [20 ];
325
365
int place = 0 ;
326
366
int padlen = 0 ; /* amount to pad */
0 commit comments