Jason Edmeades : cmd.exe: Add dir /L support.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Mar 13 07:56:09 CDT 2007


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

Author: Jason Edmeades <us at edmeades.me.uk>
Date:   Tue Mar 13 01:08:19 2007 +0000

cmd.exe: Add dir /L support.

---

 programs/cmd/directory.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/programs/cmd/directory.c b/programs/cmd/directory.c
index ea652f9..32e69e9 100644
--- a/programs/cmd/directory.c
+++ b/programs/cmd/directory.c
@@ -39,7 +39,7 @@ extern int echo_mode;
 extern char quals[MAX_PATH], param1[MAX_PATH], param2[MAX_PATH];
 extern DWORD errorlevel;
 
-static int file_total, dir_total, recurse, wide, bare, max_width;
+static int file_total, dir_total, recurse, wide, bare, max_width, lower;
 static ULONGLONG byte_total;
 
 /*****************************************************************************
@@ -64,6 +64,7 @@ void WCMD_directory (void) {
   recurse = (strstr(quals, "/S") != NULL);
   wide    = (strstr(quals, "/W") != NULL);
   bare    = (strstr(quals, "/B") != NULL);
+  lower   = (strstr(quals, "/L") != NULL);
 
   /* Handle conflicting args and initialization */
   if (bare) wide = FALSE;
@@ -204,6 +205,13 @@ void WCMD_list_directory (char *search_path, int level) {
   }
 
   for (i=0; i<entry_count; i++) {
+
+    /* /L convers all names to lower case */
+    if (lower) {
+        char *p = (fd+i)->cFileName;
+        while ( (*p = tolower(*p)) ) ++p;
+    }
+
     FileTimeToLocalFileTime (&(fd+i)->ftLastWriteTime, &ft);
     FileTimeToSystemTime (&ft, &st);
     GetDateFormat (0, DATE_SHORTDATE, &st, NULL, datestring,




More information about the wine-cvs mailing list