]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
In the CLI, ensure that all calls to ctype.h macros are cast to unsigned char.
authordrh <>
Fri, 28 Feb 2025 15:54:28 +0000 (15:54 +0000)
committerdrh <>
Fri, 28 Feb 2025 15:54:28 +0000 (15:54 +0000)
Apparently cygwin needs this.

FossilOrigin-Name: 44bd44532d4a63b2f600427dc425bde618bcc21e4abffaa2ec19f27350e54732

manifest
manifest.uuid
src/shell.c.in

index 534533885179fc36ab699b2d9eebb1882f317f5f..7696d517737ea02dc97997ee92515355a94efa4d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Latest\supstream\sautosetup.\sFixes\stwo\sminor\scorner-case\sissues\swhich\swe\shaven't\syet\sseen\sin\spractice.
-D 2025-02-28T04:58:43.003
+C In\sthe\sCLI,\sensure\sthat\sall\scalls\sto\sctype.h\smacros\sare\scast\sto\sunsigned\schar.\nApparently\scygwin\sneeds\sthis.
+D 2025-02-28T15:54:28.719
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@@ -782,7 +782,7 @@ F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c 626c24b258b111f75c22107aa5614ad89810df3026f5ca071116d3fe75925c75
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
 F src/select.c a076f7db3a0fcbd9f710d7746cfc07e0b3baadee45eb3136bedc29c598ef8f1c
-F src/shell.c.in 2d2b44c5ee2f5e6cc033c2d29f0a36684d1927a6c2a4c0c4a4b8ba274974abaf
+F src/shell.c.in 6bb2abfb5cbeb5b017b8d0e94e39dd1efd101b22aca07a6734b155b6d4d03f62
 F src/sqlite.h.in 95c01911006f42019ee4dacd62101740a75fdfaeeca9b1c5fd7a70cfac3bb6f8
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h 3f046c04ea3595d6bfda99b781926b17e672fd6d27da2ba6d8d8fc39981dcb54
@@ -2213,8 +2213,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P f50c21484d3cac73589da0376c423de39ae8b842218105786c5aa3726e4dcaed
-R f5160fd02bcf6eb4c02cd59c87a01cc7
-U stephan
-Z dadd2b126fe0d985ec575f04748b5c31
+P 5c2438a719de6787c2f7c9f38d14d5ccdb8d36a120657661ec28051c83a93270
+R 92aaea09d06074907710a038ff35016d
+U drh
+Z d19a9c09bbb9afee888c46c8c4b12fc5
 # Remove this line to create a well-formed Fossil manifest.
index c07a16ff4fc02f5d01aafa9e1137be3169e3452e..c2b3bb706180ca9881a3b1dd0fa8fbc3c92e266a 100644 (file)
@@ -1 +1 @@
-5c2438a719de6787c2f7c9f38d14d5ccdb8d36a120657661ec28051c83a93270
+44bd44532d4a63b2f600427dc425bde618bcc21e4abffaa2ec19f27350e54732
index 04df1cfb045e8fda9ff25438bfd550370b6c618d..586782f01f8a5c40a993fc0f01b485d21682e78b 100644 (file)
@@ -218,6 +218,8 @@ typedef unsigned char u8;
 #define IsSpace(X)  isspace((unsigned char)X)
 #define IsDigit(X)  isdigit((unsigned char)X)
 #define ToLower(X)  (char)tolower((unsigned char)X)
+#define IsAlnum(X)  isalnum((unsigned char)X)
+#define IsAlpha(X)  isalpha((unsigned char)X)
 
 #if defined(_WIN32) || defined(WIN32)
 #if SQLITE_OS_WINRT
@@ -1127,9 +1129,9 @@ static void appendText(ShellText *p, const char *zAppend, char quote){
 static char quoteChar(const char *zName){
   int i;
   if( zName==0 ) return '"';
-  if( !isalpha((unsigned char)zName[0]) && zName[0]!='_' ) return '"';
+  if( !IsAlpha(zName[0]) && zName[0]!='_' ) return '"';
   for(i=0; zName[i]; i++){
-    if( !isalnum((unsigned char)zName[i]) && zName[i]!='_' ) return '"';
+    if( !IsAlnum(zName[i]) && zName[i]!='_' ) return '"';
   }
   return sqlite3_keyword_check(zName, i) ? '"' : 0;
 }
@@ -3987,11 +3989,11 @@ static char *translateForDisplayAndDup(
   if( n>=mxWidth && bWordWrap  ){
     /* Perhaps try to back up to a better place to break the line */
     for(k=i; k>i/2; k--){
-      if( isspace(z[k-1]) ) break;
+      if( IsSpace(z[k-1]) ) break;
     }
     if( k<=i/2 ){
       for(k=i; k>i/2; k--){
-        if( isalnum(z[k-1])!=isalnum(z[k]) && (z[k]&0xc0)!=0x80 ) break;
+        if( IsAlnum(z[k-1])!=IsAlnum(z[k]) && (z[k]&0xc0)!=0x80 ) break;
       }
     }
     if( k<=i/2 ){
@@ -5925,7 +5927,7 @@ static void linenoise_completion(
 #endif
   if( nLine>(i64)sizeof(zBuf)-30 ) return;
   if( zLine[0]=='.' || zLine[0]=='#') return;
-  for(i=nLine-1; i>=0 && (isalnum(zLine[i]) || zLine[i]=='_'); i--){}
+  for(i=nLine-1; i>=0 && (IsAlnum(zLine[i]) || zLine[i]=='_'); i--){}
   if( i==nLine-1 ) return;
   iStart = i+1;
   memcpy(zBuf, zLine, iStart);
@@ -12435,7 +12437,7 @@ static char *one_input_line(FILE *in, char *zPrior, int isContinuation){
   if(!z || !*z){
     return 0;
   }
-  while(*z && isspace(*z)) ++z;
+  while(*z && IsSpace(*z)) ++z;
   zBegin = z;
   for(; *z && '\n'!=*z; ++nZ, ++z){}
   if(nZ>0 && '\r'==zBegin[nZ-1]){