Jason Edmeades : cmd.exe: Support PUSHD with wildcards.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Mar 8 07:17:07 CST 2007


Module: wine
Branch: master
Commit: e5a26bc24d5dc390ebcce99dd6ae677c1f10ee34
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e5a26bc24d5dc390ebcce99dd6ae677c1f10ee34

Author: Jason Edmeades <us at edmeades.me.uk>
Date:   Thu Mar  8 00:44:09 2007 +0000

cmd.exe: Support PUSHD with wildcards.

---

 programs/cmd/builtins.c |    9 ++++-----
 programs/cmd/wcmd.h     |    2 +-
 programs/cmd/wcmdmain.c |    2 +-
 3 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index 1880682..422042e 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -600,9 +600,8 @@ void WCMD_goto (void) {
  *	Push a directory onto the stack
  */
 
-void WCMD_pushd (void) {
+void WCMD_pushd (char *command) {
     struct env_stack *curdir;
-    BOOL   status;
     WCHAR *thisdir;
 
     curdir  = LocalAlloc (LMEM_FIXED, sizeof (struct env_stack));
@@ -615,9 +614,9 @@ void WCMD_pushd (void) {
     }
 
     GetCurrentDirectoryW (1024, thisdir);
-    status = SetCurrentDirectoryA (param1);
-    if (!status) {
-      WCMD_print_error ();
+    errorlevel = 0;
+    WCMD_setshow_default(command);
+    if (errorlevel) {
       LocalFree(curdir);
       LocalFree(thisdir);
       return;
diff --git a/programs/cmd/wcmd.h b/programs/cmd/wcmd.h
index af5b247..53f163c 100644
--- a/programs/cmd/wcmd.h
+++ b/programs/cmd/wcmd.h
@@ -55,7 +55,7 @@ void WCMD_pipe (char *command);
 void WCMD_popd (void);
 void WCMD_print_error (void);
 void WCMD_process_command (char *command);
-void WCMD_pushd (void);
+void WCMD_pushd (char *);
 int  WCMD_read_console (char *string, int str_len);
 void WCMD_remove_dir (char *command);
 void WCMD_rename (void);
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index 8fc23d6..1a093fa 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -640,7 +640,7 @@ void WCMD_process_command (char *command)
         WCMD_volume (0, p);
         break;
       case WCMD_PUSHD:
-        WCMD_pushd();
+        WCMD_pushd(p);
         break;
       case WCMD_POPD:
         WCMD_popd();




More information about the wine-cvs mailing list