From bc42b2e19ed9e28aec94f2e1538cdc85dba02ba0 Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Mon, 29 Nov 2004 16:59:14 +0000 Subject: [PATCH] CFM_GETSPEC always returns a space-separated list. --- dlls/commdlg/filedlg.c | 16 +++++++++------- dlls/commdlg/filedlgbrowser.h | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/dlls/commdlg/filedlg.c b/dlls/commdlg/filedlg.c index 00816c3420..751384de70 100644 --- a/dlls/commdlg/filedlg.c +++ b/dlls/commdlg/filedlg.c @@ -841,7 +841,7 @@ HRESULT FILEDLG95_Handle_GetFilePath(HWND hwnd, DWORD size, LPVOID buffer) /* get path and filenames */ SHGetPathFromIDListW(fodInfos->ShellInfos.pidlAbsCurrent,lpstrCurrentDir); - n = FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed); + n = FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed, ' '); TRACE("path >%s< filespec >%s< %d files\n", debugstr_w(lpstrCurrentDir),debugstr_w(lpstrFileList),n); @@ -897,7 +897,7 @@ HRESULT FILEDLG95_Handle_GetFileSpec(HWND hwnd, DWORD size, LPVOID buffer) TRACE("CDM_GETSPEC:\n"); - FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed); + FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed, ' '); if( fodInfos->unicode ) { LPWSTR bufW = buffer; @@ -1709,7 +1709,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd) TRACE("hwnd=%p\n", hwnd); /* get the files from the edit control */ - nFileCount = FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed); + nFileCount = FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed, '\0'); /* try if the user selected a folder in the shellview */ if(nFileCount == 0) @@ -3029,9 +3029,11 @@ static HRESULT COMDLG32_StrRetToStrNA (LPVOID dest, DWORD len, LPSTRRET src, LPI /*********************************************************************** * FILEDLG95_FILENAME_GetFileNames * - * copies the filenames to a 0-delimited string list (A\0B\0C\0\0) + * Copies the filenames to a delimited string list. + * The delimiter is specified by the parameter 'separator', + * usually either a space or a nul */ -int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * sizeUsed) +int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * sizeUsed, char separator) { FileOpenDlgInfos *fodInfos = (FileOpenDlgInfos *) GetPropA(hwnd,FileOpenDlgInfosStr); UINT nStrCharCount = 0; /* index in src buffer */ @@ -3054,7 +3056,7 @@ int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * s *lpstrFileList = MemAlloc( (nStrLen+2)*sizeof(WCHAR) ); *sizeUsed = 0; - /* build 0-delimited file list from filenames */ + /* build delimited file list from filenames */ while ( nStrCharCount <= nStrLen ) { if ( lpstrEdit[nStrCharCount]=='"' ) @@ -3066,7 +3068,7 @@ int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * s (*sizeUsed)++; nStrCharCount++; } - (*lpstrFileList)[nFileIndex++] = '\0'; + (*lpstrFileList)[nFileIndex++] = separator; (*sizeUsed)++; nFileCount++; } diff --git a/dlls/commdlg/filedlgbrowser.h b/dlls/commdlg/filedlgbrowser.h index 694e3a0acd..17cfc8e6f1 100644 --- a/dlls/commdlg/filedlgbrowser.h +++ b/dlls/commdlg/filedlgbrowser.h @@ -161,6 +161,6 @@ BOOL IsPidlFolder (LPSHELLFOLDER psf, LPCITEMIDLIST pidl); /* Functions used by the EDIT box */ void FILEDLG95_FILENAME_FillFromSelection (HWND hwnd); -int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * sizeUsed); +int FILEDLG95_FILENAME_GetFileNames (HWND hwnd, LPWSTR * lpstrFileList, UINT * sizeUsed, char separator); #endif /*SHBROWSER_H*/ -- 2.33.8