X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fdata-in.c;h=480d335a9c086b007f01b0a9efcde1b516e2bf0e;hb=638a86001fe7a237bd6c19a181d796305290d72a;hp=33e369f971da8751f78e29e76f23d230e6e0227d;hpb=8f04b0ced35a66cfdebefbcb53c81979add36ca3;p=pspp diff --git a/src/data/data-in.c b/src/data/data-in.c index 33e369f971..480d335a9c 100644 --- a/src/data/data-in.c +++ b/src/data/data-in.c @@ -119,6 +119,7 @@ data_in (struct substring input, const char *encoding, struct data_in i; + char *s = NULL; bool ok; assert ((width != 0) == fmt_is_string (format)); @@ -146,7 +147,7 @@ data_in (struct substring input, const char *encoding, else { const char *dest_encoding; - char *s = NULL; + if ( dict == NULL) { assert (0 == (fmt_get_category (format) & (FMT_CAT_BINARY | FMT_CAT_STRING))); @@ -156,15 +157,14 @@ data_in (struct substring input, const char *encoding, dest_encoding = dict_get_encoding (dict); s = recode_string (dest_encoding, i.src_enc, ss_data (input), ss_length (input)); - ss_alloc_uninit (&i.input, strlen (s)); - memcpy (ss_data (i.input), s, ss_length (input)); - free (s); + i.input = ss_cstr (s); } ok = handlers[i.format] (&i); if (!ok) default_result (&i); + free (s); return ok; } @@ -873,7 +873,7 @@ parse_trailer (struct data_in *i) if (ss_is_empty (i->input)) return true; - data_warning (i, _("Trailing garbage \"%.*s\" following date."), + data_warning (i, _("Trailing garbage `%.*s' following date."), (int) ss_length (i->input), ss_data (i->input)); return false; } @@ -1199,9 +1199,11 @@ vdata_warning (const struct data_in *i, const char *format, va_list args) ds_put_format (&text, _("%s field) "), fmt_name (i->format)); ds_put_vformat (&text, format, args); - m.category = MSG_DATA; - m.severity = MSG_WARNING; + m.category = MSG_C_DATA; + m.severity = MSG_S_WARNING; m.text = ds_cstr (&text); + m.where.file_name = NULL; + m.where.line_number = 0; msg_emit (&m); }