diff options
| author | Simon Tatham <anakin@pobox.com> | 2004-04-10 08:59:19 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2004-04-10 08:59:19 +0000 |
| commit | cb859ab83ed22a1b0dc9fd017cb0d68e0037d750 (patch) | |
| tree | 1218ea2baf44c3ec3b312c3a6b2606e78fcce06c /halibut.h | |
| parent | 221e2fcc83aa527bf515d40a754d69dc5793bb4f (diff) | |
| download | halibut-cb859ab83ed22a1b0dc9fd017cb0d68e0037d750.zip halibut-cb859ab83ed22a1b0dc9fd017cb0d68e0037d750.tar.gz halibut-cb859ab83ed22a1b0dc9fd017cb0d68e0037d750.tar.bz2 halibut-cb859ab83ed22a1b0dc9fd017cb0d68e0037d750.tar.xz | |
Info backend now takes care to avoid magic characters in node names
and index terms (the Info format doesn't like them). In the course
of this I've had to introduce some infrastructure for carrying a
filepos forward from the definition of every RHS index term so that
a particular backend can provide a usefully localised report of
which index term had a problem.
[originally from svn r4051]
Diffstat (limited to 'halibut.h')
| -rw-r--r-- | halibut.h | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -219,6 +219,8 @@ enum { err_misplacedlcont, /* \lcont not after a list item */ err_sectmarkerinblock, /* section marker appeared in block */ err_infodirentry, /* \cfg{info-dir-entry} missing param */ + err_infoindexcolon, /* colon in index term in info */ + err_infonodechar, /* colon/comma in node name in info */ err_whatever /* random error of another type */ }; @@ -373,7 +375,9 @@ struct indexdata_Tag { struct indextag_Tag { wchar_t *name; word *implicit_text; + filepos implicit_fpos; word **explicit_texts; + filepos *explicit_fpos; int nexplicit, explicit_size; int nrefs; indexentry **refs; /* array of entries referenced by tag */ @@ -385,13 +389,14 @@ struct indextag_Tag { struct indexentry_Tag { word *text; void *backend_data; /* private to back end */ + filepos fpos; }; indexdata *make_index(void); void cleanup_index(indexdata *); /* index_merge takes responsibility for freeing arg 3 iff implicit; never * takes responsibility for arg 2 */ -void index_merge(indexdata *, int is_explicit, wchar_t *, word *); +void index_merge(indexdata *, int is_explicit, wchar_t *, word *, filepos *); void build_index(indexdata *); void index_debug(indexdata *); indextag *index_findtag(indexdata *idx, wchar_t *name); |