]> granicus.if.org Git - postgresql/commitdiff
The patch solves this problem, I hope...
authorBruce Momjian <bruce@momjian.us>
Sat, 10 Aug 2002 20:45:48 +0000 (20:45 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 10 Aug 2002 20:45:48 +0000 (20:45 +0000)
Christopher Kings-Lynne wrote:
> I'm still getting ltree failures on 64bit freebsd:
>
> sed 's,MODULE_PATHNAME,$libdir/ltree,g' ltree.sql.in >ltree.sql
> gcc -pipe -O -g -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -DPI
> C -DLOWER_NODE -I. -I../../src/include   -c -o ltree_io.o ltree_io.c -MMD
> ltree_io.c: In function `ltree_in':
> ltree_io.c:57: warning: int format, different type arg (arg 3)
> ltree_io.c:63: warning: int format, different type arg (arg 4)
> ltree_io.c:68: warning: int format, different type arg (arg 3)

Teodor Sigaev

contrib/ltree/crc32.c
contrib/ltree/ltree.h
contrib/ltree/ltree_io.c
contrib/ltree/ltxtquery_io.c

index bdfba6a332343d2820a0f4b5998f47b4d3b26ab1..0e04bdb1b0a12772ceff8c403c8522cb485581f1 100644 (file)
@@ -105,6 +105,6 @@ crc32_sz(char *buf, int size)
        len = 0;
        nr = size;
        for (len += nr, p = buf; nr--; ++p)
-               _CRC32_(crc, TOLOWER(*p));
+               _CRC32_(crc, TOLOWER((unsigned int)*p));
        return ~crc;
 }
index 22134befafcee93e9a9e10b446f59ce9db067b9e..a53684370aeabe870e39dea5c75863a2e18a0e36 100644 (file)
@@ -83,7 +83,7 @@ typedef struct {
 #ifndef abs
 #define abs(a)                  ((a) <  (0) ? -(a) : (a))
 #endif
-#define ISALNUM(x)     ( isalnum(x) || (x) == '_' )
+#define ISALNUM(x)     ( isalnum((unsigned int)(x)) || (x) == '_' )
 
 /* full text query */
 
index 0315dca06b2b359b9eac8f379983ec5ce3c426db..2f9e9ed3adf5e313818df6dcf5492c3225b1741e 100644 (file)
@@ -18,7 +18,7 @@ PG_FUNCTION_INFO_V1(lquery_out);
 Datum lquery_out(PG_FUNCTION_ARGS);
 
 
-#define UNCHAR elog(ERROR,"Syntax error in position %d near '%c'", ptr-buf, *ptr)
+#define UNCHAR elog(ERROR,"Syntax error in position %d near '%c'", (int)(ptr-buf), *ptr)
 
 typedef struct {
        char*   start;
@@ -60,7 +60,7 @@ ltree_in(PG_FUNCTION_ARGS) {
                                lptr->len = ptr - lptr->start;
                                if ( lptr->len > 255 ) 
                                        elog(ERROR,"Name of level is too long (%d, must be < 256) in position %d", 
-                                               lptr->len, lptr->start - buf);
+                                               lptr->len, (int)(lptr->start - buf));
                                totallen += MAXALIGN(lptr->len + LEVEL_HDRSIZE);
                                lptr++;
                                state = LTPRS_WAITNAME;
@@ -75,7 +75,7 @@ ltree_in(PG_FUNCTION_ARGS) {
                lptr->len = ptr - lptr->start;
                if ( lptr->len > 255 ) 
                        elog(ERROR,"Name of level is too long (%d, must be < 256) in position %d", 
-                               lptr->len, lptr->start - buf);
+                               lptr->len, (int)(lptr->start - buf));
                totallen += MAXALIGN(lptr->len + LEVEL_HDRSIZE);
                lptr++;
        } else if ( ! (state == LTPRS_WAITNAME && lptr == list) )
@@ -214,7 +214,7 @@ lquery_in(PG_FUNCTION_ARGS) {
                                        ( ( lptr->flag & LVAR_ANYEND ) ? 1 : 0 );
                                if ( lptr->len > 255 ) 
                                        elog(ERROR,"Name of level is too long (%d, must be < 256) in position %d", 
-                                               lptr->len, lptr->start - buf);
+                                               lptr->len, (int)(lptr->start - buf));
                                state = LQPRS_WAITVAR;
                        } else if ( *ptr == '.' ) {
                                lptr->len = ptr - lptr->start - 
@@ -223,7 +223,7 @@ lquery_in(PG_FUNCTION_ARGS) {
                                        ( ( lptr->flag & LVAR_ANYEND ) ? 1 : 0 );
                                if ( lptr->len > 255 ) 
                                        elog(ERROR,"Name of level is too long (%d, must be < 256) in position %d", 
-                                               lptr->len, lptr->start - buf);
+                                               lptr->len, (int)(lptr->start - buf));
                                state = LQPRS_WAITLEVEL;
                                curqlevel = NEXTLEV(curqlevel);
                        } else if ( ISALNUM(*ptr) ) {
@@ -244,13 +244,13 @@ lquery_in(PG_FUNCTION_ARGS) {
                } else if ( state == LQPRS_WAITFNUM ) {
                        if ( *ptr == ',' ) {
                                state = LQPRS_WAITSNUM; 
-                       } else if ( isdigit(*ptr) ) {
+                       } else if ( isdigit((unsigned int)*ptr) ) {
                                curqlevel->low = atoi( ptr );
                                state = LQPRS_WAITND;
                        } else
                                UNCHAR; 
                } else if ( state == LQPRS_WAITSNUM ) {
-                       if ( isdigit(*ptr) ) {
+                       if ( isdigit((unsigned int)*ptr) ) {
                                curqlevel->high = atoi( ptr );
                                state =  LQPRS_WAITCLOSE;
                        } else if ( *ptr == '}' ) {
@@ -261,7 +261,7 @@ lquery_in(PG_FUNCTION_ARGS) {
                } else if ( state == LQPRS_WAITCLOSE ) {
                        if ( *ptr == '}' )
                                state = LQPRS_WAITEND;
-                       else if ( !isdigit(*ptr) )
+                       else if ( !isdigit((unsigned int)*ptr) )
                                UNCHAR;
                } else if ( state == LQPRS_WAITND ) { 
                        if ( *ptr == '}' ) {
@@ -269,7 +269,7 @@ lquery_in(PG_FUNCTION_ARGS) {
                                state = LQPRS_WAITEND;
                        } else if ( *ptr == ',' )
                                state = LQPRS_WAITSNUM;
-                       else if ( !isdigit(*ptr) )
+                       else if ( !isdigit((unsigned int)*ptr) )
                                UNCHAR;
                } else if ( state == LQPRS_WAITEND ) {
                        if ( *ptr == '.' ) {
@@ -293,7 +293,7 @@ lquery_in(PG_FUNCTION_ARGS) {
                        elog(ERROR,"Unexpected end of line");
                if ( lptr->len > 255 ) 
                        elog(ERROR,"Name of level is too long (%d, must be < 256) in position %d", 
-                               lptr->len, lptr->start - buf);
+                               lptr->len, (int)(lptr->start - buf));
        } else if ( state == LQPRS_WAITOPEN ) {
                curqlevel->high = 0xffff;
        } else if ( state != LQPRS_WAITEND ) 
index e70d643b8551512a0ec96d9e3f3111369a911a64..e056b84bc0fbfbf991427fa4d56f640f411ec69f 100644 (file)
@@ -76,7 +76,7 @@ gettoken_query(QPRS_STATE * state, int4 *val, int4 *lenval, char **strval, uint1
                                        *strval = state->buf;
                                        *lenval = 1;
                                        *flag = 0;
-                               } else if ( !isspace(*(state->buf)) )
+                               } else if ( !isspace((unsigned int)*(state->buf)) )
                                        elog(ERROR,"Operand syntax error");
                                break;
                        case INOPERAND: