"Fossies" - the Fresh Open Source Software Archive

Member "gawk-5.1.0/support/localeinfo.h" (6 Feb 2020, 2135 Bytes) of package /linux/misc/gawk-5.1.0.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "localeinfo.h" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 5.0.1_vs_5.1.0.

    1 /* locale information
    2 
    3    Copyright 2016-2019 Free Software Foundation, Inc.
    4 
    5    This program is free software; you can redistribute it and/or modify
    6    it under the terms of the GNU General Public License as published by
    7    the Free Software Foundation; either version 3, or (at your option)
    8    any later version.
    9 
   10    This program is distributed in the hope that it will be useful,
   11    but WITHOUT ANY WARRANTY; without even the implied warranty of
   12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   13    GNU General Public License for more details.
   14 
   15    You should have received a copy of the GNU General Public License
   16    along with this program; if not, write to the Free Software
   17    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
   18    02110-1301, USA.  */
   19 
   20 /* Written by Paul Eggert.  */
   21 
   22 #include <limits.h>
   23 #include <stdbool.h>
   24 #include <wchar.h>
   25 
   26 struct localeinfo
   27 {
   28   /* MB_CUR_MAX > 1.  */
   29   bool multibyte;
   30 
   31   /* The locale is simple, like the C locale.  These locales can be
   32      processed more efficiently, as they are single-byte, their native
   33      character set is in collating-sequence order, and they do not
   34      have multi-character collating elements.  */
   35   bool simple;
   36 
   37   /* The locale uses UTF-8.  */
   38   bool using_utf8;
   39 
   40   /* An array indexed by byte values B that contains 1 if B is a
   41      single-byte character, -1 if B is an encoding error, and -2 if B
   42      is the leading byte of a multibyte character that contains more
   43      than one byte.  */
   44   signed char sbclen[UCHAR_MAX + 1];
   45 
   46   /* An array indexed by byte values B that contains the corresponding
   47      wide character (if any) for B if sbclen[B] == 1.  WEOF means the
   48      byte is not a valid single-byte character, i.e., sbclen[B] == -1
   49      or -2.  */
   50   wint_t sbctowc[UCHAR_MAX + 1];
   51 };
   52 
   53 extern void init_localeinfo (struct localeinfo *);
   54 
   55 /* Maximum number of characters that can be the case-folded
   56    counterparts of a single character, not counting the character
   57    itself.  This is a generous upper bound.  */
   58 enum { CASE_FOLDED_BUFSIZE = 32 };
   59 
   60 extern int case_folded_counterparts (wint_t, wchar_t[CASE_FOLDED_BUFSIZE]);