X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/27bdc5ab5b1f2a90b06fc924346f014e1b272c65..4105facaec17862f03a6217f93a1609606f2a7cd:/halibut.h diff --git a/halibut.h b/halibut.h index 88b39f2..3cb1ed7 100644 --- a/halibut.h +++ b/halibut.h @@ -35,7 +35,6 @@ typedef struct paragraph_Tag paragraph; typedef struct word_Tag word; typedef struct keywordlist_Tag keywordlist; typedef struct keyword_Tag keyword; -typedef struct userstyle_Tag userstyle; typedef struct numberstate_Tag numberstate; typedef struct indexdata_Tag indexdata; typedef struct indextag_Tag indextag; @@ -178,13 +177,13 @@ enum { attr_First = 0x0001, /* the first of a series */ attr_Last = 0x0002, /* the last of a series */ attr_Always = 0x0003, /* any other part of a series */ - attr_mask = 0x0003, + attr_mask = 0x0003 }; /* aux values for quote-type words */ enum { quote_Open = 0x0010, quote_Close = 0x0020, - quote_mask = 0x0030, + quote_mask = 0x0030 }; #define isattr(x) ( ( (x) > word_Normal && (x) < word_WhiteSpace ) || \ ( (x) > word_WhiteSpace && (x) < word_internal_endattrs ) ) @@ -206,6 +205,8 @@ enum { err_nomemory, /* out of memory */ err_optnoarg, /* option `-%s' requires an argument */ err_nosuchopt, /* unrecognised option `-%s' */ + err_cmdcharset, /* unrecognised charset %s (cmdline) */ + err_futileopt, /* futile option `-%s'%s */ err_noinput, /* no input files */ err_cantopen, /* unable to open input file `%s' */ err_nodata, /* no data in input files */ @@ -237,10 +238,20 @@ enum { err_multikw, /* keyword clash in sections */ err_misplacedlcont, /* \lcont not after a list item */ err_sectmarkerinblock, /* section marker appeared in block */ - err_infodirentry, /* \cfg{info-dir-entry} missing param */ + err_cfginsufarg, /* \cfg{%s} insufficient args (<%d) */ err_infonodechar, /* colon/comma in node name in info */ err_text_codeline, /* \c line too long in text backend */ err_htmlver, /* unrecognised HTML version keyword */ + err_charset, /* unrecognised character set name */ + err_nofont, /* unrecognised font name */ + err_afmeof, /* eof in AFM file */ + err_afmkey, /* missing expected keyword in AFM */ + err_afmvers, /* unsupported AFM version */ + err_afmval, /* missing value(s) for AFM key */ + err_pfeof, /* eof in Type 1 font file */ + err_pfhead, /* bad Type 1 header line */ + err_pfbad, /* otherwise invalide Type 1 font */ + err_pfnoafm, /* Type 1 font but no AFM */ err_whatever /* random error of another type */ }; @@ -299,6 +310,7 @@ int uisdigit(wchar_t); wchar_t *ustrlow(wchar_t *s); wchar_t *ustrftime(const wchar_t *wfmt, const struct tm *timespec); int cvt_ok(int charset, const wchar_t *s); +int charset_from_ustr(filepos *fpos, const wchar_t *name); /* * wcwidth.c @@ -312,6 +324,7 @@ int ustrwid(wchar_t const *s, int charset); void help(void); void usage(void); void showversion(void); +void listcharsets(void); /* * licence.c @@ -321,7 +334,7 @@ void licence(void); /* * version.c */ -const char *const version; +extern const char *const version; /* * misc.c @@ -352,6 +365,7 @@ void rdadds(rdstring *rs, wchar_t const *p); wchar_t *rdtrim(rdstring *rs); void rdaddc(rdstringc *rs, char c); void rdaddsc(rdstringc *rs, char const *p); +void rdaddsn(rdstringc *rc, char const *p, int len); char *rdtrimc(rdstringc *rs); int compare_wordlists(word *a, word *b); @@ -377,6 +391,16 @@ paragraph *cmdline_cfg_simple(char *string, ...); paragraph *read_input(input *in, indexdata *idx); /* + * in_afm.c + */ +void read_afm_file(input *in); + +/* + * in_pf.c + */ +void read_pfa_file(input *in); + +/* * keywords.c */ struct keywordlist_Tag { @@ -456,12 +480,6 @@ void number_free(numberstate *); void gen_citations(paragraph *, keywordlist *); /* - * style.c - */ -struct userstyle_Tag { -}; - -/* * bk_text.c */ void text_backend(paragraph *, keywordlist *, indexdata *, void *);