From 74d1d464218614c901721de65a11b231e4f8d38e Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sun, 24 Jan 2021 14:53:41 -0800 Subject: [PATCH] output: New function output_log(). --- src/language/data-io/print-space.c | 4 ++-- src/language/data-io/print.c | 5 ++--- src/language/utilities/echo.c | 3 +-- src/language/utilities/host.c | 5 ++--- src/output/driver.c | 13 +++++++++++++ src/output/driver.h | 3 +++ 6 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/language/data-io/print-space.c b/src/language/data-io/print-space.c index fafaff81a9..e166df5f63 100644 --- a/src/language/data-io/print-space.c +++ b/src/language/data-io/print-space.c @@ -27,7 +27,7 @@ #include "language/expressions/public.h" #include "language/lexer/lexer.h" #include "libpspp/message.h" -#include "output/output-item.h" +#include "output/driver.h" #include "gl/xalloc.h" @@ -134,7 +134,7 @@ print_space_trns_proc (void *t_, struct ccase **c, while (n--) if (trns->writer == NULL) - output_item_submit (text_item_create (TEXT_ITEM_LOG, "", NULL)); + output_log ("%s", ""); else dfm_put_record (trns->writer, " ", 1); /* XXX */ diff --git a/src/language/data-io/print.c b/src/language/data-io/print.c index 3b5541a3c3..cc6971ded2 100644 --- a/src/language/data-io/print.c +++ b/src/language/data-io/print.c @@ -40,6 +40,7 @@ #include "libpspp/misc.h" #include "libpspp/pool.h" #include "libpspp/u8-line.h" +#include "output/driver.h" #include "output/pivot-table.h" #include "output/table.h" #include "output/output-item.h" @@ -562,9 +563,7 @@ print_text_flush_records (struct print_trns *trns, struct u8_line *line, *u8_line_reserve (line, 0, 1, 1) = leader; if (trns->writer == NULL) - output_item_submit (text_item_create (TEXT_ITEM_LOG, - ds_cstr (&line->s) + 1, - NULL)); + output_log ("%s", ds_cstr (&line->s) + 1); else { size_t len = ds_length (&line->s); diff --git a/src/language/utilities/echo.c b/src/language/utilities/echo.c index 13fa721556..e1871a9737 100644 --- a/src/language/utilities/echo.c +++ b/src/language/utilities/echo.c @@ -35,8 +35,7 @@ cmd_echo (struct lexer *lexer, struct dataset *ds UNUSED) if (!lex_force_string (lexer)) return CMD_FAILURE; - output_submit (text_item_create (TEXT_ITEM_LOG, lex_tokcstr (lexer), - _("Echo"))); + output_log ("%s", lex_tokcstr (lexer)); lex_get (lexer); return CMD_SUCCESS; diff --git a/src/language/utilities/host.c b/src/language/utilities/host.c index e38dc7ab27..5273a8918b 100644 --- a/src/language/utilities/host.c +++ b/src/language/utilities/host.c @@ -38,7 +38,7 @@ #include "libpspp/str.h" #include "libpspp/string-array.h" #include "libpspp/temp-file.h" -#include "output/output-item.h" +#include "output/driver.h" #include "gl/error.h" #include "gl/intprops.h" @@ -261,8 +261,7 @@ run_command (const char *command, struct timespec timeout) if (end > output && end[-1] == '\n') end[-1] = '\0'; - output_item_submit (text_item_create_nocopy (TEXT_ITEM_LOG, output, - xstrdup (_("Host Output")))); + output_log ("%s", output); } free (locale_output); diff --git a/src/output/driver.c b/src/output/driver.c index 7c0bff8bf5..6dfebab854 100644 --- a/src/output/driver.c +++ b/src/output/driver.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -41,6 +42,7 @@ #include "gl/error.h" #include "gl/xalloc.h" #include "gl/xmemdup0.h" +#include "gl/xvasprintf.h" #include "gettext.h" #define _(msgid) gettext (msgid) @@ -321,6 +323,17 @@ output_set_title__ (struct output_engine *e, char **dst, const char *src) page_title, NULL)); } +void PRINTF_FORMAT (1, 2) +output_log (const char *format, ...) +{ + va_list args; + va_start (args, format); + char *s = xvasprintf (format, args); + va_end (args); + + output_submit (text_item_create_nocopy (TEXT_ITEM_LOG, s, NULL)); +} + void output_set_title (const char *title) { diff --git a/src/output/driver.h b/src/output/driver.h index 32c0f87c44..8c386cb065 100644 --- a/src/output/driver.h +++ b/src/output/driver.h @@ -19,6 +19,7 @@ #include #include +#include "libpspp/compiler.h" struct output_item; struct string_set; @@ -32,6 +33,8 @@ void output_engine_pop (void); void output_submit (struct output_item *); void output_flush (void); +void output_log (const char *, ...) PRINTF_FORMAT (1, 2); + void output_set_title (const char *); void output_set_subtitle (const char *); void output_set_filename (const char *); -- 2.30.2