Implement PathGetShortPathA/W and change its prototype to match the
documentation on MSDN.
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index a051663..3cb349b 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -236,29 +236,41 @@
/*************************************************************************
* 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);
}
/*************************************************************************
diff --git a/dlls/shell32/undocshell.h b/dlls/shell32/undocshell.h
index d1af697..86224ed 100644
--- a/dlls/shell32/undocshell.h
+++ b/dlls/shell32/undocshell.h
@@ -544,8 +544,6 @@
BOOL WINAPI PathRemoveFileSpecAW(LPVOID lpszPath);
-LPVOID WINAPI PathGetShortPathAW(LPVOID lpszPath);
-
void WINAPI PathRemoveBlanksAW(LPVOID lpszPath);
VOID WINAPI PathQuoteSpacesAW(LPVOID path);
diff --git a/include/shlobj.h b/include/shlobj.h
index 4cbafd1..f626a58 100644
--- a/include/shlobj.h
+++ b/include/shlobj.h
@@ -841,6 +841,11 @@
DECL_WINELIB_TYPE_AW(FILEGROUPDESCRIPTOR)
DECL_WINELIB_TYPE_AW(LPFILEGROUPDESCRIPTOR)
+/****************************************************************************
+ * Path Manipulation Routines
+ */
+VOID WINAPI PathGetShortPath(LPWSTR pszPath);
+
#include <poppack.h>
/*****************************************************************************