diff options
Diffstat (limited to 'pdf/pdf_cmap_parse.c')
-rw-r--r-- | pdf/pdf_cmap_parse.c | 236 |
1 files changed, 118 insertions, 118 deletions
diff --git a/pdf/pdf_cmap_parse.c b/pdf/pdf_cmap_parse.c index d899af0e..edd97de8 100644 --- a/pdf/pdf_cmap_parse.c +++ b/pdf/pdf_cmap_parse.c @@ -7,40 +7,40 @@ enum { - TUSECMAP = PDF_NTOKENS, - TBEGINCODESPACERANGE, - TENDCODESPACERANGE, - TBEGINBFCHAR, - TENDBFCHAR, - TBEGINBFRANGE, - TENDBFRANGE, - TBEGINCIDCHAR, - TENDCIDCHAR, - TBEGINCIDRANGE, - TENDCIDRANGE, - TENDCMAP + TOK_USECMAP = PDF_NUM_TOKENS, + TOK_BEGIN_CODESPACE_RANGE, + TOK_END_CODESPACE_RANGE, + TOK_BEGIN_BF_CHAR, + TOK_END_BF_CHAR, + TOK_BEGIN_BF_RANGE, + TOK_END_BF_RANGE, + TOK_BEGIN_CID_CHAR, + TOK_END_CID_CHAR, + TOK_BEGIN_CID_RANGE, + TOK_END_CID_RANGE, + TOK_END_CMAP }; static int -pdf_cmaptokenfromkeyword(char *key) +pdf_cmap_token_from_keyword(char *key) { - if (!strcmp(key, "usecmap")) return TUSECMAP; - if (!strcmp(key, "begincodespacerange")) return TBEGINCODESPACERANGE; - if (!strcmp(key, "endcodespacerange")) return TENDCODESPACERANGE; - if (!strcmp(key, "beginbfchar")) return TBEGINBFCHAR; - if (!strcmp(key, "endbfchar")) return TENDBFCHAR; - if (!strcmp(key, "beginbfrange")) return TBEGINBFRANGE; - if (!strcmp(key, "endbfrange")) return TENDBFRANGE; - if (!strcmp(key, "begincidchar")) return TBEGINCIDCHAR; - if (!strcmp(key, "endcidchar")) return TENDCIDCHAR; - if (!strcmp(key, "begincidrange")) return TBEGINCIDRANGE; - if (!strcmp(key, "endcidrange")) return TENDCIDRANGE; - if (!strcmp(key, "endcmap")) return TENDCMAP; - return PDF_TKEYWORD; + if (!strcmp(key, "usecmap")) return TOK_USECMAP; + if (!strcmp(key, "begincodespacerange")) return TOK_BEGIN_CODESPACE_RANGE; + if (!strcmp(key, "endcodespacerange")) return TOK_END_CODESPACE_RANGE; + if (!strcmp(key, "beginbfchar")) return TOK_BEGIN_BF_CHAR; + if (!strcmp(key, "endbfchar")) return TOK_END_BF_CHAR; + if (!strcmp(key, "beginbfrange")) return TOK_BEGIN_BF_RANGE; + if (!strcmp(key, "endbfrange")) return TOK_END_BF_RANGE; + if (!strcmp(key, "begincidchar")) return TOK_BEGIN_CID_CHAR; + if (!strcmp(key, "endcidchar")) return TOK_END_CID_CHAR; + if (!strcmp(key, "begincidrange")) return TOK_BEGIN_CID_RANGE; + if (!strcmp(key, "endcidrange")) return TOK_END_CID_RANGE; + if (!strcmp(key, "endcmap")) return TOK_END_CMAP; + return PDF_TOK_KEYWORD; } static int -pdf_codefromstring(char *buf, int len) +pdf_code_from_string(char *buf, int len) { int a = 0; while (len--) @@ -49,7 +49,7 @@ pdf_codefromstring(char *buf, int len) } static fz_error -pdf_lexcmap(int *tok, fz_stream *file, char *buf, int n, int *sl) +pdf_lex_cmap(int *tok, fz_stream *file, char *buf, int n, int *sl) { fz_error error; @@ -57,26 +57,26 @@ pdf_lexcmap(int *tok, fz_stream *file, char *buf, int n, int *sl) if (error) return fz_rethrow(error, "cannot parse cmap token"); - if (*tok == PDF_TKEYWORD) - *tok = pdf_cmaptokenfromkeyword(buf); + if (*tok == PDF_TOK_KEYWORD) + *tok = pdf_cmap_token_from_keyword(buf); return fz_okay; } static fz_error -pdf_parsecmapname(pdf_cmap *cmap, fz_stream *file) +pdf_parse_cmap_name(pdf_cmap *cmap, fz_stream *file) { fz_error error; char buf[256]; int tok; int len; - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok == PDF_TNAME) - fz_strlcpy(cmap->cmapname, buf, sizeof(cmap->cmapname)); + if (tok == PDF_TOK_NAME) + fz_strlcpy(cmap->cmap_name, buf, sizeof(cmap->cmap_name)); else fz_warn("expected name after CMapName in cmap"); @@ -84,19 +84,19 @@ pdf_parsecmapname(pdf_cmap *cmap, fz_stream *file) } static fz_error -pdf_parsewmode(pdf_cmap *cmap, fz_stream *file) +pdf_parse_wmode(pdf_cmap *cmap, fz_stream *file) { fz_error error; char buf[256]; int tok; int len; - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok == PDF_TINT) - pdf_setwmode(cmap, atoi(buf)); + if (tok == PDF_TOK_INT) + pdf_set_wmode(cmap, atoi(buf)); else fz_warn("expected integer after WMode in cmap"); @@ -104,7 +104,7 @@ pdf_parsewmode(pdf_cmap *cmap, fz_stream *file) } static fz_error -pdf_parsecodespacerange(pdf_cmap *cmap, fz_stream *file) +pdf_parse_codespace_range(pdf_cmap *cmap, fz_stream *file) { fz_error error; char buf[256]; @@ -114,23 +114,23 @@ pdf_parsecodespacerange(pdf_cmap *cmap, fz_stream *file) while (1) { - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok == TENDCODESPACERANGE) + if (tok == TOK_END_CODESPACE_RANGE) return fz_okay; - else if (tok == PDF_TSTRING) + else if (tok == PDF_TOK_STRING) { - lo = pdf_codefromstring(buf, len); - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + lo = pdf_code_from_string(buf, len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok == PDF_TSTRING) + if (tok == PDF_TOK_STRING) { - hi = pdf_codefromstring(buf, len); - pdf_addcodespace(cmap, lo, hi, len); + hi = pdf_code_from_string(buf, len); + pdf_add_codespace(cmap, lo, hi, len); } else break; } @@ -142,7 +142,7 @@ pdf_parsecodespacerange(pdf_cmap *cmap, fz_stream *file) } static fz_error -pdf_parsecidrange(pdf_cmap *cmap, fz_stream *file) +pdf_parse_cid_range(pdf_cmap *cmap, fz_stream *file) { fz_error error; char buf[256]; @@ -152,40 +152,40 @@ pdf_parsecidrange(pdf_cmap *cmap, fz_stream *file) while (1) { - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok == TENDCIDRANGE) + if (tok == TOK_END_CID_RANGE) return fz_okay; - else if (tok != PDF_TSTRING) + else if (tok != PDF_TOK_STRING) return fz_throw("expected string or endcidrange"); - lo = pdf_codefromstring(buf, len); + lo = pdf_code_from_string(buf, len); - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok != PDF_TSTRING) + if (tok != PDF_TOK_STRING) return fz_throw("expected string"); - hi = pdf_codefromstring(buf, len); + hi = pdf_code_from_string(buf, len); - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok != PDF_TINT) + if (tok != PDF_TOK_INT) return fz_throw("expected integer"); dst = atoi(buf); - pdf_maprangetorange(cmap, lo, hi, dst); + pdf_map_range_to_range(cmap, lo, hi, dst); } } static fz_error -pdf_parsecidchar(pdf_cmap *cmap, fz_stream *file) +pdf_parse_cid_char(pdf_cmap *cmap, fz_stream *file) { fz_error error; char buf[256]; @@ -195,32 +195,32 @@ pdf_parsecidchar(pdf_cmap *cmap, fz_stream *file) while (1) { - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok == TENDCIDCHAR) + if (tok == TOK_END_CID_CHAR) return fz_okay; - else if (tok != PDF_TSTRING) + else if (tok != PDF_TOK_STRING) return fz_throw("expected string or endcidchar"); - src = pdf_codefromstring(buf, len); + src = pdf_code_from_string(buf, len); - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok != PDF_TINT) + if (tok != PDF_TOK_INT) return fz_throw("expected integer"); dst = atoi(buf); - pdf_maprangetorange(cmap, src, src, dst); + pdf_map_range_to_range(cmap, src, src, dst); } } static fz_error -pdf_parsebfrangearray(pdf_cmap *cmap, fz_stream *file, int lo, int hi) +pdf_parse_bf_range_array(pdf_cmap *cmap, fz_stream *file, int lo, int hi) { fz_error error; char buf[256]; @@ -231,23 +231,23 @@ pdf_parsebfrangearray(pdf_cmap *cmap, fz_stream *file, int lo, int hi) while (1) { - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok == PDF_TCARRAY) + if (tok == PDF_TOK_CLOSE_ARRAY) return fz_okay; /* Note: does not handle [ /Name /Name ... ] */ - else if (tok != PDF_TSTRING) + else if (tok != PDF_TOK_STRING) return fz_throw("expected string or ]"); if (len / 2) { for (i = 0; i < len / 2; i++) - dst[i] = pdf_codefromstring(buf + i * 2, 2); + dst[i] = pdf_code_from_string(buf + i * 2, 2); - pdf_maponetomany(cmap, lo, dst, len / 2); + pdf_map_one_to_many(cmap, lo, dst, len / 2); } lo ++; @@ -255,7 +255,7 @@ pdf_parsebfrangearray(pdf_cmap *cmap, fz_stream *file, int lo, int hi) } static fz_error -pdf_parsebfrange(pdf_cmap *cmap, fz_stream *file) +pdf_parse_bf_range(pdf_cmap *cmap, fz_stream *file) { fz_error error; char buf[256]; @@ -265,36 +265,36 @@ pdf_parsebfrange(pdf_cmap *cmap, fz_stream *file) while (1) { - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok == TENDBFRANGE) + if (tok == TOK_END_BF_RANGE) return fz_okay; - else if (tok != PDF_TSTRING) + else if (tok != PDF_TOK_STRING) return fz_throw("expected string or endbfrange"); - lo = pdf_codefromstring(buf, len); + lo = pdf_code_from_string(buf, len); - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok != PDF_TSTRING) + if (tok != PDF_TOK_STRING) return fz_throw("expected string"); - hi = pdf_codefromstring(buf, len); + hi = pdf_code_from_string(buf, len); - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok == PDF_TSTRING) + if (tok == PDF_TOK_STRING) { if (len == 2) { - dst = pdf_codefromstring(buf, len); - pdf_maprangetorange(cmap, lo, hi, dst); + dst = pdf_code_from_string(buf, len); + pdf_map_range_to_range(cmap, lo, hi, dst); } else { @@ -304,21 +304,21 @@ pdf_parsebfrange(pdf_cmap *cmap, fz_stream *file) if (len / 2) { for (i = 0; i < len / 2; i++) - dststr[i] = pdf_codefromstring(buf + i * 2, 2); + dststr[i] = pdf_code_from_string(buf + i * 2, 2); while (lo <= hi) { dststr[i-1] ++; - pdf_maponetomany(cmap, lo, dststr, i); + pdf_map_one_to_many(cmap, lo, dststr, i); lo ++; } } } } - else if (tok == PDF_TOARRAY) + else if (tok == PDF_TOK_OPEN_ARRAY) { - error = pdf_parsebfrangearray(cmap, file, lo, hi); + error = pdf_parse_bf_range_array(cmap, file, lo, hi); if (error) return fz_rethrow(error, "cannot map bfrange"); } @@ -331,7 +331,7 @@ pdf_parsebfrange(pdf_cmap *cmap, fz_stream *file) } static fz_error -pdf_parsebfchar(pdf_cmap *cmap, fz_stream *file) +pdf_parse_bf_char(pdf_cmap *cmap, fz_stream *file) { fz_error error; char buf[256]; @@ -343,36 +343,36 @@ pdf_parsebfchar(pdf_cmap *cmap, fz_stream *file) while (1) { - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); - if (tok == TENDBFCHAR) + if (tok == TOK_END_BF_CHAR) return fz_okay; - else if (tok != PDF_TSTRING) + else if (tok != PDF_TOK_STRING) return fz_throw("expected string or endbfchar"); - src = pdf_codefromstring(buf, len); + src = pdf_code_from_string(buf, len); - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) return fz_rethrow(error, "syntaxerror in cmap"); /* Note: does not handle /dstName */ - if (tok != PDF_TSTRING) + if (tok != PDF_TOK_STRING) return fz_throw("expected string"); if (len / 2) { for (i = 0; i < len / 2; i++) - dst[i] = pdf_codefromstring(buf + i * 2, 2); - pdf_maponetomany(cmap, src, dst, i); + dst[i] = pdf_code_from_string(buf + i * 2, 2); + pdf_map_one_to_many(cmap, src, dst, i); } } } fz_error -pdf_parsecmap(pdf_cmap **cmapp, fz_stream *file) +pdf_parse_cmap(pdf_cmap **cmapp, fz_stream *file) { fz_error error; pdf_cmap *cmap; @@ -381,27 +381,27 @@ pdf_parsecmap(pdf_cmap **cmapp, fz_stream *file) int tok; int len; - cmap = pdf_newcmap(); + cmap = pdf_new_cmap(); strcpy(key, ".notdef"); while (1) { - error = pdf_lexcmap(&tok, file, buf, sizeof buf, &len); + error = pdf_lex_cmap(&tok, file, buf, sizeof buf, &len); if (error) { error = fz_rethrow(error, "syntaxerror in cmap"); goto cleanup; } - if (tok == PDF_TEOF || tok == TENDCMAP) + if (tok == PDF_TOK_EOF || tok == TOK_END_CMAP) break; - else if (tok == PDF_TNAME) + else if (tok == PDF_TOK_NAME) { if (!strcmp(buf, "CMapName")) { - error = pdf_parsecmapname(cmap, file); + error = pdf_parse_cmap_name(cmap, file); if (error) { error = fz_rethrow(error, "syntaxerror in cmap after CMapName"); @@ -410,7 +410,7 @@ pdf_parsecmap(pdf_cmap **cmapp, fz_stream *file) } else if (!strcmp(buf, "WMode")) { - error = pdf_parsewmode(cmap, file); + error = pdf_parse_wmode(cmap, file); if (error) { error = fz_rethrow(error, "syntaxerror in cmap after WMode"); @@ -421,14 +421,14 @@ pdf_parsecmap(pdf_cmap **cmapp, fz_stream *file) fz_strlcpy(key, buf, sizeof key); } - else if (tok == TUSECMAP) + else if (tok == TOK_USECMAP) { - fz_strlcpy(cmap->usecmapname, key, sizeof(cmap->usecmapname)); + fz_strlcpy(cmap->usecmap_name, key, sizeof(cmap->usecmap_name)); } - else if (tok == TBEGINCODESPACERANGE) + else if (tok == TOK_BEGIN_CODESPACE_RANGE) { - error = pdf_parsecodespacerange(cmap, file); + error = pdf_parse_codespace_range(cmap, file); if (error) { error = fz_rethrow(error, "syntaxerror in cmap codespacerange"); @@ -436,9 +436,9 @@ pdf_parsecmap(pdf_cmap **cmapp, fz_stream *file) } } - else if (tok == TBEGINBFCHAR) + else if (tok == TOK_BEGIN_BF_CHAR) { - error = pdf_parsebfchar(cmap, file); + error = pdf_parse_bf_char(cmap, file); if (error) { error = fz_rethrow(error, "syntaxerror in cmap bfchar"); @@ -446,9 +446,9 @@ pdf_parsecmap(pdf_cmap **cmapp, fz_stream *file) } } - else if (tok == TBEGINCIDCHAR) + else if (tok == TOK_BEGIN_CID_CHAR) { - error = pdf_parsecidchar(cmap, file); + error = pdf_parse_cid_char(cmap, file); if (error) { error = fz_rethrow(error, "syntaxerror in cmap cidchar"); @@ -456,9 +456,9 @@ pdf_parsecmap(pdf_cmap **cmapp, fz_stream *file) } } - else if (tok == TBEGINBFRANGE) + else if (tok == TOK_BEGIN_BF_RANGE) { - error = pdf_parsebfrange(cmap, file); + error = pdf_parse_bf_range(cmap, file); if (error) { error = fz_rethrow(error, "syntaxerror in cmap bfrange"); @@ -466,9 +466,9 @@ pdf_parsecmap(pdf_cmap **cmapp, fz_stream *file) } } - else if (tok == TBEGINCIDRANGE) + else if (tok == TOK_BEGIN_CID_RANGE) { - error = pdf_parsecidrange(cmap, file); + error = pdf_parse_cid_range(cmap, file); if (error) { error = fz_rethrow(error, "syntaxerror in cmap cidrange"); @@ -479,12 +479,12 @@ pdf_parsecmap(pdf_cmap **cmapp, fz_stream *file) /* ignore everything else */ } - pdf_sortcmap(cmap); + pdf_sort_cmap(cmap); *cmapp = cmap; return fz_okay; cleanup: - pdf_dropcmap(cmap); + pdf_drop_cmap(cmap); return error; /* already rethrown */ } |