Skip to content

Commit 9042e9d

Browse files
committed
Cleanup for snprintf for long long's.
1 parent ad567f0 commit 9042e9d

File tree

1 file changed

+44
-4
lines changed

1 file changed

+44
-4
lines changed

src/backend/port/snprintf.c

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ typedef long long long_long;
7575
* causing nast effects.
7676
**************************************************************/
7777

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 $";*/
7979
static char *end;
8080
static int SnprfOverflow;
8181

@@ -130,7 +130,11 @@ static void
130130
dopr(char *buffer, const char *format,...)
131131
{
132132
int ch;
133+
#ifdef HAVE_LONG_INT_64
134+
long_long value;
135+
#else
133136
long value;
137+
#endif
134138
int longflag = 0;
135139
int longlongflag = 0;
136140
int pointflag = 0;
@@ -204,7 +208,14 @@ dopr(char *buffer, const char *format,...)
204208
case 'U':
205209
/* fmtnum(value,base,dosign,ljust,len,zpad) */
206210
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+
}
208219
else
209220
value = va_arg(args, int);
210221
fmtnum(value, 10, 0, ljust, len, zpad);
@@ -213,7 +224,14 @@ dopr(char *buffer, const char *format,...)
213224
case 'O':
214225
/* fmtnum(value,base,dosign,ljust,len,zpad) */
215226
if (longflag)
227+
{
228+
#ifdef HAVE_LONG_INT_64
229+
if (longlongflag)
230+
value = va_arg(args, long_long);
231+
else
232+
#endif
216233
value = va_arg(args, long);
234+
}
217235
else
218236
value = va_arg(args, int);
219237
fmtnum(value, 8, 0, ljust, len, zpad);
@@ -235,14 +253,28 @@ dopr(char *buffer, const char *format,...)
235253
break;
236254
case 'x':
237255
if (longflag)
256+
{
257+
#ifdef HAVE_LONG_INT_64
258+
if (longlongflag)
259+
value = va_arg(args, long_long);
260+
else
261+
#endif
238262
value = va_arg(args, long);
263+
}
239264
else
240265
value = va_arg(args, int);
241266
fmtnum(value, 16, 0, ljust, len, zpad);
242267
break;
243268
case 'X':
244269
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+
}
246278
else
247279
value = va_arg(args, int);
248280
fmtnum(value, -16, 0, ljust, len, zpad);
@@ -312,15 +344,23 @@ int ljust,
312344

313345
static void
314346
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
316352
int base,
317353
dosign,
318354
ljust,
319355
len,
320356
zpad;
321357
{
322358
int signvalue = 0;
359+
#ifdef HAVE_LONG_INT_64
360+
unsigned long long uvalue;
361+
#else
323362
unsigned long uvalue;
363+
#endif
324364
char convert[20];
325365
int place = 0;
326366
int padlen = 0; /* amount to pad */

0 commit comments

Comments
 (0)