From f1194bd1e069ed0686c9c8caf9776a8e095f6be6 Mon Sep 17 00:00:00 2001 From: "Sven M. Hallberg" <pesco@khjk.org> Date: Sat, 8 Feb 2020 14:38:06 +0100 Subject: [PATCH] move Dict and dictentry() down to the custom types --- pdf.c | 51 +++++++++++++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/pdf.c b/pdf.c index bc4321a..f60293b 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) { -- GitLab