diff -r 92af50454cf2 -r 8054d9d775fd misc/libfreetype/src/gxvalid/gxvfgen.c --- a/misc/libfreetype/src/gxvalid/gxvfgen.c Fri Oct 11 11:55:31 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,482 +0,0 @@ -/***************************************************************************/ -/* */ -/* gxfgen.c */ -/* */ -/* Generate feature registry data for gxv `feat' validator. */ -/* This program is derived from gxfeatreg.c in gxlayout. */ -/* */ -/* Copyright 2004, 2005, 2006 by Masatake YAMATO and Redhat K.K. */ -/* */ -/* This file 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. */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* */ -/* gxfeatreg.c */ -/* */ -/* Database of font features pre-defined by Apple Computer, Inc. */ -/* http://developer.apple.com/fonts/Registry/ */ -/* (body). */ -/* */ -/* Copyright 2003 by */ -/* Masatake YAMATO and Redhat K.K. */ -/* */ -/* This file 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. */ -/* */ -/***************************************************************************/ - -/***************************************************************************/ -/* */ -/* Development of gxfeatreg.c is supported by */ -/* Information-technology Promotion Agency, Japan. */ -/* */ -/***************************************************************************/ - - -/***************************************************************************/ -/* */ -/* This file is compiled as a stand-alone executable. */ -/* This file is never compiled into `libfreetype2'. */ -/* The output of this file is used in `gxvfeat.c'. */ -/* ----------------------------------------------------------------------- */ -/* Compile: gcc `pkg-config --cflags freetype2` gxvfgen.c -o gxvfgen */ -/* Run: ./gxvfgen > tmp.c */ -/* */ -/***************************************************************************/ - - /*******************************************************************/ - /* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING */ - /*******************************************************************/ - - /* - * If you add a new setting to a feature, check the number of settings - * in the feature. If the number is greater than the value defined as - * FEATREG_MAX_SETTING, update the value. - */ -#define FEATREG_MAX_SETTING 12 - - /*******************************************************************/ - /* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING */ - /*******************************************************************/ - - -#include -#include - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** Data and Types *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - -#define APPLE_RESERVED "Apple Reserved" -#define APPLE_RESERVED_LENGTH 14 - - typedef struct GX_Feature_RegistryRec_ - { - const char* feat_name; - char exclusive; - char* setting_name[FEATREG_MAX_SETTING]; - - } GX_Feature_RegistryRec; - - -#define EMPTYFEAT {0, 0, {NULL}} - - - static GX_Feature_RegistryRec featreg_table[] = { - { /* 0 */ - "All Typographic Features", - 0, - { - "All Type Features", - NULL - } - }, { /* 1 */ - "Ligatures", - 0, - { - "Required Ligatures", - "Common Ligatures", - "Rare Ligatures", - "Logos", - "Rebus Pictures", - "Diphthong Ligatures", - "Squared Ligatures", - "Squared Ligatures, Abbreviated", - NULL - } - }, { /* 2 */ - "Cursive Connection", - 1, - { - "Unconnected", - "Partially Connected", - "Cursive", - NULL - } - }, { /* 3 */ - "Letter Case", - 1, - { - "Upper & Lower Case", - "All Caps", - "All Lower Case", - "Small Caps", - "Initial Caps", - "Initial Caps & Small Caps", - NULL - } - }, { /* 4 */ - "Vertical Substitution", - 0, - { - /* "Substitute Vertical Forms", */ - "Turns on the feature", - NULL - } - }, { /* 5 */ - "Linguistic Rearrangement", - 0, - { - /* "Linguistic Rearrangement", */ - "Turns on the feature", - NULL - } - }, { /* 6 */ - "Number Spacing", - 1, - { - "Monospaced Numbers", - "Proportional Numbers", - NULL - } - }, { /* 7 */ - APPLE_RESERVED " 1", - 0, - {NULL} - }, { /* 8 */ - "Smart Swashes", - 0, - { - "Word Initial Swashes", - "Word Final Swashes", - "Line Initial Swashes", - "Line Final Swashes", - "Non-Final Swashes", - NULL - } - }, { /* 9 */ - "Diacritics", - 1, - { - "Show Diacritics", - "Hide Diacritics", - "Decompose Diacritics", - NULL - } - }, { /* 10 */ - "Vertical Position", - 1, - { - /* "Normal Position", */ - "No Vertical Position", - "Superiors", - "Inferiors", - "Ordinals", - NULL - } - }, { /* 11 */ - "Fractions", - 1, - { - "No Fractions", - "Vertical Fractions", - "Diagonal Fractions", - NULL - } - }, { /* 12 */ - APPLE_RESERVED " 2", - 0, - {NULL} - }, { /* 13 */ - "Overlapping Characters", - 0, - { - /* "Prevent Overlap", */ - "Turns on the feature", - NULL - } - }, { /* 14 */ - "Typographic Extras", - 0, - { - "Hyphens to Em Dash", - "Hyphens to En Dash", - "Unslashed Zero", - "Form Interrobang", - "Smart Quotes", - "Periods to Ellipsis", - NULL - } - }, { /* 15 */ - "Mathematical Extras", - 0, - { - "Hyphens to Minus", - "Asterisk to Multiply", - "Slash to Divide", - "Inequality Ligatures", - "Exponents", - NULL - } - }, { /* 16 */ - "Ornament Sets", - 1, - { - "No Ornaments", - "Dingbats", - "Pi Characters", - "Fleurons", - "Decorative Borders", - "International Symbols", - "Math Symbols", - NULL - } - }, { /* 17 */ - "Character Alternatives", - 1, - { - "No Alternates", - /* TODO */ - NULL - } - }, { /* 18 */ - "Design Complexity", - 1, - { - "Design Level 1", - "Design Level 2", - "Design Level 3", - "Design Level 4", - "Design Level 5", - /* TODO */ - NULL - } - }, { /* 19 */ - "Style Options", - 1, - { - "No Style Options", - "Display Text", - "Engraved Text", - "Illuminated Caps", - "Tilling Caps", - "Tall Caps", - NULL - } - }, { /* 20 */ - "Character Shape", - 1, - { - "Traditional Characters", - "Simplified Characters", - "JIS 1978 Characters", - "JIS 1983 Characters", - "JIS 1990 Characters", - "Traditional Characters, Alternative Set 1", - "Traditional Characters, Alternative Set 2", - "Traditional Characters, Alternative Set 3", - "Traditional Characters, Alternative Set 4", - "Traditional Characters, Alternative Set 5", - "Expert Characters", - NULL /* count => 12 */ - } - }, { /* 21 */ - "Number Case", - 1, - { - "Lower Case Numbers", - "Upper Case Numbers", - NULL - } - }, { /* 22 */ - "Text Spacing", - 1, - { - "Proportional", - "Monospaced", - "Half-width", - "Normal", - NULL - } - }, /* Here after Newer */ { /* 23 */ - "Transliteration", - 1, - { - "No Transliteration", - "Hanja To Hangul", - "Hiragana to Katakana", - "Katakana to Hiragana", - "Kana to Romanization", - "Romanization to Hiragana", - "Romanization to Katakana", - "Hanja to Hangul, Alternative Set 1", - "Hanja to Hangul, Alternative Set 2", - "Hanja to Hangul, Alternative Set 3", - NULL - } - }, { /* 24 */ - "Annotation", - 1, - { - "No Annotation", - "Box Annotation", - "Rounded Box Annotation", - "Circle Annotation", - "Inverted Circle Annotation", - "Parenthesis Annotation", - "Period Annotation", - "Roman Numeral Annotation", - "Diamond Annotation", - NULL - } - }, { /* 25 */ - "Kana Spacing", - 1, - { - "Full Width", - "Proportional", - NULL - } - }, { /* 26 */ - "Ideographic Spacing", - 1, - { - "Full Width", - "Proportional", - NULL - } - }, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 27-30 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 31-35 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 36-40 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 40-45 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 46-50 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 51-55 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 56-60 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 61-65 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 66-70 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 71-75 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 76-80 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 81-85 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 86-90 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 91-95 */ - EMPTYFEAT, EMPTYFEAT, EMPTYFEAT, /* 96-98 */ - EMPTYFEAT, /* 99 */ { /* 100 => 22 */ - "Text Spacing", - 1, - { - "Proportional", - "Monospaced", - "Half-width", - "Normal", - NULL - } - }, { /* 101 => 25 */ - "Kana Spacing", - 1, - { - "Full Width", - "Proportional", - NULL - } - }, { /* 102 => 26 */ - "Ideographic Spacing", - 1, - { - "Full Width", - "Proportional", - NULL - } - }, { /* 103 */ - "CJK Roman Spacing", - 1, - { - "Half-width", - "Proportional", - "Default Roman", - "Full-width Roman", - NULL - } - }, { /* 104 => 1 */ - "All Typographic Features", - 0, - { - "All Type Features", - NULL - } - } - }; - - - /*************************************************************************/ - /*************************************************************************/ - /***** *****/ - /***** Generator *****/ - /***** *****/ - /*************************************************************************/ - /*************************************************************************/ - - int - main( void ) - { - int i; - - - printf( " {\n" ); - printf( " /* Generated from %s */\n", __FILE__ ); - - for ( i = 0; - i < sizeof ( featreg_table ) / sizeof ( GX_Feature_RegistryRec ); - i++ ) - { - const char* feat_name; - int nSettings; - - - feat_name = featreg_table[i].feat_name; - for ( nSettings = 0; - featreg_table[i].setting_name[nSettings]; - nSettings++) - ; /* Do nothing */ - - printf( " {%1d, %1d, %1d, %2d}, /* %s */\n", - feat_name ? 1 : 0, - ( feat_name && - ( ft_strncmp( feat_name, - APPLE_RESERVED, APPLE_RESERVED_LENGTH ) == 0 ) - ) ? 1 : 0, - featreg_table[i].exclusive ? 1 : 0, - nSettings, - feat_name ? feat_name : "__EMPTY__" ); - } - - printf( " };\n" ); - - return 0; - } - - -/* END */