diff --git a/pdf.c b/pdf.c index bc4321ae4d3eb8dbe7bb71aa2af36f98684dbe60..f60293b7ebb6c54c9b6e36b7aad015b3a4b8852c 100644 --- a/pdf.c +++ b/pdf.c @@ -68,32 +68,6 @@ bytes_eq(HBytes b, const char *s) return strncmp(s, (const char *)(b.token), b.len) == 0 && b.len == strlen(s); } -// XXX This probably belongs next to Ref and XREntry, but dictentry() needs it -typedef HCountedArray Dict; - -/* a helper to look up a value in a dictionary */ -const HParsedToken * -dictentry(const Dict *dict, const char *key) -{ - HParsedToken *ent; - HBytes k; - size_t len; - - if (dict == NULL) - return NULL; - - len = strlen(key); - for (size_t i = 0; i < dict->used; i++) { - ent = dict->elements[i]; - k = H_INDEX_BYTES(ent, 0); - - if (k.len == len && bytes_eq(k, key)) - return H_INDEX_TOKEN(ent, 1); - } - - return NULL; -} - bool validate_eq_uint(HParseResult *p, void *u) { @@ -133,6 +107,31 @@ typedef struct { typedef struct { size_t nr, gen; } Ref; +typedef HCountedArray Dict; + +/* look up a value in a dictionary */ +const HParsedToken * +dictentry(const Dict *dict, const char *key) +{ + HParsedToken *ent; + HBytes k; + size_t len; + + if (dict == NULL) + return NULL; + + len = strlen(key); + for (size_t i = 0; i < dict->used; i++) { + ent = dict->elements[i]; + k = H_INDEX_BYTES(ent, 0); + + if (k.len == len && bytes_eq(k, key)) + return H_INDEX_TOKEN(ent, 1); + } + + return NULL; +} + void pp_xrentry(FILE *stream, const HParsedToken *tok, int indent, int delta) {