1 /*
2 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
217 // if (name.endsWith("symbol.ttf")) {
218 // cmap = createSymbolCMap(cmapBuffer, three0, Symbols_b2c);
219 // } else if (name.endsWith("wingding.ttf")) {
220 // cmap = createSymbolCMap(cmapBuffer, three0, WingDings_b2c);
221 // } else {
222 cmap = createCMap(cmapBuffer, three0, null);
223 // }
224 }
225 else if (three1 != 0) {
226 cmap = createCMap(cmapBuffer, three1, null);
227 }
228 else if (three2 != 0) {
229 cmap = createCMap(cmapBuffer, three2,
230 getConverterMap(ShiftJISEncoding));
231 }
232 else if (three3 != 0) {
233 cmap = createCMap(cmapBuffer, three3,
234 getConverterMap(GBKEncoding));
235 }
236 else if (three4 != 0) {
237 /* GB2312 TrueType fonts on Solaris have wrong encoding ID for
238 * cmap table, these fonts have EncodingID 4 which is Big5
239 * encoding according the TrueType spec, but actually the
240 * fonts are using gb2312 encoding, have to use this
241 * workaround to make Solaris zh_CN locale work. -sherman
242 */
243 if (FontUtilities.isSolaris && font.platName != null &&
244 (font.platName.startsWith(
245 "/usr/openwin/lib/locale/zh_CN.EUC/X11/fonts/TrueType") ||
246 font.platName.startsWith(
247 "/usr/openwin/lib/locale/zh_CN/X11/fonts/TrueType") ||
248 font.platName.startsWith(
249 "/usr/openwin/lib/locale/zh/X11/fonts/TrueType"))) {
250 cmap = createCMap(cmapBuffer, three4,
251 getConverterMap(GBKEncoding));
252 }
253 else {
254 cmap = createCMap(cmapBuffer, three4,
255 getConverterMap(Big5Encoding));
256 }
257 }
258 else if (three5 != 0) {
259 cmap = createCMap(cmapBuffer, three5,
260 getConverterMap(WansungEncoding));
261 }
262 else if (three6 != 0) {
263 cmap = createCMap(cmapBuffer, three6,
264 getConverterMap(JohabEncoding));
265 }
266 } else {
267 /* No 3,* subtable was found. Just use whatever is the first
268 * table listed. Not very useful but maybe better than
269 * rejecting the font entirely?
270 */
271 cmap = createCMap(cmapBuffer, cmapBuffer.getInt(8), null);
272 }
273 // For Unicode Variation Sequences
274 if (cmap != null && zero5 != 0) {
275 cmap.createUVS(cmapBuffer, zero5);
276 }
|
1 /*
2 * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
217 // if (name.endsWith("symbol.ttf")) {
218 // cmap = createSymbolCMap(cmapBuffer, three0, Symbols_b2c);
219 // } else if (name.endsWith("wingding.ttf")) {
220 // cmap = createSymbolCMap(cmapBuffer, three0, WingDings_b2c);
221 // } else {
222 cmap = createCMap(cmapBuffer, three0, null);
223 // }
224 }
225 else if (three1 != 0) {
226 cmap = createCMap(cmapBuffer, three1, null);
227 }
228 else if (three2 != 0) {
229 cmap = createCMap(cmapBuffer, three2,
230 getConverterMap(ShiftJISEncoding));
231 }
232 else if (three3 != 0) {
233 cmap = createCMap(cmapBuffer, three3,
234 getConverterMap(GBKEncoding));
235 }
236 else if (three4 != 0) {
237 cmap = createCMap(cmapBuffer, three4,
238 getConverterMap(Big5Encoding));
239 }
240 else if (three5 != 0) {
241 cmap = createCMap(cmapBuffer, three5,
242 getConverterMap(WansungEncoding));
243 }
244 else if (three6 != 0) {
245 cmap = createCMap(cmapBuffer, three6,
246 getConverterMap(JohabEncoding));
247 }
248 } else {
249 /* No 3,* subtable was found. Just use whatever is the first
250 * table listed. Not very useful but maybe better than
251 * rejecting the font entirely?
252 */
253 cmap = createCMap(cmapBuffer, cmapBuffer.getInt(8), null);
254 }
255 // For Unicode Variation Sequences
256 if (cmap != null && zero5 != 0) {
257 cmap.createUVS(cmapBuffer, zero5);
258 }
|