summaryrefslogtreecommitdiff
path: root/src/backend/port/snprintf.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-10-08 00:34:47 +0000
committerBruce Momjian <bruce@momjian.us>1998-10-08 00:34:47 +0000
commit9042e9d757ecc9e83fc5888830764b3ed80b0702 (patch)
tree85194ecc1d7568c3a9e6471ca6b393423981561d /src/backend/port/snprintf.c
parentad567f07bed03a96936b5b05e284330bf6453d2a (diff)
downloadpostgresql-9042e9d757ecc9e83fc5888830764b3ed80b0702.tar.gz
Cleanup for snprintf for long long's.
Diffstat (limited to 'src/backend/port/snprintf.c')
-rw-r--r--src/backend/port/snprintf.c48
1 files changed, 44 insertions, 4 deletions
diff --git a/src/backend/port/snprintf.c b/src/backend/port/snprintf.c
index d54adb4e77..734e8c8353 100644
--- a/src/backend/port/snprintf.c
+++ b/src/backend/port/snprintf.c
@@ -75,7 +75,7 @@ typedef long long long_long;
* causing nast effects.
**************************************************************/
-/*static char _id[] = "$Id: snprintf.c,v 1.9 1998/10/07 17:12:52 momjian Exp $";*/
+/*static char _id[] = "$Id: snprintf.c,v 1.10 1998/10/08 00:34:47 momjian Exp $";*/
static char *end;
static int SnprfOverflow;
@@ -130,7 +130,11 @@ static void
dopr(char *buffer, const char *format,...)
{
int ch;
+#ifdef HAVE_LONG_INT_64
+ long_long value;
+#else
long value;
+#endif
int longflag = 0;
int longlongflag = 0;
int pointflag = 0;
@@ -204,7 +208,14 @@ dopr(char *buffer, const char *format,...)
case 'U':
/* fmtnum(value,base,dosign,ljust,len,zpad) */
if (longflag)
- value = va_arg(args, long);
+ {
+#ifdef HAVE_LONG_INT_64
+ if (longlongflag)
+ value = va_arg(args, long_long);
+ else
+#endif
+ value = va_arg(args, long);
+ }
else
value = va_arg(args, int);
fmtnum(value, 10, 0, ljust, len, zpad);
@@ -213,7 +224,14 @@ dopr(char *buffer, const char *format,...)
case 'O':
/* fmtnum(value,base,dosign,ljust,len,zpad) */
if (longflag)
+ {
+#ifdef HAVE_LONG_INT_64
+ if (longlongflag)
+ value = va_arg(args, long_long);
+ else
+#endif
value = va_arg(args, long);
+ }
else
value = va_arg(args, int);
fmtnum(value, 8, 0, ljust, len, zpad);
@@ -235,14 +253,28 @@ dopr(char *buffer, const char *format,...)
break;
case 'x':
if (longflag)
+ {
+#ifdef HAVE_LONG_INT_64
+ if (longlongflag)
+ value = va_arg(args, long_long);
+ else
+#endif
value = va_arg(args, long);
+ }
else
value = va_arg(args, int);
fmtnum(value, 16, 0, ljust, len, zpad);
break;
case 'X':
if (longflag)
- value = va_arg(args, long);
+ {
+#ifdef HAVE_LONG_INT_64
+ if (longlongflag)
+ value = va_arg(args, long_long);
+ else
+#endif
+ value = va_arg(args, long);
+ }
else
value = va_arg(args, int);
fmtnum(value, -16, 0, ljust, len, zpad);
@@ -312,7 +344,11 @@ int ljust,
static void
fmtnum(value, base, dosign, ljust, len, zpad)
-long value;
+#ifdef HAVE_LONG_INT_64
+ long_long value;
+#else
+ long value;
+#endif
int base,
dosign,
ljust,
@@ -320,7 +356,11 @@ int base,
zpad;
{
int signvalue = 0;
+#ifdef HAVE_LONG_INT_64
+ unsigned long long uvalue;
+#else
unsigned long uvalue;
+#endif
char convert[20];
int place = 0;
int padlen = 0; /* amount to pad */