X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Fvalue-parser.c;h=4ef092de3a3e6c884e3c236e2d159b19023eed01;hb=55e6e7ba37a30570f5a31e2d78c22dfa7b61a36f;hp=269d24bca48d04b13da5c7a054b08fcdb281d4fd;hpb=3da49359c52cb783db907cc197847bbd5e721c97;p=pspp-builds.git diff --git a/src/language/lexer/value-parser.c b/src/language/lexer/value-parser.c index 269d24bc..4ef092de 100644 --- a/src/language/lexer/value-parser.c +++ b/src/language/lexer/value-parser.c @@ -106,7 +106,7 @@ parse_number (struct lexer *lexer, double *x, const enum fmt_type *format) assert (fmt_get_category (*format) != FMT_CAT_STRING); - if (!data_in_msg (ds_ss (lex_tokstr (lexer)), LEGACY_NATIVE, + if (!data_in_msg (lex_tokss (lexer), LEGACY_NATIVE, *format, &v, 0, NULL)) return false; @@ -143,7 +143,12 @@ parse_value (struct lexer *lexer, union value *v, int width) } else if (lex_force_string (lexer)) { - const char *s = ds_cstr (lex_tokstr (lexer)); + const char *s; + + if (!lex_force_string (lexer)) + return false; + + s = lex_tokcstr (lexer); value_copy_str_rpad (v, width, CHAR_CAST_BUG (const uint8_t *, s), ' '); } else