"Fossies" - the Fresh Open Source Software Archive

Member "SDL2_ttf-2.20.2/external/freetype/src/autofit/afranges.c" (25 May 2022, 34997 Bytes) of package /linux/misc/SDL2_ttf-2.20.2.tar.gz:


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 "afranges.c" see the Fossies "Dox" file reference documentation.

    1 /****************************************************************************
    2  *
    3  * afranges.c
    4  *
    5  *   Auto-fitter Unicode script ranges (body).
    6  *
    7  * Copyright (C) 2013-2022 by
    8  * David Turner, Robert Wilhelm, and Werner Lemberg.
    9  *
   10  * This file is part of the FreeType project, and may only be used,
   11  * modified, and distributed under the terms of the FreeType project
   12  * license, LICENSE.TXT.  By continuing to use, modify, or distribute
   13  * this file you indicate that you have read the license and
   14  * understand and accept it fully.
   15  *
   16  */
   17 
   18 
   19 #include "afranges.h"
   20 
   21   /*
   22    * The algorithm for assigning properties and styles to the `glyph_styles'
   23    * array is as follows (cf. the implementation in
   24    * `af_face_globals_compute_style_coverage').
   25    *
   26    *   Walk over all scripts (as listed in `afscript.h').
   27    *
   28    *   For a given script, walk over all styles (as listed in `afstyles.h').
   29    *   The order of styles is important and should be as follows.
   30    *
   31    *   - First come styles based on OpenType features (small caps, for
   32    *     example).  Since features rely on glyph indices, thus completely
   33    *     bypassing character codes, no properties are assigned.
   34    *
   35    *   - Next comes the default style, using the character ranges as defined
   36    *     below.  This also assigns properties.
   37    *
   38    *   Note that there also exist fallback scripts, mainly covering
   39    *   superscript and subscript glyphs of a script that are not present as
   40    *   OpenType features.  Fallback scripts are defined below, also
   41    *   assigning properties; they are applied after the corresponding
   42    *   script.
   43    *
   44    */
   45 
   46 
   47   /* XXX Check base character ranges again:                        */
   48   /*     Right now, they are quickly derived by visual inspection. */
   49   /*     I can imagine that fine-tuning is necessary.              */
   50 
   51   /* for the auto-hinter, a `non-base character' is something that should */
   52   /* not be affected by blue zones, regardless of whether this is a       */
   53   /* spacing or no-spacing glyph                                          */
   54 
   55   /* the `af_xxxx_nonbase_uniranges' ranges must be strict subsets */
   56   /* of the corresponding `af_xxxx_uniranges' ranges               */
   57 
   58 
   59   const AF_Script_UniRangeRec  af_adlm_uniranges[] =
   60   {
   61     AF_UNIRANGE_REC( 0x1E900, 0x1E95F ),   /* Adlam */
   62     AF_UNIRANGE_REC(       0,       0 )
   63   };
   64 
   65   const AF_Script_UniRangeRec  af_adlm_nonbase_uniranges[] =
   66   {
   67     AF_UNIRANGE_REC( 0x1D944, 0x1E94A ),
   68     AF_UNIRANGE_REC(       0,       0 )
   69   };
   70 
   71 
   72   const AF_Script_UniRangeRec  af_arab_uniranges[] =
   73   {
   74     AF_UNIRANGE_REC(  0x0600,  0x06FF ),  /* Arabic                                 */
   75     AF_UNIRANGE_REC(  0x0750,  0x07FF ),  /* Arabic Supplement                      */
   76     AF_UNIRANGE_REC(  0x08A0,  0x08FF ),  /* Arabic Extended-A                      */
   77     AF_UNIRANGE_REC(  0xFB50,  0xFDFF ),  /* Arabic Presentation Forms-A            */
   78     AF_UNIRANGE_REC(  0xFE70,  0xFEFF ),  /* Arabic Presentation Forms-B            */
   79     AF_UNIRANGE_REC( 0x1EE00, 0x1EEFF ),  /* Arabic Mathematical Alphabetic Symbols */
   80     AF_UNIRANGE_REC(       0,       0 )
   81   };
   82 
   83   const AF_Script_UniRangeRec  af_arab_nonbase_uniranges[] =
   84   {
   85     AF_UNIRANGE_REC(  0x0600,  0x0605 ),
   86     AF_UNIRANGE_REC(  0x0610,  0x061A ),
   87     AF_UNIRANGE_REC(  0x064B,  0x065F ),
   88     AF_UNIRANGE_REC(  0x0670,  0x0670 ),
   89     AF_UNIRANGE_REC(  0x06D6,  0x06DC ),
   90     AF_UNIRANGE_REC(  0x06DF,  0x06E4 ),
   91     AF_UNIRANGE_REC(  0x06E7,  0x06E8 ),
   92     AF_UNIRANGE_REC(  0x06EA,  0x06ED ),
   93     AF_UNIRANGE_REC(  0x08D4,  0x08E1 ),
   94     AF_UNIRANGE_REC(  0x08D3,  0x08FF ),
   95     AF_UNIRANGE_REC(  0xFBB2,  0xFBC1 ),
   96     AF_UNIRANGE_REC(  0xFE70,  0xFE70 ),
   97     AF_UNIRANGE_REC(  0xFE72,  0xFE72 ),
   98     AF_UNIRANGE_REC(  0xFE74,  0xFE74 ),
   99     AF_UNIRANGE_REC(  0xFE76,  0xFE76 ),
  100     AF_UNIRANGE_REC(  0xFE78,  0xFE78 ),
  101     AF_UNIRANGE_REC(  0xFE7A,  0xFE7A ),
  102     AF_UNIRANGE_REC(  0xFE7C,  0xFE7C ),
  103     AF_UNIRANGE_REC(  0xFE7E,  0xFE7E ),
  104     AF_UNIRANGE_REC(       0,       0 )
  105   };
  106 
  107 
  108   const AF_Script_UniRangeRec  af_armn_uniranges[] =
  109   {
  110     AF_UNIRANGE_REC(  0x0530,  0x058F ),  /* Armenian                          */
  111     AF_UNIRANGE_REC(  0xFB13,  0xFB17 ),  /* Alphab. Present. Forms (Armenian) */
  112     AF_UNIRANGE_REC(       0,       0 )
  113   };
  114 
  115   const AF_Script_UniRangeRec  af_armn_nonbase_uniranges[] =
  116   {
  117     AF_UNIRANGE_REC(  0x0559,  0x055F ),
  118     AF_UNIRANGE_REC(       0,       0 )
  119   };
  120 
  121 
  122   const AF_Script_UniRangeRec  af_avst_uniranges[] =
  123   {
  124     AF_UNIRANGE_REC( 0x10B00,  0x10B3F ),  /* Avestan */
  125     AF_UNIRANGE_REC(       0,        0 )
  126   };
  127 
  128   const AF_Script_UniRangeRec  af_avst_nonbase_uniranges[] =
  129   {
  130     AF_UNIRANGE_REC( 0x10B39,  0x10B3F ),
  131     AF_UNIRANGE_REC(       0,        0 )
  132   };
  133 
  134 
  135   const AF_Script_UniRangeRec  af_bamu_uniranges[] =
  136   {
  137     AF_UNIRANGE_REC( 0xA6A0,   0xA6FF ),   /* Bamum */
  138 #if 0
  139     /* The characters in the Bamum supplement are pictograms, */
  140     /* not (directly) related to the syllabic Bamum script    */
  141     AF_UNIRANGE_REC( 0x16800, 0x16A3F ),   /* Bamum Supplement */
  142 #endif
  143     AF_UNIRANGE_REC(       0,       0 )
  144   };
  145 
  146   const AF_Script_UniRangeRec  af_bamu_nonbase_uniranges[] =
  147   {
  148     AF_UNIRANGE_REC(  0xA6F0,  0xA6F1 ),
  149     AF_UNIRANGE_REC(       0,       0 )
  150   };
  151 
  152 
  153   const AF_Script_UniRangeRec  af_beng_uniranges[] =
  154   {
  155     AF_UNIRANGE_REC(  0x0980,  0x09FF ),  /* Bengali */
  156     AF_UNIRANGE_REC(       0,       0 )
  157   };
  158 
  159   const AF_Script_UniRangeRec  af_beng_nonbase_uniranges[] =
  160   {
  161     AF_UNIRANGE_REC(  0x0981,  0x0981 ),
  162     AF_UNIRANGE_REC(  0x09BC,  0x09BC ),
  163     AF_UNIRANGE_REC(  0x09C1,  0x09C4 ),
  164     AF_UNIRANGE_REC(  0x09CD,  0x09CD ),
  165     AF_UNIRANGE_REC(  0x09E2,  0x09E3 ),
  166     AF_UNIRANGE_REC(  0x09FE,  0x09FE ),
  167     AF_UNIRANGE_REC(       0,       0 )
  168   };
  169 
  170 
  171   const AF_Script_UniRangeRec  af_buhd_uniranges[] =
  172   {
  173     AF_UNIRANGE_REC(  0x1740,  0x175F ),   /* Buhid */
  174     AF_UNIRANGE_REC(       0,       0 )
  175   };
  176 
  177   const AF_Script_UniRangeRec  af_buhd_nonbase_uniranges[] =
  178   {
  179     AF_UNIRANGE_REC(  0x1752,  0x1753 ),
  180     AF_UNIRANGE_REC(       0,       0 )
  181   };
  182 
  183 
  184   const AF_Script_UniRangeRec  af_cakm_uniranges[] =
  185   {
  186     AF_UNIRANGE_REC( 0x11100, 0x1114F ),   /* Chakma */
  187     AF_UNIRANGE_REC(       0,       0 )
  188   };
  189 
  190   const AF_Script_UniRangeRec  af_cakm_nonbase_uniranges[] =
  191   {
  192     AF_UNIRANGE_REC( 0x11100, 0x11102 ),
  193     AF_UNIRANGE_REC( 0x11127, 0x11134 ),
  194     AF_UNIRANGE_REC( 0x11146, 0x11146 ),
  195     AF_UNIRANGE_REC(       0,       0 )
  196   };
  197 
  198 
  199   const AF_Script_UniRangeRec  af_cans_uniranges[] =
  200   {
  201     AF_UNIRANGE_REC(  0x1400,  0x167F ), /* Unified Canadian Aboriginal Syllabics          */
  202     AF_UNIRANGE_REC(  0x18B0,  0x18FF ), /* Unified Canadian Aboriginal Syllabics Extended */
  203     AF_UNIRANGE_REC(       0,       0 )
  204   };
  205 
  206   const AF_Script_UniRangeRec  af_cans_nonbase_uniranges[] =
  207   {
  208     AF_UNIRANGE_REC( 0, 0 )
  209   };
  210 
  211 
  212   const AF_Script_UniRangeRec  af_cari_uniranges[] =
  213   {
  214     AF_UNIRANGE_REC( 0x102A0, 0x102DF ),   /* Carian */
  215     AF_UNIRANGE_REC(       0,       0 )
  216   };
  217 
  218   const AF_Script_UniRangeRec  af_cari_nonbase_uniranges[] =
  219   {
  220     AF_UNIRANGE_REC( 0, 0 )
  221   };
  222 
  223 
  224   const AF_Script_UniRangeRec  af_cher_uniranges[] =
  225   {
  226     AF_UNIRANGE_REC(  0x13A0,  0x13FF ),  /* Cherokee            */
  227     AF_UNIRANGE_REC(  0xAB70,  0xABBF ),  /* Cherokee Supplement */
  228     AF_UNIRANGE_REC(       0,       0 )
  229   };
  230 
  231   const AF_Script_UniRangeRec  af_cher_nonbase_uniranges[] =
  232   {
  233     AF_UNIRANGE_REC( 0, 0 )
  234   };
  235 
  236 
  237   const AF_Script_UniRangeRec  af_copt_uniranges[] =
  238   {
  239     AF_UNIRANGE_REC(  0x2C80,  0x2CFF ),   /* Coptic */
  240     AF_UNIRANGE_REC(       0,       0 )
  241   };
  242 
  243   const AF_Script_UniRangeRec  af_copt_nonbase_uniranges[] =
  244   {
  245     AF_UNIRANGE_REC(  0x2CEF,  0x2CF1 ),
  246     AF_UNIRANGE_REC(       0,       0 )
  247   };
  248 
  249 
  250   const AF_Script_UniRangeRec  af_cprt_uniranges[] =
  251   {
  252     AF_UNIRANGE_REC( 0x10800, 0x1083F ),   /* Cypriot */
  253     AF_UNIRANGE_REC(       0,       0 )
  254   };
  255 
  256   const AF_Script_UniRangeRec  af_cprt_nonbase_uniranges[] =
  257   {
  258     AF_UNIRANGE_REC( 0, 0 )
  259   };
  260 
  261 
  262   const AF_Script_UniRangeRec  af_cyrl_uniranges[] =
  263   {
  264     AF_UNIRANGE_REC(  0x0400,  0x04FF ),  /* Cyrillic            */
  265     AF_UNIRANGE_REC(  0x0500,  0x052F ),  /* Cyrillic Supplement */
  266     AF_UNIRANGE_REC(  0x2DE0,  0x2DFF ),  /* Cyrillic Extended-A */
  267     AF_UNIRANGE_REC(  0xA640,  0xA69F ),  /* Cyrillic Extended-B */
  268     AF_UNIRANGE_REC(  0x1C80,  0x1C8F ),  /* Cyrillic Extended-C */
  269     AF_UNIRANGE_REC(       0,       0 )
  270   };
  271 
  272   const AF_Script_UniRangeRec  af_cyrl_nonbase_uniranges[] =
  273   {
  274     AF_UNIRANGE_REC(  0x0483,  0x0489 ),
  275     AF_UNIRANGE_REC(  0x2DE0,  0x2DFF ),
  276     AF_UNIRANGE_REC(  0xA66F,  0xA67F ),
  277     AF_UNIRANGE_REC(  0xA69E,  0xA69F ),
  278     AF_UNIRANGE_REC(       0,       0 )
  279   };
  280 
  281 
  282   /* There are some characters in the Devanagari Unicode block that are    */
  283   /* generic to Indic scripts; we omit them so that their presence doesn't */
  284   /* trigger Devanagari.                                                   */
  285 
  286   const AF_Script_UniRangeRec  af_deva_uniranges[] =
  287   {
  288     AF_UNIRANGE_REC(  0x0900,  0x093B ),  /* Devanagari          */
  289     /* omitting U+093C nukta */
  290     AF_UNIRANGE_REC(  0x093D,  0x0950 ),  /* ... continued       */
  291     /* omitting U+0951 udatta, U+0952 anudatta */
  292     AF_UNIRANGE_REC(  0x0953,  0x0963 ),  /* ... continued       */
  293     /* omitting U+0964 danda, U+0965 double danda */
  294     AF_UNIRANGE_REC(  0x0966,  0x097F ),  /* ... continued       */
  295     AF_UNIRANGE_REC(  0x20B9,  0x20B9 ),  /* (new) Rupee sign    */
  296     AF_UNIRANGE_REC(  0xA8E0,  0xA8FF ),  /* Devanagari Extended */
  297     AF_UNIRANGE_REC(       0,       0 )
  298   };
  299 
  300   const AF_Script_UniRangeRec  af_deva_nonbase_uniranges[] =
  301   {
  302     AF_UNIRANGE_REC(  0x0900,  0x0902 ),
  303     AF_UNIRANGE_REC(  0x093A,  0x093A ),
  304     AF_UNIRANGE_REC(  0x0941,  0x0948 ),
  305     AF_UNIRANGE_REC(  0x094D,  0x094D ),
  306     AF_UNIRANGE_REC(  0x0953,  0x0957 ),
  307     AF_UNIRANGE_REC(  0x0962,  0x0963 ),
  308     AF_UNIRANGE_REC(  0xA8E0,  0xA8F1 ),
  309     AF_UNIRANGE_REC(  0xA8FF,  0xA8FF ),
  310     AF_UNIRANGE_REC(       0,       0 )
  311   };
  312 
  313 
  314   const AF_Script_UniRangeRec  af_dsrt_uniranges[] =
  315   {
  316     AF_UNIRANGE_REC( 0x10400, 0x1044F ),  /* Deseret */
  317     AF_UNIRANGE_REC(       0,       0 )
  318   };
  319 
  320   const AF_Script_UniRangeRec  af_dsrt_nonbase_uniranges[] =
  321   {
  322     AF_UNIRANGE_REC( 0, 0 )
  323   };
  324 
  325 
  326   const AF_Script_UniRangeRec  af_ethi_uniranges[] =
  327   {
  328     AF_UNIRANGE_REC(  0x1200,  0x137F ),  /* Ethiopic            */
  329     AF_UNIRANGE_REC(  0x1380,  0x139F ),  /* Ethiopic Supplement */
  330     AF_UNIRANGE_REC(  0x2D80,  0x2DDF ),  /* Ethiopic Extended   */
  331     AF_UNIRANGE_REC(  0xAB00,  0xAB2F ),  /* Ethiopic Extended-A */
  332     AF_UNIRANGE_REC(       0,       0 )
  333   };
  334 
  335   const AF_Script_UniRangeRec  af_ethi_nonbase_uniranges[] =
  336   {
  337     AF_UNIRANGE_REC(  0x135D,  0x135F ),
  338     AF_UNIRANGE_REC(       0,       0 )
  339   };
  340 
  341 
  342   const AF_Script_UniRangeRec  af_geor_uniranges[] =
  343   {
  344     AF_UNIRANGE_REC(  0x10D0,  0x10FF ),  /* Georgian (Mkhedruli)          */
  345     AF_UNIRANGE_REC(  0x1C90,  0x1CBF ),  /* Georgian Extended (Mtavruli)  */
  346     AF_UNIRANGE_REC(       0,       0 )
  347   };
  348 
  349   const AF_Script_UniRangeRec  af_geor_nonbase_uniranges[] =
  350   {
  351     AF_UNIRANGE_REC( 0, 0 )
  352   };
  353 
  354 
  355   const AF_Script_UniRangeRec  af_geok_uniranges[] =
  356   {
  357     /* Khutsuri */
  358     AF_UNIRANGE_REC(  0x10A0,  0x10CD ),  /* Georgian (Asomtavruli)         */
  359     AF_UNIRANGE_REC(  0x2D00,  0x2D2D ),  /* Georgian Supplement (Nuskhuri) */
  360     AF_UNIRANGE_REC(       0,       0 )
  361   };
  362 
  363   const AF_Script_UniRangeRec  af_geok_nonbase_uniranges[] =
  364   {
  365     AF_UNIRANGE_REC( 0, 0 )
  366   };
  367 
  368 
  369   const AF_Script_UniRangeRec  af_glag_uniranges[] =
  370   {
  371     AF_UNIRANGE_REC(  0x2C00,  0x2C5F ),  /* Glagolitic */
  372     AF_UNIRANGE_REC( 0x1E000, 0x1E02F ),  /* Glagolitic Supplement */
  373     AF_UNIRANGE_REC(       0,       0 )
  374   };
  375 
  376   const AF_Script_UniRangeRec  af_glag_nonbase_uniranges[] =
  377   {
  378     AF_UNIRANGE_REC( 0x1E000, 0x1E02F ),
  379     AF_UNIRANGE_REC(       0,       0 )
  380   };
  381 
  382 
  383   const AF_Script_UniRangeRec  af_goth_uniranges[] =
  384   {
  385     AF_UNIRANGE_REC( 0x10330, 0x1034F ),   /* Gothic */
  386     AF_UNIRANGE_REC(       0,       0 )
  387   };
  388 
  389   const AF_Script_UniRangeRec  af_goth_nonbase_uniranges[] =
  390   {
  391     AF_UNIRANGE_REC( 0, 0 )
  392   };
  393 
  394 
  395   const AF_Script_UniRangeRec  af_grek_uniranges[] =
  396   {
  397     AF_UNIRANGE_REC(  0x0370,  0x03FF ),  /* Greek and Coptic */
  398     AF_UNIRANGE_REC(  0x1F00,  0x1FFF ),  /* Greek Extended   */
  399     AF_UNIRANGE_REC(       0,       0 )
  400   };
  401 
  402   const AF_Script_UniRangeRec  af_grek_nonbase_uniranges[] =
  403   {
  404     AF_UNIRANGE_REC(  0x037A,  0x037A ),
  405     AF_UNIRANGE_REC(  0x0384,  0x0385 ),
  406     AF_UNIRANGE_REC(  0x1FBD,  0x1FC1 ),
  407     AF_UNIRANGE_REC(  0x1FCD,  0x1FCF ),
  408     AF_UNIRANGE_REC(  0x1FDD,  0x1FDF ),
  409     AF_UNIRANGE_REC(  0x1FED,  0x1FEF ),
  410     AF_UNIRANGE_REC(  0x1FFD,  0x1FFE ),
  411     AF_UNIRANGE_REC(       0,       0 )
  412   };
  413 
  414 
  415   const AF_Script_UniRangeRec  af_gujr_uniranges[] =
  416   {
  417     AF_UNIRANGE_REC(  0x0A80,  0x0AFF ),  /* Gujarati */
  418     AF_UNIRANGE_REC(       0,       0 )
  419   };
  420 
  421   const AF_Script_UniRangeRec  af_gujr_nonbase_uniranges[] =
  422   {
  423     AF_UNIRANGE_REC(  0x0A81,  0x0A82 ),
  424     AF_UNIRANGE_REC(  0x0ABC,  0x0ABC ),
  425     AF_UNIRANGE_REC(  0x0AC1,  0x0AC8 ),
  426     AF_UNIRANGE_REC(  0x0ACD,  0x0ACD ),
  427     AF_UNIRANGE_REC(  0x0AE2,  0x0AE3 ),
  428     AF_UNIRANGE_REC(  0x0AFA,  0x0AFF ),
  429     AF_UNIRANGE_REC(       0,       0 )
  430   };
  431 
  432 
  433   const AF_Script_UniRangeRec  af_guru_uniranges[] =
  434   {
  435     AF_UNIRANGE_REC(  0x0A00,  0x0A7F ),  /* Gurmukhi */
  436     AF_UNIRANGE_REC(       0,       0 )
  437   };
  438 
  439   const AF_Script_UniRangeRec  af_guru_nonbase_uniranges[] =
  440   {
  441     AF_UNIRANGE_REC(  0x0A01,  0x0A02 ),
  442     AF_UNIRANGE_REC(  0x0A3C,  0x0A3C ),
  443     AF_UNIRANGE_REC(  0x0A41,  0x0A51 ),
  444     AF_UNIRANGE_REC(  0x0A70,  0x0A71 ),
  445     AF_UNIRANGE_REC(  0x0A75,  0x0A75 ),
  446     AF_UNIRANGE_REC(       0,       0 )
  447   };
  448 
  449 
  450   const AF_Script_UniRangeRec  af_hebr_uniranges[] =
  451   {
  452     AF_UNIRANGE_REC(  0x0590,  0x05FF ),  /* Hebrew                          */
  453     AF_UNIRANGE_REC(  0xFB1D,  0xFB4F ),  /* Alphab. Present. Forms (Hebrew) */
  454     AF_UNIRANGE_REC(       0,       0 )
  455   };
  456 
  457   const AF_Script_UniRangeRec  af_hebr_nonbase_uniranges[] =
  458   {
  459     AF_UNIRANGE_REC(  0x0591,  0x05BF ),
  460     AF_UNIRANGE_REC(  0x05C1,  0x05C2 ),
  461     AF_UNIRANGE_REC(  0x05C4,  0x05C5 ),
  462     AF_UNIRANGE_REC(  0x05C7,  0x05C7 ),
  463     AF_UNIRANGE_REC(  0xFB1E,  0xFB1E ),
  464     AF_UNIRANGE_REC(       0,       0 )
  465   };
  466 
  467 
  468   const AF_Script_UniRangeRec  af_kali_uniranges[] =
  469   {
  470     AF_UNIRANGE_REC(  0xA900,  0xA92F ),   /* Kayah Li */
  471     AF_UNIRANGE_REC(       0,       0 )
  472   };
  473 
  474   const AF_Script_UniRangeRec  af_kali_nonbase_uniranges[] =
  475   {
  476     AF_UNIRANGE_REC(  0xA926,  0xA92D ),
  477     AF_UNIRANGE_REC(       0,       0 )
  478   };
  479 
  480 
  481   const AF_Script_UniRangeRec  af_knda_uniranges[] =
  482   {
  483     AF_UNIRANGE_REC(  0x0C80,  0x0CFF ),  /* Kannada */
  484     AF_UNIRANGE_REC(       0,       0 )
  485   };
  486 
  487   const AF_Script_UniRangeRec  af_knda_nonbase_uniranges[] =
  488   {
  489     AF_UNIRANGE_REC(  0x0C81,  0x0C81 ),
  490     AF_UNIRANGE_REC(  0x0CBC,  0x0CBC ),
  491     AF_UNIRANGE_REC(  0x0CBF,  0x0CBF ),
  492     AF_UNIRANGE_REC(  0x0CC6,  0x0CC6 ),
  493     AF_UNIRANGE_REC(  0x0CCC,  0x0CCD ),
  494     AF_UNIRANGE_REC(  0x0CE2,  0x0CE3 ),
  495     AF_UNIRANGE_REC(       0,       0 )
  496   };
  497 
  498 
  499   const AF_Script_UniRangeRec  af_khmr_uniranges[] =
  500   {
  501     AF_UNIRANGE_REC(  0x1780,  0x17FF ),  /* Khmer */
  502     AF_UNIRANGE_REC(       0,       0 )
  503   };
  504 
  505   const AF_Script_UniRangeRec  af_khmr_nonbase_uniranges[] =
  506   {
  507     AF_UNIRANGE_REC(  0x17B7,  0x17BD ),
  508     AF_UNIRANGE_REC(  0x17C6,  0x17C6 ),
  509     AF_UNIRANGE_REC(  0x17C9,  0x17D3 ),
  510     AF_UNIRANGE_REC(  0x17DD,  0x17DD ),
  511     AF_UNIRANGE_REC(       0,       0 )
  512   };
  513 
  514 
  515   const AF_Script_UniRangeRec  af_khms_uniranges[] =
  516   {
  517     AF_UNIRANGE_REC(  0x19E0,  0x19FF ),  /* Khmer Symbols */
  518     AF_UNIRANGE_REC(       0,       0 )
  519   };
  520 
  521   const AF_Script_UniRangeRec  af_khms_nonbase_uniranges[] =
  522   {
  523     AF_UNIRANGE_REC( 0, 0 )
  524   };
  525 
  526 
  527   const AF_Script_UniRangeRec  af_lao_uniranges[] =
  528   {
  529     AF_UNIRANGE_REC(  0x0E80,  0x0EFF ),  /* Lao */
  530     AF_UNIRANGE_REC(       0,       0 )
  531   };
  532 
  533   const AF_Script_UniRangeRec  af_lao_nonbase_uniranges[] =
  534   {
  535     AF_UNIRANGE_REC(  0x0EB1,  0x0EB1 ),
  536     AF_UNIRANGE_REC(  0x0EB4,  0x0EBC ),
  537     AF_UNIRANGE_REC(  0x0EC8,  0x0ECD ),
  538     AF_UNIRANGE_REC(       0,       0 )
  539   };
  540 
  541 
  542   const AF_Script_UniRangeRec  af_latn_uniranges[] =
  543   {
  544     AF_UNIRANGE_REC(  0x0020,  0x007F ),  /* Basic Latin (no control chars)         */
  545     AF_UNIRANGE_REC(  0x00A0,  0x00A9 ),  /* Latin-1 Supplement (no control chars)  */
  546     AF_UNIRANGE_REC(  0x00AB,  0x00B1 ),  /* ... continued                          */
  547     AF_UNIRANGE_REC(  0x00B4,  0x00B8 ),  /* ... continued                          */
  548     AF_UNIRANGE_REC(  0x00BB,  0x00FF ),  /* ... continued                          */
  549     AF_UNIRANGE_REC(  0x0100,  0x017F ),  /* Latin Extended-A                       */
  550     AF_UNIRANGE_REC(  0x0180,  0x024F ),  /* Latin Extended-B                       */
  551     AF_UNIRANGE_REC(  0x0250,  0x02AF ),  /* IPA Extensions                         */
  552     AF_UNIRANGE_REC(  0x02B9,  0x02DF ),  /* Spacing Modifier Letters               */
  553     AF_UNIRANGE_REC(  0x02E5,  0x02FF ),  /* ... continued                          */
  554     AF_UNIRANGE_REC(  0x0300,  0x036F ),  /* Combining Diacritical Marks            */
  555     AF_UNIRANGE_REC(  0x1AB0,  0x1ABE ),  /* Combining Diacritical Marks Extended   */
  556     AF_UNIRANGE_REC(  0x1D00,  0x1D2B ),  /* Phonetic Extensions                    */
  557     AF_UNIRANGE_REC(  0x1D6B,  0x1D77 ),  /* ... continued                          */
  558     AF_UNIRANGE_REC(  0x1D79,  0x1D7F ),  /* ... continued                          */
  559     AF_UNIRANGE_REC(  0x1D80,  0x1D9A ),  /* Phonetic Extensions Supplement         */
  560     AF_UNIRANGE_REC(  0x1DC0,  0x1DFF ),  /* Combining Diacritical Marks Supplement */
  561     AF_UNIRANGE_REC(  0x1E00,  0x1EFF ),  /* Latin Extended Additional              */
  562     AF_UNIRANGE_REC(  0x2000,  0x206F ),  /* General Punctuation                    */
  563     AF_UNIRANGE_REC(  0x20A0,  0x20B8 ),  /* Currency Symbols ...                   */
  564     AF_UNIRANGE_REC(  0x20BA,  0x20CF ),  /* ... except new Rupee sign              */
  565     AF_UNIRANGE_REC(  0x2150,  0x218F ),  /* Number Forms                           */
  566     AF_UNIRANGE_REC(  0x2C60,  0x2C7B ),  /* Latin Extended-C                       */
  567     AF_UNIRANGE_REC(  0x2C7E,  0x2C7F ),  /* ... continued                          */
  568     AF_UNIRANGE_REC(  0x2E00,  0x2E7F ),  /* Supplemental Punctuation               */
  569     AF_UNIRANGE_REC(  0xA720,  0xA76F ),  /* Latin Extended-D                       */
  570     AF_UNIRANGE_REC(  0xA771,  0xA7F7 ),  /* ... continued                          */
  571     AF_UNIRANGE_REC(  0xA7FA,  0xA7FF ),  /* ... continued                          */
  572     AF_UNIRANGE_REC(  0xAB30,  0xAB5B ),  /* Latin Extended-E                       */
  573     AF_UNIRANGE_REC(  0xAB60,  0xAB6F ),  /* ... continued                          */
  574     AF_UNIRANGE_REC(  0xFB00,  0xFB06 ),  /* Alphab. Present. Forms (Latin Ligs)    */
  575     AF_UNIRANGE_REC( 0x1D400, 0x1D7FF ),  /* Mathematical Alphanumeric Symbols      */
  576     AF_UNIRANGE_REC(       0,       0 )
  577   };
  578 
  579   const AF_Script_UniRangeRec  af_latn_nonbase_uniranges[] =
  580   {
  581     AF_UNIRANGE_REC(  0x005E,  0x0060 ),
  582     AF_UNIRANGE_REC(  0x007E,  0x007E ),
  583     AF_UNIRANGE_REC(  0x00A8,  0x00A9 ),
  584     AF_UNIRANGE_REC(  0x00AE,  0x00B0 ),
  585     AF_UNIRANGE_REC(  0x00B4,  0x00B4 ),
  586     AF_UNIRANGE_REC(  0x00B8,  0x00B8 ),
  587     AF_UNIRANGE_REC(  0x00BC,  0x00BE ),
  588     AF_UNIRANGE_REC(  0x02B9,  0x02DF ),
  589     AF_UNIRANGE_REC(  0x02E5,  0x02FF ),
  590     AF_UNIRANGE_REC(  0x0300,  0x036F ),
  591     AF_UNIRANGE_REC(  0x1AB0,  0x1ABE ),
  592     AF_UNIRANGE_REC(  0x1DC0,  0x1DFF ),
  593     AF_UNIRANGE_REC(  0x2017,  0x2017 ),
  594     AF_UNIRANGE_REC(  0x203E,  0x203E ),
  595     AF_UNIRANGE_REC(  0xA788,  0xA788 ),
  596     AF_UNIRANGE_REC(  0xA7F8,  0xA7FA ),
  597     AF_UNIRANGE_REC(       0,       0 )
  598   };
  599 
  600 
  601   const AF_Script_UniRangeRec  af_latb_uniranges[] =
  602   {
  603     AF_UNIRANGE_REC(  0x1D62,  0x1D6A ),  /* some small subscript letters   */
  604     AF_UNIRANGE_REC(  0x2080,  0x209C ),  /* subscript digits and letters   */
  605     AF_UNIRANGE_REC(  0x2C7C,  0x2C7C ),  /* latin subscript small letter j */
  606     AF_UNIRANGE_REC(       0,       0 )
  607   };
  608 
  609   const AF_Script_UniRangeRec  af_latb_nonbase_uniranges[] =
  610   {
  611     AF_UNIRANGE_REC( 0, 0 )
  612   };
  613 
  614 
  615   const AF_Script_UniRangeRec  af_latp_uniranges[] =
  616   {
  617     AF_UNIRANGE_REC(  0x00AA,  0x00AA ),  /* feminine ordinal indicator          */
  618     AF_UNIRANGE_REC(  0x00B2,  0x00B3 ),  /* superscript two and three           */
  619     AF_UNIRANGE_REC(  0x00B9,  0x00BA ),  /* superscript one, masc. ord. indic.  */
  620     AF_UNIRANGE_REC(  0x02B0,  0x02B8 ),  /* some latin superscript mod. letters */
  621     AF_UNIRANGE_REC(  0x02E0,  0x02E4 ),  /* some IPA modifier letters           */
  622     AF_UNIRANGE_REC(  0x1D2C,  0x1D61 ),  /* latin superscript modifier letters  */
  623     AF_UNIRANGE_REC(  0x1D78,  0x1D78 ),  /* modifier letter cyrillic en         */
  624     AF_UNIRANGE_REC(  0x1D9B,  0x1DBF ),  /* more modifier letters               */
  625     AF_UNIRANGE_REC(  0x2070,  0x207F ),  /* superscript digits and letters      */
  626     AF_UNIRANGE_REC(  0x2C7D,  0x2C7D ),  /* modifier letter capital v           */
  627     AF_UNIRANGE_REC(  0xA770,  0xA770 ),  /* modifier letter us                  */
  628     AF_UNIRANGE_REC(  0xA7F8,  0xA7F9 ),  /* more modifier letters               */
  629     AF_UNIRANGE_REC(  0xAB5C,  0xAB5F ),  /* more modifier letters               */
  630     AF_UNIRANGE_REC(       0,       0 )
  631   };
  632 
  633   const AF_Script_UniRangeRec  af_latp_nonbase_uniranges[] =
  634   {
  635     AF_UNIRANGE_REC( 0, 0 )
  636   };
  637 
  638 
  639   const AF_Script_UniRangeRec  af_lisu_uniranges[] =
  640   {
  641     AF_UNIRANGE_REC(  0xA4D0,  0xA4FF ),    /* Lisu */
  642     AF_UNIRANGE_REC(       0,       0 )
  643   };
  644 
  645   const AF_Script_UniRangeRec  af_lisu_nonbase_uniranges[] =
  646   {
  647     AF_UNIRANGE_REC( 0, 0 )
  648   };
  649 
  650 
  651   const AF_Script_UniRangeRec  af_mlym_uniranges[] =
  652   {
  653     AF_UNIRANGE_REC(  0x0D00,  0x0D7F ),  /* Malayalam */
  654     AF_UNIRANGE_REC(       0,       0 )
  655   };
  656 
  657   const AF_Script_UniRangeRec  af_mlym_nonbase_uniranges[] =
  658   {
  659     AF_UNIRANGE_REC(  0x0D00,  0x0D01 ),
  660     AF_UNIRANGE_REC(  0x0D3B,  0x0D3C ),
  661     AF_UNIRANGE_REC(  0x0D4D,  0x0D4E ),
  662     AF_UNIRANGE_REC(  0x0D62,  0x0D63 ),
  663     AF_UNIRANGE_REC(       0,       0 )
  664   };
  665 
  666 
  667   const AF_Script_UniRangeRec  af_medf_uniranges[] =
  668   {
  669     AF_UNIRANGE_REC( 0x16E40, 0x16E9F ),  /* Medefaidrin */
  670     AF_UNIRANGE_REC(       0,       0 )
  671   };
  672 
  673   const AF_Script_UniRangeRec  af_medf_nonbase_uniranges[] =
  674   {
  675     AF_UNIRANGE_REC(       0,       0 )
  676   };
  677 
  678 
  679   const AF_Script_UniRangeRec  af_mong_uniranges[] =
  680   {
  681     AF_UNIRANGE_REC(  0x1800,  0x18AF ),  /* Mongolian            */
  682     AF_UNIRANGE_REC( 0x11660, 0x1167F ),  /* Mongolian Supplement */
  683     AF_UNIRANGE_REC(       0,       0 )
  684   };
  685 
  686   const AF_Script_UniRangeRec  af_mong_nonbase_uniranges[] =
  687   {
  688     AF_UNIRANGE_REC(  0x1885,  0x1886 ),
  689     AF_UNIRANGE_REC(  0x18A9,  0x18A9 ),
  690     AF_UNIRANGE_REC(       0,       0 )
  691   };
  692 
  693 
  694   const AF_Script_UniRangeRec  af_mymr_uniranges[] =
  695   {
  696     AF_UNIRANGE_REC(  0x1000,  0x109F ),    /* Myanmar            */
  697     AF_UNIRANGE_REC(  0xA9E0,  0xA9FF ),    /* Myanmar Extended-B */
  698     AF_UNIRANGE_REC(  0xAA60,  0xAA7F ),    /* Myanmar Extended-A */
  699     AF_UNIRANGE_REC(       0,       0 )
  700   };
  701 
  702   const AF_Script_UniRangeRec  af_mymr_nonbase_uniranges[] =
  703   {
  704     AF_UNIRANGE_REC(  0x102D,  0x1030 ),
  705     AF_UNIRANGE_REC(  0x1032,  0x1037 ),
  706     AF_UNIRANGE_REC(  0x103A,  0x103A ),
  707     AF_UNIRANGE_REC(  0x103D,  0x103E ),
  708     AF_UNIRANGE_REC(  0x1058,  0x1059 ),
  709     AF_UNIRANGE_REC(  0x105E,  0x1060 ),
  710     AF_UNIRANGE_REC(  0x1071,  0x1074 ),
  711     AF_UNIRANGE_REC(  0x1082,  0x1082 ),
  712     AF_UNIRANGE_REC(  0x1085,  0x1086 ),
  713     AF_UNIRANGE_REC(  0x108D,  0x108D ),
  714     AF_UNIRANGE_REC(  0xA9E5,  0xA9E5 ),
  715     AF_UNIRANGE_REC(  0xAA7C,  0xAA7C ),
  716     AF_UNIRANGE_REC(       0,       0 )
  717   };
  718 
  719 
  720   const AF_Script_UniRangeRec  af_nkoo_uniranges[] =
  721   {
  722     AF_UNIRANGE_REC(  0x07C0,  0x07FF ),    /* N'Ko */
  723     AF_UNIRANGE_REC(       0,       0 )
  724   };
  725 
  726   const AF_Script_UniRangeRec  af_nkoo_nonbase_uniranges[] =
  727   {
  728     AF_UNIRANGE_REC(  0x07EB,  0x07F5 ),
  729     AF_UNIRANGE_REC(  0x07FD,  0x07FD ),
  730     AF_UNIRANGE_REC(       0,       0 )
  731   };
  732 
  733 
  734   const AF_Script_UniRangeRec  af_none_uniranges[] =
  735   {
  736     AF_UNIRANGE_REC( 0, 0 )
  737   };
  738 
  739   const AF_Script_UniRangeRec  af_none_nonbase_uniranges[] =
  740   {
  741     AF_UNIRANGE_REC( 0, 0 )
  742   };
  743 
  744 
  745   const AF_Script_UniRangeRec  af_olck_uniranges[] =
  746   {
  747     AF_UNIRANGE_REC(  0x1C50,  0x1C7F ),    /* Ol Chiki */
  748     AF_UNIRANGE_REC(       0,       0 )
  749   };
  750 
  751   const AF_Script_UniRangeRec  af_olck_nonbase_uniranges[] =
  752   {
  753     AF_UNIRANGE_REC( 0, 0 )
  754   };
  755 
  756 
  757   const AF_Script_UniRangeRec  af_orkh_uniranges[] =
  758   {
  759     AF_UNIRANGE_REC( 0x10C00, 0x10C4F ),    /* Old Turkic */
  760     AF_UNIRANGE_REC(       0,       0 )
  761   };
  762 
  763   const AF_Script_UniRangeRec  af_orkh_nonbase_uniranges[] =
  764   {
  765     AF_UNIRANGE_REC( 0, 0 )
  766   };
  767 
  768 
  769   const AF_Script_UniRangeRec  af_osge_uniranges[] =
  770   {
  771     AF_UNIRANGE_REC( 0x104B0, 0x104FF ),    /* Osage */
  772     AF_UNIRANGE_REC(       0,       0 )
  773   };
  774 
  775   const AF_Script_UniRangeRec  af_osge_nonbase_uniranges[] =
  776   {
  777     AF_UNIRANGE_REC( 0, 0 )
  778   };
  779 
  780 
  781   const AF_Script_UniRangeRec  af_osma_uniranges[] =
  782   {
  783     AF_UNIRANGE_REC( 0x10480, 0x104AF ),   /* Osmanya */
  784     AF_UNIRANGE_REC(       0,       0 )
  785   };
  786 
  787   const AF_Script_UniRangeRec  af_osma_nonbase_uniranges[] =
  788   {
  789     AF_UNIRANGE_REC( 0, 0 )
  790   };
  791 
  792 
  793   const AF_Script_UniRangeRec  af_rohg_uniranges[] =
  794   {
  795     AF_UNIRANGE_REC( 0x10D00, 0x10D3F ),   /* Hanifi Rohingya */
  796     AF_UNIRANGE_REC(       0,       0 )
  797   };
  798 
  799   const AF_Script_UniRangeRec  af_rohg_nonbase_uniranges[] =
  800   {
  801     AF_UNIRANGE_REC( 0, 0 )
  802   };
  803 
  804 
  805   const AF_Script_UniRangeRec  af_saur_uniranges[] =
  806   {
  807     AF_UNIRANGE_REC(  0xA880,  0xA8DF ),   /* Saurashtra */
  808     AF_UNIRANGE_REC(       0,       0 )
  809   };
  810 
  811   const AF_Script_UniRangeRec  af_saur_nonbase_uniranges[] =
  812   {
  813     AF_UNIRANGE_REC(  0xA880,  0xA881 ),
  814     AF_UNIRANGE_REC(  0xA8B4,  0xA8C5 ),
  815     AF_UNIRANGE_REC(       0,       0 )
  816   };
  817 
  818 
  819   const AF_Script_UniRangeRec  af_shaw_uniranges[] =
  820   {
  821     AF_UNIRANGE_REC( 0x10450, 0x1047F ),   /* Shavian */
  822     AF_UNIRANGE_REC(       0,       0 )
  823   };
  824 
  825   const AF_Script_UniRangeRec  af_shaw_nonbase_uniranges[] =
  826   {
  827     AF_UNIRANGE_REC( 0, 0 )
  828   };
  829 
  830 
  831   const AF_Script_UniRangeRec  af_sinh_uniranges[] =
  832   {
  833     AF_UNIRANGE_REC(  0x0D80,  0x0DFF ),  /* Sinhala */
  834     AF_UNIRANGE_REC(       0,       0 )
  835   };
  836 
  837   const AF_Script_UniRangeRec  af_sinh_nonbase_uniranges[] =
  838   {
  839     AF_UNIRANGE_REC(  0x0DCA,  0x0DCA ),
  840     AF_UNIRANGE_REC(  0x0DD2,  0x0DD6 ),
  841     AF_UNIRANGE_REC(       0,       0 )
  842   };
  843 
  844 
  845   const AF_Script_UniRangeRec  af_sund_uniranges[] =
  846   {
  847     AF_UNIRANGE_REC(  0x1B80,  0x1BBF ), /* Sundanese            */
  848     AF_UNIRANGE_REC(  0x1CC0,  0x1CCF ), /* Sundanese Supplement */
  849     AF_UNIRANGE_REC(       0,       0 )
  850   };
  851 
  852   const AF_Script_UniRangeRec  af_sund_nonbase_uniranges[] =
  853   {
  854     AF_UNIRANGE_REC(  0x1B80,  0x1B82 ),
  855     AF_UNIRANGE_REC(  0x1BA1,  0x1BAD ),
  856     AF_UNIRANGE_REC(       0,       0 )
  857   };
  858 
  859 
  860   const AF_Script_UniRangeRec  af_taml_uniranges[] =
  861   {
  862     AF_UNIRANGE_REC(  0x0B80,  0x0BFF ),  /* Tamil */
  863     AF_UNIRANGE_REC(       0,       0 )
  864   };
  865 
  866   const AF_Script_UniRangeRec  af_taml_nonbase_uniranges[] =
  867   {
  868     AF_UNIRANGE_REC(  0x0B82,  0x0B82 ),
  869     AF_UNIRANGE_REC(  0x0BC0,  0x0BC2 ),
  870     AF_UNIRANGE_REC(  0x0BCD,  0x0BCD ),
  871     AF_UNIRANGE_REC(       0,       0 )
  872   };
  873 
  874 
  875   const AF_Script_UniRangeRec  af_tavt_uniranges[] =
  876   {
  877     AF_UNIRANGE_REC(  0xAA80,  0xAADF ),   /* Tai Viet */
  878     AF_UNIRANGE_REC(       0,       0 )
  879   };
  880 
  881   const AF_Script_UniRangeRec  af_tavt_nonbase_uniranges[] =
  882   {
  883     AF_UNIRANGE_REC(  0xAAB0,  0xAAB0 ),
  884     AF_UNIRANGE_REC(  0xAAB2,  0xAAB4 ),
  885     AF_UNIRANGE_REC(  0xAAB7,  0xAAB8 ),
  886     AF_UNIRANGE_REC(  0xAABE,  0xAABF ),
  887     AF_UNIRANGE_REC(  0xAAC1,  0xAAC1 ),
  888     AF_UNIRANGE_REC(       0,       0 )
  889   };
  890 
  891 
  892   const AF_Script_UniRangeRec  af_telu_uniranges[] =
  893   {
  894     AF_UNIRANGE_REC(  0x0C00,  0x0C7F ),  /* Telugu */
  895     AF_UNIRANGE_REC(       0,       0 )
  896   };
  897 
  898   const AF_Script_UniRangeRec  af_telu_nonbase_uniranges[] =
  899   {
  900     AF_UNIRANGE_REC(  0x0C00,  0x0C00 ),
  901     AF_UNIRANGE_REC(  0x0C04,  0x0C04 ),
  902     AF_UNIRANGE_REC(  0x0C3E,  0x0C40 ),
  903     AF_UNIRANGE_REC(  0x0C46,  0x0C56 ),
  904     AF_UNIRANGE_REC(  0x0C62,  0x0C63 ),
  905     AF_UNIRANGE_REC(       0,       0 )
  906   };
  907 
  908 
  909   const AF_Script_UniRangeRec  af_thai_uniranges[] =
  910   {
  911     AF_UNIRANGE_REC(  0x0E00,  0x0E7F ),  /* Thai */
  912     AF_UNIRANGE_REC(       0,       0 )
  913   };
  914 
  915   const AF_Script_UniRangeRec  af_thai_nonbase_uniranges[] =
  916   {
  917     AF_UNIRANGE_REC(  0x0E31,  0x0E31 ),
  918     AF_UNIRANGE_REC(  0x0E34,  0x0E3A ),
  919     AF_UNIRANGE_REC(  0x0E47,  0x0E4E ),
  920     AF_UNIRANGE_REC(       0,       0 )
  921   };
  922 
  923 
  924   const AF_Script_UniRangeRec  af_tfng_uniranges[] =
  925   {
  926     AF_UNIRANGE_REC(  0x2D30,  0x2D7F ),   /* Tifinagh */
  927     AF_UNIRANGE_REC(       0,       0 )
  928   };
  929 
  930   const AF_Script_UniRangeRec  af_tfng_nonbase_uniranges[] =
  931   {
  932     AF_UNIRANGE_REC( 0, 0 )
  933   };
  934 
  935 
  936   const AF_Script_UniRangeRec  af_vaii_uniranges[] =
  937   {
  938     AF_UNIRANGE_REC(  0xA500,  0xA63F ),   /* Vai */
  939     AF_UNIRANGE_REC(       0,       0 )
  940   };
  941 
  942   const AF_Script_UniRangeRec  af_vaii_nonbase_uniranges[] =
  943   {
  944     AF_UNIRANGE_REC( 0, 0 )
  945   };
  946 
  947 
  948 #ifdef AF_CONFIG_OPTION_INDIC
  949 
  950   const AF_Script_UniRangeRec  af_limb_uniranges[] =
  951   {
  952     AF_UNIRANGE_REC(  0x1900,  0x194F ),  /* Limbu */
  953     AF_UNIRANGE_REC(       0,       0 )
  954   };
  955 
  956   const AF_Script_UniRangeRec  af_limb_nonbase_uniranges[] =
  957   {
  958     AF_UNIRANGE_REC(  0x1920,  0x1922 ),
  959     AF_UNIRANGE_REC(  0x1927,  0x1934 ),
  960     AF_UNIRANGE_REC(  0x1937,  0x193B ),
  961     AF_UNIRANGE_REC(       0,       0 )
  962   };
  963 
  964 
  965   const AF_Script_UniRangeRec  af_orya_uniranges[] =
  966   {
  967     AF_UNIRANGE_REC(  0x0B00,  0x0B7F ),  /* Oriya */
  968     AF_UNIRANGE_REC(       0,       0 )
  969   };
  970 
  971   const AF_Script_UniRangeRec  af_orya_nonbase_uniranges[] =
  972   {
  973     AF_UNIRANGE_REC(  0x0B01,  0x0B02 ),
  974     AF_UNIRANGE_REC(  0x0B3C,  0x0B3C ),
  975     AF_UNIRANGE_REC(  0x0B3F,  0x0B3F ),
  976     AF_UNIRANGE_REC(  0x0B41,  0x0B44 ),
  977     AF_UNIRANGE_REC(  0x0B4D,  0x0B56 ),
  978     AF_UNIRANGE_REC(  0x0B62,  0x0B63 ),
  979     AF_UNIRANGE_REC(       0,       0 )
  980   };
  981 
  982 
  983   const AF_Script_UniRangeRec  af_sylo_uniranges[] =
  984   {
  985     AF_UNIRANGE_REC(  0xA800,  0xA82F ),  /* Syloti Nagri */
  986     AF_UNIRANGE_REC(       0,       0 )
  987   };
  988 
  989   const AF_Script_UniRangeRec  af_sylo_nonbase_uniranges[] =
  990   {
  991     AF_UNIRANGE_REC(  0xA802,  0xA802 ),
  992     AF_UNIRANGE_REC(  0xA806,  0xA806 ),
  993     AF_UNIRANGE_REC(  0xA80B,  0xA80B ),
  994     AF_UNIRANGE_REC(  0xA825,  0xA826 ),
  995     AF_UNIRANGE_REC(       0,       0 )
  996   };
  997 
  998 
  999   const AF_Script_UniRangeRec  af_tibt_uniranges[] =
 1000   {
 1001     AF_UNIRANGE_REC(  0x0F00,  0x0FFF ),  /* Tibetan */
 1002     AF_UNIRANGE_REC(       0,       0 )
 1003   };
 1004 
 1005   const AF_Script_UniRangeRec  af_tibt_nonbase_uniranges[] =
 1006   {
 1007     AF_UNIRANGE_REC(  0x0F18,  0x0F19 ),
 1008     AF_UNIRANGE_REC(  0x0F35,  0x0F35 ),
 1009     AF_UNIRANGE_REC(  0x0F37,  0x0F37 ),
 1010     AF_UNIRANGE_REC(  0x0F39,  0x0F39 ),
 1011     AF_UNIRANGE_REC(  0x0F3E,  0x0F3F ),
 1012     AF_UNIRANGE_REC(  0x0F71,  0x0F7E ),
 1013     AF_UNIRANGE_REC(  0x0F80,  0x0F84 ),
 1014     AF_UNIRANGE_REC(  0x0F86,  0x0F87 ),
 1015     AF_UNIRANGE_REC(  0x0F8D,  0x0FBC ),
 1016     AF_UNIRANGE_REC(       0,       0 )
 1017   };
 1018 
 1019 #endif /* !AF_CONFIG_OPTION_INDIC */
 1020 
 1021 #ifdef AF_CONFIG_OPTION_CJK
 1022 
 1023   /* this corresponds to Unicode 6.0 */
 1024 
 1025   const AF_Script_UniRangeRec  af_hani_uniranges[] =
 1026   {
 1027     AF_UNIRANGE_REC(  0x1100,  0x11FF ),  /* Hangul Jamo                             */
 1028     AF_UNIRANGE_REC(  0x2E80,  0x2EFF ),  /* CJK Radicals Supplement                 */
 1029     AF_UNIRANGE_REC(  0x2F00,  0x2FDF ),  /* Kangxi Radicals                         */
 1030     AF_UNIRANGE_REC(  0x2FF0,  0x2FFF ),  /* Ideographic Description Characters      */
 1031     AF_UNIRANGE_REC(  0x3000,  0x303F ),  /* CJK Symbols and Punctuation             */
 1032     AF_UNIRANGE_REC(  0x3040,  0x309F ),  /* Hiragana                                */
 1033     AF_UNIRANGE_REC(  0x30A0,  0x30FF ),  /* Katakana                                */
 1034     AF_UNIRANGE_REC(  0x3100,  0x312F ),  /* Bopomofo                                */
 1035     AF_UNIRANGE_REC(  0x3130,  0x318F ),  /* Hangul Compatibility Jamo               */
 1036     AF_UNIRANGE_REC(  0x3190,  0x319F ),  /* Kanbun                                  */
 1037     AF_UNIRANGE_REC(  0x31A0,  0x31BF ),  /* Bopomofo Extended                       */
 1038     AF_UNIRANGE_REC(  0x31C0,  0x31EF ),  /* CJK Strokes                             */
 1039     AF_UNIRANGE_REC(  0x31F0,  0x31FF ),  /* Katakana Phonetic Extensions            */
 1040     AF_UNIRANGE_REC(  0x3300,  0x33FF ),  /* CJK Compatibility                       */
 1041     AF_UNIRANGE_REC(  0x3400,  0x4DBF ),  /* CJK Unified Ideographs Extension A      */
 1042     AF_UNIRANGE_REC(  0x4DC0,  0x4DFF ),  /* Yijing Hexagram Symbols                 */
 1043     AF_UNIRANGE_REC(  0x4E00,  0x9FFF ),  /* CJK Unified Ideographs                  */
 1044     AF_UNIRANGE_REC(  0xA960,  0xA97F ),  /* Hangul Jamo Extended-A                  */
 1045     AF_UNIRANGE_REC(  0xAC00,  0xD7AF ),  /* Hangul Syllables                        */
 1046     AF_UNIRANGE_REC(  0xD7B0,  0xD7FF ),  /* Hangul Jamo Extended-B                  */
 1047     AF_UNIRANGE_REC(  0xF900,  0xFAFF ),  /* CJK Compatibility Ideographs            */
 1048     AF_UNIRANGE_REC(  0xFE10,  0xFE1F ),  /* Vertical forms                          */
 1049     AF_UNIRANGE_REC(  0xFE30,  0xFE4F ),  /* CJK Compatibility Forms                 */
 1050     AF_UNIRANGE_REC(  0xFF00,  0xFFEF ),  /* Halfwidth and Fullwidth Forms           */
 1051     AF_UNIRANGE_REC( 0x1B000, 0x1B0FF ),  /* Kana Supplement                         */
 1052     AF_UNIRANGE_REC( 0x1B100, 0x1B12F ),  /* Kana Extended-A                         */
 1053     AF_UNIRANGE_REC( 0x1D300, 0x1D35F ),  /* Tai Xuan Hing Symbols                   */
 1054     AF_UNIRANGE_REC( 0x20000, 0x2A6DF ),  /* CJK Unified Ideographs Extension B      */
 1055     AF_UNIRANGE_REC( 0x2A700, 0x2B73F ),  /* CJK Unified Ideographs Extension C      */
 1056     AF_UNIRANGE_REC( 0x2B740, 0x2B81F ),  /* CJK Unified Ideographs Extension D      */
 1057     AF_UNIRANGE_REC( 0x2B820, 0x2CEAF ),  /* CJK Unified Ideographs Extension E      */
 1058     AF_UNIRANGE_REC( 0x2CEB0, 0x2EBEF ),  /* CJK Unified Ideographs Extension F      */
 1059     AF_UNIRANGE_REC( 0x2F800, 0x2FA1F ),  /* CJK Compatibility Ideographs Supplement */
 1060     AF_UNIRANGE_REC(       0,       0 )
 1061   };
 1062 
 1063   const AF_Script_UniRangeRec  af_hani_nonbase_uniranges[] =
 1064   {
 1065     AF_UNIRANGE_REC(  0x302A,  0x302F ),
 1066     AF_UNIRANGE_REC(  0x3190,  0x319F ),
 1067     AF_UNIRANGE_REC(       0,       0 )
 1068   };
 1069 
 1070 #endif /* !AF_CONFIG_OPTION_CJK */
 1071 
 1072 /* END */