From 6520c666c1ec7da0fa1a50a9eba263d8940a1acb Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Fri, 1 Aug 2003 18:10:43 +0000 Subject: [PATCH] Fix a few of the more blatantly unportable constructs in this file. --- src/interfaces/ecpg/compatlib/informix.c | 50 +++++++++++++----------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/src/interfaces/ecpg/compatlib/informix.c b/src/interfaces/ecpg/compatlib/informix.c index e1b073f4002..a1b1f9c5667 100644 --- a/src/interfaces/ecpg/compatlib/informix.c +++ b/src/interfaces/ecpg/compatlib/informix.c @@ -591,12 +591,12 @@ static void initValue(long lng_val) { int i, div, dig; char tmp[2] = " "; - // set some obvious things + /* set some obvious things */ value.val = lng_val >= 0 ? lng_val : lng_val * (-1); value.sign = lng_val >= 0 ? '+' : '-'; value.maxdigits = log10(2)*(8*sizeof(long)-1); - // determine the number of digits + /* determine the number of digits */ for(i=1; i <= value.maxdigits; i++) { if ((int)(value.val / pow(10, i)) != 0) { value.digits = i+1; @@ -604,7 +604,7 @@ static void initValue(long lng_val) { } value.remaining = value.digits; - // convert the long to string + /* convert the long to string */ value.val_string = (char *)malloc(value.digits + 1); for(i=value.digits; i > 0; i--) { div = pow(10,i); @@ -612,9 +612,9 @@ static void initValue(long lng_val) { tmp[0] = (char)(dig + 48); strcat(value.val_string, tmp); } - // safety-net + /* safety-net */ value.val_string[value.digits] = '\0'; - // clean up + /* clean up */ free(tmp); } @@ -641,34 +641,38 @@ rfmtlong(long lng_val, char *fmt, char *outbuf) int i, j, k, dotpos; int leftalign = 0, blank = 0, sign = 0, entity = 0, entitydone = 0, signdone = 0, brackets_ok = 0; - char temp[fmt_len+1], tmp[2] = " ", lastfmt = ' ', fmtchar = ' '; + char *temp; + char tmp[2] = " "; + char lastfmt = ' ', fmtchar = ' '; + + temp = (char *) malloc(fmt_len+1); - // put all info about the long in a struct + /* put all info about the long in a struct */ initValue(lng_val); - // '<' is the only format, where we have to align left + /* '<' is the only format, where we have to align left */ if (strchr(fmt, (int)'<')) { leftalign = 1; } - // '(' requires ')' + /* '(' requires ')' */ if (strchr(fmt, (int)'(') && strchr(fmt, (int)')')) { brackets_ok = 1; } - // get position of the right-most dot in the format-string - // and fill the temp-string wit '0's up to there. + /* get position of the right-most dot in the format-string */ + /* and fill the temp-string wit '0's up to there. */ dotpos = getRightMostDot(fmt); - // start to parse the formatstring + /* start to parse the formatstring */ temp[0] = '\0'; - j = 0; // position in temp - k = value.digits - 1; // position in the value_string + j = 0; /* position in temp */ + k = value.digits - 1; /* position in the value_string */ for(i=fmt_len-1, j=0; i>=0; i--, j++) { - // qualify, where we are in the value_string + /* qualify, where we are in the value_string */ if (k < 0) { if (leftalign) { - // can't use strncat(,,0) here, Solaris would freek out + /* can't use strncat(,,0) here, Solaris would freek out */ temp[j] = '\0'; break; } @@ -680,7 +684,7 @@ rfmtlong(long lng_val, char *fmt, char *outbuf) sign = 1; } } - // if we're right side of the right-most dot, print '0' + /* if we're right side of the right-most dot, print '0' */ if (dotpos >= 0 && dotpos <= i) { if (dotpos < i) { if (fmt[i] == ')') tmp[0] = value.sign == '-' ? ')' : ' '; @@ -692,10 +696,10 @@ rfmtlong(long lng_val, char *fmt, char *outbuf) strcat(temp, tmp); continue; } - // the ',' needs special attention, if it is in the blank area + /* the ',' needs special attention, if it is in the blank area */ if (blank && fmt[i] == ',') fmtchar = lastfmt; else fmtchar = fmt[i]; - // analyse this format-char + /* analyse this format-char */ switch(fmtchar) { case ',': tmp[0] = ','; @@ -755,10 +759,10 @@ rfmtlong(long lng_val, char *fmt, char *outbuf) lastfmt = fmt[i]; k--; } - // safety-net + /* safety-net */ temp[fmt_len] = '\0'; - // reverse the temp-string and put it into the outbuf + /* reverse the temp-string and put it into the outbuf */ temp_len = strlen(temp); outbuf[0] = '\0'; for(i=temp_len-1; i>=0; i--) { @@ -767,8 +771,8 @@ rfmtlong(long lng_val, char *fmt, char *outbuf) } outbuf[temp_len] = '\0'; - // cleaning up - free(tmp); + /* cleaning up */ + free(temp); free(value.val_string); return 0; -- GitLab