diff options
| -rw-r--r-- | bk_html.c | 7 | ||||
| -rw-r--r-- | bk_man.c | 8 | ||||
| -rw-r--r-- | bk_pdf.c | 8 | ||||
| -rw-r--r-- | bk_ps.c | 8 | ||||
| -rw-r--r-- | bk_text.c | 8 |
5 files changed, 29 insertions, 10 deletions
@@ -884,7 +884,10 @@ void html_backend(paragraph *sourceform, keywordlist *keywords, #define listname(lt) ( (lt)==UL ? "ul" : (lt)==OL ? "ol" : "dl" ) #define itemname(lt) ( (lt)==LI ? "li" : (lt)==DT ? "dt" : "dd" ) - ho.fp = fopen(f->filename, "w"); + if (!strcmp(f->filename, "-")) + ho.fp = stdout; + else + ho.fp = fopen(f->filename, "w"); if (!ho.fp) error(err_cantopenw, f->filename); @@ -2507,7 +2510,7 @@ static void html_text_limit_internal(htmloutput *ho, wchar_t const *text, static void cleanup(htmloutput *ho) { return_to_neutral(ho); - if (ho->fp) + if (ho->fp && ho->fp != stdout) fclose(ho->fp); } @@ -235,7 +235,10 @@ void man_backend(paragraph *sourceform, keywordlist *keywords, /* * Open the output file. */ - fp = fopen(conf.filename, "w"); + if (!strcmp(conf.filename, "-")) + fp = stdout; + else + fp = fopen(conf.filename, "w"); if (!fp) { error(err_cantopenw, conf.filename); return; @@ -425,7 +428,8 @@ void man_backend(paragraph *sourceform, keywordlist *keywords, /* * Tidy up. */ - fclose(fp); + if (fp != stdout) + fclose(fp); man_conf_cleanup(conf); } @@ -665,7 +665,10 @@ void pdf_backend(paragraph *sourceform, keywordlist *keywords, * Write out the PDF file. */ - fp = fopen(filename, "wb"); + if (!strcmp(filename, "-")) + fp = stdout; + else + fp = fopen(filename, "wb"); if (!fp) { error(err_cantopenw, filename); return; @@ -712,7 +715,8 @@ void pdf_backend(paragraph *sourceform, keywordlist *keywords, olist.tail->number + 1, cat->number, info->number); fprintf(fp, "startxref\n%d\n%%%%EOF\n", fileoff); - fclose(fp); + if (fp != stdout) + fclose(fp); sfree(filename); } @@ -48,7 +48,10 @@ void ps_backend(paragraph *sourceform, keywordlist *keywords, } } - fp = fopen(filename, "w"); + if (!strcmp(filename, "-")) + fp = stdout; + else + fp = fopen(filename, "w"); if (!fp) { error(err_cantopenw, filename); return; @@ -304,7 +307,8 @@ void ps_backend(paragraph *sourceform, keywordlist *keywords, fprintf(fp, "%%%%EOF\n"); - fclose(fp); + if (fp != stdout) + fclose(fp); sfree(filename); } @@ -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; @@ -460,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); } |