Edit

kc3-lang/freetype/src/autofit/afblue.dat

Branch :

  • Show log

    Commit

  • Author : Werner Lemberg
    Date : 2013-10-19 21:46:03
    Hash : 75efc2d0
    Message : [autofit] s/SMALL_TOP/X_HEIGHT/. * src/autofit/afblue.dat: Updated. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/aflatin.c, src/autofit/aflatin.h, src/autofit/atlatin2.c: Updated.

  • src/autofit/afblue.dat
  • //  afblue.dat
    //
    //    Auto-fitter data for blue strings.
    //
    //  Copyright 2013 by
    //  David Turner, Robert Wilhelm, and Werner Lemberg.
    //
    //  This file is part of the FreeType project, and may only be used,
    //  modified, and distributed under the terms of the FreeType project
    //  license, LICENSE.TXT.  By continuing to use, modify, or distribute
    //  this file you indicate that you have read the license and
    //  understand and accept it fully.
    
    
    // This file contains data specific to blue zones.  It gets processed by
    // a script to simulate `jagged arrays', with enumeration values holding
    // offsets into the arrays.
    //
    // The format of the file is rather simple:  A section starts with three
    // labels separated by whitespace and followed by a colon (everything in a
    // single line); the first label gives the name of the enumeration template,
    // the second the name of the array template, and the third the name of the
    // `maximum' template, holding the size of the largest array element.  The
    // script then fills the corresponding templates (indicated by `@'
    // characters around the name).
    //
    // A section contains one or more data records.  Each data record consists
    // of two or more lines.  The first line holds the enumeration name, and the
    // remaining lines the corresponding array data.
    //
    // There are two possible representations for array data.
    //
    // - A string of characters in UTF-8 encoding enclosed in double quotes,
    //   using C syntax.  There can be only one string per line, thus the
    //   starting and ending double quote must be the first and last character
    //   in the line, respectively, ignoring whitespace before and after the
    //   string.  If there are multiple strings (in multiple lines), they are
    //   concatenated to a single string.  In the output, a string gets
    //   represented as a series of singles bytes, followed by a zero byte.  The
    //   enumeration values simply hold byte offsets to the start of the
    //   corresponding strings.
    //
    // - Data blocks enclosed in balanced braces, which get copied verbatim and
    //   which can span multiple lines.  The opening brace of a block must be
    //   the first character of a line (ignoring whitespace), and the closing
    //   brace the last (ignoring whitespace also).  The script appends a comma
    //   character after each block and counts the number of blocks to set the
    //   enumeration values.
    //
    // A section can contain either strings only or data blocks only.
    //
    // A comment line starts with `//'; it gets removed.  A preprocessor
    // directive line (using the standard syntax of `cpp') starts with `#' and
    // gets copied verbatim to both the enumeration and the array.  Whitespace
    // outside of a string is insignificant.
    //
    // Preprocessor directives are ignored while the script computes maximum
    // values; this essentially means that the maximum values can easily be too
    // large.  Given that the purpose of those values is to create local
    // fixed-size arrays at compile time for further processing of the blue zone
    // data, this isn't a problem.  Note the the final zero byte of a string is
    // not counted.  Note also that the count holds the number of UTF-8 encoded
    // characters, not bytes.
    
    
    AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN:
    
      AF_BLUE_STRING_LATIN_CAPITAL_TOP
        "THEZOCQS"
      AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM
        "HEZLOCUS"
      AF_BLUE_STRING_LATIN_SMALL_F_TOP
        "fijkdbh"
      AF_BLUE_STRING_LATIN_SMALL
        "xzroesc"
      AF_BLUE_STRING_LATIN_SMALL_DESCENDER
        "pqgjy"
    
      AF_BLUE_STRING_GREEK_CAPITAL_TOP
        "ΓΒΕΖΘΟΩ"
      AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM
        "ΒΔΖΞΘΟ"
      AF_BLUE_STRING_GREEK_SMALL_BETA_TOP
        "βθδζλξ"
      AF_BLUE_STRING_GREEK_SMALL
        "αειοπστω"
      AF_BLUE_STRING_GREEK_SMALL_DESCENDER
        "βγημρφχψ"
    
      AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP
        "БВЕПЗОСЭ"
      AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM
        "БВЕШЗОСЭ"
      AF_BLUE_STRING_CYRILLIC_SMALL
        "хпншезос"
      AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER
        "руф"
    
      AF_BLUE_STRING_HEBREW_TOP
        "בדהחךכםס"
      AF_BLUE_STRING_HEBREW_BOTTOM
        "בטכםסצ"
      AF_BLUE_STRING_HEBREW_DESCENDER
        "קךןףץ"
    
    #ifdef AF_CONFIG_OPTION_CJK
    
      AF_BLUE_STRING_CJK_TOP_FILL
        "他们你來們到和地"
        "对對就席我时時會"
        "来為能舰說说这這"
        "齊"
      AF_BLUE_STRING_CJK_TOP_UNFILL
        "军同已愿既星是景"
        "民照现現理用置要"
        "軍那配里開雷露面"
        "顾"
      AF_BLUE_STRING_CJK_BOTTOM_FILL
        "个为人他以们你來"
        "個們到和大对對就"
        "我时時有来為要說"
        "说"
      AF_BLUE_STRING_CJK_BOTTOM_UNFILL
        "主些因它想意理生"
        "當看着置者自著裡"
        "过还进進過道還里"
        "面"
    
    #ifdef AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT
    
      AF_BLUE_STRING_CJK_LEFT_FILL
        "些们你來們到和地"
        "她将將就年得情最"
        "样樣理能說说这這"
        "通"
      AF_BLUE_STRING_CJK_LEFT_UNFILL
        "即吗吧听呢品响嗎"
        "师師收断斷明眼間"
        "间际陈限除陳随際"
        "隨"
      AF_BLUE_STRING_CJK_RIGHT_FILL
        "事前學将將情想或"
        "政斯新样樣民沒没"
        "然特现現球第經谁"
        "起"
      AF_BLUE_STRING_CJK_RIGHT_UNFILL
        "例別别制动動吗嗎"
        "增指明朝期构物确"
        "种調调費费那都間"
        "间"
    
    #endif /* AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT */
    
    #endif /* AF_CONFIG_OPTION_CJK                */
    
    
    AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN:
    
      AF_BLUE_STRINGSET_LATN
        { AF_BLUE_STRING_LATIN_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
        { AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM,  0                                 }
        { AF_BLUE_STRING_LATIN_SMALL_F_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
        { AF_BLUE_STRING_LATIN_SMALL,           AF_BLUE_PROPERTY_LATIN_TOP      |
                                                AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
        { AF_BLUE_STRING_LATIN_SMALL,           0                                 }
        { AF_BLUE_STRING_LATIN_SMALL_DESCENDER, 0                                 }
        { AF_BLUE_STRING_MAX,                   0                                 }
    
      AF_BLUE_STRINGSET_GREK
        { AF_BLUE_STRING_GREEK_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
        { AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM,  0                                 }
        { AF_BLUE_STRING_GREEK_SMALL_BETA_TOP,  AF_BLUE_PROPERTY_LATIN_TOP        }
        { AF_BLUE_STRING_GREEK_SMALL,           AF_BLUE_PROPERTY_LATIN_TOP      |
                                                AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
        { AF_BLUE_STRING_GREEK_SMALL,           0                                 }
        { AF_BLUE_STRING_GREEK_SMALL_DESCENDER, 0                                 }
        { AF_BLUE_STRING_MAX,                   0                                 }
    
      AF_BLUE_STRINGSET_CYRL
        { AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
        { AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM,  0                                 }
        { AF_BLUE_STRING_CYRILLIC_SMALL,           AF_BLUE_PROPERTY_LATIN_TOP      |
                                                   AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
        { AF_BLUE_STRING_CYRILLIC_SMALL,           0                                 }
        { AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER, 0                                 }
        { AF_BLUE_STRING_MAX,                      0                                 }
    
      AF_BLUE_STRINGSET_HEBR
        { AF_BLUE_STRING_HEBREW_TOP,       AF_BLUE_PROPERTY_LATIN_TOP  |
                                           AF_BLUE_PROPERTY_LATIN_LONG   }
        { AF_BLUE_STRING_HEBREW_BOTTOM,    0                             }
        { AF_BLUE_STRING_HEBREW_DESCENDER, 0                             }
        { AF_BLUE_STRING_MAX,              0                             }
    
    #ifdef AF_CONFIG_OPTION_CJK
    
      AF_BLUE_STRINGSET_HANI
        { AF_BLUE_STRING_CJK_TOP_FILL,      AF_BLUE_PROPERTY_CJK_TOP |
                                            AF_BLUE_PROPERTY_CJK_FILL    }
        { AF_BLUE_STRING_CJK_TOP_UNFILL,    AF_BLUE_PROPERTY_CJK_TOP     }
        { AF_BLUE_STRING_CJK_BOTTOM_FILL,   AF_BLUE_PROPERTY_CJK_FILL    }
        { AF_BLUE_STRING_CJK_BOTTOM_UNFILL, 0                            }
    #ifdef AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT
        { AF_BLUE_STRING_CJK_LEFT_FILL,     AF_BLUE_PROPERTY_CJK_HORIZ |
                                            AF_BLUE_PROPERTY_CJK_FILL    }
        { AF_BLUE_STRING_CJK_LEFT_UNFILL,   AF_BLUE_PROPERTY_CJK_HORIZ   }
        { AF_BLUE_STRING_CJK_RIGHT_FILL,    AF_BLUE_PROPERTY_CJK_HORIZ |
                                            AF_BLUE_PROPERTY_CJK_RIGHT |
                                            AF_BLUE_PROPERTY_CJK_FILL    }
        { AF_BLUE_STRING_CJK_RIGHT_UNFILL,  AF_BLUE_PROPERTY_CJK_HORIZ |
                                            AF_BLUE_PROPERTY_CJK_RIGHT   }
    #endif /* AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT */
        { AF_BLUE_STRING_MAX,               0                            }
    
    #endif /* AF_CONFIG_OPTION_CJK                */
    
    
    // END