From 2331dc47df5d45733218e418163f7f5ae99a6324 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 24 Dec 2018 20:51:53 -0800 Subject: [PATCH] message: Refactor initializations for struct msg throughout the tree. A new member will be added in an upcoming commit, and the new style of initialization ensures that the member will always be initialized --- src/data/pc+-file-reader.c | 16 +++------ src/data/por-file-reader.c | 30 ++++++----------- src/data/sys-file-reader.c | 15 +++------ src/language/data-io/data-parser.c | 22 ++++++------- src/language/lexer/lexer.c | 19 +++++------ src/libpspp/message.c | 52 +++++++++++------------------- 6 files changed, 60 insertions(+), 94 deletions(-) diff --git a/src/data/pc+-file-reader.c b/src/data/pc+-file-reader.c index 979be50c47..d9904ef430 100644 --- a/src/data/pc+-file-reader.c +++ b/src/data/pc+-file-reader.c @@ -1152,9 +1152,7 @@ static void pcp_msg (struct pcp_reader *r, off_t offset, int class, const char *format, va_list args) { - struct msg m; struct string text; - ds_init_empty (&text); if (offset >= 0) ds_put_format (&text, _("`%s' near offset 0x%llx: "), @@ -1163,15 +1161,11 @@ pcp_msg (struct pcp_reader *r, off_t offset, ds_put_format (&text, _("`%s': "), fh_get_file_name (r->fh)); ds_put_vformat (&text, format, args); - m.category = msg_class_to_category (class); - m.severity = msg_class_to_severity (class); - m.file_name = NULL; - m.first_line = 0; - m.last_line = 0; - m.first_column = 0; - m.last_column = 0; - m.text = ds_cstr (&text); - + struct msg m = { + .category = msg_class_to_category (class), + .severity = msg_class_to_severity (class), + .text = ds_cstr (&text), + }; msg_emit (&m); } diff --git a/src/data/por-file-reader.c b/src/data/por-file-reader.c index 8745cfc68f..1dcbeac71c 100644 --- a/src/data/por-file-reader.c +++ b/src/data/por-file-reader.c @@ -103,7 +103,6 @@ error (struct pfm_reader *r, const char *msg,...) static void error (struct pfm_reader *r, const char *msg, ...) { - struct msg m; struct string text; va_list args; @@ -114,15 +113,11 @@ error (struct pfm_reader *r, const char *msg, ...) ds_put_vformat (&text, msg, args); va_end (args); - m.category = MSG_C_GENERAL; - m.severity = MSG_S_ERROR; - m.file_name = NULL; - m.first_line = 0; - m.last_line = 0; - m.first_column = 0; - m.last_column = 0; - m.text = ds_cstr (&text); - + struct msg m = { + .category = MSG_C_GENERAL, + .severity = MSG_S_ERROR, + .text = ds_cstr (&text), + }; msg_emit (&m); r->ok = false; @@ -135,7 +130,6 @@ error (struct pfm_reader *r, const char *msg, ...) static void warning (struct pfm_reader *r, const char *msg, ...) { - struct msg m; struct string text; va_list args; @@ -146,15 +140,11 @@ warning (struct pfm_reader *r, const char *msg, ...) ds_put_vformat (&text, msg, args); va_end (args); - m.category = MSG_C_GENERAL; - m.severity = MSG_S_WARNING; - m.file_name = NULL; - m.first_line = 0; - m.last_line = 0; - m.first_column = 0; - m.last_column = 0; - m.text = ds_cstr (&text); - + struct msg m = { + .category = MSG_C_GENERAL, + .severity = MSG_S_WARNING, + .text = ds_cstr (&text), + }; msg_emit (&m); } diff --git a/src/data/sys-file-reader.c b/src/data/sys-file-reader.c index 20ecf048f9..b4923230cf 100644 --- a/src/data/sys-file-reader.c +++ b/src/data/sys-file-reader.c @@ -3193,7 +3193,6 @@ static void sys_msg (struct sfm_reader *r, off_t offset, int class, const char *format, va_list args) { - struct msg m; struct string text; ds_init_empty (&text); @@ -3204,15 +3203,11 @@ sys_msg (struct sfm_reader *r, off_t offset, ds_put_format (&text, _("`%s': "), fh_get_file_name (r->fh)); ds_put_vformat (&text, format, args); - m.category = msg_class_to_category (class); - m.severity = msg_class_to_severity (class); - m.file_name = NULL; - m.first_line = 0; - m.last_line = 0; - m.first_column = 0; - m.last_column = 0; - m.text = ds_cstr (&text); - + struct msg m = { + .category = msg_class_to_category (class), + .severity = msg_class_to_severity (class), + .text = ds_cstr (&text), + }; msg_emit (&m); } diff --git a/src/language/data-io/data-parser.c b/src/language/data-io/data-parser.c index 63f9f0eda6..1d8a493e0d 100644 --- a/src/language/data-io/data-parser.c +++ b/src/language/data-io/data-parser.c @@ -493,17 +493,17 @@ static void parse_error (const struct dfm_reader *reader, const struct field *field, int first_column, int last_column, char *error) { - struct msg m; - - m.category = MSG_C_DATA; - m.severity = MSG_S_WARNING; - m.file_name = CONST_CAST (char *, dfm_get_file_name (reader)); - m.first_line = dfm_get_line_number (reader); - m.last_line = m.first_line + 1; - m.first_column = first_column; - m.last_column = last_column; - m.text = xasprintf (_("Data for variable %s is not valid as format %s: %s"), - field->name, fmt_name (field->format.type), error); + struct msg m = { + .category = MSG_C_DATA, + .severity = MSG_S_WARNING, + .file_name = CONST_CAST (char *, dfm_get_file_name (reader)), + .first_line = dfm_get_line_number (reader), + .last_line = m.first_line + 1, + .first_column = first_column, + .last_column = last_column, + .text = xasprintf (_("Data for variable %s is not valid as format %s: %s"), + field->name, fmt_name (field->format.type), error), + }; msg_emit (&m); free (error); diff --git a/src/language/lexer/lexer.c b/src/language/lexer/lexer.c index 36680f52bc..2bcb18c328 100644 --- a/src/language/lexer/lexer.c +++ b/src/language/lexer/lexer.c @@ -1257,7 +1257,6 @@ lex_source_error_valist (struct lex_source *src, int n0, int n1, { const struct lex_token *token; struct string s; - struct msg m; ds_init_empty (&s); @@ -1285,14 +1284,16 @@ lex_source_error_valist (struct lex_source *src, int n0, int n1, } ds_put_byte (&s, '.'); - m.category = MSG_C_SYNTAX; - m.severity = MSG_S_ERROR; - m.file_name = src->reader->file_name; - m.first_line = lex_source_get_first_line_number (src, n0); - m.last_line = lex_source_get_last_line_number (src, n1); - m.first_column = lex_source_get_first_column (src, n0); - m.last_column = lex_source_get_last_column (src, n1); - m.text = ds_steal_cstr (&s); + struct msg m = { + .category = MSG_C_SYNTAX, + .severity = MSG_S_ERROR, + .file_name = src->reader->file_name, + .first_line = lex_source_get_first_line_number (src, n0), + .last_line = lex_source_get_last_line_number (src, n1), + .first_column = lex_source_get_first_column (src, n0), + .last_column = lex_source_get_last_column (src, n1), + .text = ds_steal_cstr (&s), + }; msg_emit (&m); } diff --git a/src/libpspp/message.c b/src/libpspp/message.c index b4214920f4..356fcf9b1f 100644 --- a/src/libpspp/message.c +++ b/src/libpspp/message.c @@ -52,14 +52,11 @@ static int messages_disabled; void vmsg (enum msg_class class, const char *format, va_list args) { - struct msg m; - - m.category = msg_class_to_category (class); - m.severity = msg_class_to_severity (class); - m.text = xvasprintf (format, args); - m.file_name = NULL; - m.first_line = m.last_line = 0; - m.first_column = m.last_column = 0; + struct msg m = { + .category = msg_class_to_category (class), + .severity = msg_class_to_severity (class), + .text = xvasprintf (format, args), + }; msg_emit (&m); } @@ -81,23 +78,19 @@ void msg_error (int errnum, const char *format, ...) { va_list args; - char *e; - struct msg m; - - m.category = MSG_C_GENERAL; - m.severity = MSG_S_ERROR; - va_start (args, format); - e = xvasprintf (format, args); + char *e = xvasprintf (format, args); va_end (args); - m.file_name = NULL; - m.first_line = m.last_line = 0; - m.first_column = m.last_column = 0; - m.text = xasprintf (_("%s: %s"), e, strerror (errnum)); - free (e); - + struct msg m = { + .category = MSG_C_GENERAL, + .severity = MSG_S_ERROR, + .file_name = NULL, + .text = xasprintf (_("%s: %s"), e, strerror (errnum)), + }; msg_emit (&m); + + free (e); } @@ -294,18 +287,11 @@ ship_message (struct msg *m) static void submit_note (char *s) { - struct msg m; - - m.category = MSG_C_GENERAL; - m.severity = MSG_S_NOTE; - m.file_name = NULL; - m.first_line = 0; - m.last_line = 0; - m.first_column = 0; - m.last_column = 0; - m.text = s; - m.shipped = false; - + struct msg m = { + .category = MSG_C_GENERAL, + .severity = MSG_S_NOTE, + .text = s, + }; ship_message (&m); free (s); -- 2.30.2