X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/6e6747065dd221528a52a383f0f99712c8cd82e4..afd6306286b6472b75f9964c42d5b0910b3a83fc:/bk_text.c diff --git a/bk_text.c b/bk_text.c index 1a1796e..4f8cdd7 100644 --- a/bk_text.c +++ b/bk_text.c @@ -311,7 +311,7 @@ void text_backend(paragraph *sourceform, keywordlist *keywords, word spaceword; textfile tf; wchar_t *prefixextra; - int nesting, nestindent; + int nesting, nestbase, nestindent; int indentb, indenta; IGNORE(unused); @@ -323,7 +323,10 @@ void text_backend(paragraph *sourceform, keywordlist *keywords, /* * Open the output file. */ - tf.fp = fopen(conf.filename, "w"); + if (!strcmp(conf.filename, "-")) + tf.fp = stdout; + else + tf.fp = fopen(conf.filename, "w"); if (!tf.fp) { error(err_cantopenw, conf.filename); return; @@ -338,7 +341,8 @@ void text_backend(paragraph *sourceform, keywordlist *keywords, conf.atitle, conf.indent, conf.width, &conf); nestindent = conf.listindentbefore + conf.listindentafter; - nesting = (conf.indent_preambles ? 0 : -conf.indent); + nestbase = (conf.indent_preambles ? 0 : -conf.indent); + nesting = nestbase; /* Do the main document */ for (p = sourceform; p; p = p->next) switch (p->type) { @@ -356,7 +360,7 @@ void text_backend(paragraph *sourceform, keywordlist *keywords, break; case para_LcontPop: nesting -= nestindent; - assert(nesting >= 0); + assert(nesting >= nestbase); break; /* @@ -459,7 +463,8 @@ void text_backend(paragraph *sourceform, keywordlist *keywords, * Tidy up */ text_output(&tf, NULL); /* end charset conversion */ - fclose(tf.fp); + if (tf.fp != stdout) + fclose(tf.fp); sfree(conf.asect); sfree(conf.filename); }