X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/a616a7953d87c3c51afcc8e693c48c37ec000edf..f4e84752c9c8de7dcb266054135147434b0dc3b8:/uip/mhcachesbr.c diff --git a/uip/mhcachesbr.c b/uip/mhcachesbr.c index 5970a9d1..7fa27ab3 100644 --- a/uip/mhcachesbr.c +++ b/uip/mhcachesbr.c @@ -96,7 +96,7 @@ cache_content (CT ct) { int cachetype; char *file, cachefile[BUFSIZ]; - CE ce = ct->c_cefile; + CE ce = &ct->c_cefile; if (!ct->c_id) { advise (NULL, "no %s: field in %s", ID_FIELD, ct->c_file); @@ -376,16 +376,17 @@ find_cache_aux2 (char *mapfile, char *id, char *mapname, int namelen) int state; char buf[BUFSIZ], name[NAMESZ]; FILE *fp; + m_getfld_state_t gstate = 0; if (!(fp = lkfopen (mapfile, "r"))) return NOTOK; - for (state = FLD;;) { + for (;;) { int result; char *cp, *dp; int bufsz = sizeof buf; - switch (state = m_getfld (state, name, buf, &bufsz, fp)) { + switch (state = m_getfld (&gstate, name, buf, &bufsz, fp)) { case FLD: case FLDPLUS: strncpy (mapname, name, namelen); @@ -395,7 +396,7 @@ find_cache_aux2 (char *mapfile, char *id, char *mapname, int namelen) cp = add (buf, NULL); while (state == FLDPLUS) { bufsz = sizeof buf; - state = m_getfld (state, name, buf, &bufsz, fp); + state = m_getfld (&gstate, name, buf, &bufsz, fp); cp = add (buf, cp); } } @@ -420,6 +421,7 @@ find_cache_aux2 (char *mapfile, char *id, char *mapname, int namelen) } break; } + m_getfld_state_destroy (&gstate); lkfclose (fp, mapfile); return NOTOK;