diff options
author | Tor Andersson <tor@ghostscript.com> | 2009-02-27 17:58:47 +0100 |
---|---|---|
committer | Tor Andersson <tor@ghostscript.com> | 2009-02-27 17:58:47 +0100 |
commit | e634306b0ffc3d09c984f3b70c251780c037ec9e (patch) | |
tree | 323aa9e7591dc745c8a904524b478ad6d6ecc41c | |
parent | b41ede1d9b93268b96e686ca3299dd20624a9812 (diff) | |
download | mupdf-e634306b0ffc3d09c984f3b70c251780c037ec9e.tar.xz |
Use compiled in CMaps instead of looking for them in $CMAPDIR.
-rw-r--r-- | Jamfile | 2 | ||||
-rw-r--r-- | apps/Jamfile | 2 | ||||
-rw-r--r-- | include/mupdf/rsrc.h | 10 | ||||
-rw-r--r-- | mupdf/Jamfile | 1 | ||||
-rw-r--r-- | mupdf/pdf_cmap.c | 106 | ||||
-rw-r--r-- | mupdf/pdf_cmapfile.c | 441 |
6 files changed, 504 insertions, 58 deletions
@@ -11,6 +11,7 @@ SubDir TOP ; HDRS = [ FDirName $(TOP) include ] ; Main hexdump : hexdump.c ; +Main strdump : strdump.c ; SubInclude TOP base ; SubInclude TOP stream ; @@ -18,6 +19,7 @@ SubInclude TOP world ; SubInclude TOP raster ; SubInclude TOP fonts ; +SubInclude TOP cmaps ; SubInclude TOP mupdf ; SubInclude TOP apps ; diff --git a/apps/Jamfile b/apps/Jamfile index e6a72bfd..84c02f2c 100644 --- a/apps/Jamfile +++ b/apps/Jamfile @@ -1,6 +1,6 @@ # -FITZLIBS = libmupdf libbase libstream libworld libraster libfonts ; +FITZLIBS = libmupdf libbase libstream libworld libraster libfonts libcmaps ; SubDir TOP apps ; Main mupdftool : pdftool.c ; diff --git a/include/mupdf/rsrc.h b/include/mupdf/rsrc.h index 65f9e536..738919b4 100644 --- a/include/mupdf/rsrc.h +++ b/include/mupdf/rsrc.h @@ -148,6 +148,16 @@ fz_error *pdf_loadtile(fz_image *image, fz_pixmap *tile); typedef struct pdf_cmap_s pdf_cmap; +struct pdf_cmapentry_s +{ + const char *name; + const char *buf; + const int *len; + pdf_cmap *cmap; +}; + +extern struct pdf_cmapentry_s pdf_cmaptable[]; /* list of builtin system cmaps */ + fz_error *pdf_newcmap(pdf_cmap **cmapp); pdf_cmap *pdf_keepcmap(pdf_cmap *cmap); void pdf_dropcmap(pdf_cmap *cmap); diff --git a/mupdf/Jamfile b/mupdf/Jamfile index a96f4d30..2d7902cd 100644 --- a/mupdf/Jamfile +++ b/mupdf/Jamfile @@ -22,6 +22,7 @@ Library libmupdf : # fonts pdf_fontagl.c pdf_fontenc.c + pdf_cmapfile.c pdf_cmap.c pdf_unicode.c pdf_font.c diff --git a/mupdf/pdf_cmap.c b/mupdf/pdf_cmap.c index f435f9ec..b961e4fd 100644 --- a/mupdf/pdf_cmap.c +++ b/mupdf/pdf_cmap.c @@ -1151,73 +1151,65 @@ cleanup: } /* - * Load predefined CMap from system + * Load predefined CMap from system. We keep these files + * embedded in the executable, and parse them when needed, + * and cache the parsed copy for later reuse. */ fz_error * -pdf_loadsystemcmap(pdf_cmap **cmapp, char *name) +pdf_loadsystemcmap(pdf_cmap **cmapp, char *cmapname) { - fz_error *error = fz_okay; - fz_stream *file; - char *cmapdir; - char *usecmapname; - pdf_cmap *usecmap; - pdf_cmap *cmap; - char path[1024]; - - cmap = nil; - file = nil; - - pdf_logfont("load system cmap %s {\n", name); - - cmapdir = getenv("CMAPDIR"); - if (!cmapdir) - return fz_throw("ioerror: CMAPDIR environment not set"); - - strlcpy(path, cmapdir, sizeof path); - strlcat(path, "/", sizeof path); - strlcat(path, name, sizeof path); + fz_error *error; + fz_stream *file; + pdf_cmap *usecmap; + pdf_cmap *cmap; + int i; + + for (i = 0; pdf_cmaptable[i].name; i++) + if (!strcmp(cmapname, pdf_cmaptable[i].name)) + goto found; + + return fz_throw("cannot find cmap: %s", cmapname); + +found: + if (pdf_cmaptable[i].cmap) + { + pdf_logfont("reuse system cmap %s\n", cmapname); + pdf_keepcmap(pdf_cmaptable[i].cmap); + *cmapp = pdf_cmaptable[i].cmap; + return fz_okay; + } - error = fz_openrfile(&file, path); - if (error) - { - error = fz_rethrow(error, "cannot open cmap file '%s'", name); - goto cleanup; - } + pdf_logfont("load system cmap %s\n", cmapname); - error = pdf_parsecmap(&cmap, file); - if (error) - { - error = fz_rethrow(error, "cannot parse cmap file"); - goto cleanup; - } + error = fz_openrmemory(&file, pdf_cmaptable[i].buf, *pdf_cmaptable[i].len); + if (error) + return fz_rethrow(error, "cannot create stream to read cmap from memory"); + error = pdf_parsecmap(&pdf_cmaptable[i].cmap, file); + if (error) + { fz_dropstream(file); + return fz_rethrow(error, "cannot parse system cmap '%s'", cmapname); + } - usecmapname = cmap->usecmapname; - if (usecmapname[0]) - { - pdf_logfont("usecmap %s\n", usecmapname); - error = pdf_loadsystemcmap(&usecmap, usecmapname); - if (error) - { - error = fz_rethrow(error, "cannot load system usecmap '%s'", usecmapname); - goto cleanup; - } - pdf_setusecmap(cmap, usecmap); - pdf_dropcmap(usecmap); - } + fz_dropstream(file); - pdf_logfont("}\n"); + /* Keep an extra reference, since we have it cached */ + pdf_keepcmap(pdf_cmaptable[i].cmap); - *cmapp = cmap; - return fz_okay; - -cleanup: - if (cmap) - pdf_dropcmap(cmap); - if (file) - fz_dropstream(file); - return error; /* already rethrown */ + if (pdf_cmaptable[i].cmap->usecmapname[0]) + { + pdf_logfont("usecmap %s\n", pdf_cmaptable[i].cmap->usecmapname); + error = pdf_loadsystemcmap(&usecmap, pdf_cmaptable[i].cmap->usecmapname); + if (error) + return fz_rethrow(error, "cannot load usecmap '%s'", pdf_cmaptable[i].cmap->usecmapname); + pdf_setusecmap(pdf_cmaptable[i].cmap, usecmap); + pdf_dropcmap(usecmap); + } + + pdf_keepcmap(pdf_cmaptable[i].cmap); + *cmapp = pdf_cmaptable[i].cmap; + return fz_okay; } /* diff --git a/mupdf/pdf_cmapfile.c b/mupdf/pdf_cmapfile.c new file mode 100644 index 00000000..b511ad9b --- /dev/null +++ b/mupdf/pdf_cmapfile.c @@ -0,0 +1,441 @@ +/* + * A mostly grep-generated file. + */ + +#include "fitz.h" +#include "mupdf.h" + +extern const char cmaps_chinese_s_Adobe_GB1_4_name[]; +extern const char cmaps_chinese_s_Adobe_GB1_4_buf[]; +extern const int cmaps_chinese_s_Adobe_GB1_4_len; +extern const char cmaps_chinese_s_Adobe_GB1_UCS2_name[]; +extern const char cmaps_chinese_s_Adobe_GB1_UCS2_buf[]; +extern const int cmaps_chinese_s_Adobe_GB1_UCS2_len; +extern const char cmaps_chinese_s_GB_EUC_H_name[]; +extern const char cmaps_chinese_s_GB_EUC_H_buf[]; +extern const int cmaps_chinese_s_GB_EUC_H_len; +extern const char cmaps_chinese_s_GB_EUC_V_name[]; +extern const char cmaps_chinese_s_GB_EUC_V_buf[]; +extern const int cmaps_chinese_s_GB_EUC_V_len; +extern const char cmaps_chinese_s_GBK_EUC_H_name[]; +extern const char cmaps_chinese_s_GBK_EUC_H_buf[]; +extern const int cmaps_chinese_s_GBK_EUC_H_len; +extern const char cmaps_chinese_s_GBK_EUC_UCS2_name[]; +extern const char cmaps_chinese_s_GBK_EUC_UCS2_buf[]; +extern const int cmaps_chinese_s_GBK_EUC_UCS2_len; +extern const char cmaps_chinese_s_GBK_EUC_V_name[]; +extern const char cmaps_chinese_s_GBK_EUC_V_buf[]; +extern const int cmaps_chinese_s_GBK_EUC_V_len; +extern const char cmaps_chinese_s_GBK2K_H_name[]; +extern const char cmaps_chinese_s_GBK2K_H_buf[]; +extern const int cmaps_chinese_s_GBK2K_H_len; +extern const char cmaps_chinese_s_GBK2K_V_name[]; +extern const char cmaps_chinese_s_GBK2K_V_buf[]; +extern const int cmaps_chinese_s_GBK2K_V_len; +extern const char cmaps_chinese_s_GBKp_EUC_H_name[]; +extern const char cmaps_chinese_s_GBKp_EUC_H_buf[]; +extern const int cmaps_chinese_s_GBKp_EUC_H_len; +extern const char cmaps_chinese_s_GBKp_EUC_V_name[]; +extern const char cmaps_chinese_s_GBKp_EUC_V_buf[]; +extern const int cmaps_chinese_s_GBKp_EUC_V_len; +extern const char cmaps_chinese_s_GBT_EUC_H_name[]; +extern const char cmaps_chinese_s_GBT_EUC_H_buf[]; +extern const int cmaps_chinese_s_GBT_EUC_H_len; +extern const char cmaps_chinese_s_GBT_EUC_V_name[]; +extern const char cmaps_chinese_s_GBT_EUC_V_buf[]; +extern const int cmaps_chinese_s_GBT_EUC_V_len; +extern const char cmaps_chinese_s_GBpc_EUC_H_name[]; +extern const char cmaps_chinese_s_GBpc_EUC_H_buf[]; +extern const int cmaps_chinese_s_GBpc_EUC_H_len; +extern const char cmaps_chinese_s_GBpc_EUC_UCS2_name[]; +extern const char cmaps_chinese_s_GBpc_EUC_UCS2_buf[]; +extern const int cmaps_chinese_s_GBpc_EUC_UCS2_len; +extern const char cmaps_chinese_s_GBpc_EUC_UCS2C_name[]; +extern const char cmaps_chinese_s_GBpc_EUC_UCS2C_buf[]; +extern const int cmaps_chinese_s_GBpc_EUC_UCS2C_len; +extern const char cmaps_chinese_s_GBpc_EUC_V_name[]; +extern const char cmaps_chinese_s_GBpc_EUC_V_buf[]; +extern const int cmaps_chinese_s_GBpc_EUC_V_len; +extern const char cmaps_chinese_s_UniGB_UCS2_H_name[]; +extern const char cmaps_chinese_s_UniGB_UCS2_H_buf[]; +extern const int cmaps_chinese_s_UniGB_UCS2_H_len; +extern const char cmaps_chinese_s_UniGB_UCS2_V_name[]; +extern const char cmaps_chinese_s_UniGB_UCS2_V_buf[]; +extern const int cmaps_chinese_s_UniGB_UCS2_V_len; +extern const char cmaps_chinese_t_Adobe_CNS1_3_name[]; +extern const char cmaps_chinese_t_Adobe_CNS1_3_buf[]; +extern const int cmaps_chinese_t_Adobe_CNS1_3_len; +extern const char cmaps_chinese_t_Adobe_CNS1_UCS2_name[]; +extern const char cmaps_chinese_t_Adobe_CNS1_UCS2_buf[]; +extern const int cmaps_chinese_t_Adobe_CNS1_UCS2_len; +extern const char cmaps_chinese_t_B5pc_H_name[]; +extern const char cmaps_chinese_t_B5pc_H_buf[]; +extern const int cmaps_chinese_t_B5pc_H_len; +extern const char cmaps_chinese_t_B5pc_UCS2_name[]; +extern const char cmaps_chinese_t_B5pc_UCS2_buf[]; +extern const int cmaps_chinese_t_B5pc_UCS2_len; +extern const char cmaps_chinese_t_B5pc_UCS2C_name[]; +extern const char cmaps_chinese_t_B5pc_UCS2C_buf[]; +extern const int cmaps_chinese_t_B5pc_UCS2C_len; +extern const char cmaps_chinese_t_B5pc_V_name[]; +extern const char cmaps_chinese_t_B5pc_V_buf[]; +extern const int cmaps_chinese_t_B5pc_V_len; +extern const char cmaps_chinese_t_CNS_EUC_H_name[]; +extern const char cmaps_chinese_t_CNS_EUC_H_buf[]; +extern const int cmaps_chinese_t_CNS_EUC_H_len; +extern const char cmaps_chinese_t_CNS_EUC_V_name[]; +extern const char cmaps_chinese_t_CNS_EUC_V_buf[]; +extern const int cmaps_chinese_t_CNS_EUC_V_len; +extern const char cmaps_chinese_t_ETen_B5_H_name[]; +extern const char cmaps_chinese_t_ETen_B5_H_buf[]; +extern const int cmaps_chinese_t_ETen_B5_H_len; +extern const char cmaps_chinese_t_ETen_B5_UCS2_name[]; +extern const char cmaps_chinese_t_ETen_B5_UCS2_buf[]; +extern const int cmaps_chinese_t_ETen_B5_UCS2_len; +extern const char cmaps_chinese_t_ETen_B5_V_name[]; +extern const char cmaps_chinese_t_ETen_B5_V_buf[]; +extern const int cmaps_chinese_t_ETen_B5_V_len; +extern const char cmaps_chinese_t_HKscs_B5_H_name[]; +extern const char cmaps_chinese_t_HKscs_B5_H_buf[]; +extern const int cmaps_chinese_t_HKscs_B5_H_len; +extern const char cmaps_chinese_t_HKscs_B5_V_name[]; +extern const char cmaps_chinese_t_HKscs_B5_V_buf[]; +extern const int cmaps_chinese_t_HKscs_B5_V_len; +extern const char cmaps_chinese_t_UniCNS_UCS2_H_name[]; +extern const char cmaps_chinese_t_UniCNS_UCS2_H_buf[]; +extern const int cmaps_chinese_t_UniCNS_UCS2_H_len; +extern const char cmaps_chinese_t_UniCNS_UCS2_V_name[]; +extern const char cmaps_chinese_t_UniCNS_UCS2_V_buf[]; +extern const int cmaps_chinese_t_UniCNS_UCS2_V_len; +extern const char cmaps_japanese_83pv_RKSJ_H_name[]; +extern const char cmaps_japanese_83pv_RKSJ_H_buf[]; +extern const int cmaps_japanese_83pv_RKSJ_H_len; +extern const char cmaps_japanese_90ms_RKSJ_H_name[]; +extern const char cmaps_japanese_90ms_RKSJ_H_buf[]; +extern const int cmaps_japanese_90ms_RKSJ_H_len; +extern const char cmaps_japanese_90ms_RKSJ_UCS2_name[]; +extern const char cmaps_japanese_90ms_RKSJ_UCS2_buf[]; +extern const int cmaps_japanese_90ms_RKSJ_UCS2_len; +extern const char cmaps_japanese_90ms_RKSJ_V_name[]; +extern const char cmaps_japanese_90ms_RKSJ_V_buf[]; +extern const int cmaps_japanese_90ms_RKSJ_V_len; +extern const char cmaps_japanese_90msp_RKSJ_H_name[]; +extern const char cmaps_japanese_90msp_RKSJ_H_buf[]; +extern const int cmaps_japanese_90msp_RKSJ_H_len; +extern const char cmaps_japanese_90msp_RKSJ_V_name[]; +extern const char cmaps_japanese_90msp_RKSJ_V_buf[]; +extern const int cmaps_japanese_90msp_RKSJ_V_len; +extern const char cmaps_japanese_90pv_RKSJ_H_name[]; +extern const char cmaps_japanese_90pv_RKSJ_H_buf[]; +extern const int cmaps_japanese_90pv_RKSJ_H_len; +extern const char cmaps_japanese_90pv_RKSJ_UCS2_name[]; +extern const char cmaps_japanese_90pv_RKSJ_UCS2_buf[]; +extern const int cmaps_japanese_90pv_RKSJ_UCS2_len; +extern const char cmaps_japanese_90pv_RKSJ_UCS2C_name[]; +extern const char cmaps_japanese_90pv_RKSJ_UCS2C_buf[]; +extern const int cmaps_japanese_90pv_RKSJ_UCS2C_len; +extern const char cmaps_japanese_Add_RKSJ_H_name[]; +extern const char cmaps_japanese_Add_RKSJ_H_buf[]; +extern const int cmaps_japanese_Add_RKSJ_H_len; +extern const char cmaps_japanese_Add_RKSJ_V_name[]; +extern const char cmaps_japanese_Add_RKSJ_V_buf[]; +extern const int cmaps_japanese_Add_RKSJ_V_len; +extern const char cmaps_japanese_Adobe_Japan1_4_name[]; +extern const char cmaps_japanese_Adobe_Japan1_4_buf[]; +extern const int cmaps_japanese_Adobe_Japan1_4_len; +extern const char cmaps_japanese_Adobe_Japan1_UCS2_name[]; +extern const char cmaps_japanese_Adobe_Japan1_UCS2_buf[]; +extern const int cmaps_japanese_Adobe_Japan1_UCS2_len; +extern const char cmaps_japanese_EUC_H_name[]; +extern const char cmaps_japanese_EUC_H_buf[]; +extern const int cmaps_japanese_EUC_H_len; +extern const char cmaps_japanese_EUC_V_name[]; +extern const char cmaps_japanese_EUC_V_buf[]; +extern const int cmaps_japanese_EUC_V_len; +extern const char cmaps_japanese_Ext_RKSJ_H_name[]; +extern const char cmaps_japanese_Ext_RKSJ_H_buf[]; +extern const int cmaps_japanese_Ext_RKSJ_H_len; +extern const char cmaps_japanese_Ext_RKSJ_V_name[]; +extern const char cmaps_japanese_Ext_RKSJ_V_buf[]; +extern const int cmaps_japanese_Ext_RKSJ_V_len; +extern const char cmaps_japanese_H_name[]; +extern const char cmaps_japanese_H_buf[]; +extern const int cmaps_japanese_H_len; +extern const char cmaps_japanese_UniJIS_UCS2_H_name[]; +extern const char cmaps_japanese_UniJIS_UCS2_H_buf[]; +extern const int cmaps_japanese_UniJIS_UCS2_H_len; +extern const char cmaps_japanese_UniJIS_UCS2_HW_H_name[]; +extern const char cmaps_japanese_UniJIS_UCS2_HW_H_buf[]; +extern const int cmaps_japanese_UniJIS_UCS2_HW_H_len; +extern const char cmaps_japanese_UniJIS_UCS2_HW_V_name[]; +extern const char cmaps_japanese_UniJIS_UCS2_HW_V_buf[]; +extern const int cmaps_japanese_UniJIS_UCS2_HW_V_len; +extern const char cmaps_japanese_UniJIS_UCS2_V_name[]; +extern const char cmaps_japanese_UniJIS_UCS2_V_buf[]; +extern const int cmaps_japanese_UniJIS_UCS2_V_len; +extern const char cmaps_japanese_V_name[]; +extern const char cmaps_japanese_V_buf[]; +extern const int cmaps_japanese_V_len; +extern const char cmaps_korean_Adobe_Korea1_2_name[]; +extern const char cmaps_korean_Adobe_Korea1_2_buf[]; +extern const int cmaps_korean_Adobe_Korea1_2_len; +extern const char cmaps_korean_Adobe_Korea1_UCS2_name[]; +extern const char cmaps_korean_Adobe_Korea1_UCS2_buf[]; +extern const int cmaps_korean_Adobe_Korea1_UCS2_len; +extern const char cmaps_korean_KSC_EUC_H_name[]; +extern const char cmaps_korean_KSC_EUC_H_buf[]; +extern const int cmaps_korean_KSC_EUC_H_len; +extern const char cmaps_korean_KSC_EUC_V_name[]; +extern const char cmaps_korean_KSC_EUC_V_buf[]; +extern const int cmaps_korean_KSC_EUC_V_len; +extern const char cmaps_korean_KSCms_UHC_H_name[]; +extern const char cmaps_korean_KSCms_UHC_H_buf[]; +extern const int cmaps_korean_KSCms_UHC_H_len; +extern const char cmaps_korean_KSCms_UHC_HW_H_name[]; +extern const char cmaps_korean_KSCms_UHC_HW_H_buf[]; +extern const int cmaps_korean_KSCms_UHC_HW_H_len; +extern const char cmaps_korean_KSCms_UHC_HW_V_name[]; +extern const char cmaps_korean_KSCms_UHC_HW_V_buf[]; +extern const int cmaps_korean_KSCms_UHC_HW_V_len; +extern const char cmaps_korean_KSCms_UHC_UCS2_name[]; +extern const char cmaps_korean_KSCms_UHC_UCS2_buf[]; +extern const int cmaps_korean_KSCms_UHC_UCS2_len; +extern const char cmaps_korean_KSCms_UHC_V_name[]; +extern const char cmaps_korean_KSCms_UHC_V_buf[]; +extern const int cmaps_korean_KSCms_UHC_V_len; +extern const char cmaps_korean_KSCpc_EUC_H_name[]; +extern const char cmaps_korean_KSCpc_EUC_H_buf[]; +extern const int cmaps_korean_KSCpc_EUC_H_len; +extern const char cmaps_korean_KSCpc_EUC_UCS2_name[]; +extern const char cmaps_korean_KSCpc_EUC_UCS2_buf[]; +extern const int cmaps_korean_KSCpc_EUC_UCS2_len; +extern const char cmaps_korean_KSCpc_EUC_UCS2C_name[]; +extern const char cmaps_korean_KSCpc_EUC_UCS2C_buf[]; +extern const int cmaps_korean_KSCpc_EUC_UCS2C_len; +extern const char cmaps_korean_UniKS_UCS2_H_name[]; +extern const char cmaps_korean_UniKS_UCS2_H_buf[]; +extern const int cmaps_korean_UniKS_UCS2_H_len; +extern const char cmaps_korean_UniKS_UCS2_V_name[]; +extern const char cmaps_korean_UniKS_UCS2_V_buf[]; +extern const int cmaps_korean_UniKS_UCS2_V_len; + +struct pdf_cmapentry_s pdf_cmaptable[] = +{ + + { cmaps_chinese_s_Adobe_GB1_4_name, + cmaps_chinese_s_Adobe_GB1_4_buf, + &cmaps_chinese_s_Adobe_GB1_4_len, 0 }, + { cmaps_chinese_s_Adobe_GB1_UCS2_name, + cmaps_chinese_s_Adobe_GB1_UCS2_buf, + &cmaps_chinese_s_Adobe_GB1_UCS2_len, 0 }, + { cmaps_chinese_s_GB_EUC_H_name, + cmaps_chinese_s_GB_EUC_H_buf, + &cmaps_chinese_s_GB_EUC_H_len, 0 }, + { cmaps_chinese_s_GB_EUC_V_name, + cmaps_chinese_s_GB_EUC_V_buf, + &cmaps_chinese_s_GB_EUC_V_len, 0 }, + { cmaps_chinese_s_GBK_EUC_H_name, + cmaps_chinese_s_GBK_EUC_H_buf, + &cmaps_chinese_s_GBK_EUC_H_len, 0 }, + { cmaps_chinese_s_GBK_EUC_UCS2_name, + cmaps_chinese_s_GBK_EUC_UCS2_buf, + &cmaps_chinese_s_GBK_EUC_UCS2_len, 0 }, + { cmaps_chinese_s_GBK_EUC_V_name, + cmaps_chinese_s_GBK_EUC_V_buf, + &cmaps_chinese_s_GBK_EUC_V_len, 0 }, + { cmaps_chinese_s_GBK2K_H_name, + cmaps_chinese_s_GBK2K_H_buf, + &cmaps_chinese_s_GBK2K_H_len, 0 }, + { cmaps_chinese_s_GBK2K_V_name, + cmaps_chinese_s_GBK2K_V_buf, + &cmaps_chinese_s_GBK2K_V_len, 0 }, + { cmaps_chinese_s_GBKp_EUC_H_name, + cmaps_chinese_s_GBKp_EUC_H_buf, + &cmaps_chinese_s_GBKp_EUC_H_len, 0 }, + { cmaps_chinese_s_GBKp_EUC_V_name, + cmaps_chinese_s_GBKp_EUC_V_buf, + &cmaps_chinese_s_GBKp_EUC_V_len, 0 }, + { cmaps_chinese_s_GBT_EUC_H_name, + cmaps_chinese_s_GBT_EUC_H_buf, + &cmaps_chinese_s_GBT_EUC_H_len, 0 }, + { cmaps_chinese_s_GBT_EUC_V_name, + cmaps_chinese_s_GBT_EUC_V_buf, + &cmaps_chinese_s_GBT_EUC_V_len, 0 }, + { cmaps_chinese_s_GBpc_EUC_H_name, + cmaps_chinese_s_GBpc_EUC_H_buf, + &cmaps_chinese_s_GBpc_EUC_H_len, 0 }, + { cmaps_chinese_s_GBpc_EUC_UCS2_name, + cmaps_chinese_s_GBpc_EUC_UCS2_buf, + &cmaps_chinese_s_GBpc_EUC_UCS2_len, 0 }, + { cmaps_chinese_s_GBpc_EUC_UCS2C_name, + cmaps_chinese_s_GBpc_EUC_UCS2C_buf, + &cmaps_chinese_s_GBpc_EUC_UCS2C_len, 0 }, + { cmaps_chinese_s_GBpc_EUC_V_name, + cmaps_chinese_s_GBpc_EUC_V_buf, + &cmaps_chinese_s_GBpc_EUC_V_len, 0 }, + { cmaps_chinese_s_UniGB_UCS2_H_name, + cmaps_chinese_s_UniGB_UCS2_H_buf, + &cmaps_chinese_s_UniGB_UCS2_H_len, 0 }, + { cmaps_chinese_s_UniGB_UCS2_V_name, + cmaps_chinese_s_UniGB_UCS2_V_buf, + &cmaps_chinese_s_UniGB_UCS2_V_len, 0 }, + { cmaps_chinese_t_Adobe_CNS1_3_name, + cmaps_chinese_t_Adobe_CNS1_3_buf, + &cmaps_chinese_t_Adobe_CNS1_3_len, 0 }, + { cmaps_chinese_t_Adobe_CNS1_UCS2_name, + cmaps_chinese_t_Adobe_CNS1_UCS2_buf, + &cmaps_chinese_t_Adobe_CNS1_UCS2_len, 0 }, + { cmaps_chinese_t_B5pc_H_name, + cmaps_chinese_t_B5pc_H_buf, + &cmaps_chinese_t_B5pc_H_len, 0 }, + { cmaps_chinese_t_B5pc_UCS2_name, + cmaps_chinese_t_B5pc_UCS2_buf, + &cmaps_chinese_t_B5pc_UCS2_len, 0 }, + { cmaps_chinese_t_B5pc_UCS2C_name, + cmaps_chinese_t_B5pc_UCS2C_buf, + &cmaps_chinese_t_B5pc_UCS2C_len, 0 }, + { cmaps_chinese_t_B5pc_V_name, + cmaps_chinese_t_B5pc_V_buf, + &cmaps_chinese_t_B5pc_V_len, 0 }, + { cmaps_chinese_t_CNS_EUC_H_name, + cmaps_chinese_t_CNS_EUC_H_buf, + &cmaps_chinese_t_CNS_EUC_H_len, 0 }, + { cmaps_chinese_t_CNS_EUC_V_name, + cmaps_chinese_t_CNS_EUC_V_buf, + &cmaps_chinese_t_CNS_EUC_V_len, 0 }, + { cmaps_chinese_t_ETen_B5_H_name, + cmaps_chinese_t_ETen_B5_H_buf, + &cmaps_chinese_t_ETen_B5_H_len, 0 }, + { cmaps_chinese_t_ETen_B5_UCS2_name, + cmaps_chinese_t_ETen_B5_UCS2_buf, + &cmaps_chinese_t_ETen_B5_UCS2_len, 0 }, + { cmaps_chinese_t_ETen_B5_V_name, + cmaps_chinese_t_ETen_B5_V_buf, + &cmaps_chinese_t_ETen_B5_V_len, 0 }, + { cmaps_chinese_t_HKscs_B5_H_name, + cmaps_chinese_t_HKscs_B5_H_buf, + &cmaps_chinese_t_HKscs_B5_H_len, 0 }, + { cmaps_chinese_t_HKscs_B5_V_name, + cmaps_chinese_t_HKscs_B5_V_buf, + &cmaps_chinese_t_HKscs_B5_V_len, 0 }, + { cmaps_chinese_t_UniCNS_UCS2_H_name, + cmaps_chinese_t_UniCNS_UCS2_H_buf, + &cmaps_chinese_t_UniCNS_UCS2_H_len, 0 }, + { cmaps_chinese_t_UniCNS_UCS2_V_name, + cmaps_chinese_t_UniCNS_UCS2_V_buf, + &cmaps_chinese_t_UniCNS_UCS2_V_len, 0 }, + { cmaps_japanese_83pv_RKSJ_H_name, + cmaps_japanese_83pv_RKSJ_H_buf, + &cmaps_japanese_83pv_RKSJ_H_len, 0 }, + { cmaps_japanese_90ms_RKSJ_H_name, + cmaps_japanese_90ms_RKSJ_H_buf, + &cmaps_japanese_90ms_RKSJ_H_len, 0 }, + { cmaps_japanese_90ms_RKSJ_UCS2_name, + cmaps_japanese_90ms_RKSJ_UCS2_buf, + &cmaps_japanese_90ms_RKSJ_UCS2_len, 0 }, + { cmaps_japanese_90ms_RKSJ_V_name, + cmaps_japanese_90ms_RKSJ_V_buf, + &cmaps_japanese_90ms_RKSJ_V_len, 0 }, + { cmaps_japanese_90msp_RKSJ_H_name, + cmaps_japanese_90msp_RKSJ_H_buf, + &cmaps_japanese_90msp_RKSJ_H_len, 0 }, + { cmaps_japanese_90msp_RKSJ_V_name, + cmaps_japanese_90msp_RKSJ_V_buf, + &cmaps_japanese_90msp_RKSJ_V_len, 0 }, + { cmaps_japanese_90pv_RKSJ_H_name, + cmaps_japanese_90pv_RKSJ_H_buf, + &cmaps_japanese_90pv_RKSJ_H_len, 0 }, + { cmaps_japanese_90pv_RKSJ_UCS2_name, + cmaps_japanese_90pv_RKSJ_UCS2_buf, + &cmaps_japanese_90pv_RKSJ_UCS2_len, 0 }, + { cmaps_japanese_90pv_RKSJ_UCS2C_name, + cmaps_japanese_90pv_RKSJ_UCS2C_buf, + &cmaps_japanese_90pv_RKSJ_UCS2C_len, 0 }, + { cmaps_japanese_Add_RKSJ_H_name, + cmaps_japanese_Add_RKSJ_H_buf, + &cmaps_japanese_Add_RKSJ_H_len, 0 }, + { cmaps_japanese_Add_RKSJ_V_name, + cmaps_japanese_Add_RKSJ_V_buf, + &cmaps_japanese_Add_RKSJ_V_len, 0 }, + { cmaps_japanese_Adobe_Japan1_4_name, + cmaps_japanese_Adobe_Japan1_4_buf, + &cmaps_japanese_Adobe_Japan1_4_len, 0 }, + { cmaps_japanese_Adobe_Japan1_UCS2_name, + cmaps_japanese_Adobe_Japan1_UCS2_buf, + &cmaps_japanese_Adobe_Japan1_UCS2_len, 0 }, + { cmaps_japanese_EUC_H_name, + cmaps_japanese_EUC_H_buf, + &cmaps_japanese_EUC_H_len, 0 }, + { cmaps_japanese_EUC_V_name, + cmaps_japanese_EUC_V_buf, + &cmaps_japanese_EUC_V_len, 0 }, + { cmaps_japanese_Ext_RKSJ_H_name, + cmaps_japanese_Ext_RKSJ_H_buf, + &cmaps_japanese_Ext_RKSJ_H_len, 0 }, + { cmaps_japanese_Ext_RKSJ_V_name, + cmaps_japanese_Ext_RKSJ_V_buf, + &cmaps_japanese_Ext_RKSJ_V_len, 0 }, + { cmaps_japanese_H_name, + cmaps_japanese_H_buf, + &cmaps_japanese_H_len, 0 }, + { cmaps_japanese_UniJIS_UCS2_H_name, + cmaps_japanese_UniJIS_UCS2_H_buf, + &cmaps_japanese_UniJIS_UCS2_H_len, 0 }, + { cmaps_japanese_UniJIS_UCS2_HW_H_name, + cmaps_japanese_UniJIS_UCS2_HW_H_buf, + &cmaps_japanese_UniJIS_UCS2_HW_H_len, 0 }, + { cmaps_japanese_UniJIS_UCS2_HW_V_name, + cmaps_japanese_UniJIS_UCS2_HW_V_buf, + &cmaps_japanese_UniJIS_UCS2_HW_V_len, 0 }, + { cmaps_japanese_UniJIS_UCS2_V_name, + cmaps_japanese_UniJIS_UCS2_V_buf, + &cmaps_japanese_UniJIS_UCS2_V_len, 0 }, + { cmaps_japanese_V_name, + cmaps_japanese_V_buf, + &cmaps_japanese_V_len, 0 }, + { cmaps_korean_Adobe_Korea1_2_name, + cmaps_korean_Adobe_Korea1_2_buf, + &cmaps_korean_Adobe_Korea1_2_len, 0 }, + { cmaps_korean_Adobe_Korea1_UCS2_name, + cmaps_korean_Adobe_Korea1_UCS2_buf, + &cmaps_korean_Adobe_Korea1_UCS2_len, 0 }, + { cmaps_korean_KSC_EUC_H_name, + cmaps_korean_KSC_EUC_H_buf, + &cmaps_korean_KSC_EUC_H_len, 0 }, + { cmaps_korean_KSC_EUC_V_name, + cmaps_korean_KSC_EUC_V_buf, + &cmaps_korean_KSC_EUC_V_len, 0 }, + { cmaps_korean_KSCms_UHC_H_name, + cmaps_korean_KSCms_UHC_H_buf, + &cmaps_korean_KSCms_UHC_H_len, 0 }, + { cmaps_korean_KSCms_UHC_HW_H_name, + cmaps_korean_KSCms_UHC_HW_H_buf, + &cmaps_korean_KSCms_UHC_HW_H_len, 0 }, + { cmaps_korean_KSCms_UHC_HW_V_name, + cmaps_korean_KSCms_UHC_HW_V_buf, + &cmaps_korean_KSCms_UHC_HW_V_len, 0 }, + { cmaps_korean_KSCms_UHC_UCS2_name, + cmaps_korean_KSCms_UHC_UCS2_buf, + &cmaps_korean_KSCms_UHC_UCS2_len, 0 }, + { cmaps_korean_KSCms_UHC_V_name, + cmaps_korean_KSCms_UHC_V_buf, + &cmaps_korean_KSCms_UHC_V_len, 0 }, + { cmaps_korean_KSCpc_EUC_H_name, + cmaps_korean_KSCpc_EUC_H_buf, + &cmaps_korean_KSCpc_EUC_H_len, 0 }, + { cmaps_korean_KSCpc_EUC_UCS2_name, + cmaps_korean_KSCpc_EUC_UCS2_buf, + &cmaps_korean_KSCpc_EUC_UCS2_len, 0 }, + { cmaps_korean_KSCpc_EUC_UCS2C_name, + cmaps_korean_KSCpc_EUC_UCS2C_buf, + &cmaps_korean_KSCpc_EUC_UCS2C_len, 0 }, + { cmaps_korean_UniKS_UCS2_H_name, + cmaps_korean_UniKS_UCS2_H_buf, + &cmaps_korean_UniKS_UCS2_H_len, 0 }, + { cmaps_korean_UniKS_UCS2_V_name, + cmaps_korean_UniKS_UCS2_V_buf, + &cmaps_korean_UniKS_UCS2_V_len, 0 }, + + { 0, 0, 0, 0 } +}; + |