mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-26 09:30:24 +00:00
LibC: Do not include suppressed assignments in scanf return value
This commit is contained in:
parent
7b0f3b6811
commit
31079a56d7
Notes:
sideshowbarker
2024-07-17 21:16:31 +09:00
Author: https://github.com/rouseabout 🔰 Commit: https://github.com/SerenityOS/serenity/commit/31079a56d7 Pull-request: https://github.com/SerenityOS/serenity/pull/12570 Reviewed-by: https://github.com/TSultanov
2 changed files with 11 additions and 10 deletions
|
@ -178,6 +178,7 @@ const TestSuite test_suites[] {
|
|||
{ "%llu", "9223372036854775810", 1, 1, { unsignedlonglongarg0 }, { to_value_t(9223372036854775810ULL) } },
|
||||
{ "%n", "", 0, 1, { intarg0 }, { to_value_t(0) } },
|
||||
{ "%d %n", "1 a", 1, 2, { intarg0, intarg1 }, { to_value_t(1), to_value_t(2) } },
|
||||
{ "%*d", " 42", 0, 0, {}, {} },
|
||||
};
|
||||
|
||||
bool g_any_failed = false;
|
||||
|
|
|
@ -555,61 +555,61 @@ extern "C" int vsscanf(const char* input, const char* format, va_list ap)
|
|||
case ConversionSpecifier::Decimal:
|
||||
if (!ReadElement<int, ReadKind::Normal> {}(length_modifier, input_lexer, ap_or_null))
|
||||
format_lexer.consume_all();
|
||||
else
|
||||
else if (!suppress_assignment)
|
||||
++elements_matched;
|
||||
break;
|
||||
case ConversionSpecifier::Integer:
|
||||
if (!ReadElement<int, ReadKind::Infer> {}(length_modifier, input_lexer, ap_or_null))
|
||||
format_lexer.consume_all();
|
||||
else
|
||||
else if (!suppress_assignment)
|
||||
++elements_matched;
|
||||
break;
|
||||
case ConversionSpecifier::Octal:
|
||||
if (!ReadElement<unsigned, ReadKind::Octal> {}(length_modifier, input_lexer, ap_or_null))
|
||||
format_lexer.consume_all();
|
||||
else
|
||||
else if (!suppress_assignment)
|
||||
++elements_matched;
|
||||
break;
|
||||
case ConversionSpecifier::Unsigned:
|
||||
if (!ReadElement<unsigned, ReadKind::Normal> {}(length_modifier, input_lexer, ap_or_null))
|
||||
format_lexer.consume_all();
|
||||
else
|
||||
else if (!suppress_assignment)
|
||||
++elements_matched;
|
||||
break;
|
||||
case ConversionSpecifier::Hex:
|
||||
if (!ReadElement<unsigned, ReadKind::Hex> {}(length_modifier, input_lexer, ap_or_null))
|
||||
format_lexer.consume_all();
|
||||
else
|
||||
else if (!suppress_assignment)
|
||||
++elements_matched;
|
||||
break;
|
||||
case ConversionSpecifier::Floating:
|
||||
if (!ReadElement<float, ReadKind::Normal> {}(length_modifier, input_lexer, ap_or_null))
|
||||
format_lexer.consume_all();
|
||||
else
|
||||
else if (!suppress_assignment)
|
||||
++elements_matched;
|
||||
break;
|
||||
case ConversionSpecifier::String:
|
||||
if (!ReadElement<char*, ReadKind::Normal> {}(length_modifier, input_lexer, ap_or_null))
|
||||
format_lexer.consume_all();
|
||||
else
|
||||
else if (!suppress_assignment)
|
||||
++elements_matched;
|
||||
break;
|
||||
case ConversionSpecifier::UseScanList:
|
||||
if (!ReadElement<char*, ReadKind::Normal> { scanlist, invert_scanlist }(length_modifier, input_lexer, ap_or_null))
|
||||
format_lexer.consume_all();
|
||||
else
|
||||
else if (!suppress_assignment)
|
||||
++elements_matched;
|
||||
break;
|
||||
case ConversionSpecifier::Character:
|
||||
if (!ReadElement<char, ReadKind::Normal> {}(length_modifier, input_lexer, ap_or_null))
|
||||
format_lexer.consume_all();
|
||||
else
|
||||
else if (!suppress_assignment)
|
||||
++elements_matched;
|
||||
break;
|
||||
case ConversionSpecifier::Pointer:
|
||||
if (!ReadElement<void*, ReadKind::Normal> {}(length_modifier, input_lexer, ap_or_null))
|
||||
format_lexer.consume_all();
|
||||
else
|
||||
else if (!suppress_assignment)
|
||||
++elements_matched;
|
||||
break;
|
||||
case ConversionSpecifier::OutputNumberOfBytes: {
|
||||
|
|
Loading…
Reference in a new issue