CVS revision numbers, stored as `cvs2svn:cvs-rev' properties, are a
[sgt/halibut] / main.c
diff --git a/main.c b/main.c
index 61b37f7..f09b33e 100644 (file)
--- a/main.c
+++ b/main.c
@@ -26,8 +26,8 @@ static const struct backend {
     int bitfield, prebackend_bitfield;
 } backends[] = {
     {"text", text_backend, text_config_filename, 0x0001, 0},
-    {"xhtml", xhtml_backend, xhtml_config_filename, 0x0002, 0},
-    {"html", xhtml_backend, xhtml_config_filename, 0x0002, 0},
+    {"xhtml", html_backend, html_config_filename, 0x0002, 0},
+    {"html", html_backend, html_config_filename, 0x0002, 0},
     {"hlp", whlp_backend, whlp_config_filename, 0x0004, 0},
     {"whlp", whlp_backend, whlp_config_filename, 0x0004, 0},
     {"winhelp", whlp_backend, whlp_config_filename, 0x0004, 0},
@@ -54,7 +54,7 @@ int main(int argc, char **argv) {
     /*
      * Set up initial (default) parameters.
      */
-    infiles = mknewa(char *, argc);
+    infiles = snewn(argc, char *);
     nfiles = 0;
     nogo = errs = FALSE;
     reportcols = 0;
@@ -263,7 +263,7 @@ int main(int argc, char **argv) {
        in.pushback = NULL;
        in.reportcols = reportcols;
        in.stack = NULL;
-       in.defcharset = locale_charset();
+       in.defcharset = charset_from_locale();
 
        idx = make_index();
 
@@ -288,8 +288,6 @@ int main(int argc, char **argv) {
 
        sfree(in.pushback);
 
-       mark_attr_ends(sourceform);
-
        sfree(infiles);
 
        keywords = get_keywords(sourceform);
@@ -304,6 +302,20 @@ int main(int argc, char **argv) {
 
        build_index(idx);
 
+       /*
+        * Set up attr_First / attr_Last / attr_Always, in the main
+        * document and in the index entries.
+        */
+       for (p = sourceform; p; p = p->next)
+           mark_attr_ends(p->words);
+       {
+           int i;
+           indexentry *entry;
+
+           for (i = 0; (entry = index234(idx->entries, i)) != NULL; i++)
+               mark_attr_ends(entry->text);
+       }
+
        if (debug) {
            index_debug(idx);
            dbg_prtkws(keywords);