Changeset: f516879accd6 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f516879accd6 Modified Files: clients/mapiclient/ReadlineTools.c clients/mapiclient/mhelp.c clients/odbc/driver/ODBCConvert.c configure.ag geom/monetdb5/geom.c Branch: default Log Message:
Cleanup. Move strncasecmp declaration to configure.ag. Declare it as an inline function in monetdb_config.h for the platforms not available instead of re-declaring it for every translation unit. On Windows we can use the equivalent _strnicmp function. diffs (185 lines): diff --git a/clients/mapiclient/ReadlineTools.c b/clients/mapiclient/ReadlineTools.c --- a/clients/mapiclient/ReadlineTools.c +++ b/clients/mapiclient/ReadlineTools.c @@ -86,7 +86,6 @@ sql_tablename_generator(const char *text static char * sql_command_generator(const char *text, int state) { - static int idx, len; const char *name; @@ -95,20 +94,14 @@ sql_command_generator(const char *text, len = strlen(text); } - while ((name = sql_commands[idx++])) { -#ifdef HAVE_STRNCASECMP if (strncasecmp(name, text, len) == 0) -#else - if (strncmp(name, text, len) == 0) -#endif return strdup(name); } return NULL; } - static char ** sql_completion(const char *text, int start, int end) { @@ -224,11 +217,7 @@ mal_command_generator(const char *text, printf("currentline:%s\n",rl_line_buffer); */ while (mal_commands[idx] && (name = mal_commands[idx++])) { -#ifdef HAVE_STRNCASECMP if (strncasecmp(name, text, len) == 0) -#else - if (strncmp(name, text, len) == 0) -#endif return strdup(name); } /* try the server to answer */ diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c --- a/clients/mapiclient/mhelp.c +++ b/clients/mapiclient/mhelp.c @@ -935,27 +935,6 @@ SQLhelp sqlhelp2[] = { {NULL, NULL, NULL, NULL, NULL} /* End of list marker */ }; -#ifndef HAVE_STRNCASECMP -static int -strncasecmp(const char *s1, const char *s2, size_t n) -{ - int c1, c2; - - while (n > 0) { - c1 = (unsigned char) *s1++; - c2 = (unsigned char) *s2++; - if (c1 == 0) - return -c2; - if (c2 == 0) - return c1; - if (c1 != c2 && tolower(c1) != tolower(c2)) - return tolower(c1) - tolower(c2); - n--; - } - return 0; -} -#endif - static const char * sql_grammar_rule(const char *word, stream *toConsole) { diff --git a/clients/odbc/driver/ODBCConvert.c b/clients/odbc/driver/ODBCConvert.c --- a/clients/odbc/driver/ODBCConvert.c +++ b/clients/odbc/driver/ODBCConvert.c @@ -39,27 +39,6 @@ typedef struct { #endif } bignum_t; -#ifndef HAVE_STRNCASECMP -static int -strncasecmp(const char *s1, const char *s2, size_t n) -{ - int c1, c2; - - while (n > 0) { - c1 = (unsigned char) *s1++; - c2 = (unsigned char) *s2++; - if (c1 == 0) - return -c2; - if (c2 == 0) - return c1; - if (c1 != c2 && tolower(c1) != tolower(c2)) - return tolower(c1) - tolower(c2); - n--; - } - return 0; -} -#endif - /* Parse a number and store in a bignum_t. * 1 is returned if all is well; * 2 is returned if there is loss of precision (i.e. overflow of the value); diff --git a/configure.ag b/configure.ag --- a/configure.ag +++ b/configure.ag @@ -2665,6 +2665,8 @@ typedef enum { @%:@include <inttypes.h> @%:@include <stdbool.h> @%:@include <assert.h> +@%:@include <string.h> +@%:@include <ctype.h> @%:@ifndef static_assert /* static_assert is a C11 feature, defined in assert.h which also exists @@ -2684,6 +2686,35 @@ stpcpy(char *restrict dst, const char *r } @%:@endif +@%:@ifndef HAVE_STPCPY +#ifndef HAVE_STRNCASECMP +#ifdef WIN32 +#ifndef strncasecmp +#define strncasecmp _strnicmp +#endif +#else +static inline int +strncasecmp(const char *s1, const char *s2, size_t n) +{ + int c1, c2; + + while (n > 0) { + c1 = (unsigned char) *s1++; + c2 = (unsigned char) *s2++; + if (c1 == 0) + return -c2; + if (c2 == 0) + return c1; + if (c1 != c2 && tolower(c1) != tolower(c2)) + return tolower(c1) - tolower(c2); + n--; + } + return 0; +} +#endif +#endif +@%:@endif + @%:@if defined(HAVE___INT128) typedef __int128 hge; typedef unsigned __int128 uhge; diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c --- a/geom/monetdb5/geom.c +++ b/geom/monetdb5/geom.c @@ -2116,27 +2116,6 @@ wkba_size(int items) return size; } -#ifndef HAVE_STRNCASECMP -static int -strncasecmp(const char *s1, const char *s2, size_t n) -{ - int c1, c2; - - while (n > 0) { - c1 = (unsigned char) *s1++; - c2 = (unsigned char) *s2++; - if (c1 == 0) - return -c2; - if (c2 == 0) - return c1; - if (c1 != c2 && tolower(c1) != tolower(c2)) - return tolower(c1) - tolower(c2); - n--; - } - return 0; -} -#endif - /* Creates WKB representation (including srid) from WKT representation */ /* return number of parsed characters. */ static str _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list