COMDLG32: CFM_GETSPEC always returns a spaced seperated list

Mike McCormack mike at codeweavers.com
Tue Nov 23 22:11:57 CST 2004


ChangeLog:
* CFM_GETSPEC always returns a spaced seperated list
-------------- next part --------------
Index: dlls/commdlg/filedlg.c
===================================================================
RCS file: /home/wine/wine/dlls/commdlg/filedlg.c,v
retrieving revision 1.89
diff -u -r1.89 filedlg.c
--- dlls/commdlg/filedlg.c	19 Oct 2004 23:55:15 -0000	1.89
+++ dlls/commdlg/filedlg.c	24 Nov 2004 05:00:01 -0000
@@ -841,7 +841,7 @@
 
     /* 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 @@
 
     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 @@
   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 @@
 /***********************************************************************
  * 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 'seperator',
+ *  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 seperator)
 {
 	FileOpenDlgInfos *fodInfos  = (FileOpenDlgInfos *) GetPropA(hwnd,FileOpenDlgInfosStr);
 	UINT nStrCharCount = 0;	/* index in src buffer */
@@ -3054,7 +3056,7 @@
 	*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 @@
 	      (*sizeUsed)++;
 	      nStrCharCount++;
 	    }
-	    (*lpstrFileList)[nFileIndex++] = '\0';
+	    (*lpstrFileList)[nFileIndex++] = seperator;
 	    (*sizeUsed)++;
 	    nFileCount++;
 	  }
Index: dlls/commdlg/filedlgbrowser.h
===================================================================
RCS file: /home/wine/wine/dlls/commdlg/filedlgbrowser.h,v
retrieving revision 1.19
diff -u -r1.19 filedlgbrowser.h
--- dlls/commdlg/filedlgbrowser.h	2 Jan 2004 01:47:52 -0000	1.19
+++ dlls/commdlg/filedlgbrowser.h	24 Nov 2004 05:00:01 -0000
@@ -161,6 +161,6 @@
 
 /* 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 seperator);
 
 #endif /*SHBROWSER_H*/


More information about the wine-patches mailing list