Ben Hutchings points out that `.UC', which I think I must have
[sgt/halibut] / halibut.h
index 8bbcc1e..99b9a0e 100644 (file)
--- a/halibut.h
+++ b/halibut.h
@@ -206,6 +206,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 */
@@ -221,10 +223,12 @@ enum {
     err_explbr,                               /* expected `{' after command */
     err_commenteof,                   /* EOF inside braced comment */
     err_kwexprbr,                     /* expected `}' after cross-ref */
+    err_codequote,                     /* \q within \c is not supported */
     err_missingrbrace,                /* unclosed braces at end of para */
     err_missingrbrace2,                       /* unclosed braces at end of file */
     err_nestedstyles,                 /* unable to nest text styles */
     err_nestedindex,                  /* unable to nest `\i' thingys */
+    err_indexcase,                    /* two \i differing only in case */
     err_nosuchkw,                     /* unresolved cross-reference */
     err_multiBR,                      /* multiple \BRs on same keyword */
     err_nosuchidxtag,                 /* \IM on unknown index tag (warning) */
@@ -235,9 +239,12 @@ 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_emptypara,                    /* paragraph contains no actual text */
     err_whatever                       /* random error of another type */
 };
 
@@ -261,9 +268,10 @@ void free_para_list(paragraph *p);
 word *dup_word_list(word *w);
 char *dupstr(char *s);
 
-#define mknew(type) ( (type *) smalloc (sizeof (type)) )
-#define mknewa(type, number) ( (type *) smalloc ((number) * sizeof (type)) )
-#define resize(array, len) ( srealloc ((array), (len) * sizeof (*(array))) )
+#define snew(type) ( (type *) smalloc (sizeof (type)) )
+#define snewn(number, type) ( (type *) smalloc ((number) * sizeof (type)) )
+#define sresize(array, number, type) \
+       ( (type *) srealloc ((array), (number) * sizeof (type)) )
 #define lenof(array) ( sizeof(array) / sizeof(*(array)) )
 
 /*
@@ -286,13 +294,16 @@ wchar_t *ustrncpy(wchar_t *dest, wchar_t const *source, int n);
 wchar_t utolower(wchar_t);
 int uisalpha(wchar_t);
 int ustrcmp(wchar_t *lhs, wchar_t *rhs);
-int ustricmp(wchar_t *lhs, wchar_t *rhs);
-int utoi(wchar_t *);
-int utob(wchar_t *);
+int ustricmp(wchar_t const *lhs, wchar_t const *rhs);
+int ustrnicmp(wchar_t const *lhs, wchar_t const *rhs, int maxlen);
+int utoi(wchar_t const *);
+double utof(wchar_t const *);
+int utob(wchar_t const *);
 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
@@ -306,6 +317,7 @@ int ustrwid(wchar_t const *s, int charset);
 void help(void);
 void usage(void);
 void showversion(void);
+void listcharsets(void);
 
 /*
  * licence.c
@@ -462,10 +474,10 @@ void text_backend(paragraph *, keywordlist *, indexdata *, void *);
 paragraph *text_config_filename(char *filename);
 
 /*
- * bk_xhtml.c
+ * bk_html.c
  */
-void xhtml_backend(paragraph *, keywordlist *, indexdata *, void *);
-paragraph *xhtml_config_filename(char *filename);
+void html_backend(paragraph *, keywordlist *, indexdata *, void *);
+paragraph *html_config_filename(char *filename);
 
 /*
  * bk_whlp.c