[PATCH 1/2] msvcrt/tests: Add scanf tests for leading and trailing dash in scanset.

Piotr Caban piotr.caban at gmail.com
Fri Oct 30 07:45:28 CDT 2020


Hi Will,

There are more problems with current implementation. The '-' character 
can be also added to the set if it's not defining a range even if it's 
not the first or last character. You can see it running following test:
sscanf("123", "%[1-2-4]s", buf);
This format will look for 1-2 range, '-' character and '4' (not for 1-2 
range and 2-4 range).

Thanks,
Piotr

On 10/30/20 1:23 PM, Will Mainio wrote:
> Hi Gijs,
> 
> I will reorder the patches and submit a v2. Thanks for the heads up.
> 
> Cheers
> 
> On Fri, Oct 30, 2020, at 1:00 PM, Gijs Vermeulen wrote:
>> Hi Will,
>>
>> You will either need to reorder your patches or add todo_wine to the ok()'s that are supposed to fail and remove them in your second patch.
>>
>> Kind regards,
>> Gijs
>>
>>
>> On Fri, Oct 30, 2020, 12:39 Will Mainio <will.mainio at fastmail.com> wrote:
>>> Signed-off-by: Will Mainio <will.mainio at fastmail.com>
>>> ---
>>>   dlls/msvcrt/tests/scanf.c | 8 ++++++++
>>>   1 file changed, 8 insertions(+)
>>>
>>> diff --git a/dlls/msvcrt/tests/scanf.c b/dlls/msvcrt/tests/scanf.c
>>> index 57d9cc0ba12..4b878e6d64e 100644
>>> --- a/dlls/msvcrt/tests/scanf.c
>>> +++ b/dlls/msvcrt/tests/scanf.c
>>> @@ -186,6 +186,14 @@ static void test_sscanf( void )
>>>       ok( ret == 1, "Error with format \"%s\"\n","%*[a-cd-dg-e]%c");
>>>       ok( buffer[0] == 'h', "Error with \"abcefgdh\" \"%c\"\n", buffer[0]);
>>>
>>> +    ret = p_sscanf("-123","%[-0-9]s",buffer);
>>> +    ok( ret == 1, "Error with format \"%s\"\n","%[-0-9]s");
>>> +    ok( strncmp("-123",buffer,strlen(buffer)) == 0, "Error with \"-123\" \"%s\"\n",buffer);
>>> +
>>> +    ret = p_sscanf("-321","%[0-9-]s",buffer);
>>> +    ok( ret == 1, "Error with format \"%s\"\n","%[0-9-]s");
>>> +    ok( strncmp("-321",buffer,strlen(buffer)) == 0, "Error with \"-321\" \"%s\"\n",buffer);
>>> +
>>>       buffer1[0] = 'b';
>>>       ret = p_sscanf("a","%s%s", buffer, buffer1);
>>>       ok( ret == 1, "expected 1, got %u\n", ret);
>>> -- 
>>> 2.28.0
>>>
>>>
> 




More information about the wine-devel mailing list