X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fterminal%2Fmsg-ui.c;h=adb14b9bc09037b09c26ed6483ee553ebabc08cb;hb=f5c108becd49d78f4898cab11352291f5689d24e;hp=7cb652c021df77b3b42fe3ab70de9eeb4d7e582a;hpb=2d4dd90964061defa92972156ae2a12323708519;p=pspp-builds.git diff --git a/src/ui/terminal/msg-ui.c b/src/ui/terminal/msg-ui.c index 7cb652c0..adb14b9b 100644 --- a/src/ui/terminal/msg-ui.c +++ b/src/ui/terminal/msg-ui.c @@ -1,6 +1,5 @@ /* PSPP - computes sample statistics. Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc. - Written by Ben Pfaff . This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -21,7 +20,6 @@ #include "msg-ui.h" -#include "exit.h" #include "linebreak.h" #include @@ -31,7 +29,7 @@ #include #include #include - +#include #include "gettext.h" #define _(msgid) gettext (msgid) @@ -46,48 +44,48 @@ static void handle_msg (const struct msg *); static FILE *msg_file ; -void +void msg_ui_set_error_file (const char *filename) { error_file = filename; } void -msg_ui_init (void) +msg_ui_init (struct source_stream *ss) { msg_file = stdout; - if ( error_file ) + if ( error_file ) { msg_file = fopen (error_file, "a"); - if ( NULL == msg_file ) + if ( NULL == msg_file ) { int err = errno; printf ( _("Cannot open %s (%s). " - "Writing errors to stdout instead.\n"), + "Writing errors to stdout instead.\n"), error_file, strerror(err) ); msg_file = stdout; } } - msg_init (handle_msg); + msg_init (ss, handle_msg); } void -msg_ui_done (void) +msg_ui_done (void) { msg_done (); - + msg_locator_done (); + if ( msg_file ) /* FIXME: do we really want to close stdout ?? */ fclose (msg_file); } - /* Checks whether we've had so many errors that it's time to quit processing this syntax file. */ void -check_msg_count (void) +check_msg_count (struct source_stream *ss) { - if (!getl_is_interactive ()) + if (!getl_is_interactive (ss)) { if (get_errorbreak () && error_count) msg (MN, _("Terminating execution of syntax file due to error.")); @@ -100,18 +98,18 @@ check_msg_count (void) else return; - getl_abort_noninteractive (); + getl_abort_noninteractive (ss); } } void -reset_msg_count (void) +reset_msg_count (void) { error_count = warning_count = 0; } bool -any_errors (void) +any_errors (void) { return error_count > 0; } @@ -123,26 +121,26 @@ static void dump_line (int line_indent, const char *line, size_t length, static void handle_msg (const struct msg *m) { - struct category + struct category { bool show_command_name; /* Show command name with error? */ bool show_file_location; /* Show syntax file location? */ }; - static const struct category categories[] = + static const struct category categories[] = { {false, false}, /* MSG_GENERAL. */ {true, true}, /* MSG_SYNTAX. */ {false, true}, /* MSG_DATA. */ }; - struct severity + struct severity { const char *name; /* How to identify this severity. */ int *count; /* Number of msgs with this severity so far. */ }; - - static struct severity severities[] = + + static struct severity severities[] = { {N_("error"), &error_count}, /* MSG_ERROR. */ {N_("warning"), &warning_count}, /* MSG_WARNING. */ @@ -163,10 +161,10 @@ handle_msg (const struct msg *m) if (severity->name != NULL) ds_put_format (&string, "%s: ", gettext (severity->name)); - + if (severity->count != NULL) ++*severity->count; - + if (category->show_command_name && msg_get_command_name () != NULL) ds_put_format (&string, "%s: ", msg_get_command_name ()); @@ -214,7 +212,7 @@ dump_message (char *msg, unsigned width, unsigned indent, FILE *stream) line_start = 0; line_indent = 0; for (i = 0; i < length; i++) - switch (breaks[i]) + switch (breaks[i]) { case UC_BREAK_POSSIBLE: /* Break before this character,