From badcfb2f7dc84ed8c585d5be051bfe1f33f778fb Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Mon, 5 Apr 2021 17:20:35 +0900 Subject: [PATCH] [BROWSEUI] Accept environment variables on auto-completion Expand %WINDIR%, %SystemRoot% etc. at CACListISF::Expand. CORE-9281 --- dll/win32/browseui/aclistisf.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dll/win32/browseui/aclistisf.cpp b/dll/win32/browseui/aclistisf.cpp index 4e62b8a5e97..4ddeb8f2207 100644 --- a/dll/win32/browseui/aclistisf.cpp +++ b/dll/win32/browseui/aclistisf.cpp @@ -331,6 +331,14 @@ STDMETHODIMP CACListISF::Expand(LPCOLESTR pszExpand) m_szExpand = pszExpand; m_iNextLocation = LT_DIRECTORY; + // expand environment variables (%WINDIR% etc.) + WCHAR szExpanded[MAX_PATH]; + if (wcschr(pszExpand, L'%') != NULL && + ExpandEnvironmentStringsW(pszExpand, szExpanded, _countof(szExpanded))) + { + pszExpand = szExpanded; + } + // get full path WCHAR szPath1[MAX_PATH], szPath2[MAX_PATH]; if (PathIsRelativeW(pszExpand) && @@ -427,3 +435,4 @@ STDMETHODIMP CACListISF::SetDirectory(LPCWSTR pwzPath) m_pidlCurDir.Attach(pidl); return S_OK; } +