Module: wine Branch: stable Commit: cf4fb7291d9bc315a8ba85087dd505b66c28f371 URL: http://source.winehq.org/git/wine.git/?a=commit;h=cf4fb7291d9bc315a8ba85087d...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue Feb 21 15:35:15 2017 +0300
comdlg32: Expand initial directory path for file open dialog.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit aef84332a2dc3a05a3e1b433158b2e91abc48ed0) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
dlls/comdlg32/filedlg.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/dlls/comdlg32/filedlg.c b/dlls/comdlg32/filedlg.c index bcae7d3..6bedf40 100644 --- a/dlls/comdlg32/filedlg.c +++ b/dlls/comdlg32/filedlg.c @@ -508,15 +508,17 @@ static BOOL GetFileDialog95W(LPOPENFILENAMEW ofn,UINT iDlgType) else fodInfos.filename = NULL;
+ fodInfos.initdir = NULL; if(ofn->lpstrInitialDir) { /* fodInfos.initdir = strdupW(ofn->lpstrInitialDir); */ - DWORD len = lstrlenW(ofn->lpstrInitialDir)+1; - fodInfos.initdir = MemAlloc(len*sizeof(WCHAR)); - memcpy(fodInfos.initdir,ofn->lpstrInitialDir,len*sizeof(WCHAR)); + DWORD len = ExpandEnvironmentStringsW(ofn->lpstrInitialDir, NULL, 0); + if (len) + { + fodInfos.initdir = MemAlloc(len * sizeof(WCHAR)); + ExpandEnvironmentStringsW(ofn->lpstrInitialDir, fodInfos.initdir, len); + } } - else - fodInfos.initdir = NULL;
/* save current directory */ if (ofn->Flags & OFN_NOCHANGEDIR)