Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4680 right-hear 1
#include "fitz.h"
2
#include "mupdf.h"
3
 
4
#ifndef NOCJK
5
#include "../generated/cmap_cns.h"
6
#include "../generated/cmap_gb.h"
7
#include "../generated/cmap_japan.h"
8
#include "../generated/cmap_korea.h"
9
#endif
10
 
11
static const struct { char *name; pdf_cmap *cmap; } cmap_table[] =
12
{
13
#ifndef NOCJK
14
	{"78-EUC-H",&cmap_78_EUC_H},
15
	{"78-EUC-V",&cmap_78_EUC_V},
16
	{"78-H",&cmap_78_H},
17
	{"78-RKSJ-H",&cmap_78_RKSJ_H},
18
	{"78-RKSJ-V",&cmap_78_RKSJ_V},
19
	{"78-V",&cmap_78_V},
20
	{"78ms-RKSJ-H",&cmap_78ms_RKSJ_H},
21
	{"78ms-RKSJ-V",&cmap_78ms_RKSJ_V},
22
	{"83pv-RKSJ-H",&cmap_83pv_RKSJ_H},
23
	{"90ms-RKSJ-H",&cmap_90ms_RKSJ_H},
24
	{"90ms-RKSJ-V",&cmap_90ms_RKSJ_V},
25
	{"90msp-RKSJ-H",&cmap_90msp_RKSJ_H},
26
	{"90msp-RKSJ-V",&cmap_90msp_RKSJ_V},
27
	{"90pv-RKSJ-H",&cmap_90pv_RKSJ_H},
28
	{"90pv-RKSJ-V",&cmap_90pv_RKSJ_V},
29
	{"Add-H",&cmap_Add_H},
30
	{"Add-RKSJ-H",&cmap_Add_RKSJ_H},
31
	{"Add-RKSJ-V",&cmap_Add_RKSJ_V},
32
	{"Add-V",&cmap_Add_V},
33
	{"Adobe-CNS1-0",&cmap_Adobe_CNS1_0},
34
	{"Adobe-CNS1-1",&cmap_Adobe_CNS1_1},
35
	{"Adobe-CNS1-2",&cmap_Adobe_CNS1_2},
36
	{"Adobe-CNS1-3",&cmap_Adobe_CNS1_3},
37
	{"Adobe-CNS1-4",&cmap_Adobe_CNS1_4},
38
	{"Adobe-CNS1-5",&cmap_Adobe_CNS1_5},
39
	{"Adobe-CNS1-6",&cmap_Adobe_CNS1_6},
40
	{"Adobe-CNS1-UCS2",&cmap_Adobe_CNS1_UCS2},
41
	{"Adobe-GB1-0",&cmap_Adobe_GB1_0},
42
	{"Adobe-GB1-1",&cmap_Adobe_GB1_1},
43
	{"Adobe-GB1-2",&cmap_Adobe_GB1_2},
44
	{"Adobe-GB1-3",&cmap_Adobe_GB1_3},
45
	{"Adobe-GB1-4",&cmap_Adobe_GB1_4},
46
	{"Adobe-GB1-5",&cmap_Adobe_GB1_5},
47
	{"Adobe-GB1-UCS2",&cmap_Adobe_GB1_UCS2},
48
	{"Adobe-Japan1-0",&cmap_Adobe_Japan1_0},
49
	{"Adobe-Japan1-1",&cmap_Adobe_Japan1_1},
50
	{"Adobe-Japan1-2",&cmap_Adobe_Japan1_2},
51
	{"Adobe-Japan1-3",&cmap_Adobe_Japan1_3},
52
	{"Adobe-Japan1-4",&cmap_Adobe_Japan1_4},
53
	{"Adobe-Japan1-5",&cmap_Adobe_Japan1_5},
54
	{"Adobe-Japan1-6",&cmap_Adobe_Japan1_6},
55
	{"Adobe-Japan1-UCS2",&cmap_Adobe_Japan1_UCS2},
56
	{"Adobe-Japan2-0",&cmap_Adobe_Japan2_0},
57
	{"Adobe-Korea1-0",&cmap_Adobe_Korea1_0},
58
	{"Adobe-Korea1-1",&cmap_Adobe_Korea1_1},
59
	{"Adobe-Korea1-2",&cmap_Adobe_Korea1_2},
60
	{"Adobe-Korea1-UCS2",&cmap_Adobe_Korea1_UCS2},
61
	{"B5-H",&cmap_B5_H},
62
	{"B5-V",&cmap_B5_V},
63
	{"B5pc-H",&cmap_B5pc_H},
64
	{"B5pc-V",&cmap_B5pc_V},
65
	{"CNS-EUC-H",&cmap_CNS_EUC_H},
66
	{"CNS-EUC-V",&cmap_CNS_EUC_V},
67
	{"CNS1-H",&cmap_CNS1_H},
68
	{"CNS1-V",&cmap_CNS1_V},
69
	{"CNS2-H",&cmap_CNS2_H},
70
	{"CNS2-V",&cmap_CNS2_V},
71
	{"ETHK-B5-H",&cmap_ETHK_B5_H},
72
	{"ETHK-B5-V",&cmap_ETHK_B5_V},
73
	{"ETen-B5-H",&cmap_ETen_B5_H},
74
	{"ETen-B5-V",&cmap_ETen_B5_V},
75
	{"ETenms-B5-H",&cmap_ETenms_B5_H},
76
	{"ETenms-B5-V",&cmap_ETenms_B5_V},
77
	{"EUC-H",&cmap_EUC_H},
78
	{"EUC-V",&cmap_EUC_V},
79
	{"Ext-H",&cmap_Ext_H},
80
	{"Ext-RKSJ-H",&cmap_Ext_RKSJ_H},
81
	{"Ext-RKSJ-V",&cmap_Ext_RKSJ_V},
82
	{"Ext-V",&cmap_Ext_V},
83
	{"GB-EUC-H",&cmap_GB_EUC_H},
84
	{"GB-EUC-V",&cmap_GB_EUC_V},
85
	{"GB-H",&cmap_GB_H},
86
	{"GB-V",&cmap_GB_V},
87
	{"GBK-EUC-H",&cmap_GBK_EUC_H},
88
	{"GBK-EUC-V",&cmap_GBK_EUC_V},
89
	{"GBK2K-H",&cmap_GBK2K_H},
90
	{"GBK2K-V",&cmap_GBK2K_V},
91
	{"GBKp-EUC-H",&cmap_GBKp_EUC_H},
92
	{"GBKp-EUC-V",&cmap_GBKp_EUC_V},
93
	{"GBT-EUC-H",&cmap_GBT_EUC_H},
94
	{"GBT-EUC-V",&cmap_GBT_EUC_V},
95
	{"GBT-H",&cmap_GBT_H},
96
	{"GBT-V",&cmap_GBT_V},
97
	{"GBTpc-EUC-H",&cmap_GBTpc_EUC_H},
98
	{"GBTpc-EUC-V",&cmap_GBTpc_EUC_V},
99
	{"GBpc-EUC-H",&cmap_GBpc_EUC_H},
100
	{"GBpc-EUC-V",&cmap_GBpc_EUC_V},
101
	{"H",&cmap_H},
102
	{"HKdla-B5-H",&cmap_HKdla_B5_H},
103
	{"HKdla-B5-V",&cmap_HKdla_B5_V},
104
	{"HKdlb-B5-H",&cmap_HKdlb_B5_H},
105
	{"HKdlb-B5-V",&cmap_HKdlb_B5_V},
106
	{"HKgccs-B5-H",&cmap_HKgccs_B5_H},
107
	{"HKgccs-B5-V",&cmap_HKgccs_B5_V},
108
	{"HKm314-B5-H",&cmap_HKm314_B5_H},
109
	{"HKm314-B5-V",&cmap_HKm314_B5_V},
110
	{"HKm471-B5-H",&cmap_HKm471_B5_H},
111
	{"HKm471-B5-V",&cmap_HKm471_B5_V},
112
	{"HKscs-B5-H",&cmap_HKscs_B5_H},
113
	{"HKscs-B5-V",&cmap_HKscs_B5_V},
114
	{"Hankaku",&cmap_Hankaku},
115
	{"Hiragana",&cmap_Hiragana},
116
	{"Hojo-EUC-H",&cmap_Hojo_EUC_H},
117
	{"Hojo-EUC-V",&cmap_Hojo_EUC_V},
118
	{"Hojo-H",&cmap_Hojo_H},
119
	{"Hojo-V",&cmap_Hojo_V},
120
	{"KSC-EUC-H",&cmap_KSC_EUC_H},
121
	{"KSC-EUC-V",&cmap_KSC_EUC_V},
122
	{"KSC-H",&cmap_KSC_H},
123
	{"KSC-Johab-H",&cmap_KSC_Johab_H},
124
	{"KSC-Johab-V",&cmap_KSC_Johab_V},
125
	{"KSC-V",&cmap_KSC_V},
126
	{"KSCms-UHC-H",&cmap_KSCms_UHC_H},
127
	{"KSCms-UHC-HW-H",&cmap_KSCms_UHC_HW_H},
128
	{"KSCms-UHC-HW-V",&cmap_KSCms_UHC_HW_V},
129
	{"KSCms-UHC-V",&cmap_KSCms_UHC_V},
130
	{"KSCpc-EUC-H",&cmap_KSCpc_EUC_H},
131
	{"KSCpc-EUC-V",&cmap_KSCpc_EUC_V},
132
	{"Katakana",&cmap_Katakana},
133
	{"NWP-H",&cmap_NWP_H},
134
	{"NWP-V",&cmap_NWP_V},
135
	{"RKSJ-H",&cmap_RKSJ_H},
136
	{"RKSJ-V",&cmap_RKSJ_V},
137
	{"Roman",&cmap_Roman},
138
	{"UniCNS-UCS2-H",&cmap_UniCNS_UCS2_H},
139
	{"UniCNS-UCS2-V",&cmap_UniCNS_UCS2_V},
140
	{"UniCNS-UTF16-H",&cmap_UniCNS_UTF16_H},
141
	{"UniCNS-UTF16-V",&cmap_UniCNS_UTF16_V},
142
	{"UniGB-UCS2-H",&cmap_UniGB_UCS2_H},
143
	{"UniGB-UCS2-V",&cmap_UniGB_UCS2_V},
144
	{"UniGB-UTF16-H",&cmap_UniGB_UTF16_H},
145
	{"UniGB-UTF16-V",&cmap_UniGB_UTF16_V},
146
	{"UniHojo-UCS2-H",&cmap_UniHojo_UCS2_H},
147
	{"UniHojo-UCS2-V",&cmap_UniHojo_UCS2_V},
148
	{"UniHojo-UTF16-H",&cmap_UniHojo_UTF16_H},
149
	{"UniHojo-UTF16-V",&cmap_UniHojo_UTF16_V},
150
	{"UniJIS-UCS2-H",&cmap_UniJIS_UCS2_H},
151
	{"UniJIS-UCS2-HW-H",&cmap_UniJIS_UCS2_HW_H},
152
	{"UniJIS-UCS2-HW-V",&cmap_UniJIS_UCS2_HW_V},
153
	{"UniJIS-UCS2-V",&cmap_UniJIS_UCS2_V},
154
	{"UniJIS-UTF16-H",&cmap_UniJIS_UTF16_H},
155
	{"UniJIS-UTF16-V",&cmap_UniJIS_UTF16_V},
156
	{"UniJISPro-UCS2-HW-V",&cmap_UniJISPro_UCS2_HW_V},
157
	{"UniJISPro-UCS2-V",&cmap_UniJISPro_UCS2_V},
158
	{"UniKS-UCS2-H",&cmap_UniKS_UCS2_H},
159
	{"UniKS-UCS2-V",&cmap_UniKS_UCS2_V},
160
	{"UniKS-UTF16-H",&cmap_UniKS_UTF16_H},
161
	{"UniKS-UTF16-V",&cmap_UniKS_UTF16_V},
162
	{"V",&cmap_V},
163
	{"WP-Symbol",&cmap_WP_Symbol},
164
#endif
165
};
166
 
167
pdf_cmap *
168
pdf_find_builtin_cmap(char *cmap_name)
169
{
170
	int l = 0;
171
	int r = nelem(cmap_table) - 1;
172
	while (l <= r)
173
	{
174
		int m = (l + r) >> 1;
175
		int c = strcmp(cmap_name, cmap_table[m].name);
176
		if (c < 0)
177
			r = m - 1;
178
		else if (c > 0)
179
			l = m + 1;
180
		else
181
			return cmap_table[m].cmap;
182
	}
183
	return NULL;
184
}