https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d85d99167939036d3ef0797a2819743ff3e00bfa

commit d85d99167939036d3ef0797a2819743ff3e00bfa
Author:     Hermès Bélusca-Maïto <[email protected]>
AuthorDate: Wed May 27 16:43:55 2020 +0200
Commit:     Hermès Bélusca-Maïto <[email protected]>
CommitDate: Wed Aug 19 20:35:53 2020 +0200

    [CMD_ROSTEST] Sync batch.c with cmd_winetest' counterpart.
---
 modules/rostests/win32/cmd/batch.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/modules/rostests/win32/cmd/batch.c 
b/modules/rostests/win32/cmd/batch.c
index e6a77d95d77..10c30a1bbde 100644
--- a/modules/rostests/win32/cmd/batch.c
+++ b/modules/rostests/win32/cmd/batch.c
@@ -26,7 +26,7 @@
 static char workdir[MAX_PATH];
 static DWORD workdir_len;
 static char drive[2];
-static const DWORD drive_len = sizeof(drive)/sizeof(drive[0]);
+static const DWORD drive_len = ARRAY_SIZE(drive);
 static char path[MAX_PATH];
 static DWORD path_len;
 static char shortpath[MAX_PATH];
@@ -71,7 +71,11 @@ static const char* convert_input_data(const char *data, 
DWORD size, DWORD *new_s
     }
     *ptr = '\0';
 
+#ifdef __REACTOS__
     *new_size = lstrlenA(new_data);
+#else
+    *new_size = strlen(new_data);
+#endif
     return new_data;
 }
 
@@ -166,6 +170,7 @@ static const char *compare_line(const char *out_line, const 
char *out_end, const
     static const char path_cmd[]  = {'@','p','a','t','h','@'};
     static const char shortpath_cmd[]  = 
{'@','s','h','o','r','t','p','a','t','h','@'};
     static const char space_cmd[] = {'@','s','p','a','c','e','@'};
+    static const char spaces_cmd[] = {'@','s','p','a','c','e','s','@'};
     static const char tab_cmd[]   = {'@','t','a','b','@'};
     static const char or_broken_cmd[] = 
{'@','o','r','_','b','r','o','k','e','n','@'};
 
@@ -224,6 +229,15 @@ static const char *compare_line(const char *out_line, 
const char *out_end, const
                 } else {
                     err = out_end;
                 }
+            }else if(exp_ptr+sizeof(spaces_cmd) <= exp_end
+                    && !memcmp(exp_ptr, spaces_cmd, sizeof(spaces_cmd))) {
+                exp_ptr += sizeof(spaces_cmd);
+                if(out_ptr < out_end && *out_ptr == ' ') {
+                    while (out_ptr < out_end && *out_ptr == ' ') out_ptr++;
+                    continue;
+                } else {
+                    err = out_end;
+                }
             }else if(exp_ptr+sizeof(tab_cmd) <= exp_end
                     && !memcmp(exp_ptr, tab_cmd, sizeof(tab_cmd))) {
                 exp_ptr += sizeof(tab_cmd);
@@ -251,10 +265,8 @@ static const char *compare_line(const char *out_line, 
const char *out_end, const
 
             while(exp_ptr+sizeof(or_broken_cmd) <= exp_end && memcmp(exp_ptr, 
or_broken_cmd, sizeof(or_broken_cmd)))
                 exp_ptr++;
-            if(!exp_ptr)
-                return err;
-
             exp_ptr += sizeof(or_broken_cmd);
+            if (exp_ptr > exp_end) return err;
             out_ptr = out_line;
             err = NULL;
             continue;
@@ -470,8 +482,7 @@ START_TEST(reactos)
     } else {
         path_len = 1; /* \ */
     }
-    shortpath_len = GetShortPathNameA(path, shortpath,
-                                      sizeof(shortpath)/sizeof(shortpath[0]));
+    shortpath_len = GetShortPathNameA(path, shortpath, ARRAY_SIZE(shortpath));
 
     argc = winetest_get_mainargs(&argv);
     if(argc > 2)

Reply via email to