From e7dc3f1a35d5ac473aff8cbc2fc5454e38be0bc9 Mon Sep 17 00:00:00 2001
From: Jason Edmeades <us@edmeades.me.uk>
Date: Tue, 20 Feb 2007 18:02:29 +0000
Subject: [PATCH] cmd.exe: Add support for %*.

---
 programs/cmd/batch.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/programs/cmd/batch.c b/programs/cmd/batch.c
index ec274895721..52a773b4b4c 100755
--- a/programs/cmd/batch.c
+++ b/programs/cmd/batch.c
@@ -155,6 +155,14 @@ int i;
       strcpy (p, t);
       strcat (p, s);
       free (s);
+    } else if (*(p+1)=='*') {
+      char *startOfParms = NULL;
+      s = strdup (p+2);
+      t = WCMD_parameter (context -> command, 1, &startOfParms);
+      if (startOfParms != NULL) strcpy (p, startOfParms);
+      else *p = 0x00;
+      strcat (p, s);
+      free (s);
     } else {
       p++;
     }
@@ -245,7 +253,8 @@ char *p;
       case '\0':
         return param;
       default:
-        if (where != NULL) *where = s;
+        /* Only return where if it is for the right parameter */
+        if (where != NULL && i==n) *where = s;
 	while ((*s != '\0') && (*s != ' ')) {
 	  *p++ = *s++;
 	}
-- 
GitLab