[PATCH 3/6] attrib: Display filenames with absolute path as in native.

Christian Costa titan.costa at gmail.com
Mon Mar 26 15:05:53 CDT 2012


---
 programs/attrib/attrib.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/programs/attrib/attrib.c b/programs/attrib/attrib.c
index 865f59c..19d7817 100644
--- a/programs/attrib/attrib.c
+++ b/programs/attrib/attrib.c
@@ -129,10 +129,12 @@ int wmain(int argc, WCHAR *argv[])
     WIN32_FIND_DATAW fd;
     WCHAR flags[] = {' ',' ',' ',' ',' ',' ',' ',' ','\0'};
     WCHAR name[128];
+    WCHAR curdir[128];
     DWORD attrib_set = 0;
     DWORD attrib_clear = 0;
     const WCHAR help_option[] = {'/','?','\0'};
-    const WCHAR slashStarW[]  = {'\\','*','\0'};
+    const WCHAR slash[]  = {'\\','\0'};
+    const WCHAR start[]  = {'*','\0'};
     int i = 1;
 
     if ((argc >= 2) && !strcmpW(argv[1], help_option)) {
@@ -141,8 +143,10 @@ int wmain(int argc, WCHAR *argv[])
     }
 
     /* By default all files from current directory are taken into account */
-    GetCurrentDirectoryW(sizeof(name)/sizeof(WCHAR), name);
-    strcatW (name, slashStarW);
+    GetCurrentDirectoryW(sizeof(curdir)/sizeof(WCHAR), curdir);
+    strcatW(curdir, slash);
+    strcpyW(name, curdir);
+    strcatW(name, start);
 
     while (i < argc) {
         WCHAR *param = argv[i++];
@@ -212,7 +216,9 @@ int wmain(int argc, WCHAR *argv[])
                 if (fd.dwFileAttributes & FILE_ATTRIBUTE_COMPRESSED) {
                     flags[5] = 'C';
                 }
-                ATTRIB_wprintf(fmt, flags, fd.cFileName);
+                strcpyW(name, curdir);
+                strcatW(name, fd.cFileName);
+                ATTRIB_wprintf(fmt, flags, name);
                 for (count=0; count < 8; count++) flags[count] = ' ';
             }
         } while (FindNextFileW(hff, &fd) != 0);




More information about the wine-patches mailing list