winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
November 2006
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
3 participants
792 discussions
Start a n
N
ew thread
Dmitry Timoshkov : winedump: Add partial COFF library support.
by Alexandre Julliard
28 Nov '06
28 Nov '06
Module: wine Branch: master Commit: 8e8e8f073d9df3420a0f3f2d042cf21766fec8a0 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=8e8e8f073d9df3420a0f3f2d0…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Tue Nov 28 18:40:13 2006 +0800 winedump: Add partial COFF library support. --- tools/winedump/Makefile.in | 1 + tools/winedump/dump.c | 30 +++++++--- tools/winedump/lib.c | 136 ++++++++++++++++++++++++++++++++++++++++++++ tools/winedump/main.c | 4 +- tools/winedump/pe.c | 2 +- tools/winedump/winedump.h | 5 +- 6 files changed, 164 insertions(+), 14 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=8e8e8f073d9df3420a0f3…
1
0
0
0
Dmitry Timoshkov : mlang: Implement LcidToRfc1766 and GetRfc1766FromLcid.
by Alexandre Julliard
28 Nov '06
28 Nov '06
Module: wine Branch: master Commit: ff90dbc08623bc1f2c284f8f927f8003dbf29e5c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=ff90dbc08623bc1f2c284f8f9…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Tue Nov 28 18:39:53 2006 +0800 mlang: Implement LcidToRfc1766 and GetRfc1766FromLcid. --- dlls/mlang/Makefile.in | 1 + dlls/mlang/mlang.c | 80 +++++++++++++++++++++++++++++++++++---------- dlls/mlang/tests/mlang.c | 14 ++++--- 3 files changed, 71 insertions(+), 24 deletions(-) diff --git a/dlls/mlang/Makefile.in b/dlls/mlang/Makefile.in index 60393b0..956fd89 100644 --- a/dlls/mlang/Makefile.in +++ b/dlls/mlang/Makefile.in @@ -5,6 +5,7 @@ VPATH = @srcdir@ MODULE = mlang.dll IMPORTLIB = libmlang.$(IMPLIBEXT) IMPORTS = ole32 user32 gdi32 advapi32 kernel32 ntdll +DELAYIMPORTS = oleaut32 EXTRALIBS = -luuid EXTRADEFS = -DCOM_NO_WINDOWS_H diff --git a/dlls/mlang/mlang.c b/dlls/mlang/mlang.c index 8bdcc27..f290426 100644 --- a/dlls/mlang/mlang.c +++ b/dlls/mlang/mlang.c @@ -654,21 +654,55 @@ HRESULT WINAPI IsConvertINetStringAvaila return S_FALSE; } +static inline INT lcid_to_rfc1766A( LCID lcid, LPSTR rfc1766, INT len ) +{ + INT n = GetLocaleInfoA( lcid, LOCALE_SISO639LANGNAME, rfc1766, len ); + if (n) + { + rfc1766[n - 1] = '-'; + n += GetLocaleInfoA( lcid, LOCALE_SISO3166CTRYNAME, rfc1766 + n, len - n ) + 1; + LCMapStringA( LOCALE_USER_DEFAULT, LCMAP_LOWERCASE, rfc1766, n, rfc1766, len ); + return n; + } + return 0; +} + +static inline INT lcid_to_rfc1766W( LCID lcid, LPWSTR rfc1766, INT len ) +{ + INT n = GetLocaleInfoW( lcid, LOCALE_SISO639LANGNAME, rfc1766, len ); + if (n) + { + rfc1766[n - 1] = '-'; + n += GetLocaleInfoW( lcid, LOCALE_SISO3166CTRYNAME, rfc1766 + n, len - n ) + 1; + LCMapStringW( LOCALE_USER_DEFAULT, LCMAP_LOWERCASE, rfc1766, n, rfc1766, len ); + return n; + } + return 0; +} + HRESULT WINAPI LcidToRfc1766A( - LCID Locale, + LCID lcid, LPSTR pszRfc1766, INT nChar) { - FIXME("%d %s %u\n", Locale, pszRfc1766, nChar); + TRACE("%04x %p %u\n", lcid, pszRfc1766, nChar); + + if (lcid_to_rfc1766A( lcid, pszRfc1766, nChar )) + return S_OK; + return S_FALSE; } HRESULT WINAPI LcidToRfc1766W( - LCID Locale, + LCID lcid, LPWSTR pszRfc1766, INT nChar) { - FIXME("%d %p %u\n", Locale, pszRfc1766, nChar); + TRACE("%04x %p %u\n", lcid, pszRfc1766, nChar); + + if (lcid_to_rfc1766W( lcid, pszRfc1766, nChar )) + return S_OK; + return S_FALSE; } @@ -1552,11 +1586,19 @@ static HRESULT WINAPI fnIMultiLanguage_C static HRESULT WINAPI fnIMultiLanguage_GetRfc1766FromLcid( IMultiLanguage* iface, - LCID Locale, + LCID lcid, BSTR* pbstrRfc1766) { - FIXME("\n"); - return E_NOTIMPL; + WCHAR buf[MAX_RFC1766_NAME]; + + TRACE("%p %04x %p\n", iface, lcid, pbstrRfc1766); + + if (lcid_to_rfc1766W( lcid, buf, MAX_RFC1766_NAME )) + { + *pbstrRfc1766 = SysAllocString( buf ); + return S_OK; + } + return E_FAIL; } static HRESULT WINAPI fnIMultiLanguage_GetLcidFromRfc1766( @@ -1709,7 +1751,6 @@ struct enum_locales_data static BOOL CALLBACK enum_locales_proc(LPWSTR locale) { - DWORD n; WCHAR *end; struct enum_locales_data *data = TlsGetValue(MLANG_tls_index); RFC1766INFO *info; @@ -1730,13 +1771,8 @@ static BOOL CALLBACK enum_locales_proc(L return FALSE; info->wszRfc1766[0] = 0; - n = GetLocaleInfoW(info->lcid, LOCALE_SISO639LANGNAME, info->wszRfc1766, MAX_RFC1766_NAME); - if (n && n < MAX_RFC1766_NAME) - { - info->wszRfc1766[n - 1] = '-'; - GetLocaleInfoW(info->lcid, LOCALE_SISO3166CTRYNAME, info->wszRfc1766 + n, MAX_RFC1766_NAME - n); - LCMapStringW(LOCALE_USER_DEFAULT, LCMAP_LOWERCASE, info->wszRfc1766 + n, -1, info->wszRfc1766 + n, MAX_RFC1766_NAME - n); - } + lcid_to_rfc1766W( info->lcid, info->wszRfc1766, MAX_RFC1766_NAME ); + info->wszLocaleName[0] = 0; GetLocaleInfoW(info->lcid, LOCALE_SLANGUAGE, info->wszLocaleName, MAX_LOCALE_NAME); TRACE("ISO639: %s SLANGUAGE: %s\n", wine_dbgstr_w(info->wszRfc1766), wine_dbgstr_w(info->wszLocaleName)); @@ -2066,11 +2102,19 @@ static HRESULT WINAPI fnIMultiLanguage2_ static HRESULT WINAPI fnIMultiLanguage2_GetRfc1766FromLcid( IMultiLanguage3* iface, - LCID Locale, + LCID lcid, BSTR* pbstrRfc1766) { - FIXME("\n"); - return E_NOTIMPL; + WCHAR buf[MAX_RFC1766_NAME]; + + TRACE("%p %04x %p\n", iface, lcid, pbstrRfc1766); + + if (lcid_to_rfc1766W( lcid, buf, MAX_RFC1766_NAME )) + { + *pbstrRfc1766 = SysAllocString( buf ); + return S_OK; + } + return E_FAIL; } static HRESULT WINAPI fnIMultiLanguage2_GetLcidFromRfc1766( diff --git a/dlls/mlang/tests/mlang.c b/dlls/mlang/tests/mlang.c index 2665f3c..3c871f7 100644 --- a/dlls/mlang/tests/mlang.c +++ b/dlls/mlang/tests/mlang.c @@ -33,12 +33,14 @@ #define CP_UNICODE 1200 #endif -/*#define DUMP_CP_INFO*/ -/*#define DUMP_SCRIPT_INFO*/ +#if 0 +#define DUMP_CP_INFO +#define DUMP_SCRIPT_INFO #if defined DUMP_CP_INFO || defined DUMP_SCRIPT_INFO #include "wine/debug.h" #endif +#endif /* 0 */ #define TRACE_2 OutputDebugStringA @@ -314,8 +316,8 @@ static void test_EnumCodePages(IMultiLan static const WCHAR autoW[] = {'_','a','u','t','o',0}; #ifdef DUMP_CP_INFO - trace("MIMECPINFO #%lu:\n" - "dwFlags %08lx %s\n" + trace("MIMECPINFO #%u:\n" + "dwFlags %08x %s\n" "uiCodePage %u\n" "uiFamilyCodePage %u\n" "wszDescription %s\n" @@ -554,7 +556,7 @@ static void test_EnumScripts(IMultiLangu { CPINFOEXA cpinfoex; #ifdef DUMP_SCRIPT_INFO - trace("SCRIPTINFO #%lu:\n" + trace("SCRIPTINFO #%u:\n" "ScriptId %08x\n" "uiCodePage %u\n" "wszDescription %s\n" @@ -657,7 +659,7 @@ static void test_rfc1766(IMultiLanguage2 if (ret != S_OK) break; #ifdef DUMP_CP_INFO - trace("lcid %04lx rfc_name %s locale_name %s\n", + trace("lcid %04x rfc_name %s locale_name %s\n", info.lcid, wine_dbgstr_w(info.wszRfc1766), wine_dbgstr_w(info.wszLocaleName)); #endif
1
0
0
0
Dmitry Timoshkov : shlwapi: Make some data const.
by Alexandre Julliard
28 Nov '06
28 Nov '06
Module: wine Branch: master Commit: 884e7eed4a932632d95372b749a807bd3e065331 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=884e7eed4a932632d95372b74…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Tue Nov 28 18:39:32 2006 +0800 shlwapi: Make some data const. --- dlls/shlwapi/ordinal.c | 11 +++++++---- dlls/shlwapi/reg.c | 6 +++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c index 7d5a613..689b040 100644 --- a/dlls/shlwapi/ordinal.c +++ b/dlls/shlwapi/ordinal.c @@ -370,9 +370,10 @@ HANDLE WINAPI SHMapHandle(HANDLE hShared */ HRESULT WINAPI RegisterDefaultAcceptHeaders(LPBC lpBC, IUnknown *lpUnknown) { - static WCHAR szProperty[] = { '{','D','0','F','C','A','4','2','0', + static const WCHAR szProperty[] = { '{','D','0','F','C','A','4','2','0', '-','D','3','F','5','-','1','1','C','F', '-','B','2','1','1','-','0', '0','A','A','0','0','4','A','E','8','3','7','}','\0' }; + BSTR property; IEnumFORMATETC* pIEnumFormatEtc = NULL; VARIANTARG var; HRESULT hRet; @@ -388,7 +389,9 @@ HRESULT WINAPI RegisterDefaultAcceptHead V_VT(&var) = VT_EMPTY; /* The property we get is the browsers clipboard enumerator */ - hRet = IWebBrowserApp_GetProperty(pBrowser, (BSTR)szProperty, &var); + property = SysAllocString(szProperty); + hRet = IWebBrowserApp_GetProperty(pBrowser, property, &var); + SysFreeString(property); if (FAILED(hRet)) return hRet; @@ -2577,7 +2580,7 @@ HRESULT WINAPI IUnknown_GetSite(LPUNKNOW HWND WINAPI SHCreateWorkerWindowA(LONG wndProc, HWND hWndParent, DWORD dwExStyle, DWORD dwStyle, HMENU hMenu, LONG z) { - static const char* szClass = "WorkerA"; + static const char szClass[] = "WorkerA"; WNDCLASSA wc; HWND hWnd; @@ -2814,7 +2817,7 @@ BOOL WINAPI GUIDFromStringW(LPCWSTR idst */ DWORD WINAPI WhichPlatform(void) { - static LPCSTR szIntegratedBrowser = "IntegratedBrowser"; + static const char szIntegratedBrowser[] = "IntegratedBrowser"; static DWORD dwState = 0; HKEY hKey; DWORD dwRet, dwData, dwSize; diff --git a/dlls/shlwapi/reg.c b/dlls/shlwapi/reg.c index 3cec25c..8d4e4c1 100644 --- a/dlls/shlwapi/reg.c +++ b/dlls/shlwapi/reg.c @@ -33,16 +33,16 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell); /* Key/Value names for MIME content types */ -static const char *lpszContentTypeA = "Content Type"; +static const char lpszContentTypeA[] = "Content Type"; static const WCHAR lpszContentTypeW[] = { 'C','o','n','t','e','n','t',' ','T','y','p','e','\0'}; -static const char *szMimeDbContentA = "MIME\\Database\\Content Type\\"; +static const char szMimeDbContentA[] = "MIME\\Database\\Content Type\\"; static const WCHAR szMimeDbContentW[] = { 'M', 'I', 'M','E','\\', 'D','a','t','a','b','a','s','e','\\','C','o','n','t','e','n','t', ' ','T','y','p','e','\\', 0 }; static const DWORD dwLenMimeDbContent = 27; /* strlen of szMimeDbContentA/W */ -static const char *szExtensionA = "Extension"; +static const char szExtensionA[] = "Extension"; static const WCHAR szExtensionW[] = { 'E', 'x', 't','e','n','s','i','o','n','\0' }; /* internal structure of what the HUSKEY points to */
1
0
0
0
Dmitry Timoshkov : oleaut32: Make some data const and static.
by Alexandre Julliard
28 Nov '06
28 Nov '06
Module: wine Branch: master Commit: 601bf6ea12b5f2761d27230ef22eb0fe23ddfb0f URL:
http://source.winehq.org/git/wine.git/?a=commit;h=601bf6ea12b5f2761d27230ef…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Tue Nov 28 18:39:22 2006 +0800 oleaut32: Make some data const and static. --- dlls/oleaut32/oaidl_p.c | 4 ++-- dlls/oleaut32/typelib.c | 2 +- dlls/oleaut32/ungif.c | 2 +- dlls/oleaut32/usrmarshal.c | 2 +- dlls/oleaut32/variant.c | 12 ++++++------ dlls/oleaut32/variant.h | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dlls/oleaut32/oaidl_p.c b/dlls/oleaut32/oaidl_p.c index 1102e1c..c4419d7 100644 --- a/dlls/oleaut32/oaidl_p.c +++ b/dlls/oleaut32/oaidl_p.c @@ -13702,7 +13702,7 @@ static const MIDL_TYPE_FORMAT_STRING __M } }; -static const CInterfaceProxyVtbl * _oaidl_ProxyVtblList[] = +static const CInterfaceProxyVtbl * const _oaidl_ProxyVtblList[] = { ( const CInterfaceProxyVtbl *) &_IDispatchProxyVtbl, ( const CInterfaceProxyVtbl *) &_ITypeInfoProxyVtbl, @@ -13718,7 +13718,7 @@ static const CInterfaceProxyVtbl * _oaid 0 }; -static const CInterfaceStubVtbl * _oaidl_StubVtblList[] = +static const CInterfaceStubVtbl * const _oaidl_StubVtblList[] = { ( const CInterfaceStubVtbl *) &_IDispatchStubVtbl, ( const CInterfaceStubVtbl *) &_ITypeInfoStubVtbl, diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c index a12deb1..6c3b16a 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c @@ -1149,7 +1149,7 @@ static void dump_FUNCDESC(const FUNCDESC dump_ELEMDESC(&funcdesc->elemdescFunc); } -static const char * typekind_desc[] = +static const char * const typekind_desc[] = { "TKIND_ENUM", "TKIND_RECORD", diff --git a/dlls/oleaut32/ungif.c b/dlls/oleaut32/ungif.c index cf1d355..e80f8ab 100644 --- a/dlls/oleaut32/ungif.c +++ b/dlls/oleaut32/ungif.c @@ -742,7 +742,7 @@ DGifDecompressInput(GifFileType * GifFil GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private; GifByteType NextByte; - static unsigned short CodeMasks[] = { + static const unsigned short CodeMasks[] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff, 0x01ff, 0x03ff, 0x07ff, diff --git a/dlls/oleaut32/usrmarshal.c b/dlls/oleaut32/usrmarshal.c index c940f80..02a3ed9 100644 --- a/dlls/oleaut32/usrmarshal.c +++ b/dlls/oleaut32/usrmarshal.c @@ -51,7 +51,7 @@ CSTDSTUBBUFFERRELEASE(&PSFactoryBuffer) extern const ExtendedProxyFileInfo oaidl_ProxyFileInfo; -const ProxyFileInfo* OLEAUT32_ProxyFileList[] = { +static const ProxyFileInfo *OLEAUT32_ProxyFileList[] = { &oaidl_ProxyFileInfo, NULL }; diff --git a/dlls/oleaut32/variant.c b/dlls/oleaut32/variant.c index be5ced4..66c3d07 100644 --- a/dlls/oleaut32/variant.c +++ b/dlls/oleaut32/variant.c @@ -44,7 +44,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(variant); -const char* wine_vtypes[VT_CLSID+1] = +const char * const wine_vtypes[VT_CLSID+1] = { "VT_EMPTY","VT_NULL","VT_I2","VT_I4","VT_R4","VT_R8","VT_CY","VT_DATE", "VT_BSTR","VT_DISPATCH","VT_ERROR","VT_BOOL","VT_VARIANT","VT_UNKNOWN", @@ -57,7 +57,7 @@ const char* wine_vtypes[VT_CLSID+1] = "VT_STREAMED_OBJECT","VT_STORED_OBJECT","VT_BLOB_OBJECT","VT_CF","VT_CLSID" }; -const char* wine_vflags[16] = +const char * const wine_vflags[16] = { "", "|VT_VECTOR", @@ -3094,12 +3094,12 @@ HRESULT WINAPI VarAdd(LPVARIANT left, LP vt_R8, vt_CY, vt_DATE, vt_DECIMAL, vt_DISPATCH, vt_NULL, vt_ERROR }; /* Mapping from priority to variant type. Keep in sync with coerceprio! */ - VARTYPE prio2vt[] = { VT_EMPTY, VT_UI1, VT_I2, VT_I4, VT_I8, VT_BSTR, VT_R4, + static const VARTYPE prio2vt[] = { VT_EMPTY, VT_UI1, VT_I2, VT_I4, VT_I8, VT_BSTR, VT_R4, VT_R8, VT_CY, VT_DATE, VT_DECIMAL, VT_DISPATCH, VT_NULL, VT_ERROR }; /* Mapping for coercion from input variant to priority of result variant. */ - static VARTYPE coerce[] = { + static const VARTYPE coerce[] = { /* VT_EMPTY, VT_NULL, VT_I2, VT_I4, VT_R4 */ vt_EMPTY, vt_NULL, vt_I2, vt_I4, vt_R4, /* VT_R8, VT_CY, VT_DATE, VT_BSTR, VT_DISPATCH */ @@ -3285,11 +3285,11 @@ HRESULT WINAPI VarMul(LPVARIANT left, LP enum coerceprio { vt_UI1 = 0, vt_I2, vt_I4, vt_I8, vt_CY, vt_R4, vt_R8, vt_DECIMAL, vt_NULL, vt_ERROR }; /* Mapping from priority to variant type. Keep in sync with coerceprio! */ - VARTYPE prio2vt[] = { VT_UI1, VT_I2, VT_I4, VT_I8, VT_CY, VT_R4, VT_R8, + static const VARTYPE prio2vt[] = { VT_UI1, VT_I2, VT_I4, VT_I8, VT_CY, VT_R4, VT_R8, VT_DECIMAL, VT_NULL, VT_ERROR }; /* Mapping for coercion from input variant to priority of result variant. */ - static VARTYPE coerce[] = { + static const VARTYPE coerce[] = { /* VT_EMPTY, VT_NULL, VT_I2, VT_I4, VT_R4 */ vt_UI1, vt_NULL, vt_I2, vt_I4, vt_R4, /* VT_R8, VT_CY, VT_DATE, VT_BSTR, VT_DISPATCH */ diff --git a/dlls/oleaut32/variant.h b/dlls/oleaut32/variant.h index 6015df5..c5f2e5d 100644 --- a/dlls/oleaut32/variant.h +++ b/dlls/oleaut32/variant.h @@ -48,12 +48,12 @@ #define VTBIT_VARIANT (1 << VT_VARIANT) #define VTBIT_15 (1 << 15) /* no variant type with this number */ -extern const char* wine_vtypes[]; +extern const char * const wine_vtypes[]; #define debugstr_vt(v) (((v)&VT_TYPEMASK) <= VT_CLSID ? wine_vtypes[((v)&VT_TYPEMASK)] : \ ((v)&VT_TYPEMASK) == VT_BSTR_BLOB ? "VT_BSTR_BLOB": "Invalid") #define debugstr_VT(v) (!(v) ? "(null)" : debugstr_vt(V_TYPE((v)))) -extern const char* wine_vflags[]; +extern const char * const wine_vflags[]; #define debugstr_vf(v) (wine_vflags[((v)&VT_EXTRA_TYPE)>>12]) #define debugstr_VF(v) (!(v) ? "(null)" : debugstr_vf(V_EXTRA_TYPE(v)))
1
0
0
0
Dmitry Timoshkov : ole32: Make some data const.
by Alexandre Julliard
28 Nov '06
28 Nov '06
Module: wine Branch: master Commit: 09fea0f83e00cc9e75a16273a2e7772f0c0dd524 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=09fea0f83e00cc9e75a16273a…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Tue Nov 28 18:39:10 2006 +0800 ole32: Make some data const. --- dlls/ole32/compobj.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c index 59093ff..f29de4d 100644 --- a/dlls/ole32/compobj.c +++ b/dlls/ole32/compobj.c @@ -1001,7 +1001,7 @@ HRESULT WINE_StringFromCLSID( const CLSID *id, /* [in] GUID to be converted */ LPSTR idstr /* [out] pointer to buffer to contain converted guid */ ) { - static const char *hex = "0123456789ABCDEF"; + static const char hex[] = "0123456789ABCDEF"; char *s; int i;
1
0
0
0
Dmitry Timoshkov : shell32: Make some data static and const.
by Alexandre Julliard
28 Nov '06
28 Nov '06
Module: wine Branch: master Commit: e4c0748c2138d0101de264cd2af1c48bd6b5f225 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=e4c0748c2138d0101de264cd2…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Tue Nov 28 18:38:58 2006 +0800 shell32: Make some data static and const. --- dlls/shell32/cpanelfolder.c | 2 +- dlls/shell32/recyclebin.c | 20 ++++++++++---------- dlls/shell32/shell.c | 6 +++--- dlls/shell32/shfldr_desktop.c | 4 +--- dlls/shell32/shfldr_fs.c | 2 +- dlls/shell32/shpolicy.c | 4 ++-- dlls/shell32/xdg.c | 6 +++--- 7 files changed, 21 insertions(+), 23 deletions(-) diff --git a/dlls/shell32/cpanelfolder.c b/dlls/shell32/cpanelfolder.c index 6dd3519..263eb06 100644 --- a/dlls/shell32/cpanelfolder.c +++ b/dlls/shell32/cpanelfolder.c @@ -109,7 +109,7 @@ static inline ICPanelImpl *impl_from_ISh * IShellFolder [ControlPanel] implementation */ -static shvheader ControlPanelSFHeader[] = { +static const shvheader ControlPanelSFHeader[] = { {IDS_SHV_COLUMN8, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15},/*FIXME*/ {IDS_SHV_COLUMN9, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 200},/*FIXME*/ }; diff --git a/dlls/shell32/recyclebin.c b/dlls/shell32/recyclebin.c index 440ed70..7a756b9 100644 --- a/dlls/shell32/recyclebin.c +++ b/dlls/shell32/recyclebin.c @@ -73,7 +73,7 @@ static const columninfo RecycleBinColumn #define COLUMNS_COUNT 6 -HRESULT FormatDateTime(LPWSTR buffer, int size, FILETIME ft) +static HRESULT FormatDateTime(LPWSTR buffer, int size, FILETIME ft) { FILETIME lft; SYSTEMTIME time; @@ -99,22 +99,22 @@ HRESULT FormatDateTime(LPWSTR buffer, in typedef struct tagRecycleBin { - IShellFolder2Vtbl *lpVtbl; - IPersistFolder2Vtbl *lpPersistFolderVtbl; + const IShellFolder2Vtbl *lpVtbl; + const IPersistFolder2Vtbl *lpPersistFolderVtbl; LONG refCount; LPITEMIDLIST pidl; } RecycleBin; -static IShellFolder2Vtbl recycleBinVtbl; -static IPersistFolder2Vtbl recycleBinPersistVtbl; +static const IShellFolder2Vtbl recycleBinVtbl; +static const IPersistFolder2Vtbl recycleBinPersistVtbl; static RecycleBin *impl_from_IPersistFolder(IPersistFolder2 *iface) { - return (RecycleBin *)((char*)iface - FIELD_OFFSET(RecycleBin, lpPersistFolderVtbl)); + return (RecycleBin *)((char *)iface - FIELD_OFFSET(RecycleBin, lpPersistFolderVtbl)); } -void RecycleBin_Destructor(RecycleBin *This); +static void RecycleBin_Destructor(RecycleBin *This); HRESULT WINAPI RecycleBin_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppOutput) { @@ -138,7 +138,7 @@ HRESULT WINAPI RecycleBin_Constructor(IU return S_OK; } -void RecycleBin_Destructor(RecycleBin *This) +static void RecycleBin_Destructor(RecycleBin *This) { /* InterlockedDecrement(&objCount);*/ SHFree(This->pidl); @@ -454,7 +454,7 @@ static HRESULT WINAPI RecycleBin_MapColu return S_OK; } -static IShellFolder2Vtbl recycleBinVtbl = +static const IShellFolder2Vtbl recycleBinVtbl = { /* IUnknown */ RecycleBin_QueryInterface, @@ -498,7 +498,7 @@ static ULONG WINAPI RecycleBin_IPersistF return RecycleBin_Release((IShellFolder2 *)impl_from_IPersistFolder(This)); } -static IPersistFolder2Vtbl recycleBinPersistVtbl = +static const IPersistFolder2Vtbl recycleBinPersistVtbl = { /* IUnknown */ RecycleBin_IPersistFolder2_QueryInterface, diff --git a/dlls/shell32/shell.c b/dlls/shell32/shell.c index eaa1974..e8f3fc1 100644 --- a/dlls/shell32/shell.c +++ b/dlls/shell32/shell.c @@ -60,9 +60,9 @@ typedef struct { /* structure for dr /* memory block with filenames follows */ } DROPFILESTRUCT16, *LPDROPFILESTRUCT16; -static const char* lpstrMsgWndCreated = "OTHERWINDOWCREATED"; -static const char* lpstrMsgWndDestroyed = "OTHERWINDOWDESTROYED"; -static const char* lpstrMsgShellActivate = "ACTIVATESHELLWINDOW"; +static const char lpstrMsgWndCreated[] = "OTHERWINDOWCREATED"; +static const char lpstrMsgWndDestroyed[] = "OTHERWINDOWDESTROYED"; +static const char lpstrMsgShellActivate[] = "ACTIVATESHELLWINDOW"; static HWND SHELL_hWnd = 0; static HHOOK SHELL_hHook = 0; diff --git a/dlls/shell32/shfldr_desktop.c b/dlls/shell32/shfldr_desktop.c index c8be790..428c3f7 100644 --- a/dlls/shell32/shfldr_desktop.c +++ b/dlls/shell32/shfldr_desktop.c @@ -63,8 +63,6 @@ typedef struct { const IShellFolder2Vtbl *lpVtbl; LONG ref; - CLSID *pclsid; - /* both paths are parsible from the desktop */ LPWSTR sPathTarget; /* complete path to target used for enumeration and ChangeNotify */ LPITEMIDLIST pidlRoot; /* absolute pidl */ @@ -76,7 +74,7 @@ typedef struct { #define _IUnknown_(This) (IShellFolder*)&(This->lpVtbl) #define _IShellFolder_(This) (IShellFolder*)&(This->lpVtbl) -static shvheader DesktopSFHeader[] = { +static const shvheader DesktopSFHeader[] = { {IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, {IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, {IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, diff --git a/dlls/shell32/shfldr_fs.c b/dlls/shell32/shfldr_fs.c index d067e8b..208c1d3 100644 --- a/dlls/shell32/shfldr_fs.c +++ b/dlls/shell32/shfldr_fs.c @@ -208,7 +208,7 @@ static const IUnknownVtbl unkvt = IUnknown_fnRelease, }; -static shvheader GenericSFHeader[] = { +static const shvheader GenericSFHeader[] = { {IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15}, {IDS_SHV_COLUMN2, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, {IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10}, diff --git a/dlls/shell32/shpolicy.c b/dlls/shell32/shpolicy.c index 488cb2c..8441a74 100644 --- a/dlls/shell32/shpolicy.c +++ b/dlls/shell32/shpolicy.c @@ -133,7 +133,7 @@ static const char strNoClose[] = {"NoClo static const char strNoRun[] = {"NoRun"}; /* policy data array */ -POLICYDATA sh32_policy_table[] = +static POLICYDATA sh32_policy_table[] = { { REST_NORUN, @@ -796,7 +796,7 @@ POLICYDATA sh32_policy_table[] = 0, 0, SHELL_NO_POLICY - } + } }; /************************************************************************* diff --git a/dlls/shell32/xdg.c b/dlls/shell32/xdg.c index 75196f4..a3d6010 100644 --- a/dlls/shell32/xdg.c +++ b/dlls/shell32/xdg.c @@ -364,8 +364,8 @@ static int dskentry_decode(const char *v */ static int url_encode(const char *value, char *output) { - static const char *unsafechars = "^&`{}|[]'<>\\#%\"+"; - static const char *hexchars = "0123456789ABCDEF"; + static const char unsafechars[] = "^&`{}|[]'<>\\#%\"+"; + static const char hexchars[] = "0123456789ABCDEF"; int num_written = 0; const char *c; @@ -400,7 +400,7 @@ static int decode_url_code(const char *c { const char *p1, *p2; int v1, v2; - static const char *hexchars = "0123456789ABCDEF"; + static const char hexchars[] = "0123456789ABCDEF"; if (*c == 0) return -1;
1
0
0
0
Dmitry Timoshkov : user32: Make some data const.
by Alexandre Julliard
28 Nov '06
28 Nov '06
Module: wine Branch: master Commit: 21bcfd72b0a953099ec2223c4ed81a9bdd160190 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=21bcfd72b0a953099ec2223c4…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Tue Nov 28 18:38:46 2006 +0800 user32: Make some data const. --- dlls/user32/cursoricon.c | 2 +- dlls/user32/spy.c | 2 +- dlls/user32/static.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/user32/cursoricon.c b/dlls/user32/cursoricon.c index 3b15b99..f4d861b 100644 --- a/dlls/user32/cursoricon.c +++ b/dlls/user32/cursoricon.c @@ -130,7 +130,7 @@ static CRITICAL_SECTION_DEBUG critsect_d }; static CRITICAL_SECTION IconCrst = { &critsect_debug, -1, 0, 0, 0, 0 }; -static WORD ICON_HOTSPOT = 0x4242; +static const WORD ICON_HOTSPOT = 0x4242; /*********************************************************************** diff --git a/dlls/user32/spy.c b/dlls/user32/spy.c index d23d230..451b0b2 100644 --- a/dlls/user32/spy.c +++ b/dlls/user32/spy.c @@ -1567,7 +1567,7 @@ static const USER_MSG propsht_array[] = USM(PSM_SETTITLEW ,0), USM(PSM_SETFINISHTEXTW ,0), {0,0,0} }; -const WCHAR PropSheetInfoStr[] = +static const WCHAR PropSheetInfoStr[] = {'P','r','o','p','e','r','t','y','S','h','e','e','t','I','n','f','o',0 }; static const USER_MSG updown_array[] = { diff --git a/dlls/user32/static.c b/dlls/user32/static.c index 3c9292b..df35308 100644 --- a/dlls/user32/static.c +++ b/dlls/user32/static.c @@ -73,7 +73,7 @@ static COLORREF color_3dshadow, color_3d typedef void (*pfPaint)( HWND hwnd, HDC hdc, DWORD style ); -static pfPaint staticPaintFunc[SS_TYPEMASK+1] = +static const pfPaint staticPaintFunc[SS_TYPEMASK+1] = { STATIC_PaintTextfn, /* SS_LEFT */ STATIC_PaintTextfn, /* SS_CENTER */
1
0
0
0
Dmitry Timoshkov : kernel32: Make some data const.
by Alexandre Julliard
28 Nov '06
28 Nov '06
Module: wine Branch: master Commit: 924f73b861437b9858a799085334d2d794d49786 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=924f73b861437b9858a799085…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Tue Nov 28 18:38:34 2006 +0800 kernel32: Make some data const. --- dlls/kernel32/lzexpand.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/kernel32/lzexpand.c b/dlls/kernel32/lzexpand.c index b772296..d645093 100644 --- a/dlls/kernel32/lzexpand.c +++ b/dlls/kernel32/lzexpand.c @@ -68,7 +68,7 @@ struct lzfileheader { CHAR lastchar; DWORD reallength; }; -static BYTE LZMagic[LZ_MAGIC_LEN]={'S','Z','D','D',0x88,0xf0,0x27,0x33}; +static const BYTE LZMagic[LZ_MAGIC_LEN]={'S','Z','D','D',0x88,0xf0,0x27,0x33}; #define LZ_TABLE_SIZE 0x1000
1
0
0
0
Dmitry Timoshkov : winedump: Make some data const.
by Alexandre Julliard
28 Nov '06
28 Nov '06
Module: wine Branch: master Commit: 1297e859b3c1a233649dc43dae5437dc799c5719 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=1297e859b3c1a233649dc43da…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Tue Nov 28 18:38:22 2006 +0800 winedump: Make some data const. --- tools/winedump/debug.c | 2 +- tools/winedump/pe.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/winedump/debug.c b/tools/winedump/debug.c index eb3963b..3ada5eb 100644 --- a/tools/winedump/debug.c +++ b/tools/winedump/debug.c @@ -597,7 +597,7 @@ struct stab_nlist unsigned long n_value; }; -static const char* stabs_defs[] = { +static const char * const stabs_defs[] = { NULL,NULL,NULL,NULL, /* 00 */ NULL,NULL,NULL,NULL, /* 08 */ NULL,NULL,NULL,NULL, /* 10 */ diff --git a/tools/winedump/pe.c b/tools/winedump/pe.c index d452525..d379534 100644 --- a/tools/winedump/pe.c +++ b/tools/winedump/pe.c @@ -830,7 +830,7 @@ void dump_separate_dbg(void) static const char *get_resource_type( unsigned int id ) { - static const char *types[] = + static const char * const types[] = { NULL, "CURSOR",
1
0
0
0
Dmitry Timoshkov : kernel32: Add more obscure PE images that XP is able to load.
by Alexandre Julliard
28 Nov '06
28 Nov '06
Module: wine Branch: master Commit: 720ab29a7f2c55207d6aa4286dbb371a5e2cd58e URL:
http://source.winehq.org/git/wine.git/?a=commit;h=720ab29a7f2c55207d6aa4286…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Tue Nov 28 18:38:07 2006 +0800 kernel32: Add more obscure PE images that XP is able to load. --- dlls/kernel32/tests/loader.c | 89 +++++++++++++++++++++++++++--------------- 1 files changed, 57 insertions(+), 32 deletions(-) diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c index cd5b500..7a0bb98 100644 --- a/dlls/kernel32/tests/loader.c +++ b/dlls/kernel32/tests/loader.c @@ -104,46 +104,46 @@ START_TEST(loader) { static const struct test_data { - WORD size_of_optional_header; + WORD number_of_sections, size_of_optional_header; DWORD section_alignment, file_alignment; DWORD size_of_image, size_of_headers; DWORD error; /* 0 means LoadLibrary should succeed */ } td[] = { - { 0, 0, 0, 0, 0, + { 1, 0, 0, 0, 0, 0, ERROR_BAD_EXE_FORMAT }, - { sizeof(IMAGE_OPTIONAL_HEADER), 0x1000, 0x1000, + { 1, sizeof(IMAGE_OPTIONAL_HEADER), 0x1000, 0x1000, sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER) + 0xe00, sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER), ERROR_BAD_EXE_FORMAT /* XP doesn't like too small image size */ }, - { sizeof(IMAGE_OPTIONAL_HEADER), 0x1000, 0x1000, + { 1, sizeof(IMAGE_OPTIONAL_HEADER), 0x1000, 0x1000, sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER) + 0x1000, sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER), ERROR_SUCCESS }, - { sizeof(IMAGE_OPTIONAL_HEADER), 0x1000, 0x1000, + { 1, sizeof(IMAGE_OPTIONAL_HEADER), 0x1000, 0x1000, 0x1f00, 0x1000, ERROR_SUCCESS }, - { sizeof(IMAGE_OPTIONAL_HEADER), 0x200, 0x200, + { 1, sizeof(IMAGE_OPTIONAL_HEADER), 0x200, 0x200, sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER) + 0x1000, sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER), ERROR_SUCCESS }, - { sizeof(IMAGE_OPTIONAL_HEADER), 0x200, 0x1000, + { 1, sizeof(IMAGE_OPTIONAL_HEADER), 0x200, 0x1000, sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER) + 0x1000, sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER), ERROR_BAD_EXE_FORMAT /* XP doesn't like aligments */ }, - { sizeof(IMAGE_OPTIONAL_HEADER), 0x1000, 0x200, + { 1, sizeof(IMAGE_OPTIONAL_HEADER), 0x1000, 0x200, sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER) + 0x1000, sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER), ERROR_SUCCESS }, - { sizeof(IMAGE_OPTIONAL_HEADER), 0x1000, 0x200, + { 1, sizeof(IMAGE_OPTIONAL_HEADER), 0x1000, 0x200, sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER) + 0x1000, 0x200, ERROR_SUCCESS @@ -151,10 +151,30 @@ START_TEST(loader) /* Mandatory are all fields up to SizeOfHeaders, everything else * is really optional (at least that's true for XP). */ - { FIELD_OFFSET(IMAGE_OPTIONAL_HEADER, CheckSum), 0x200, 0x200, + { 1, FIELD_OFFSET(IMAGE_OPTIONAL_HEADER, CheckSum), 0x200, 0x200, sizeof(dos_header) + sizeof(DWORD) + sizeof(IMAGE_FILE_HEADER) + FIELD_OFFSET(IMAGE_OPTIONAL_HEADER, CheckSum) + sizeof(IMAGE_SECTION_HEADER) + 0x10, sizeof(dos_header) + sizeof(DWORD) + sizeof(IMAGE_FILE_HEADER) + FIELD_OFFSET(IMAGE_OPTIONAL_HEADER, CheckSum) + sizeof(IMAGE_SECTION_HEADER), ERROR_SUCCESS + }, + { 0, FIELD_OFFSET(IMAGE_OPTIONAL_HEADER, CheckSum), 0x200, 0x200, + 0xd0, /* beyond of the end of file */ + 0xc0, /* beyond of the end of file */ + ERROR_SUCCESS + }, + { 0, FIELD_OFFSET(IMAGE_OPTIONAL_HEADER, CheckSum), 0x200, 0x200, + 0x1000, + 0, + ERROR_SUCCESS + }, + { 0, FIELD_OFFSET(IMAGE_OPTIONAL_HEADER, CheckSum), 0x200, 0x200, + 1, + 0, + ERROR_SUCCESS + }, + { 0, FIELD_OFFSET(IMAGE_OPTIONAL_HEADER, CheckSum), 0x200, 0x200, + 0, + 0, + ERROR_BAD_EXE_FORMAT /* image size == 0 -> failure */ } }; static const char filler[0x1000]; @@ -188,6 +208,7 @@ START_TEST(loader) ok(WriteFile(hfile, &dos_header, sizeof(dos_header), &dummy, NULL), "WriteFile error %d\n", GetLastError()); + nt_header.FileHeader.NumberOfSections = td[i].number_of_sections; nt_header.FileHeader.SizeOfOptionalHeader = td[i].size_of_optional_header; nt_header.OptionalHeader.SectionAlignment = td[i].section_alignment; @@ -207,35 +228,39 @@ START_TEST(loader) "WriteFile error %d\n", GetLastError()); } - if (nt_header.OptionalHeader.SectionAlignment == si.dwPageSize) + assert(nt_header.FileHeader.NumberOfSections <= 1); + if (nt_header.FileHeader.NumberOfSections) { - section.VirtualAddress = nt_header.OptionalHeader.SectionAlignment; - section.PointerToRawData = nt_header.OptionalHeader.FileAlignment; - SetLastError(0xdeadbeef); - ok(WriteFile(hfile, §ion, sizeof(section), &dummy, NULL), - "WriteFile error %d\n", GetLastError()); + if (nt_header.OptionalHeader.SectionAlignment == si.dwPageSize) + { + section.VirtualAddress = nt_header.OptionalHeader.SectionAlignment; + section.PointerToRawData = nt_header.OptionalHeader.FileAlignment; + SetLastError(0xdeadbeef); + ok(WriteFile(hfile, §ion, sizeof(section), &dummy, NULL), + "WriteFile error %d\n", GetLastError()); - file_size = GetFileSize(hfile, NULL); + file_size = GetFileSize(hfile, NULL); - file_align = ALIGN_SIZE(file_size, nt_header.OptionalHeader.FileAlignment) - file_size; - SetLastError(0xdeadbeef); - ok(WriteFile(hfile, filler, file_align, &dummy, NULL), - "WriteFile error %d\n", GetLastError()); - } - else - { - section.VirtualAddress = nt_header.OptionalHeader.SizeOfHeaders; - section.PointerToRawData = nt_header.OptionalHeader.SizeOfHeaders; + file_align = ALIGN_SIZE(file_size, nt_header.OptionalHeader.FileAlignment) - file_size; + SetLastError(0xdeadbeef); + ok(WriteFile(hfile, filler, file_align, &dummy, NULL), + "WriteFile error %d\n", GetLastError()); + } + else + { + section.VirtualAddress = nt_header.OptionalHeader.SizeOfHeaders; + section.PointerToRawData = nt_header.OptionalHeader.SizeOfHeaders; + SetLastError(0xdeadbeef); + ok(WriteFile(hfile, §ion, sizeof(section), &dummy, NULL), + "WriteFile error %d\n", GetLastError()); + } + + /* section data */ SetLastError(0xdeadbeef); - ok(WriteFile(hfile, §ion, sizeof(section), &dummy, NULL), + ok(WriteFile(hfile, filler, 0x10, &dummy, NULL), "WriteFile error %d\n", GetLastError()); } - /* section data */ - SetLastError(0xdeadbeef); - ok(WriteFile(hfile, filler, 0x10, &dummy, NULL), - "WriteFile error %d\n", GetLastError()); - CloseHandle(hfile); SetLastError(0xdeadbeef);
1
0
0
0
← Newer
1
...
5
6
7
8
9
10
11
...
80
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Results per page:
10
25
50
100
200