[ros-diffs] [turner] 22683: expand %* to batch file params. bug: #1629

turner at svn.reactos.org turner at svn.reactos.org
Thu Jun 29 04:48:53 CEST 2006


Author: turner
Date: Thu Jun 29 06:48:52 2006
New Revision: 22683

URL: http://svn.reactos.org/svn/reactos?rev=22683&view=rev
Log:
expand %* to batch file params.
bug: #1629

Modified:
    trunk/reactos/base/shell/cmd/batch.c
    trunk/reactos/base/shell/cmd/batch.h
    trunk/reactos/base/shell/cmd/cmd.c

Modified: trunk/reactos/base/shell/cmd/batch.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/batch.c?rev=22683&r1=22682&r2=22683&view=diff
==============================================================================
--- trunk/reactos/base/shell/cmd/batch.c (original)
+++ trunk/reactos/base/shell/cmd/batch.c Thu Jun 29 06:48:52 2006
@@ -272,6 +272,11 @@
 	bc->forvar = _T('\0');
 	bc->forproto = NULL;
 	bc->params = BatchParams (firstword, param);
+    //
+    // Allocate enough memory to hold the params and copy them over without modifications
+    //
+    bc->raw_params = malloc(_tcslen(param));
+    _tcscpy(bc->raw_params,param);
 
 #ifdef _DEBUG
 	DebugPrintf (_T("Batch: returns TRUE\n"));

Modified: trunk/reactos/base/shell/cmd/batch.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/batch.h?rev=22683&r1=22682&r2=22683&view=diff
==============================================================================
--- trunk/reactos/base/shell/cmd/batch.h (original)
+++ trunk/reactos/base/shell/cmd/batch.h Thu Jun 29 06:48:52 2006
@@ -15,6 +15,7 @@
 	HANDLE hBatchFile;
 	LPTSTR forproto;
 	LPTSTR params;
+    LPTSTR raw_params;  /* Holds the raw params given by the input */
 	INT    shiftlevel;
 	BOOL   bEcho;        /* Preserve echo flag across batch calls */
 	HANDLE hFind;        /* Preserve find handle when doing a for */

Modified: trunk/reactos/base/shell/cmd/cmd.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/cmd.c?rev=22683&r1=22682&r2=22683&view=diff
==============================================================================
--- trunk/reactos/base/shell/cmd/cmd.c (original)
+++ trunk/reactos/base/shell/cmd/cmd.c Thu Jun 29 06:48:52 2006
@@ -1274,6 +1274,32 @@
 		if ( varNameLen )
 			*varNameLen = 2;
 		return ret;
+   
+    case _T('*'):
+        if(bc == NULL)
+        {
+            //
+            // No batch file to see here, move along
+            //
+            if ( !GrowIfNecessary ( 3, &ret, &retlen ) )
+                return NULL;
+            ret[0] = _T('%');
+            ret[1] = _T('*');
+            ret[2] = 0;
+            if ( varNameLen )
+                *varNameLen = 2;
+            return ret;
+        }
+
+        //
+        // Copy over the raw params(not including the batch file name
+        //
+        if ( !GrowIfNecessary ( _tcslen(bc->raw_params)+1, &ret, &retlen ) )
+            return NULL;
+        if ( varNameLen )
+            *varNameLen = 2;
+        _tcscpy ( ret, bc->raw_params );
+        return ret;
 
 	case _T('%'):
 		if ( !GrowIfNecessary ( 2, &ret, &retlen ) )




More information about the Ros-diffs mailing list