diff win/dw.c @ 1704:873304f581be

Fix Unicode issues with the directory browser on Windows. Fix a hang with the directory browser on Mac when passing an empty string.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sat, 05 May 2012 06:48:40 +0000
parents 31f16da1052a
children 8228b3cf8f37
line wrap: on
line diff
--- a/win/dw.c	Thu May 03 18:44:08 2012 +0000
+++ b/win/dw.c	Sat May 05 06:48:40 2012 +0000
@@ -11490,7 +11490,7 @@
          bi.hwndOwner = NULL;
          bi.pszDisplayName = 0;
          bi.pidlRoot = 0;
-         bi.lpszTitle = title;
+         bi.lpszTitle = UTF8toWide(title);
          bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
          bi.lpfn = NULL; /*BrowseCallbackProc*/
 
@@ -11499,20 +11499,20 @@
          {
             if (SHGetPathFromIDList(pidl,szDir))
             {
-               strncpy(filenamebuf,szDir,1000);
+               _tcsncpy(filenamebuf,szDir,1000);
             }
 
             /* In C++: pMalloc->Free(pidl); pMalloc->Release(); */
             pMalloc->lpVtbl->Free(pMalloc,pidl);
             pMalloc->lpVtbl->Release(pMalloc);
-            return _strdup(filenamebuf);
+            return _strdup(WideToUTF8(filenamebuf));
          }
       }
 #else
      if ( XBrowseForFolder( NULL,
-                            (LPCTSTR)defpath,
+                            (LPCTSTR)dpath,
                             -1,
-                            (LPCTSTR)title,
+                            (LPCTSTR)UTF8toWide(title),
                             (LPTSTR)filenamebuf,
                             1000,
                             FALSE ) )