~vcs-imports/gawk/master

« back to all changes in this revision

Viewing changes to eval.c

  • Committer: Arnold D. Robbins
  • Date: 2019-04-07 18:43:38 UTC
  • Revision ID: git-v1:8ae4556cd755b7902afba7ab89313d5aa8801173
Single-byte locales use locale settings for ignoring case.

Show diffs side-by-side

added added

removed removed

Lines of Context:
104
104
        '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
105
105
 
106
106
        /* Latin 1: */
 
107
        /*
 
108
         * 4/2019: This is now overridden; in single byte locales
 
109
         * we call load_casetable from main and it fills in the values
 
110
         * based on the current locale. In particular, we want LC_ALL=C
 
111
         * to work correctly for values >= 0200.
 
112
         */
107
113
        C('\200'), C('\201'), C('\202'), C('\203'), C('\204'), C('\205'), C('\206'), C('\207'),
108
114
        C('\210'), C('\211'), C('\212'), C('\213'), C('\214'), C('\215'), C('\216'), C('\217'),
109
115
        C('\220'), C('\221'), C('\222'), C('\223'), C('\224'), C('\225'), C('\226'), C('\227'),
201
207
{
202
208
#if defined(LC_CTYPE)
203
209
        int i;
204
 
        char *cp;
205
210
        static bool loaded = false;
206
211
 
207
212
        if (loaded || do_traditional)
208
213
                return;
209
214
 
210
215
        loaded = true;
211
 
        cp = setlocale(LC_CTYPE, NULL);
212
 
 
213
 
        /* this is not per standard, but it's pretty safe */
214
 
        if (cp == NULL || strcmp(cp, "C") == 0 || strcmp(cp, "POSIX") == 0)
215
 
                return;
216
216
 
217
217
#ifndef USE_EBCDIC
218
218
        /* use of isalpha is ok here (see is_alpha in awkgram.y) */
710
710
                warned = true;
711
711
                lintwarn(_("`IGNORECASE' is a gawk extension"));
712
712
        }
713
 
        load_casetable();
 
713
 
714
714
        if (do_traditional)
715
715
                IGNORECASE = false;
716
716
        else