Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(523)

Side by Side Diff: third_party/harfbuzz-ng/src/hb-ot-tag.cc

Issue 2318273003: Roll HarfBuzz to 1.3.1 (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/harfbuzz-ng/src/hb-ot-map.cc ('k') | third_party/harfbuzz-ng/src/hb-set-private.hh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright © 2009 Red Hat, Inc. 2 * Copyright © 2009 Red Hat, Inc.
3 * Copyright © 2011 Google, Inc. 3 * Copyright © 2011 Google, Inc.
4 * 4 *
5 * This is part of HarfBuzz, a text shaping library. 5 * This is part of HarfBuzz, a text shaping library.
6 * 6 *
7 * Permission is hereby granted, without written agreement and without 7 * Permission is hereby granted, without written agreement and without
8 * license or royalty fees, to use, copy, modify, and distribute this 8 * license or royalty fees, to use, copy, modify, and distribute this
9 * software and its documentation for any purpose, provided that the 9 * software and its documentation for any purpose, provided that the
10 * above copyright notice and the following two paragraphs appear in 10 * above copyright notice and the following two paragraphs appear in
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 /*{"??", HB_TAG('M','A','L',' ')},*/ /* Malayalam Traditional */ 819 /*{"??", HB_TAG('M','A','L',' ')},*/ /* Malayalam Traditional */
820 /*{"csw", HB_TAG('N','C','R',' ')},*/ /* N-Cree */ 820 /*{"csw", HB_TAG('N','C','R',' ')},*/ /* N-Cree */
821 /*{"csw", HB_TAG('N','H','C',' ')},*/ /* Norway House Cree */ 821 /*{"csw", HB_TAG('N','H','C',' ')},*/ /* Norway House Cree */
822 /*{"el-polyton", HB_TAG('P','G','R',' ')},*/ /* Polytonic Greek */ 822 /*{"el-polyton", HB_TAG('P','G','R',' ')},*/ /* Polytonic Greek */
823 /*{"bgr, cnh, cnw, czt, sez, tcp, csy, ctd, flm, pck, tcz, zom, cmr, dao, hlt, c ka, cnk, mrh, mwg, cbl, cnb, csh", HB_TAG('Q','I','N',' ')},*/ /* Chin */ 823 /*{"bgr, cnh, cnw, czt, sez, tcp, csy, ctd, flm, pck, tcz, zom, cmr, dao, hlt, c ka, cnk, mrh, mwg, cbl, cnb, csh", HB_TAG('Q','I','N',' ')},*/ /* Chin */
824 /*{"??", HB_TAG('Y','I','C',' ')},*/ /* Yi Classic */ 824 /*{"??", HB_TAG('Y','I','C',' ')},*/ /* Yi Classic */
825 /*{"zh-Latn-pinyin", HB_TAG('Z','H','P',' ')},*/ /* Chinese Phonetic */ 825 /*{"zh-Latn-pinyin", HB_TAG('Z','H','P',' ')},*/ /* Chinese Phonetic */
826 }; 826 };
827 827
828 typedef struct { 828 typedef struct {
829 char language[8]; 829 char language[11];
830 hb_tag_t tag; 830 hb_tag_t tag;
831 } LangTagLong; 831 } LangTagLong;
832 static const LangTagLong ot_languages_zh[] = { 832 static const LangTagLong ot_languages_zh[] = {
833 /* Store longest-first, if one is a prefix of another. */
833 {"zh-cn", HB_TAG('Z','H','S',' ')}, /* Chinese (China) */ 834 {"zh-cn", HB_TAG('Z','H','S',' ')}, /* Chinese (China) */
834 {"zh-hk", HB_TAG('Z','H','H',' ')}, /* Chinese (Hong Kong) */ 835 {"zh-hk", HB_TAG('Z','H','H',' ')}, /* Chinese (Hong Kong) */
835 {"zh-mo",» HB_TAG('Z','H','T',' ')},» /* Chinese (Macao) */ 836 {"zh-mo",» HB_TAG('Z','H','H',' ')},» /* Chinese (Macao) */
836 {"zh-sg", HB_TAG('Z','H','S',' ')}, /* Chinese (Singapore) */ 837 {"zh-sg", HB_TAG('Z','H','S',' ')}, /* Chinese (Singapore) */
837 {"zh-tw", HB_TAG('Z','H','T',' ')}, /* Chinese (Taiwan) */ 838 {"zh-tw", HB_TAG('Z','H','T',' ')}, /* Chinese (Taiwan) */
838 {"zh-hans", HB_TAG('Z','H','S',' ')}, /* Chinese (Simplified) */ 839 {"zh-hans", HB_TAG('Z','H','S',' ')}, /* Chinese (Simplified) */
840 {"zh-hant-hk",HB_TAG('Z','H','H',' ')}, /* Chinese (Hong Kong) */
841 {"zh-hant-mo",HB_TAG('Z','H','H',' ')}, /* Chinese (Macao) */
839 {"zh-hant", HB_TAG('Z','H','T',' ')}, /* Chinese (Traditional) */ 842 {"zh-hant", HB_TAG('Z','H','T',' ')}, /* Chinese (Traditional) */
840 }; 843 };
841 844
842 static int 845 static int
843 lang_compare_first_component (const char *a, 846 lang_compare_first_component (const char *a,
844 const char *b) 847 const char *b)
845 { 848 {
846 unsigned int da, db; 849 unsigned int da, db;
847 const char *p; 850 const char *p;
848 851
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
882 for (i = 0; i < 4 && ISALPHA (s[i]); i++) 885 for (i = 0; i < 4 && ISALPHA (s[i]); i++)
883 tag[i] = TOUPPER (s[i]); 886 tag[i] = TOUPPER (s[i]);
884 if (i) { 887 if (i) {
885 for (; i < 4; i++) 888 for (; i < 4; i++)
886 tag[i] = ' '; 889 tag[i] = ' ';
887 return HB_TAG_CHAR4 (tag); 890 return HB_TAG_CHAR4 (tag);
888 } 891 }
889 } 892 }
890 893
891 /* 894 /*
892 * The International Phonetic Alphabet is a variant tag in BCP-47, 895 * "fonipa" is a variant tag in BCP-47, meaning the International Phonetic Alp habet.
893 * which can be applied to any language. 896 * It can be applied to any language.
894 */ 897 */
895 if (strstr (lang_str, "-fonipa")) { 898 if (strstr (lang_str, "-fonipa")) {
896 return HB_TAG('I','P','P','H'); /* Phonetic transcription—IPA conventions * / 899 return HB_TAG('I','P','P','H'); /* Phonetic transcription—IPA conventions * /
897 } 900 }
898 901
902 /*
903 * "fonnapa" is a variant tag in BCP-47, meaning the North American Phonetic A lphabet
904 * also known as Americanist Phonetic Notation. It can be applied to any lang uage.
905 */
906 if (strstr (lang_str, "-fonnapa")) {
907 return HB_TAG('A','P','P','H'); /* Phonetic transcription—Americanist conve ntions */
908 }
909
899 /* Find a language matching in the first component */ 910 /* Find a language matching in the first component */
900 { 911 {
901 const LangTag *lang_tag; 912 const LangTag *lang_tag;
902 lang_tag = (LangTag *) bsearch (lang_str, ot_languages, 913 lang_tag = (LangTag *) bsearch (lang_str, ot_languages,
903 ARRAY_LENGTH (ot_languages), sizeof (LangTag ), 914 ARRAY_LENGTH (ot_languages), sizeof (LangTag ),
904 (hb_compare_func_t) lang_compare_first_compo nent); 915 (hb_compare_func_t) lang_compare_first_compo nent);
905 if (lang_tag) 916 if (lang_tag)
906 return lang_tag->tag; 917 return lang_tag->tag;
907 } 918 }
908 919
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 switch (tag) { 971 switch (tag) {
961 case HB_TAG('Z','H','H',' '): return hb_language_from_string ("zh-hk", -1) ; /* Hong Kong */ 972 case HB_TAG('Z','H','H',' '): return hb_language_from_string ("zh-hk", -1) ; /* Hong Kong */
962 case HB_TAG('Z','H','S',' '): return hb_language_from_string ("zh-Hans", - 1); /* Simplified */ 973 case HB_TAG('Z','H','S',' '): return hb_language_from_string ("zh-Hans", - 1); /* Simplified */
963 case HB_TAG('Z','H','T',' '): return hb_language_from_string ("zh-Hant", - 1); /* Traditional */ 974 case HB_TAG('Z','H','T',' '): return hb_language_from_string ("zh-Hant", - 1); /* Traditional */
964 default: break; /* Fall through */ 975 default: break; /* Fall through */
965 } 976 }
966 } 977 }
967 978
968 /* struct LangTag has only room for 3-letter language tags. */ 979 /* struct LangTag has only room for 3-letter language tags. */
969 switch (tag) { 980 switch (tag) {
981 case HB_TAG('A','P','P','H'): /* Phonetic transcription—Americanist conventio ns */
982 return hb_language_from_string ("und-fonnapa", -1);
970 case HB_TAG('I','P','P','H'): /* Phonetic transcription—IPA conventions */ 983 case HB_TAG('I','P','P','H'): /* Phonetic transcription—IPA conventions */
971 return hb_language_from_string ("und-fonipa", -1); 984 return hb_language_from_string ("und-fonipa", -1);
972 } 985 }
973 986
974 /* Else return a custom language in the form of "x-hbotABCD" */ 987 /* Else return a custom language in the form of "x-hbotABCD" */
975 { 988 {
976 unsigned char buf[11] = "x-hbot"; 989 unsigned char buf[11] = "x-hbot";
977 buf[6] = tag >> 24; 990 buf[6] = tag >> 24;
978 buf[7] = (tag >> 16) & 0xFF; 991 buf[7] = (tag >> 16) & 0xFF;
979 buf[8] = (tag >> 8) & 0xFF; 992 buf[8] = (tag >> 8) & 0xFF;
(...skipping 22 matching lines...) Expand all
1002 } 1015 }
1003 1016
1004 int 1017 int
1005 main (void) 1018 main (void)
1006 { 1019 {
1007 test_langs_sorted (); 1020 test_langs_sorted ();
1008 return 0; 1021 return 0;
1009 } 1022 }
1010 1023
1011 #endif 1024 #endif
OLDNEW
« no previous file with comments | « third_party/harfbuzz-ng/src/hb-ot-map.cc ('k') | third_party/harfbuzz-ng/src/hb-set-private.hh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698