/* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Jungshik Shin * Portions created by the Initial Developer are Copyright (C) 2003 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ /*======================================================== This file contains a precompiled CCMap for a class of Unicode characters (blank_glyph) to be identified quickly by Mozilla. It was generated by ccmapbin.pl which you can find under mozilla/intl/unicharutil/tools. Enumerated below are characters included in the precompiled CCMap which is human-readable but not so human-friendly. If you needs to modify the list of characters belonging to "blank_glyph", you have to make a new file (with the name of your choice) listing characters (one character per line) you want to put into "blank_glyph" in the format 0xuuuu // comment In addition, the input file can have the following optional lines that read VARIABLE::gCharsWithBlankGlyphCCMap CLASS::blank_glyph DESCRIPTION:: description of a character class FILE:: mozilla source file to include the output file Then, run the following in the current directory. perl ccmapbin.pl input_file [gCharsWithBlankGlyphCCMap [blank_glyph]] which will generate blank_glyph.ccmap (or blank_glyph.x-ccmap if the ccmap includes non-BMP characters.). gCharsWithBlankGlyphCCMap is used as the prefix in macros for the array initializer and the array size. (see bug 180266, bug 167136, and bug 224337) */ /* VARIABLE:: gCharsWithBlankGlyphCCMap CLASS:: blank_glyph DESCRIPTION:: Unicode characters for which blank glyphs are acceptable. FILE:: nsFontMetricsWin.cpp 0X000020 : SPACE 0X0000A0 : NO-BREAK SPACE 0X00115F : HANGUL LEADING CONSONANT FILLER 0X001160 : HANGUL VOWEL FILLER 0X002000 : EN QUAD 0X002001 : EM QUAD 0X002002 : EN SPACE 0X002003 : EM SPACE 0X002004 : THREE-PER-EM SPACE 0X002005 : FOUR-PER-EM SPACE 0X002006 : SIX-PER-EM SPACE 0X002007 : FIGURE SPACE 0X002008 : PUNCTUATION SPACE 0X002009 : THIN SPACE 0X00200A : HAIR SPACE 0X00200B : ZERO WIDTH SPACE 0X00200C : ZERO WIDTH NON-JOINER 0X00200D : ZERO WIDTH JOINER 0X00200E : LEFT-TO-RIGHT MARK 0X00200F : RIGHT-TO-LEFT MARK 0X00202A : LEFT-TO-RIGHT EMBEDDING 0X00202B : RIGHT-TO-LEFT EMBEDDING 0X00202C : POP DIRECTIONAL FORMATTING 0X00202D : LEFT-TO-RIGHT OVERRIDE 0X00202E : RIGHT-TO-LEFT OVERRIDE 0X00202F : NARROW NO-BREAK SPACE 0X003000 : IDEOGRAPHIC SPACE 0X003164 : HANGUL COMPATIBILITY JAMO FILLER 0X00FEFF : BYTE ORDER MARK^L 0X00FFA0 : HALFWIDTH HANGUL FILLER 0X00FFF9 : INTERLINEAR ANNOTATION ANCHOR 0X00FFFA : INTERLINEAR ANNOTATION SEPARATOR 0X00FFFB : INTERLINEAR ANNOTATION TERMINATOR */ #if (defined(IS_LITTLE_ENDIAN) || ALU_SIZE == 16) // Precompiled CCMap for Little Endian(16/32/64bit) // and Big Endian(16bit) #define gCharsWithBlankGlyphCCMap_SIZE 240 #define gCharsWithBlankGlyphCCMap_INITIALIZER \ /* 000000 */ 0x0030,0x0050,0x0070,0x0090,0x0010,0x0010,0x0010,0x0010, \ 0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x00C0, \ /* 000010 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000020 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 000030 */ 0x0040,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000040 */ 0x0000,0x0000,0x0001,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0001,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 000050 */ 0x0020,0x0060,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000060 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x8000,0x0001,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 000070 */ 0x0080,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000080 */ 0xFFFF,0x0000,0xFC00,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 000090 */ 0x00A0,0x00B0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 0000a0 */ 0x0001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 0000c0 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x00D0,0x00E0, \ /* 0000d0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8000, \ /* 0000e0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0001,0x0000,0x0000,0x0000,0x0000,0x0E00, #elif (ALU_SIZE == 32) // Precompiled CCMap for Big Endian(32bit) #define gCharsWithBlankGlyphCCMap_SIZE 240 #define gCharsWithBlankGlyphCCMap_INITIALIZER \ /* 000000 */ 0x0030,0x0050,0x0070,0x0090,0x0010,0x0010,0x0010,0x0010, \ 0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x00C0, \ /* 000010 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000020 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 000030 */ 0x0040,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000040 */ 0x0000,0x0000,0x0000,0x0001,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0001,0x0000,0x0000,0x0000,0x0000, \ /* 000050 */ 0x0020,0x0060,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000060 */ 0x0000,0x0000,0x0000,0x0000,0x8000,0x0000,0x0000,0x0001, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 000070 */ 0x0080,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000080 */ 0x0000,0xFFFF,0x0000,0xFC00,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 000090 */ 0x00A0,0x00B0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 0000a0 */ 0x0000,0x0001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0010, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 0000c0 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x00D0,0x00E0, \ /* 0000d0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8000,0x0000, \ /* 0000e0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0001,0x0000,0x0000,0x0E00,0x0000, #elif (ALU_SIZE == 64) // Precompiled CCMap for Big Endian(64bit) #define gCharsWithBlankGlyphCCMap_SIZE 240 #define gCharsWithBlankGlyphCCMap_INITIALIZER \ /* 000000 */ 0x0030,0x0050,0x0070,0x0090,0x0010,0x0010,0x0010,0x0010, \ 0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x00C0, \ /* 000010 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000020 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 000030 */ 0x0040,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000040 */ 0x0000,0x0001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 000050 */ 0x0020,0x0060,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000060 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0x8000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 000070 */ 0x0080,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 000080 */ 0x0000,0xFC00,0x0000,0xFFFF,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 000090 */ 0x00A0,0x00B0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ /* 0000a0 */ 0x0000,0x0000,0x0000,0x0001,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ /* 0000c0 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020, \ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x00D0,0x00E0, \ /* 0000d0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0000,0x0000,0x0000,0x8000,0x0000,0x0000,0x0000, \ /* 0000e0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, \ 0x0000,0x0001,0x0000,0x0000,0x0E00,0x0000,0x0000,0x0000, #else #error "We don't support this architecture." #endif