shell32: Add a helper function to create 'My Stuff' sub dirs in 'My Documents'.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=22974 Signed-off-by: Olivier F. R. Dierick <o.dierick@piezo-forte.be> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
8c7c6e9b79
commit
7642388153
|
@ -4050,6 +4050,33 @@ static inline BOOL _SHAppendToUnixPath(char *szBasePath, LPCWSTR pwszSubPath) {
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* _SHCreateMyDocumentsSubDirs [Internal]
|
||||
*
|
||||
* Create real directories for various shell folders under 'My Documents'. For
|
||||
* Windows and homeless styles. Fails silently for already existing sub dirs.
|
||||
*
|
||||
* PARAMS
|
||||
* aidsMyStuff [I] Array of IDS_* resources to create sub dirs for.
|
||||
* num [I] Number of elements in aidsMyStuff.
|
||||
* szPersonalTarget [I] Unix path to 'My Documents' directory.
|
||||
*/
|
||||
static void _SHCreateMyDocumentsSubDirs(const UINT * aidsMyStuff, const UINT num, const char * szPersonalTarget)
|
||||
{
|
||||
char szMyStuffTarget[FILENAME_MAX];
|
||||
UINT i;
|
||||
|
||||
if (aidsMyStuff && szPersonalTarget)
|
||||
{
|
||||
for (i = 0; i < num; i++)
|
||||
{
|
||||
strcpy(szMyStuffTarget, szPersonalTarget);
|
||||
if (_SHAppendToUnixPath(szMyStuffTarget, MAKEINTRESOURCEW(aidsMyStuff[i])))
|
||||
mkdir(szMyStuffTarget, 0777);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* _SHCreateSymbolicLinks [Internal]
|
||||
*
|
||||
|
@ -4122,12 +4149,7 @@ static void _SHCreateSymbolicLinks(void)
|
|||
* 'My Pictures', 'My Videos', 'My Music' etc. or fail silently
|
||||
* if they already exist.
|
||||
*/
|
||||
for (i = 0; i < ARRAY_SIZE(aidsMyStuff); i++)
|
||||
{
|
||||
strcpy(szMyStuffTarget, szPersonalTarget);
|
||||
if (_SHAppendToUnixPath(szMyStuffTarget, MAKEINTRESOURCEW(aidsMyStuff[i])))
|
||||
mkdir(szMyStuffTarget, 0777);
|
||||
}
|
||||
_SHCreateMyDocumentsSubDirs(aidsMyStuff, ARRAY_SIZE(aidsMyStuff), szPersonalTarget);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -4163,11 +4185,7 @@ static void _SHCreateSymbolicLinks(void)
|
|||
* they already exist. */
|
||||
pszHome = NULL;
|
||||
strcpy(szPersonalTarget, pszPersonal);
|
||||
for (i = 0; i < ARRAY_SIZE(aidsMyStuff); i++) {
|
||||
strcpy(szMyStuffTarget, szPersonalTarget);
|
||||
if (_SHAppendToUnixPath(szMyStuffTarget, MAKEINTRESOURCEW(aidsMyStuff[i])))
|
||||
mkdir(szMyStuffTarget, 0777);
|
||||
}
|
||||
_SHCreateMyDocumentsSubDirs(aidsMyStuff, ARRAY_SIZE(aidsMyStuff), szPersonalTarget);
|
||||
}
|
||||
|
||||
/* Create symbolic links for 'My Pictures', 'My Videos', 'My Music' etc. */
|
||||
|
|
Loading…
Reference in New Issue