summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipdfm-x/tt_cmap.c
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2020-08-07 21:28:08 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2020-08-07 21:28:08 +0000
commit275f43d792961c3e02cbf06b46eb3f99d105ec6f (patch)
treef31f639d2a79199a7c956aff0f2b267dae9d20ea /Build/source/texk/dvipdfm-x/tt_cmap.c
parent151be1c527f048ec037f1ccd83e08857bb9726cd (diff)
Use uint32_t for TTC index. (S. Hirata)
git-svn-id: svn://tug.org/texlive/trunk@56064 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipdfm-x/tt_cmap.c')
-rw-r--r--Build/source/texk/dvipdfm-x/tt_cmap.c56
1 files changed, 30 insertions, 26 deletions
diff --git a/Build/source/texk/dvipdfm-x/tt_cmap.c b/Build/source/texk/dvipdfm-x/tt_cmap.c
index 113d11699a5..17c1e9924dd 100644
--- a/Build/source/texk/dvipdfm-x/tt_cmap.c
+++ b/Build/source/texk/dvipdfm-x/tt_cmap.c
@@ -1066,7 +1066,7 @@ static cmap_plat_enc_rec cmap_plat_encs[] = {
pdf_obj *
otf_create_ToUnicode_stream (const char *font_name,
- int ttc_index, /* 0 for non-TTC */
+ uint32_t ttc_index, /* 0 for non-TTC */
const char *basefont,
const char *used_chars)
{
@@ -1147,10 +1147,13 @@ otf_create_ToUnicode_stream (const char *font_name,
* case.
*/
{
- char *cmap_add_name;
+ char *cmap_add_name;
+ size_t len;
- cmap_add_name = NEW(strlen(font_name)+strlen(",000-UCS32-Add")+1, char);
- sprintf(cmap_add_name, "%s,%03d-UCS32-Add", font_name, ttc_index);
+ len = strlen(font_name)+strlen("-UCS32-Add")+32;
+ cmap_add_name = NEW(len, char);
+ snprintf(cmap_add_name, len, "%s:%d-UCS32-Add", font_name, ttc_index);
+ cmap_add_name[len-1] = '\0';
cmap_add_id = CMap_cache_find(cmap_add_name);
RELEASE(cmap_add_name);
if (cmap_add_id < 0) {
@@ -1295,7 +1298,7 @@ load_cmap12 (struct cmap12 *map, uint16_t *GIDToCIDMap, USHORT num_glyphs,
}
int
-otf_load_Unicode_CMap (const char *map_name, int ttc_index, /* 0 for non-TTC font */
+otf_load_Unicode_CMap (const char *map_name, uint32_t ttc_index, /* 0 for non-TTC font */
const char *otl_tags, int wmode)
{
int cmap_id = -1;
@@ -1311,24 +1314,26 @@ otf_load_Unicode_CMap (const char *map_name, int ttc_index, /* 0 for non-TTC fon
if (!map_name)
return -1;
- if (ttc_index > 999 || ttc_index < 0) {
- return -1; /* Sorry for this... */
- }
-
/* First look for cache if it was already loaded */
- cmap_name = NEW(strlen(map_name)+strlen("-UCS4-H")+5, char);
if (otl_tags) {
- cmap_name = NEW(strlen(map_name)+strlen(otl_tags)+strlen("-UCS4-H")+6, char);
+ size_t len;
+ len = strlen(map_name)+strlen("-UCS4-H")+strlen(otl_tags)+32;
+ cmap_name = NEW(len, char);
if (wmode)
- sprintf(cmap_name, "%s,%03d,%s-UCS4-V", map_name, ttc_index, otl_tags);
+ snprintf(cmap_name, len, "%s:%d:%s-UCS4-V", map_name, ttc_index, otl_tags);
else
- sprintf(cmap_name, "%s,%03d,%s-UCS4-H", map_name, ttc_index, otl_tags);
+ snprintf(cmap_name, len, "%s:%d:%s-UCS4-H", map_name, ttc_index, otl_tags);
+ cmap_name[len-1] = '\0';
} else {
+ size_t len;
+ len = strlen(map_name)+strlen("-UCS4-H")+32;
+ cmap_name = NEW(len, char);
if (wmode)
- sprintf(cmap_name, "%s,%03d-UCS4-V", map_name, ttc_index);
+ snprintf(cmap_name, len, "%s:%d-UCS4-V", map_name, ttc_index);
else {
- sprintf(cmap_name, "%s,%03d-UCS4-H", map_name, ttc_index);
+ snprintf(cmap_name, len, "%s:%d-UCS4-H", map_name, ttc_index);
}
+ cmap_name[len-1] = '\0';
}
cmap_id = CMap_cache_find(cmap_name);
if (cmap_id >= 0) {
@@ -1542,12 +1547,15 @@ otf_load_Unicode_CMap (const char *map_name, int ttc_index, /* 0 for non-TTC fon
tt_cmap_release(ttcmap);
if (otl_tags) {
- CMap *tounicode = NULL;
- char *tounicode_name;
- int tounicode_id;
-
- tounicode_name = NEW(strlen(map_name)+strlen(",000-UCS32-Add")+1, char);
- sprintf(tounicode_name, "%s,%03d-UCS32-Add", map_name, ttc_index);
+ CMap *tounicode = NULL;
+ char *tounicode_name;
+ int tounicode_id;
+ size_t name_len;
+
+ name_len = strlen(map_name)+strlen("-UCS32-Add")+32;
+ tounicode_name = NEW(name_len, char);
+ snprintf(tounicode_name, name_len, "%s:%d-UCS32-Add", map_name, ttc_index);
+ tounicode_name[name_len-1] = '\0';
tounicode_id = CMap_cache_find(tounicode_name);
if (tounicode_id >= 0)
tounicode = CMap_cache_get(tounicode_id);
@@ -1598,7 +1606,7 @@ otf_load_Unicode_CMap (const char *map_name, int ttc_index, /* 0 for non-TTC fon
}
int
-otf_try_load_GID_to_CID_map (const char *map_name, int ttc_index, int wmode)
+otf_try_load_GID_to_CID_map (const char *map_name, uint32_t ttc_index, int wmode)
{
int cmap_id = -1;
sfnt *sfont = NULL;
@@ -1610,10 +1618,6 @@ otf_try_load_GID_to_CID_map (const char *map_name, int ttc_index, int wmode)
if (!map_name)
return -1;
- if (ttc_index > 0xFFFFFFFFu || ttc_index < 0) {
- return -1;
- }
-
/* Check if already loaded */
len = strlen(map_name) + 32;
cmap_name = NEW(len, char);