X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ferror.c;h=e062f5ccf428febb1f24d5a993b0264dbe8d675d;hb=d8528fd919d1cebe194121ba267faa0f4ee48c94;hp=7a7e997d9c397717cafc8f3110cf9665d59cb548;hpb=97d6c6f6b1922621ca013668eba9a9a9f71d60fe;p=pspp diff --git a/src/error.c b/src/error.c index 7a7e997d9c..e062f5ccf4 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);