'if exists' takes a parameter which can be directory, directory/, directory/. directory\ or directory. for example, and should equate to true if the directory exists. The syntax directory\ is explicitly rejected by FindFirstFile and hence was not working - look for this specific case, and if found append a '.'.
Follow-up commit of bc9d68bcbee5c9d4f4582f766a4f552870385361
From: Anonymous Maarten anonymous.maarten@gmail.com
'if exists' takes a parameter which can be directory, directory/, directory/. directory\ or directory. for example, and should equate to true if the directory exists. The syntax directory\ is explicitly rejected by FindFirstFile and hence was not working - look for this specific case, and if found append a '.'.
Follow-up commit of bc9d68bcbee5c9d4f4582f766a4f552870385361
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55130#add_comment --- programs/cmd/builtins.c | 4 ++-- programs/cmd/tests/test_builtins.cmd | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c index 3b2a192c828..badf41c17f6 100644 --- a/programs/cmd/builtins.c +++ b/programs/cmd/builtins.c @@ -2844,8 +2844,8 @@ int evaluate_if_condition(WCHAR *p, WCHAR **command, int *test, int *negate) int len = lstrlenW(param);
if (!len) goto syntax_err; - /* FindFirstFile does not like a directory path ending in '', append a '.' */ - if (param[len-1] == '\') lstrcatW(param, L"."); + /* FindFirstFile does not like a directory path ending in '' or '/', append a '.' */ + if (param[len-1] == '\' || param[len-1] == '/') lstrcatW(param, L".");
hff = FindFirstFileW(param, &fd); *test = (hff != INVALID_HANDLE_VALUE ); diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd index fe7bedb1362..eaee2900bc9 100644 --- a/programs/cmd/tests/test_builtins.cmd +++ b/programs/cmd/tests/test_builtins.cmd @@ -1138,9 +1138,9 @@ if exist subdir ( echo ERROR exist subdir not working ) if exist subdir. ( - echo exist subdir with . ok + echo exist subdir with . ok ) else ( - echo ERROR exist subdir with . not working + echo ERROR exist subdir with . not working ) if exist subdir\ ( echo exist subdir with \ ok @@ -1152,6 +1152,21 @@ if exist "subdir" ( ) else ( echo ERROR exist subdir with \ and quotes not working ) +if exist subdir/. ( + echo exist subdir with /. ok +) else ( + echo ERROR exist subdir with /. not working +) +if exist subdir/ ( + echo exist subdir with / ok +) else ( + echo ERROR exist subdir with / not working +) +if exist "subdir/" ( + echo exist subdir with / and quotes ok +) else ( + echo ERROR exist subdir with / and quotes not working +) del foo subdir\bar rd subdir
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=134146
Your paranoid android.
=== w7u_2qxl (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w7u_adm (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w7u_el (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w8 (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w8adm (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w864 (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w1064v1507 (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w1064v1809 (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w1064_tsign (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w10pro64 (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w11pro64 (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w7pro64 (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w864 (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w1064v1507 (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w1064v1809 (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w1064_2qxl (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w1064_adm (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w1064_tsign (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w10pro64 (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w10pro64_en_AE_u8 (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w10pro64_ar (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w10pro64_ja (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w10pro64_zh_CN (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== w11pro64_amd (64 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== debian11 (32 bit report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== debian11 (32 bit ar:MA report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== debian11 (32 bit de report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== debian11 (32 bit fr report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== debian11 (32 bit he:IL report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== debian11 (32 bit hi:IN report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== debian11 (32 bit ja:JP report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== debian11 (32 bit zh:CN report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== debian11b (32 bit WoW report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
=== debian11b (64 bit WoW report) ===
cmd.exe: batch.c:321: Test failed: unexpected char 0x5c position 18 in line 824 (got 'exist subdir with . ok', wanted 'exist subdir with . ok') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 827 (got 'exist subdir with /. ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 828 (got 'exist subdir with / ok', wanted '------ for numbers') batch.c:321: Test failed: unexpected char 0x65 position 0 in line 829 (got 'exist subdir with / and quotes ok', wanted '------ for numbers')
You'll need to add your full name to both your GitLab profile and your commit in accordance with the [contributing guidelines.](https://wiki.winehq.org/Submitting_Patches#Wine_patch_submission_guidelines).