summaryrefslogtreecommitdiff
path: root/src/backend/port
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/port')
-rw-r--r--src/backend/port/snprintf.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/backend/port/snprintf.c b/src/backend/port/snprintf.c
index 9cc3786878..bd421329a9 100644
--- a/src/backend/port/snprintf.c
+++ b/src/backend/port/snprintf.c
@@ -70,7 +70,7 @@
* causing nast effects.
**************************************************************/
-/*static char _id[] = "$Id: snprintf.c,v 1.6 1998/09/18 05:20:22 momjian Exp $";*/
+/*static char _id[] = "$Id: snprintf.c,v 1.7 1998/09/23 03:11:24 scrappy Exp $";*/
static char *end;
static int SnprfOverflow;
@@ -126,6 +126,7 @@ dopr (char *buffer, const char *format, ... )
int ch;
long value;
int longflag = 0;
+ int longlongflag = 0;
int pointflag = 0;
int maxwidth = 0;
char *strvalue;
@@ -167,7 +168,11 @@ dopr (char *buffer, const char *format, ... )
len = va_arg( args, int );
goto nextch;
case '.': pointflag = 1; goto nextch;
- case 'l': longflag = 1; goto nextch;
+ case 'l': if(longflag) {
+ longlongflag = 1; goto nextch;
+ } else {
+ longflag = 1; goto nextch;
+ }
case 'u': case 'U':
/*fmtnum(value,base,dosign,ljust,len,zpad) */
if( longflag ){
@@ -186,7 +191,11 @@ dopr (char *buffer, const char *format, ... )
fmtnum( value, 8,0, ljust, len, zpad ); break;
case 'd': case 'D':
if( longflag ){
+ if( longlongflag ) {
+ value = va_arg( args, long long );
+ } else {
value = va_arg( args, long );
+ }
} else {
value = va_arg( args, int );
}