sfree(ret.filename);
ret.filename = dupstr(adv(p->origkeyword));
} else if (!ustricmp(p->keyword, L"info-charset")) {
- char *csname = utoa_dup(uadv(p->keyword), CS_ASCII);
- ret.charset = charset_from_localenc(csname);
- sfree(csname);
+ ret.charset = charset_from_ustr(&p->fpos, uadv(p->keyword));
} else if (!ustricmp(p->keyword, L"info-max-file-size")) {
ret.maxfilesize = utoi(uadv(p->keyword));
} else if (!ustricmp(p->keyword, L"info-width")) {
currnode = newnode;
}
break;
+ default:
+ p->private_data = NULL;
+ break;
}
/*
char *s;
section = uadv(p->keyword);
- shortname = *section ? uadv(section) : NULL;
- longname = *shortname ? uadv(shortname) : NULL;
- kw = *longname ? uadv(longname) : NULL;
+ shortname = *section ? uadv(section) : L"";
+ longname = *shortname ? uadv(shortname) : L"";
+ kw = *longname ? uadv(longname) : L"";
if (!*longname) {
- error(err_infodirentry, &p->fpos);
+ error(err_cfginsufarg, &p->fpos, p->origkeyword, 3);
continue;
}
* In Info, we do nothing special for xrefs to
* numbered list items or bibliography entries.
*/
- break;
+ continue;
} else {
/*
* An xref to a different section has its text