X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/57e17355d29c1a7c4061b611c21b3c445d1c16a0..3e030063e831da0af7bdb8d12f2f25a5224ba0be:/main.c diff --git a/main.c b/main.c index f486a3d..847aea8 100644 --- a/main.c +++ b/main.c @@ -3,6 +3,7 @@ */ #include +#include #include #include #include "halibut.h" @@ -48,6 +49,8 @@ int main(int argc, char **argv) { paragraph *cfg, *cfg_tail; void *pre_backend_data[16]; + setlocale(LC_ALL, ""); + /* * Set up initial (default) parameters. */ @@ -260,7 +263,7 @@ int main(int argc, char **argv) { in.pushback = NULL; in.reportcols = reportcols; in.stack = NULL; - in.defcharset = CS_ASCII; + in.defcharset = charset_from_locale(); idx = make_index(); @@ -285,8 +288,6 @@ int main(int argc, char **argv) { sfree(in.pushback); - mark_attr_ends(sourceform); - sfree(infiles); keywords = get_keywords(sourceform); @@ -301,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);