https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5981ef3eccee8a94f76ef…
commit 5981ef3eccee8a94f76ef3b71d64c459569e4ee5
Author: Amine Khaldi <amine.khaldi(a)reactos.org>
AuthorDate: Sat Oct 26 22:52:27 2019 +0100
Commit: Amine Khaldi <amine.khaldi(a)reactos.org>
CommitDate: Sat Oct 26 22:52:27 2019 +0100
[COMDLG32] Sync with Wine Staging 4.18. CORE-16441
---
dll/win32/comdlg32/filedlg.c | 50 ++++++++++++++++++++----------------------
dll/win32/comdlg32/filedlg31.c | 35 ++++++++++++++---------------
dll/win32/comdlg32/fontdlg.c | 5 ++---
dll/win32/comdlg32/itemdlg.c | 2 +-
dll/win32/comdlg32/printdlg.c | 23 ++++++++++---------
media/doc/README.WINE | 2 +-
6 files changed, 56 insertions(+), 61 deletions(-)
diff --git a/dll/win32/comdlg32/filedlg.c b/dll/win32/comdlg32/filedlg.c
index 4afdae19af3..d82cdf3daf6 100644
--- a/dll/win32/comdlg32/filedlg.c
+++ b/dll/win32/comdlg32/filedlg.c
@@ -45,9 +45,6 @@
*
*/
-#include "config.h"
-#include "wine/port.h"
-
#include <ctype.h>
#include <stdlib.h>
#include <stdarg.h>
@@ -78,7 +75,6 @@
#include "filedlgbrowser.h"
#include "shlwapi.h"
-#include "wine/unicode.h"
#include "wine/debug.h"
#include "wine/heap.h"
@@ -324,7 +320,7 @@ static void filedlg_collect_places_pidls(FileOpenDlgInfos *fodInfos)
HRESULT hr;
WCHAR *str;
- sprintfW(nameW, placeW, i);
+ swprintf(nameW, placeW, i);
if (get_config_key_dword(hkey, nameW, &value))
{
hr = SHGetSpecialFolderLocation(NULL, value,
&fodInfos->places[i]);
@@ -1032,13 +1028,13 @@ static INT_PTR FILEDLG95_Handle_GetFilePath(HWND hwnd, DWORD size,
LPVOID result
COMDLG32_GetDisplayNameOf( fodInfos->ShellInfos.pidlAbsCurrent, buffer );
if (len)
{
- p = buffer + strlenW(buffer);
+ p = buffer + lstrlenW(buffer);
*p++ = '\\';
SendMessageW( fodInfos->DlgInfos.hwndFileName, WM_GETTEXT, len + 1, (LPARAM)p
);
}
if (fodInfos->unicode)
{
- total = strlenW( buffer) + 1;
+ total = lstrlenW( buffer) + 1;
if (result) lstrcpynW( result, buffer, size );
TRACE( "CDM_GETFILEPATH: returning %u %s\n", total,
debugstr_w(result));
}
@@ -1690,7 +1686,7 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
{
/* 1. If win2000 or higher and filename contains a path, use it
in preference over the lpstrInitialDir */
- if (win2000plus && *fodInfos->filename &&
strpbrkW(fodInfos->filename, szwSlash)) {
+ if (win2000plus && *fodInfos->filename &&
wcspbrk(fodInfos->filename, szwSlash)) {
WCHAR tmpBuf[MAX_PATH];
WCHAR *nameBit;
DWORD result;
@@ -1783,7 +1779,7 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
/* 3. All except w2k+: if filename contains a path use it */
if (!win2000plus && fodInfos->filename &&
*fodInfos->filename &&
- strpbrkW(fodInfos->filename, szwSlash)) {
+ wcspbrk(fodInfos->filename, szwSlash)) {
WCHAR tmpBuf[MAX_PATH];
WCHAR *nameBit;
DWORD result;
@@ -2346,7 +2342,7 @@ static WCHAR FILEDLG95_MRU_get_slot(LPCWSTR module_name, LPWSTR
stored_path, PHK
continue;
}
- if(!strcmpiW(module_name, value_data)){
+ if(!wcsicmp(module_name, value_data)){
if(!hkey_ret)
RegCloseKey(*hkey);
if(stored_path)
@@ -2384,7 +2380,7 @@ static void FILEDLG95_MRU_save_filename(LPCWSTR filename)
WARN("GotModuleFileName failed: %d\n", GetLastError());
return;
}
- module_name = strrchrW(module_path, '\\');
+ module_name = wcsrchr(module_path, '\\');
if(!module_name)
module_name = module_path;
else
@@ -2400,7 +2396,7 @@ static void FILEDLG95_MRU_save_filename(LPCWSTR filename)
DWORD path_len, final_len;
/* use only the path segment of `filename' */
- path_ends = strrchrW(filename, '\\');
+ path_ends = wcsrchr(filename, '\\');
path_len = path_ends - filename;
final_len = path_len + lstrlenW(module_name) + 2;
@@ -2472,7 +2468,7 @@ static void FILEDLG95_MRU_load_filename(LPWSTR stored_path)
WARN("GotModuleFileName failed: %d\n", GetLastError());
return;
}
- module_name = strrchrW(module_path, '\\');
+ module_name = wcsrchr(module_path, '\\');
if(!module_name)
module_name = module_path;
else
@@ -2482,6 +2478,7 @@ static void FILEDLG95_MRU_load_filename(LPWSTR stored_path)
TRACE("got MRU path: %s\n", wine_dbgstr_w(stored_path));
}
#ifdef __REACTOS__
+
static const WCHAR s_subkey[] =
{
'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
@@ -2699,7 +2696,8 @@ static void FILEDLG95_MRU_save_ext(LPCWSTR filename)
RegCloseKey(hOpenSaveMRT);
}
}
-#endif
+
+#endif /* __REACTOS__ */
void FILEDLG95_OnOpenMessage(HWND hwnd, int idCaption, int idText)
{
@@ -2722,7 +2720,7 @@ int FILEDLG95_ValidatePathAction(LPWSTR lpstrPathAndFile,
IShellFolder **ppsf,
static const WCHAR szwInvalid[] = {
'/',':','<','>','|', 0};
/* check for invalid chars */
- if((strpbrkW(lpstrPathAndFile+3, szwInvalid) != NULL) && !(flags &
OFN_NOVALIDATE))
+ if((wcspbrk(lpstrPathAndFile+3, szwInvalid) != NULL) && !(flags &
OFN_NOVALIDATE))
{
FILEDLG95_OnOpenMessage(hwnd, IDS_INVALID_FILENAME_TITLE, IDS_INVALID_FILENAME);
return FALSE;
@@ -2751,7 +2749,7 @@ int FILEDLG95_ValidatePathAction(LPWSTR lpstrPathAndFile,
IShellFolder **ppsf,
{
static const WCHAR wszWild[] = { '*', '?', 0 };
/* if the last element is a wildcard do a search */
- if(strpbrkW(lpszTemp1, wszWild) != NULL)
+ if(wcspbrk(lpszTemp1, wszWild) != NULL)
{
nOpenAction = ONOPEN_SEARCH;
break;
@@ -2799,7 +2797,7 @@ int FILEDLG95_ValidatePathAction(LPWSTR lpstrPathAndFile,
IShellFolder **ppsf,
else if (!(flags & OFN_NOVALIDATE))
{
if(*lpszTemp || /* points to trailing null for last path element */
- (lpwstrTemp[strlenW(lpwstrTemp)-1] == '\\')) /* or if last element
ends in '\' */
+ (lpwstrTemp[lstrlenW(lpwstrTemp)-1] == '\\')) /* or if last
element ends in '\' */
{
if(flags & OFN_PATHMUSTEXIST)
{
@@ -3080,7 +3078,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
/* update dialog data */
SetWindowTextW(fodInfos->DlgInfos.hwndFileName,
PathFindFileNameW(lpstrPathAndFile));
-#else
+#else /* __REACTOS__ */
if (! *ext && fodInfos->defext)
{
/* if no extension is specified with file name, then */
@@ -3099,12 +3097,12 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
{
WCHAR* filterSearchIndex;
filterExt = heap_alloc((lstrlenW(lpstrFilter) + 1) * sizeof(WCHAR));
- strcpyW(filterExt, lpstrFilter);
+ lstrcpyW(filterExt, lpstrFilter);
/* if a semicolon-separated list of file extensions was given, do not
include the
semicolon or anything after it in the extension.
example: if filterExt was "*.abc;*.def", it will become
"*.abc" */
- filterSearchIndex = strchrW(filterExt, ';');
+ filterSearchIndex = wcschr(filterExt, ';');
if (filterSearchIndex)
{
filterSearchIndex[0] = '\0';
@@ -3113,10 +3111,10 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
/* find the file extension by searching for the first dot in filterExt
*/
/* strip the * or anything else from the extension, "*.abc"
becomes "abc" */
/* if the extension is invalid or contains a glob, ignore it */
- filterSearchIndex = strchrW(filterExt, '.');
- if (filterSearchIndex++ && !strchrW(filterSearchIndex,
'*') && !strchrW(filterSearchIndex, '?'))
+ filterSearchIndex = wcschr(filterExt, '.');
+ if (filterSearchIndex++ && !wcschr(filterSearchIndex,
'*') && !wcschr(filterSearchIndex, '?'))
{
- strcpyW(filterExt, filterSearchIndex);
+ lstrcpyW(filterExt, filterSearchIndex);
}
else
{
@@ -3129,7 +3127,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
{
/* use the default file extension */
filterExt = heap_alloc((lstrlenW(fodInfos->defext) + 1) *
sizeof(WCHAR));
- strcpyW(filterExt, fodInfos->defext);
+ lstrcpyW(filterExt, fodInfos->defext);
}
if (*filterExt) /* ignore filterExt="" */
@@ -3154,7 +3152,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
else
fodInfos->ofnInfos->Flags |= OFN_EXTENSIONDIFFERENT;
}
-#endif
+#endif /* __REACTOS__ */
/* In Save dialog: check if the file already exists */
if (fodInfos->DlgInfos.dwDlgProp & FODPROP_SAVEDLG
@@ -4695,7 +4693,7 @@ short WINAPI GetFileTitleW(LPCWSTR lpFile, LPWSTR lpTitle, WORD
cbBuf)
if (len == 0)
return -1;
- if(strpbrkW(lpFile, brkpoint))
+ if(wcspbrk(lpFile, brkpoint))
return -1;
len--;
diff --git a/dll/win32/comdlg32/filedlg31.c b/dll/win32/comdlg32/filedlg31.c
index 76ac503014e..53ef3eeb481 100644
--- a/dll/win32/comdlg32/filedlg31.c
+++ b/dll/win32/comdlg32/filedlg31.c
@@ -28,7 +28,6 @@
#include "winnls.h"
#include "wingdi.h"
#include "winuser.h"
-#include "wine/unicode.h"
#include "wine/debug.h"
#include "wine/heap.h"
#include "winreg.h"
@@ -107,13 +106,13 @@ static void FD31_StripEditControl(HWND hwnd)
WCHAR temp[BUFFILE], *cp;
GetDlgItemTextW( hwnd, edt1, temp, ARRAY_SIZE(temp));
- cp = strrchrW(temp, '\\');
+ cp = wcsrchr(temp, '\\');
if (cp != NULL) {
- strcpyW(temp, cp+1);
+ lstrcpyW(temp, cp+1);
}
- cp = strrchrW(temp, ':');
+ cp = wcsrchr(temp, ':');
if (cp != NULL) {
- strcpyW(temp, cp+1);
+ lstrcpyW(temp, cp+1);
}
/* FIXME: shouldn't we do something with the result here? ;-) */
}
@@ -200,7 +199,7 @@ static BOOL FD31_ScanDir(const OPENFILENAMEW *ofn, HWND hWnd, LPCWSTR
newPath)
TRACE("Using filter %s\n", debugstr_w(filter));
SendMessageW(hdlg, LB_RESETCONTENT, 0, 0);
while (filter) {
- scptr = strchrW(filter, ';');
+ scptr = wcschr(filter, ';');
if (scptr) *scptr = 0;
while (*filter == ' ') filter++;
TRACE("Using file spec %s\n", debugstr_w(filter));
@@ -211,7 +210,7 @@ static BOOL FD31_ScanDir(const OPENFILENAMEW *ofn, HWND hWnd, LPCWSTR
newPath)
}
/* list of directories */
- strcpyW(buffer, FILE_star);
+ lstrcpyW(buffer, FILE_star);
if (GetDlgItem(hWnd, lst2) != 0) {
lRet = DlgDirListW(hWnd, buffer, lst2, stc1, DDL_EXCLUSIVE | DDL_DIRECTORY);
@@ -342,7 +341,7 @@ static void FD31_UpdateResult(const FD31_DATA *lfs, const WCHAR
*tmpstr)
tmpstr2[0] = '\0';
else
GetCurrentDirectoryW(BUFFILE, tmpstr2);
- lenstr2 = strlenW(tmpstr2);
+ lenstr2 = lstrlenW(tmpstr2);
if (lenstr2 > 3)
tmpstr2[lenstr2++]='\\';
lstrcpynW(tmpstr2+lenstr2, tmpstr, BUFFILE-lenstr2);
@@ -422,15 +421,15 @@ static LRESULT FD31_DirListDblClick( const FD31_DATA *lfs )
pstr = heap_alloc(BUFFILEALLOC);
SendDlgItemMessageW(hWnd, lst2, LB_GETTEXT, lRet,
(LPARAM)pstr);
- strcpyW( tmpstr, pstr );
+ lstrcpyW( tmpstr, pstr );
heap_free(pstr);
/* get the selected directory in tmpstr */
if (tmpstr[0] == '[')
{
tmpstr[lstrlenW(tmpstr) - 1] = 0;
- strcpyW(tmpstr,tmpstr+1);
+ lstrcpyW(tmpstr,tmpstr+1);
}
- strcatW(tmpstr, FILE_bslash);
+ lstrcatW(tmpstr, FILE_bslash);
FD31_ScanDir(lfs->ofnW, hWnd, tmpstr);
/* notify the app */
@@ -486,11 +485,11 @@ static LRESULT FD31_TestPath( const FD31_DATA *lfs, LPWSTR path )
LPWSTR pBeginFileName, pstr2;
WCHAR tmpstr2[BUFFILE];
- pBeginFileName = strrchrW(path, '\\');
+ pBeginFileName = wcsrchr(path, '\\');
if (pBeginFileName == NULL)
- pBeginFileName = strrchrW(path, ':');
+ pBeginFileName = wcsrchr(path, ':');
- if (strchrW(path,'*') != NULL || strchrW(path,'?') != NULL)
+ if (wcschr(path,'*') != NULL || wcschr(path,'?') != NULL)
{
/* edit control contains wildcards */
if (pBeginFileName != NULL)
@@ -500,7 +499,7 @@ static LRESULT FD31_TestPath( const FD31_DATA *lfs, LPWSTR path )
}
else
{
- strcpyW(tmpstr2, path);
+ lstrcpyW(tmpstr2, path);
if(!(lfs->ofnW->Flags & OFN_NOVALIDATE))
*path = 0;
}
@@ -516,7 +515,7 @@ static LRESULT FD31_TestPath( const FD31_DATA *lfs, LPWSTR path )
pstr2 = path + lstrlenW(path);
if (pBeginFileName == NULL || *(pBeginFileName + 1) != 0)
- strcatW(path, FILE_bslash);
+ lstrcatW(path, FILE_bslash);
/* if ScanDir succeeds, we have changed the directory */
if (FD31_ScanDir(lfs->ofnW, hWnd, path))
@@ -538,7 +537,7 @@ static LRESULT FD31_TestPath( const FD31_DATA *lfs, LPWSTR path )
{
return FALSE;
}
- strcpyW(path, tmpstr2);
+ lstrcpyW(path, tmpstr2);
}
else
SetDlgItemTextW( hWnd, edt1, path );
@@ -602,7 +601,7 @@ static LRESULT FD31_Validate( const FD31_DATA *lfs, LPCWSTR path, UINT
control,
if (ofnW->lpstrFile)
{
LPWSTR str = ofnW->lpstrFile;
- LPWSTR ptr = strrchrW(str, '\\');
+ LPWSTR ptr = wcsrchr(str, '\\');
str[lstrlenW(str) + 1] = '\0';
*ptr = 0;
}
diff --git a/dll/win32/comdlg32/fontdlg.c b/dll/win32/comdlg32/fontdlg.c
index 9f9f48aeea2..ecb6ce0e33a 100644
--- a/dll/win32/comdlg32/fontdlg.c
+++ b/dll/win32/comdlg32/fontdlg.c
@@ -33,7 +33,6 @@
#include "dlgs.h"
#include "wine/debug.h"
#include "wine/heap.h"
-#include "wine/unicode.h"
#include "cderr.h"
#include "cdlg.h"
@@ -423,7 +422,7 @@ static BOOL AddFontSizeToCombo3(HWND hwnd, UINT h, const CHOOSEFONTW
*lpcf)
if ( (!(lpcf->Flags & CF_LIMITSIZE)) ||
((lpcf->Flags & CF_LIMITSIZE) && (h >= lpcf->nSizeMin)
&& (h <= lpcf->nSizeMax)))
{
- sprintfW(buffer, fontsizefmtW, h);
+ swprintf(buffer, fontsizefmtW, h);
j=SendMessageW(hwnd, CB_FINDSTRINGEXACT, -1, (LPARAM)buffer);
if (j==CB_ERR)
{
@@ -905,7 +904,7 @@ static INT get_dialog_font_point_size(HWND hDlg, CHOOSEFONTW *cf)
WCHAR buffW[8], *endptrW;
GetDlgItemTextW(hDlg, cmb3, buffW, ARRAY_SIZE(buffW));
- size = strtolW(buffW, &endptrW, 10);
+ size = wcstol(buffW, &endptrW, 10);
invalid_size = size == 0 && *endptrW;
if (size == 0)
diff --git a/dll/win32/comdlg32/itemdlg.c b/dll/win32/comdlg32/itemdlg.c
index 09f5be5d501..9655f968163 100644
--- a/dll/win32/comdlg32/itemdlg.c
+++ b/dll/win32/comdlg32/itemdlg.c
@@ -1286,7 +1286,7 @@ static UINT ctrl_container_resize(FileDialogImpl *This, UINT
container_width)
/* Move the controls to their final destination
*/
- cur_col_pos = 0, cur_row_pos = 0;
+ cur_col_pos = 0; cur_row_pos = 0;
LIST_FOR_EACH_ENTRY(ctrl, &This->cctrls, customctrl, entry)
{
if(ctrl->cdcstate & CDCS_VISIBLE)
diff --git a/dll/win32/comdlg32/printdlg.c b/dll/win32/comdlg32/printdlg.c
index 69e9aeb08da..0da728b1247 100644
--- a/dll/win32/comdlg32/printdlg.c
+++ b/dll/win32/comdlg32/printdlg.c
@@ -40,7 +40,6 @@
#include "objbase.h"
#include "commdlg.h"
-#include "wine/unicode.h"
#include "wine/debug.h"
#include "dlgs.h"
@@ -157,7 +156,7 @@ static LPWSTR strdupW(LPCWSTR p)
DWORD len;
if(!p) return NULL;
- len = (strlenW(p) + 1) * sizeof(WCHAR);
+ len = (lstrlenW(p) + 1) * sizeof(WCHAR);
ret = HeapAlloc(GetProcessHeap(), 0, len);
memcpy(ret, p, len);
return ret;
@@ -527,7 +526,7 @@ static BOOL PRINTDLG_CreateDevNamesW(HGLOBAL *hmem, LPCWSTR
DeviceDriverName,
DWORD dwBufLen = ARRAY_SIZE(bufW);
const WCHAR *p;
- p = strrchrW( DeviceDriverName, '\\' );
+ p = wcsrchr( DeviceDriverName, '\\' );
if (p) DeviceDriverName = p + 1;
size = sizeof(WCHAR)*lstrlenW(DeviceDriverName) + 2
@@ -2818,9 +2817,9 @@ static void pagesetup_set_devnames(pagesetup_data *data, LPCWSTR
drv, LPCWSTR de
if(data->unicode)
{
- drv_len = (strlenW(drv) + 1) * sizeof(WCHAR);
- dev_len = (strlenW(devname) + 1) * sizeof(WCHAR);
- port_len = (strlenW(port) + 1) * sizeof(WCHAR);
+ drv_len = (lstrlenW(drv) + 1) * sizeof(WCHAR);
+ dev_len = (lstrlenW(devname) + 1) * sizeof(WCHAR);
+ port_len = (lstrlenW(port) + 1) * sizeof(WCHAR);
}
else
{
@@ -2842,15 +2841,15 @@ static void pagesetup_set_devnames(pagesetup_data *data, LPCWSTR
drv, LPCWSTR de
WCHAR *ptr = (WCHAR *)(dn + 1);
len = sizeof(DEVNAMES) / sizeof(WCHAR);
dn->wDriverOffset = len;
- strcpyW(ptr, drv);
+ lstrcpyW(ptr, drv);
ptr += drv_len / sizeof(WCHAR);
len += drv_len / sizeof(WCHAR);
dn->wDeviceOffset = len;
- strcpyW(ptr, devname);
+ lstrcpyW(ptr, devname);
ptr += dev_len / sizeof(WCHAR);
len += dev_len / sizeof(WCHAR);
dn->wOutputOffset = len;
- strcpyW(ptr, port);
+ lstrcpyW(ptr, port);
}
else
{
@@ -3248,7 +3247,7 @@ static void margin_edit_notification(HWND hDlg, const pagesetup_data
*data, WORD
WCHAR *end;
WCHAR decimal = get_decimal_sep();
- val = strtolW(buf, &end, 10);
+ val = wcstol(buf, &end, 10);
if(end != buf || *end == decimal)
{
int mult = is_metric(data) ? 100 : 1000;
@@ -3259,7 +3258,7 @@ static void margin_edit_notification(HWND hDlg, const pagesetup_data
*data, WORD
{
end++;
mult /= 10;
- if(isdigitW(*end))
+ if(iswdigit(*end))
val += (*end - '0') * mult;
else
break;
@@ -3640,7 +3639,7 @@ static LRESULT CALLBACK pagesetup_margin_editproc(HWND hwnd, UINT
msg, WPARAM wp
{
WCHAR decimal = get_decimal_sep();
WCHAR wc = (WCHAR)wparam;
- if(!isdigitW(wc) && wc != decimal && wc != VK_BACK) return 0;
+ if(!iswdigit(wc) && wc != decimal && wc != VK_BACK) return 0;
}
return CallWindowProcW(edit_wndproc, hwnd, msg, wparam, lparam);
}
diff --git a/media/doc/README.WINE b/media/doc/README.WINE
index e1d75bff533..f61a9b89eed 100644
--- a/media/doc/README.WINE
+++ b/media/doc/README.WINE
@@ -56,7 +56,7 @@ dll/win32/cabinet # Synced to WineStaging-4.18
dll/win32/clusapi # Synced to WineStaging-3.3
dll/win32/comcat # Synced to WineStaging-3.3
dll/win32/comctl32 # Synced to WineStaging-3.3
-dll/win32/comdlg32 # Synced to WineStaging-4.0
+dll/win32/comdlg32 # Synced to WineStaging-4.18
dll/win32/compstui # Synced to WineStaging-3.3
dll/win32/credui # Synced to WineStaging-4.0
dll/win32/crypt32 # Synced to WineStaging-4.0