--- gawk-3.1.3-orig/awk.h 2003-06-29 16:52:40 +0400 +++ gawk-3.1.3/awk.h 2004-06-08 11:40:50 +0400 @@ -725,7 +725,7 @@ extern char *defpath; extern char envsep; -extern const char casetable[]; /* for case-independent regexp matching */ +extern char casetable[]; /* for case-independent regexp matching */ /* ------------------------- Pseudo-functions ------------------------- */ @@ -983,6 +983,7 @@ extern void set_LINT P((void)); extern void set_TEXTDOMAIN P((void)); extern void update_ERRNO P((void)); +extern void fill_casetable P((void)); extern const char *redflags2str P((int)); extern const char *flags2str P((int)); extern const char *genflags2str P((int flagval, const struct flagtab *tab)); --- gawk-3.1.3-orig/main.c 2003-07-07 20:55:27 +0400 +++ gawk-3.1.3/main.c 2004-06-08 11:41:09 +0400 @@ -223,6 +223,7 @@ #if defined(LC_CTYPE) setlocale(LC_CTYPE, ""); + fill_casetable(); #endif #if defined(LC_COLLATE) setlocale(LC_COLLATE, ""); --- gawk-3.1.3-orig/eval.c 2003-06-22 12:56:04 +0400 +++ gawk-3.1.3/eval.c 2004-06-08 11:41:18 +0400 @@ -92,7 +92,7 @@ * just in this file. */ #if 'a' == 97 /* it's ascii */ -const char casetable[] = { +char casetable[] = { '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007', '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017', '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027', @@ -267,6 +267,16 @@ return buf; } +/* fill_casetable --- fill casetable according to locale settings*/ + +void +fill_casetable(void) +{ + int i; + for (i=0; i<256; i++) + casetable[i] = tolower (i); +} + /* flags2str --- make a flags value readable */ const char *