Implement PathGetShortPathA/W and change its prototype to match the
authorRolf Kalbermatter <rolf.kalbermatter@citeng.com>
Wed, 21 Jan 2004 23:51:57 +0000 (23:51 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 21 Jan 2004 23:51:57 +0000 (23:51 +0000)
documentation on MSDN.

dlls/shell32/shellpath.c
dlls/shell32/undocshell.h
include/shlobj.h

index a0516633ca65af5ea894099d8d81a4751097a84f..3cb349b52e6a94793b0068d7fe9ff0b81e1a1707 100644 (file)
@@ -236,29 +236,41 @@ void WINAPI PathRemoveExtensionAW(LPVOID lpszPath)
 /*************************************************************************
  * PathGetShortPathA [internal]
  */
-LPSTR WINAPI PathGetShortPathA(LPSTR lpszPath)
+static void PathGetShortPathA(LPSTR pszPath)
 {
-       FIXME("%s stub\n", lpszPath);
-       return NULL;
+       CHAR path[MAX_PATH];
+
+       TRACE("%s\n", pszPath);
+
+       if (GetShortPathNameA(pszPath, path, MAX_PATH))
+       {
+         lstrcpyA(pszPath, path);
+       }
 }
 
 /*************************************************************************
  * PathGetShortPathW [internal]
  */
-LPWSTR WINAPI PathGetShortPathW(LPWSTR lpszPath)
+static void PathGetShortPathW(LPWSTR pszPath)
 {
-       FIXME("%s stub\n", debugstr_w(lpszPath));
-       return NULL;
+       WCHAR path[MAX_PATH];
+
+       TRACE("%s\n", debugstr_w(pszPath));
+
+       if (GetShortPathNameW(pszPath, path, MAX_PATH))
+       {
+         lstrcpyW(pszPath, path);
+       }
 }
 
 /*************************************************************************
  * PathGetShortPath [SHELL32.92]
  */
-LPVOID WINAPI PathGetShortPathAW(LPVOID lpszPath)
+VOID WINAPI PathGetShortPathAW(LPVOID pszPath)
 {
        if(SHELL_OsIsUnicode())
-         return PathGetShortPathW(lpszPath);
-       return PathGetShortPathA(lpszPath);
+         PathGetShortPathW(pszPath);
+       PathGetShortPathA(pszPath);
 }
 
 /*************************************************************************
index d1af69715f9974f9829e0e15919a40c06b463872..86224edb2501309cbb531c2e29e53c9221139b75 100644 (file)
@@ -544,8 +544,6 @@ LPVOID WINAPI PathGetArgsAW(LPVOID lpszPath);
 
 BOOL WINAPI PathRemoveFileSpecAW(LPVOID lpszPath);
 
-LPVOID WINAPI PathGetShortPathAW(LPVOID lpszPath);
-
 void WINAPI PathRemoveBlanksAW(LPVOID lpszPath);
 
 VOID  WINAPI PathQuoteSpacesAW(LPVOID path);
index 4cbafd1e15a8079b2268103e771de9028af93572..f626a586c812db7c7c836a572cee271a0eaa39a7 100644 (file)
@@ -841,6 +841,11 @@ typedef struct _FILEGROUPDESCRIPTORW {
 DECL_WINELIB_TYPE_AW(FILEGROUPDESCRIPTOR)
 DECL_WINELIB_TYPE_AW(LPFILEGROUPDESCRIPTOR)
 
+/****************************************************************************
+ * Path Manipulation Routines
+ */
+VOID WINAPI PathGetShortPath(LPWSTR pszPath);
+
 #include <poppack.h>
 
 /*****************************************************************************