X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Ferror.c;h=e062f5ccf428febb1f24d5a993b0264dbe8d675d;hb=cd7b08ad5e6bbec75e778acf008f84e1eb548154;hp=1065fbd7ed93e7f20aa4216bf1fa16d5cea75809;hpb=205ac3afa4c2b19c85819d8695abf3975bb11807;p=pspp-builds.git diff --git a/src/error.c b/src/error.c index 1065fbd7..e062f5cc 100644 --- a/src/error.c +++ b/src/error.c @@ -81,7 +81,7 @@ msg (int class, const char *format, ...) { struct string buf; - ds_init (NULL, &buf, 1024); + ds_init (&buf, 1024); /* Format the message into BUF. */ { @@ -223,9 +223,13 @@ err_hcf (int success) { terminating = 1; + lex_done(); getl_uninitialize (); + free(file_loc); outp_done (); + done_glob(); + exit (success ? EXIT_SUCCESS : EXIT_FAILURE); } @@ -283,13 +287,13 @@ err_vmsg (const struct error *e) assert (class >= 0 && class < ERR_CLASS_COUNT); assert (e->text != NULL); - ds_init (NULL, &msg, 64); + ds_init (&msg, 64); if (e->where.filename && (error_classes[class].flags & ERR_WITH_FILE)) { ds_printf (&msg, "%s:", e->where.filename); if (e->where.line_number != -1) ds_printf (&msg, "%d:", e->where.line_number); - ds_putchar (&msg, ' '); + ds_putc (&msg, ' '); } ds_printf (&msg, "%s: ", gettext (error_classes[class].banner)); @@ -304,9 +308,9 @@ err_vmsg (const struct error *e) ds_printf (&msg, "%s: ", cur_proc); if (e->title) - ds_concat (&msg, e->title); + ds_puts (&msg, e->title); - ds_concat (&msg, e->text); + ds_puts (&msg, e->text); /* FIXME: Check set_messages and set_errors to determine where to send errors and messages. @@ -314,7 +318,7 @@ err_vmsg (const struct error *e) Please note that this is not trivial. We have to avoid an infinite loop in reporting errors that originate in the output section. */ - dump_message (ds_value (&msg), 8, puts_stdout, get_viewwidth()); + dump_message (ds_c_str (&msg), 8, puts_stdout, get_viewwidth()); ds_destroy (&msg); @@ -559,7 +563,7 @@ request_bug_report_and_abort(const char *msg ) void err_assert_fail(const char *expr, const char *file, int line) { - const char msg[256]; + char msg[256]; snprintf(msg,256,"Assertion failed: %s:%d; (%s)",file,line,expr); request_bug_report_and_abort( msg ); }