Fix winepath --long.

Francois Gouget fgouget at
Thu Nov 9 08:36:12 CST 2006

Update the usage to reflect the fact that --short and --long only work on paths to existing files and directories.

GetFullPathNameW() did what we wanted at one point but currently all 
it does is return short paths as is. GetLongPathNameW() behaves as 
expected now.

 programs/winepath/winepath.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/programs/winepath/winepath.c b/programs/winepath/winepath.c
index 9aef237..0fc4623 100644
--- a/programs/winepath/winepath.c
+++ b/programs/winepath/winepath.c
@@ -49,8 +49,10 @@ static int option(int shortopt, const WC
     "  -u, --unix    converts a Windows path to a Unix path\n"
     "  -w, --windows converts a Unix path to a long Windows path\n"
-    "  -l, --long    converts a short Windows path to the long format\n"
-    "  -s, --short   converts a long Windows path to the short format\n"
+    "  -l, --long    converts the short Windows path of an existing file or\n"
+    "                directory to the long format\n"
+    "  -s, --short   converts the long Windows path of an existing file or\n"
+    "                directory to the short format\n"
     "  -h, --help    output this help message and exit\n"
     "  -v, --version output version information and exit\n"
@@ -177,7 +179,7 @@ int wmain(int argc, const WCHAR *argv[])
         if (outputformats & LONGFORMAT) {
-            if (GetFullPathNameW(argv[i], MAX_PATH, dos_pathW, NULL))
+            if (GetLongPathNameW(argv[i], dos_pathW, MAX_PATH))
                 WideCharToMultiByte(CP_UNIXCP, 0, dos_pathW, -1, path, MAX_PATH, NULL, NULL);
             printf("%s\n", path);

More information about the wine-patches mailing list