ReactOS.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
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
List overview
Download
Ros-diffs
March 2018
----- 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
ros-diffs@reactos.org
25 participants
436 discussions
Start a n
N
ew thread
01/01: [WINHTTP] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=0530cb8bedec62988fb3d…
commit 0530cb8bedec62988fb3dc5815591185c44e1679 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sat Mar 24 13:15:44 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sat Mar 24 13:15:44 2018 +0100 [WINHTTP] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/winhttp/CMakeLists.txt | 4 +-- dll/win32/winhttp/cookie.c | 12 +++++++ dll/win32/winhttp/handle.c | 12 +++++++ dll/win32/winhttp/main.c | 17 ++++++++-- dll/win32/winhttp/net.c | 27 ++++++++++++++-- dll/win32/winhttp/precomp.h | 26 ++++++++++++++++ dll/win32/winhttp/request.c | 36 +++++++++++++-------- dll/win32/winhttp/session.c | 62 +++++++++++++++++++++---------------- dll/win32/winhttp/url.c | 13 ++++++++ dll/win32/winhttp/winhttp_private.h | 56 +++++++-------------------------- media/doc/README.WINE | 2 +- 11 files changed, 174 insertions(+), 93 deletions(-) diff --git a/dll/win32/winhttp/CMakeLists.txt b/dll/win32/winhttp/CMakeLists.txt index 9245cfaf5f..988c769b0b 100644 --- a/dll/win32/winhttp/CMakeLists.txt +++ b/dll/win32/winhttp/CMakeLists.txt @@ -17,7 +17,7 @@ list(APPEND SOURCE request.c session.c url.c - winhttp_private.h) + precomp.h) set_source_files_properties(rsrc.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/winhttp_tlb.tlb) add_typelib(winhttp_tlb.idl) @@ -32,5 +32,5 @@ target_link_libraries(winhttp uuid wine) add_delay_importlibs(winhttp oleaut32 ole32 crypt32 secur32) add_importlibs(winhttp user32 advapi32 ws2_32 jsproxy kernel32_vista msvcrt kernel32 ntdll) add_dependencies(winhttp stdole2) -add_pch(winhttp winhttp_private.h SOURCE) +add_pch(winhttp precomp.h SOURCE) add_cd_file(TARGET winhttp DESTINATION reactos/system32 FOR all) diff --git a/dll/win32/winhttp/cookie.c b/dll/win32/winhttp/cookie.c index 2d2dbf325e..b4b25304f7 100644 --- a/dll/win32/winhttp/cookie.c +++ b/dll/win32/winhttp/cookie.c @@ -16,8 +16,20 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "config.h" +#include <stdarg.h> + +#include "wine/debug.h" +#include "wine/list.h" + +#include "windef.h" +#include "winbase.h" +#include "winhttp.h" + #include "winhttp_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(winhttp); + static domain_t *add_domain( session_t *session, WCHAR *name ) { domain_t *domain; diff --git a/dll/win32/winhttp/handle.c b/dll/win32/winhttp/handle.c index e67e5e3eba..6026a49610 100644 --- a/dll/win32/winhttp/handle.c +++ b/dll/win32/winhttp/handle.c @@ -18,8 +18,20 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "config.h" +#include "wine/port.h" +#include "wine/debug.h" + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "winhttp.h" + #include "winhttp_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(winhttp); + #define HANDLE_CHUNK_SIZE 0x10 static CRITICAL_SECTION handle_cs; diff --git a/dll/win32/winhttp/main.c b/dll/win32/winhttp/main.c index 55c601e5d5..a63f28cf10 100644 --- a/dll/win32/winhttp/main.c +++ b/dll/win32/winhttp/main.c @@ -16,13 +16,24 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "objbase.h" +#include "rpcproxy.h" +#include "httprequest.h" +#include "winhttp.h" + +#include "wine/debug.h" #include "winhttp_private.h" -#include <rpcproxy.h> -#include <httprequest.h> - HINSTANCE winhttp_instance; +WINE_DEFAULT_DEBUG_CHANNEL(winhttp); + /****************************************************************** * DllMain (winhttp.@) */ diff --git a/dll/win32/winhttp/net.c b/dll/win32/winhttp/net.c index bf78b22647..e9ff86a165 100644 --- a/dll/win32/winhttp/net.c +++ b/dll/win32/winhttp/net.c @@ -17,11 +17,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "winhttp_private.h" +#include "config.h" +#include "wine/port.h" +#include <stdarg.h> +#include <stdio.h> +#include <errno.h> #include <assert.h> -#include <schannel.h> +#include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H # include <sys/socket.h> #endif @@ -35,6 +39,25 @@ # include <poll.h> #endif +#define NONAMELESSUNION + +#include "wine/debug.h" +#include "wine/library.h" + +#include "windef.h" +#include "winbase.h" +#include "winhttp.h" +#include "wincrypt.h" +#include "schannel.h" + +#include "winhttp_private.h" + +/* to avoid conflicts with the Unix socket headers */ +#define USE_WS_PREFIX +#include "winsock2.h" + +WINE_DEFAULT_DEBUG_CHANNEL(winhttp); + #ifndef HAVE_GETADDRINFO /* critical section to protect non-reentrant gethostbyname() */ diff --git a/dll/win32/winhttp/precomp.h b/dll/win32/winhttp/precomp.h new file mode 100644 index 0000000000..53f0b1365d --- /dev/null +++ b/dll/win32/winhttp/precomp.h @@ -0,0 +1,26 @@ + +#ifndef _WINHTTP_PRECOMP_H_ +#define _WINHTTP_PRECOMP_H_ + +#include <wine/config.h> + +#include <stdarg.h> + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#define COBJMACROS +#define NONAMELESSUNION + +#include <windef.h> +#include <winbase.h> +#include <ole2.h> +#include <winsock2.h> +#include <winhttp.h> + +#include <wine/debug.h> + +#include "winhttp_private.h" + +#endif /* !_WINHTTP_PRECOMP_H_ */ diff --git a/dll/win32/winhttp/request.c b/dll/win32/winhttp/request.c index f3098e34d0..5bb5b09337 100644 --- a/dll/win32/winhttp/request.c +++ b/dll/win32/winhttp/request.c @@ -19,19 +19,34 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "winhttp_private.h" +#define COBJMACROS +#include "config.h" +#include "wine/port.h" +#include <stdarg.h> +#include <assert.h> #ifdef HAVE_ARPA_INET_H # include <arpa/inet.h> #endif -#include <assert.h> -#include <winuser.h> -#include <httprequest.h> -#include <httprequestid.h> -#include <schannel.h> +#include "windef.h" +#include "winbase.h" +#include "ole2.h" +#include "initguid.h" +#include "httprequest.h" +#include "httprequestid.h" +#include "schannel.h" +#include "winhttp.h" + +#include "winhttp_private.h" + +#include "wine/debug.h" +WINE_DEFAULT_DEBUG_CHANNEL(winhttp); + +#ifdef __REACTOS__ #include "inet_ntop.c" +#endif #define DEFAULT_KEEP_ALIVE_TIMEOUT 30000 @@ -391,7 +406,7 @@ static BOOL delete_header( request_t *request, DWORD index ) return TRUE; } -static BOOL process_header( request_t *request, LPCWSTR field, LPCWSTR value, DWORD flags, BOOL request_only ) +BOOL process_header( request_t *request, LPCWSTR field, LPCWSTR value, DWORD flags, BOOL request_only ) { int index; header_t hdr; @@ -2060,16 +2075,11 @@ static BOOL send_request( request_t *request, LPCWSTR headers, DWORD headers_len WCHAR *req = NULL; char *req_ascii; int bytes_sent; - DWORD len, i, flags; + DWORD len; clear_response_headers( request ); drain_content( request ); - flags = WINHTTP_ADDREQ_FLAG_ADD|WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA; - for (i = 0; i < request->num_accept_types; i++) - { - process_header( request, attr_accept, request->accept_types[i], flags, TRUE ); - } if (session->agent) process_header( request, attr_user_agent, session->agent, WINHTTP_ADDREQ_FLAG_ADD_IF_NEW, TRUE ); diff --git a/dll/win32/winhttp/session.c b/dll/win32/winhttp/session.c index 7ab10a66e4..cef533f1c0 100644 --- a/dll/win32/winhttp/session.c +++ b/dll/win32/winhttp/session.c @@ -16,12 +16,40 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "config.h" +#include "wine/port.h" +#include "wine/debug.h" + +#include <stdarg.h> +#include <stdlib.h> + +#ifdef HAVE_CORESERVICES_CORESERVICES_H +#define GetCurrentThread MacGetCurrentThread +#define LoadResource MacLoadResource +#include <CoreServices/CoreServices.h> +#undef GetCurrentThread +#undef LoadResource +#undef DPRINTF +#endif + +#include "windef.h" +#include "winbase.h" +#ifndef __MINGW32__ +#define USE_WS_PREFIX +#endif +#include "winsock2.h" +#include "ws2ipdef.h" +#include "winhttp.h" +#include "wincrypt.h" +#include "winreg.h" +#define COBJMACROS +#include "ole2.h" +#include "dispex.h" +#include "activscp.h" + #include "winhttp_private.h" -#include <wincrypt.h> -#include <winreg.h> -#include <dispex.h> -#include <activscp.h> +WINE_DEFAULT_DEBUG_CHANNEL(winhttp); #define DEFAULT_RESOLVE_TIMEOUT 0 #define DEFAULT_CONNECT_TIMEOUT 20000 @@ -589,8 +617,6 @@ static void request_destroy( object_header_t *hdr ) heap_free( request->headers[i].value ); } heap_free( request->headers ); - for (i = 0; i < request->num_accept_types; i++) heap_free( request->accept_types[i] ); - heap_free( request->accept_types ); for (i = 0; i < TARGET_MAX; i++) { for (j = 0; j < SCHEME_MAX; j++) @@ -1016,32 +1042,14 @@ static const object_vtbl_t request_vtbl = static BOOL store_accept_types( request_t *request, const WCHAR **accept_types ) { + static const WCHAR attr_accept[] = {'A','c','c','e','p','t',0}; + static const DWORD flags = WINHTTP_ADDREQ_FLAG_ADD | WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA; const WCHAR **types = accept_types; - DWORD i; if (!types) return TRUE; while (*types) { - request->num_accept_types++; - types++; - } - if (!request->num_accept_types) return TRUE; - if (!(request->accept_types = heap_alloc( request->num_accept_types * sizeof(WCHAR *)))) - { - request->num_accept_types = 0; - return FALSE; - } - types = accept_types; - for (i = 0; i < request->num_accept_types; i++) - { - if (!(request->accept_types[i] = strdupW( *types ))) - { - for ( ; i > 0; --i) heap_free( request->accept_types[i - 1] ); - heap_free( request->accept_types ); - request->accept_types = NULL; - request->num_accept_types = 0; - return FALSE; - } + process_header( request, attr_accept, *types, flags, TRUE ); types++; } return TRUE; diff --git a/dll/win32/winhttp/url.c b/dll/win32/winhttp/url.c index e21dbfc81c..32b30da0ce 100644 --- a/dll/win32/winhttp/url.c +++ b/dll/win32/winhttp/url.c @@ -16,8 +16,21 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "config.h" +#include <stdarg.h> + +#include "wine/debug.h" + +#include "windef.h" +#include "winbase.h" +#include "winreg.h" +#include "winhttp.h" +#include "shlwapi.h" + #include "winhttp_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(winhttp); + static const WCHAR scheme_http[] = {'h','t','t','p',0}; static const WCHAR scheme_https[] = {'h','t','t','p','s',0}; diff --git a/dll/win32/winhttp/winhttp_private.h b/dll/win32/winhttp/winhttp_private.h index 1e6d16a238..d5ec9ca4f9 100644 --- a/dll/win32/winhttp/winhttp_private.h +++ b/dll/win32/winhttp/winhttp_private.h @@ -19,27 +19,15 @@ #ifndef _WINE_WINHTTP_PRIVATE_H_ #define _WINE_WINHTTP_PRIVATE_H_ -#include <wine/config.h> - -#include <stdarg.h> - -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - -#define COBJMACROS -#define NONAMELESSUNION - -#include <windef.h> -#include <winbase.h> -#include <objbase.h> -#include <oleauto.h> -#include <winsock2.h> -#include <winhttp.h> +#ifndef __WINE_CONFIG_H +# error You must include config.h to use this header +#endif -#include <wine/list.h> -#include <wine/unicode.h> +#include "wine/heap.h" +#include "wine/list.h" +#include "wine/unicode.h" +#include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H # include <sys/socket.h> #endif @@ -56,10 +44,8 @@ # define ioctlsocket ioctl #endif -#include <sspi.h> - -#include <wine/debug.h> -WINE_DEFAULT_DEBUG_CHANNEL(winhttp); +#include "ole2.h" +#include "sspi.h" static const WCHAR getW[] = {'G','E','T',0}; static const WCHAR postW[] = {'P','O','S','T',0}; @@ -238,8 +224,6 @@ typedef struct char read_buf[8192]; /* buffer for already read but not returned data */ header_t *headers; DWORD num_headers; - WCHAR **accept_types; - DWORD num_accept_types; struct authinfo *authinfo; struct authinfo *proxy_authinfo; HANDLE task_wait; @@ -334,34 +318,16 @@ void destroy_authinfo( struct authinfo * ) DECLSPEC_HIDDEN; void release_host( hostdata_t *host ) DECLSPEC_HIDDEN; +BOOL process_header( request_t *request, LPCWSTR field, LPCWSTR value, DWORD flags, BOOL request_only ) DECLSPEC_HIDDEN; + extern HRESULT WinHttpRequest_create( void ** ) DECLSPEC_HIDDEN; void release_typelib( void ) DECLSPEC_HIDDEN; -static inline void* __WINE_ALLOC_SIZE(1) heap_alloc( SIZE_T size ) -{ - return HeapAlloc( GetProcessHeap(), 0, size ); -} - -static inline void* __WINE_ALLOC_SIZE(1) heap_alloc_zero( SIZE_T size ) -{ - return HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, size ); -} - -static inline void* __WINE_ALLOC_SIZE(2) heap_realloc( LPVOID mem, SIZE_T size ) -{ - return HeapReAlloc( GetProcessHeap(), 0, mem, size ); -} - static inline void* __WINE_ALLOC_SIZE(2) heap_realloc_zero( LPVOID mem, SIZE_T size ) { return HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, mem, size ); } -static inline BOOL heap_free( LPVOID mem ) -{ - return HeapFree( GetProcessHeap(), 0, mem ); -} - static inline WCHAR *strdupW( const WCHAR *src ) { WCHAR *dst; diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 3f6efecc3a..15c38ec55e 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -200,7 +200,7 @@ reactos/dll/win32/windowscodecs # Synced to WineStaging-3.3 reactos/dll/win32/windowscodecsext # Synced to WineStaging-2.9 reactos/dll/win32/winemp3.acm # Synced to WineStaging-3.3 reactos/dll/win32/wing32 # Synced to WineStaging-3.3 -reactos/dll/win32/winhttp # Synced to Wine-3.0 +reactos/dll/win32/winhttp # Synced to WineStaging-3.3 reactos/dll/win32/wininet # Synced to Wine-3.0 reactos/dll/win32/winmm # Forked at Wine-20050628 reactos/dll/win32/winmm/midimap # Forked at Wine-20050628
6 years, 9 months
1
0
0
0
01/01: [WING32] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ce9211a205924c0b9deac…
commit ce9211a205924c0b9deac86e3955709ff95d1a2c Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sat Mar 24 13:14:55 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sat Mar 24 13:14:55 2018 +0100 [WING32] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/wing32/wing32.c | 8 +++++--- media/doc/README.WINE | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dll/win32/wing32/wing32.c b/dll/win32/wing32/wing32.c index 8b24dbafc0..b6702ba801 100644 --- a/dll/win32/wing32/wing32.c +++ b/dll/win32/wing32/wing32.c @@ -19,9 +19,11 @@ */ #include <stdarg.h> -#include <windef.h> -#include <winuser.h> -#include <wingdi.h> + +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" /*********************************************************************** * WinGCreateDC (WING32.@) diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 41db149705..3f6efecc3a 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -199,7 +199,7 @@ reactos/dll/win32/wbemprox # Synced to WineStaging-3.3 reactos/dll/win32/windowscodecs # Synced to WineStaging-3.3 reactos/dll/win32/windowscodecsext # Synced to WineStaging-2.9 reactos/dll/win32/winemp3.acm # Synced to WineStaging-3.3 -reactos/dll/win32/wing32 # Synced to WineStaging-2.9 +reactos/dll/win32/wing32 # Synced to WineStaging-3.3 reactos/dll/win32/winhttp # Synced to Wine-3.0 reactos/dll/win32/wininet # Synced to Wine-3.0 reactos/dll/win32/winmm # Forked at Wine-20050628
6 years, 9 months
1
0
0
0
01/01: [WINEMP3.ACM] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8ebb0aa438c0a2f3405c3…
commit 8ebb0aa438c0a2f3405c3cff3154926f6a45a9ee Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sat Mar 24 13:14:19 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sat Mar 24 13:14:19 2018 +0100 [WINEMP3.ACM] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/winemp3.acm/mpegl3.c | 41 +++++++++++++++++++++++++++-------------- media/doc/README.WINE | 2 +- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/dll/win32/winemp3.acm/mpegl3.c b/dll/win32/winemp3.acm/mpegl3.c index 15acdeaad5..b28519f835 100644 --- a/dll/win32/winemp3.acm/mpegl3.c +++ b/dll/win32/winemp3.acm/mpegl3.c @@ -21,12 +21,12 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include <config.h> -//#include "wine/port.h" +#include "config.h" +#include "wine/port.h" #include <assert.h> #include <stdarg.h> -//#include <string.h> +#include <string.h> #ifdef HAVE_MPG123_H # include <mpg123.h> @@ -40,16 +40,16 @@ # endif #endif -#include <windef.h> -#include <winbase.h> -#include <wingdi.h> -#include <winuser.h> -#include <winnls.h> -//#include "mmsystem.h" -//#include "mmreg.h" -//#include "msacm.h" -#include <msacmdrv.h> -#include <wine/debug.h> +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" +#include "winnls.h" +#include "mmsystem.h" +#include "mmreg.h" +#include "msacm.h" +#include "msacmdrv.h" +#include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(mpeg3); @@ -215,6 +215,7 @@ static void MPEG3_Reset(PACMDRVSTREAMINSTANCE adsi, AcmMpeg3Data* aad) */ static LRESULT MPEG3_StreamOpen(PACMDRVSTREAMINSTANCE adsi) { + LRESULT error = MMSYSERR_NOTSUPPORTED; AcmMpeg3Data* aad; int err; @@ -238,6 +239,18 @@ static LRESULT MPEG3_StreamOpen(PACMDRVSTREAMINSTANCE adsi) adsi->pwfxSrc->wFormatTag == WAVE_FORMAT_MPEG) && adsi->pwfxDst->wFormatTag == WAVE_FORMAT_PCM) { + if (adsi->pwfxSrc->wFormatTag == WAVE_FORMAT_MPEGLAYER3) + { + MPEGLAYER3WAVEFORMAT *formatmp3 = (MPEGLAYER3WAVEFORMAT *)adsi->pwfxSrc; + + if (adsi->pwfxSrc->cbSize < MPEGLAYER3_WFX_EXTRA_BYTES || + formatmp3->wID != MPEGLAYER3_ID_MPEG) + { + error = ACMERR_NOTPOSSIBLE; + goto theEnd; + } + } + /* resampling or mono <=> stereo not available * MPEG3 algo only define 16 bit per sample output */ @@ -273,7 +286,7 @@ static LRESULT MPEG3_StreamOpen(PACMDRVSTREAMINSTANCE adsi) theEnd: HeapFree(GetProcessHeap(), 0, aad); adsi->dwDriver = 0L; - return MMSYSERR_NOTSUPPORTED; + return error; } /*********************************************************************** diff --git a/media/doc/README.WINE b/media/doc/README.WINE index b4bd2a8c39..41db149705 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -198,7 +198,7 @@ reactos/dll/win32/wbemdisp # Synced to WineStaging-3.3 reactos/dll/win32/wbemprox # Synced to WineStaging-3.3 reactos/dll/win32/windowscodecs # Synced to WineStaging-3.3 reactos/dll/win32/windowscodecsext # Synced to WineStaging-2.9 -reactos/dll/win32/winemp3.acm # Synced to Wine-3.0 +reactos/dll/win32/winemp3.acm # Synced to WineStaging-3.3 reactos/dll/win32/wing32 # Synced to WineStaging-2.9 reactos/dll/win32/winhttp # Synced to Wine-3.0 reactos/dll/win32/wininet # Synced to Wine-3.0
6 years, 9 months
1
0
0
0
01/01: [WBEMPROX_WINETEST] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ecb6144602696470b2b8c…
commit ecb6144602696470b2b8c1a46c9413e672109a8e Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sat Mar 24 13:13:22 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sat Mar 24 13:13:22 2018 +0100 [WBEMPROX_WINETEST] Sync with Wine Staging 3.3. CORE-14434 --- modules/rostests/winetests/wbemprox/query.c | 358 +++++++++++++++++++++++++++- 1 file changed, 348 insertions(+), 10 deletions(-) diff --git a/modules/rostests/winetests/wbemprox/query.c b/modules/rostests/winetests/wbemprox/query.c index 79b09c0966..d95fdd970b 100644 --- a/modules/rostests/winetests/wbemprox/query.c +++ b/modules/rostests/winetests/wbemprox/query.c @@ -288,6 +288,8 @@ static void test_Win32_Bios( IWbemServices *services ) static const WCHAR releasedateW[] = {'R','e','l','e','a','s','e','D','a','t','e',0}; static const WCHAR serialnumberW[] = {'S','e','r','i','a','l','N','u','m','b','e','r',0}; static const WCHAR smbiosbiosversionW[] = {'S','M','B','I','O','S','B','I','O','S','V','e','r','s','i','o','n',0}; + static const WCHAR smbiosmajorversionW[] = {'S','M','B','I','O','S','M','a','j','o','r','V','e','r','s','i','o','n',0}; + static const WCHAR smbiosminorversionW[] = {'S','M','B','I','O','S','M','i','n','o','r','V','e','r','s','i','o','n',0}; static const WCHAR versionW[] = {'V','e','r','s','i','o','n',0}; BSTR wql = SysAllocString( wqlW ), query = SysAllocString( queryW ); IEnumWbemClassObject *result; @@ -365,6 +367,22 @@ static void test_Win32_Bios( IWbemServices *services ) trace( "bios version: %s\n", wine_dbgstr_w(V_BSTR( &val )) ); VariantClear( &val ); + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, smbiosmajorversionW, 0, &val, &type, NULL ); + ok( hr == S_OK, "failed to get bios major version %08x\n", hr ); + ok( V_VT( &val ) == VT_I4, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_UINT16, "unexpected type 0x%x\n", type ); + trace( "bios major version: %u\n", V_I4( &val ) ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, smbiosminorversionW, 0, &val, &type, NULL ); + ok( hr == S_OK, "failed to get bios minor version %08x\n", hr ); + ok( V_VT( &val ) == VT_I4, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_UINT16, "unexpected type 0x%x\n", type ); + trace( "bios minor version: %u\n", V_I4( &val ) ); + type = 0xdeadbeef; VariantInit( &val ); hr = IWbemClassObject_Get( obj, versionW, 0, &val, &type, NULL ); @@ -1072,7 +1090,7 @@ static void test_SystemSecurity( IWbemServices *services ) SysFreeString( class ); } -static void test_OperatingSystem( IWbemServices *services ) +static void test_Win32_OperatingSystem( IWbemServices *services ) { static const WCHAR queryW[] = {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ','W','i','n','3','2','_', @@ -1080,6 +1098,7 @@ static void test_OperatingSystem( IWbemServices *services ) static const WCHAR buildnumberW[] = {'B','u','i','l','d','N','u','m','b','e','r',0}; static const WCHAR captionW[] = {'C','a','p','t','i','o','n',0}; static const WCHAR csdversionW[] = {'C','S','D','V','e','r','s','i','o','n',0}; + static const WCHAR freephysicalmemoryW[] = {'F','r','e','e','P','h','y','s','i','c','a','l','M','e','m','o','r','y',0}; static const WCHAR nameW[] = {'N','a','m','e',0}; static const WCHAR osproductsuiteW[] = {'O','S','P','r','o','d','u','c','t','S','u','i','t','e',0}; static const WCHAR ostypeW[] = {'O','S','T','y','p','e',0}; @@ -1134,6 +1153,15 @@ static void test_OperatingSystem( IWbemServices *services ) trace( "csdversion: %s\n", wine_dbgstr_w(V_BSTR( &val )) ); VariantClear( &val ); + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, freephysicalmemoryW, 0, &val, &type, NULL ); + ok( hr == S_OK, "failed to get free physical memory size %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_UINT64, "unexpected type 0x%x\n", type ); + trace( "freephysicalmemory %s\n", wine_dbgstr_w(V_BSTR(&val)) ); + VariantClear( &val ); + type = 0xdeadbeef; VariantInit( &val ); hr = IWbemClassObject_Get( obj, nameW, 0, &val, &type, NULL ); @@ -1221,9 +1249,20 @@ static void test_OperatingSystem( IWbemServices *services ) SysFreeString( wql ); } -static void test_ComputerSystemProduct( IWbemServices *services ) +static void test_Win32_ComputerSystemProduct( IWbemServices *services ) { - static const WCHAR uuidW[] = {'U','U','I','D',0}; + static const WCHAR identifyingnumberW[] = + {'I','d','e','n','t','i','f','y','i','n','g','N','u','m','b','e','r',0}; + static const WCHAR nameW[] = + {'N','a','m','e',0}; + static const WCHAR skunumberW[] = + {'S','K','U','N','u','m','b','e','r',0}; + static const WCHAR uuidW[] = + {'U','U','I','D',0}; + static const WCHAR vendorW[] = + {'V','e','n','d','o','r',0}; + static const WCHAR versionW[] = + {'V','e','r','s','i','o','n',0}; static const WCHAR queryW[] = {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ','W','i','n','3','2','_', 'C','o','m','p','u','t','e','r','S','y','s','t','e','m','P','r','o','d','u','c','t',0}; @@ -1245,22 +1284,66 @@ static void test_ComputerSystemProduct( IWbemServices *services ) hr = IEnumWbemClassObject_Next( result, 10000, 1, &obj, &count ); ok( hr == S_OK, "got %08x\n", hr ); + type = 0xdeadbeef; + VariantInit( &value ); + hr = IWbemClassObject_Get( obj, identifyingnumberW, 0, &value, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &value ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &value ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "identifyingnumber %s\n", wine_dbgstr_w(V_BSTR(&value)) ); + VariantClear( &value ); + + type = 0xdeadbeef; + VariantInit( &value ); + hr = IWbemClassObject_Get( obj, nameW, 0, &value, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &value ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &value ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "name %s\n", wine_dbgstr_w(V_BSTR(&value)) ); + VariantClear( &value ); + + type = 0xdeadbeef; + VariantInit( &value ); + hr = IWbemClassObject_Get( obj, skunumberW, 0, &value, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &value ) == VT_NULL, "unexpected variant type 0x%x\n", V_VT( &value ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + VariantClear( &value ); + type = 0xdeadbeef; VariantInit( &value ); hr = IWbemClassObject_Get( obj, uuidW, 0, &value, &type, NULL ); - ok( hr == S_OK, "failed to get computer name %08x\n", hr ); + ok( hr == S_OK, "got %08x\n", hr ); ok( V_VT( &value ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &value ) ); ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); trace( "uuid %s\n", wine_dbgstr_w(V_BSTR(&value)) ); VariantClear( &value ); + type = 0xdeadbeef; + VariantInit( &value ); + hr = IWbemClassObject_Get( obj, vendorW, 0, &value, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &value ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &value ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "vendor %s\n", wine_dbgstr_w(V_BSTR(&value)) ); + VariantClear( &value ); + + type = 0xdeadbeef; + VariantInit( &value ); + hr = IWbemClassObject_Get( obj, versionW, 0, &value, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &value ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &value ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "version %s\n", wine_dbgstr_w(V_BSTR(&value)) ); + VariantClear( &value ); + IWbemClassObject_Release( obj ); IEnumWbemClassObject_Release( result ); SysFreeString( query ); SysFreeString( wql ); } -static void test_PhysicalMemory( IWbemServices *services ) +static void test_Win32_PhysicalMemory( IWbemServices *services ) { static const WCHAR capacityW[] = {'C','a','p','a','c','i','t','y',0}; static const WCHAR memorytypeW[] = {'M','e','m','o','r','y','T','y','p','e',0}; @@ -1309,7 +1392,7 @@ static void test_PhysicalMemory( IWbemServices *services ) SysFreeString( wql ); } -static void test_IP4RouteTable( IWbemServices *services ) +static void test_Win32_IP4RouteTable( IWbemServices *services ) { static const WCHAR destinationW[] = {'D','e','s','t','i','n','a','t','i','o','n',0}; static const WCHAR interfaceindexW[] = {'I','n','t','e','r','f','a','c','e','I','n','d','e','x',0}; @@ -1371,6 +1454,258 @@ static void test_IP4RouteTable( IWbemServices *services ) SysFreeString( wql ); } +static void test_Win32_Processor( IWbemServices *services ) +{ + static const WCHAR architectureW[] = + {'A','r','c','h','i','t','e','c','t','u','r','e',0}; + static const WCHAR familyW[] = + {'F','a','m','i','l','y',0}; + static const WCHAR levelW[] = + {'L','e','v','e','l',0}; + static const WCHAR manufacturerW[] = + {'M','a','n','u','f','a','c','t','u','r','e','r',0}; + static const WCHAR nameW[] = + {'N','a','m','e',0}; + static const WCHAR processoridW[] = + {'P','r','o','c','e','s','s','o','r','I','d',0}; + static const WCHAR revisionW[] = + {'R','e','v','i','s','i','o','n',0}; + static const WCHAR versionW[] = + {'V','e','r','s','i','o','n',0}; + static const WCHAR queryW[] = + {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ','W','i','n','3','2','_', + 'P','r','o','c','e','s','s','o','r',0}; + BSTR wql = SysAllocString( wqlW ), query = SysAllocString( queryW ); + IEnumWbemClassObject *result; + IWbemClassObject *obj; + VARIANT val; + CIMTYPE type; + HRESULT hr; + DWORD count; + + hr = IWbemServices_ExecQuery( services, wql, query, 0, NULL, &result ); + ok( hr == S_OK, "got %08x\n", hr ); + + for (;;) + { + hr = IEnumWbemClassObject_Next( result, 10000, 1, &obj, &count ); + if (hr != S_OK) break; + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, architectureW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_I4, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_UINT16, "unexpected type 0x%x\n", type ); + trace( "architecture %u\n", V_I4( &val ) ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, familyW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_I4, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_UINT16, "unexpected type 0x%x\n", type ); + trace( "family %u\n", V_I4( &val ) ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, levelW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_I4, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_UINT16, "unexpected type 0x%x\n", type ); + trace( "level %u\n", V_I4( &val ) ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, manufacturerW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "manufacturer %s\n", wine_dbgstr_w(V_BSTR( &val )) ); + VariantClear( &val ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, nameW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "name %s\n", wine_dbgstr_w(V_BSTR( &val )) ); + VariantClear( &val ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, processoridW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "processorid %s\n", wine_dbgstr_w(V_BSTR( &val )) ); + VariantClear( &val ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, revisionW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_I4, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_UINT16, "unexpected type 0x%x\n", type ); + trace( "revision %u\n", V_I4( &val ) ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, versionW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "version %s\n", wine_dbgstr_w(V_BSTR( &val )) ); + VariantClear( &val ); + + IWbemClassObject_Release( obj ); + } + + SysFreeString( query ); + SysFreeString( wql ); +} + +static void test_Win32_VideoController( IWbemServices *services ) +{ + static const WCHAR configmanagererrorcodeW[] = + {'C','o','n','f','i','g','M','a','n','a','g','e','r','E','r','r','o','r','C','o','d','e',0}; + static const WCHAR driverdateW[] = + {'D','r','i','v','e','r','D','a','t','e',0}; + static const WCHAR installeddisplaydriversW[]= + {'I','n','s','t','a','l','l','e','d','D','i','s','p','l','a','y','D','r','i','v','e','r','s',0}; + static const WCHAR statusW[] = + {'S','t','a','t','u','s',0}; + static const WCHAR queryW[] = + {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ','W','i','n','3','2','_', + 'V','i','d','e','o','C','o','n','t','r','o','l','l','e','r',0}; + BSTR wql = SysAllocString( wqlW ), query = SysAllocString( queryW ); + IEnumWbemClassObject *result; + IWbemClassObject *obj; + VARIANT val; + CIMTYPE type; + HRESULT hr; + DWORD count; + + hr = IWbemServices_ExecQuery( services, wql, query, 0, NULL, &result ); + if (hr != S_OK) + { + win_skip( "Win32_VideoController not available\n" ); + return; + } + + for (;;) + { + hr = IEnumWbemClassObject_Next( result, 10000, 1, &obj, &count ); + if (hr != S_OK) break; + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, configmanagererrorcodeW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_I4, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_UINT32, "unexpected type 0x%x\n", type ); + trace( "configmanagererrorcode %d\n", V_I4( &val ) ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, driverdateW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_DATETIME, "unexpected type 0x%x\n", type ); + trace( "driverdate %s\n", wine_dbgstr_w(V_BSTR( &val )) ); + VariantClear( &val ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, installeddisplaydriversW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR || V_VT( &val ) == VT_NULL, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "installeddisplaydrivers %s\n", wine_dbgstr_w(V_BSTR( &val )) ); + VariantClear( &val ); + + type = 0xdeadbeef; + VariantInit( &val ); + hr = IWbemClassObject_Get( obj, statusW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "status %s\n", wine_dbgstr_w(V_BSTR( &val )) ); + VariantClear( &val ); + + IWbemClassObject_Release( obj ); + } + + SysFreeString( query ); + SysFreeString( wql ); +} + +static void test_Win32_Printer( IWbemServices *services ) +{ + static const WCHAR deviceidW[] = + {'D','e','v','i','c','e','I','d',0}; + static const WCHAR locationW[] = + {'L','o','c','a','t','i','o','n',0}; + static const WCHAR portnameW[] = + {'P','o','r','t','N','a','m','e',0}; + static const WCHAR queryW[] = + {'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ','W','i','n','3','2','_', + 'P','r','i','n','t','e','r',0}; + BSTR wql = SysAllocString( wqlW ), query = SysAllocString( queryW ); + IEnumWbemClassObject *result; + IWbemClassObject *obj; + VARIANT val; + CIMTYPE type; + HRESULT hr; + DWORD count; + + hr = IWbemServices_ExecQuery( services, wql, query, 0, NULL, &result ); + if (hr != S_OK) + { + win_skip( "Win32_Printer not available\n" ); + return; + } + + for (;;) + { + hr = IEnumWbemClassObject_Next( result, 10000, 1, &obj, &count ); + if (hr != S_OK) break; + + type = 0xdeadbeef; + memset( &val, 0, sizeof(val) ); + hr = IWbemClassObject_Get( obj, deviceidW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "deviceid %s\n", wine_dbgstr_w(V_BSTR( &val )) ); + VariantClear( &val ); + + type = 0xdeadbeef; + memset( &val, 0, sizeof(val) ); + hr = IWbemClassObject_Get( obj, locationW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR || V_VT( &val ) == VT_NULL, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "location %s\n", wine_dbgstr_w(V_BSTR( &val )) ); + VariantClear( &val ); + + type = 0xdeadbeef; + memset( &val, 0, sizeof(val) ); + hr = IWbemClassObject_Get( obj, portnameW, 0, &val, &type, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( V_VT( &val ) == VT_BSTR, "unexpected variant type 0x%x\n", V_VT( &val ) ); + ok( type == CIM_STRING, "unexpected type 0x%x\n", type ); + trace( "portname %s\n", wine_dbgstr_w(V_BSTR( &val )) ); + VariantClear( &val ); + + IWbemClassObject_Release( obj ); + } + + SysFreeString( query ); + SysFreeString( wql ); +} + START_TEST(query) { static const WCHAR cimv2W[] = {'R','O','O','T','\\','C','I','M','V','2',0}; @@ -1408,10 +1743,13 @@ START_TEST(query) test_query_async( services ); test_GetNames( services ); test_SystemSecurity( services ); - test_OperatingSystem( services ); - test_ComputerSystemProduct( services ); - test_PhysicalMemory( services ); - test_IP4RouteTable( services ); + test_Win32_OperatingSystem( services ); + test_Win32_ComputerSystemProduct( services ); + test_Win32_PhysicalMemory( services ); + test_Win32_IP4RouteTable( services ); + test_Win32_Processor( services ); + test_Win32_VideoController( services ); + test_Win32_Printer( services ); SysFreeString( path ); IWbemServices_Release( services );
6 years, 9 months
1
0
0
0
01/01: [WBEMPROX] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=edccad14bfa59ba6c0c70…
commit edccad14bfa59ba6c0c70843431169c91ab2677a Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sat Mar 24 13:12:50 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sat Mar 24 13:12:50 2018 +0100 [WBEMPROX] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/wbemprox/CMakeLists.txt | 4 +- dll/win32/wbemprox/builtin.c | 232 +++++++++++++++++++++++++++++----- dll/win32/wbemprox/class.c | 13 ++ dll/win32/wbemprox/main.c | 17 ++- dll/win32/wbemprox/precomp.h | 28 ++++ dll/win32/wbemprox/process.c | 12 ++ dll/win32/wbemprox/qualifier.c | 13 ++ dll/win32/wbemprox/query.c | 12 +- dll/win32/wbemprox/reg.c | 14 ++ dll/win32/wbemprox/security.c | 13 +- dll/win32/wbemprox/service.c | 13 ++ dll/win32/wbemprox/services.c | 14 ++ dll/win32/wbemprox/table.c | 12 +- dll/win32/wbemprox/wbemlocator.c | 14 ++ dll/win32/wbemprox/wbemprox_private.h | 54 +------- dll/win32/wbemprox/wql.tab.c | 192 +++++++++++++++------------- dll/win32/wbemprox/wql.tab.h | 104 +++++++++++++++ dll/win32/wbemprox/wql.y | 12 ++ media/doc/README.WINE | 2 +- 19 files changed, 595 insertions(+), 180 deletions(-) diff --git a/dll/win32/wbemprox/CMakeLists.txt b/dll/win32/wbemprox/CMakeLists.txt index b2495e176d..ac67fdf9cf 100644 --- a/dll/win32/wbemprox/CMakeLists.txt +++ b/dll/win32/wbemprox/CMakeLists.txt @@ -20,7 +20,7 @@ list(APPEND SOURCE table.c wbemlocator.c wql.tab.c - wbemprox_private.h) + precomp.h) add_library(wbemprox SHARED ${SOURCE} @@ -33,5 +33,5 @@ set_module_type(wbemprox win32dll) target_link_libraries(wbemprox uuid wine) add_importlibs(wbemprox iphlpapi oleaut32 advapi32 user32 gdi32 version winspool ws2_32 rpcrt4 msvcrt kernel32 ntdll) add_dependencies(wbemprox d3d_idl_headers) -add_pch(wbemprox wbemprox_private.h SOURCE) +add_pch(wbemprox precomp.h SOURCE) add_cd_file(TARGET wbemprox DESTINATION reactos/system32/wbem FOR all) diff --git a/dll/win32/wbemprox/builtin.c b/dll/win32/wbemprox/builtin.c index d32b72f9fb..8728bd3e2a 100644 --- a/dll/win32/wbemprox/builtin.c +++ b/dll/win32/wbemprox/builtin.c @@ -16,20 +16,58 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "wbemprox_private.h" +#define COBJMACROS +#define NONAMELESSUNION +#define NONAMELESSSTRUCT + +#include "config.h" +#include <stdarg.h> +#include <fcntl.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif +#ifdef HAVE_ARPA_INET_H +# include <arpa/inet.h> +#endif -#include <winuser.h> +#include "ntstatus.h" +#define WIN32_NO_STATUS +#include "windef.h" +#include "winbase.h" +#ifdef __MINGW32__ +# include "winsock2.h" +# include "ws2tcpip.h" +# define WS_AF_UNSPEC AF_UNSPEC +# define WS_NI_MAXHOST NI_MAXHOST +# define WS_NI_NAMEREQD NI_NAMEREQD +#else +# define USE_WS_PREFIX +# include "winsock2.h" +# include "ws2tcpip.h" +#endif +#include "initguid.h" +#include "wbemcli.h" +#include "wbemprov.h" +#include "iphlpapi.h" +#include "tlhelp32.h" +#ifndef __REACTOS__ +#include "d3d10.h" +#endif +#include "winternl.h" +#include "winioctl.h" +#include "winsvc.h" +#include "winver.h" +#include "sddl.h" +#include "ntsecapi.h" +#ifdef __REACTOS__ #include <wingdi.h> -#include <winsock2.h> -#include <ws2tcpip.h> -#include <iphlpapi.h> -#include <tlhelp32.h> -#include <winternl.h> -#include <winioctl.h> -#include <winver.h> -#include <ntsecapi.h> -#include <winspool.h> -#include <sddl.h> +#endif +#include "winspool.h" + +#include "wine/debug.h" +#include "wbemprox_private.h" + +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); static const WCHAR class_baseboardW[] = {'W','i','n','3','2','_','B','a','s','e','B','o','a','r','d',0}; @@ -110,6 +148,8 @@ static const WCHAR prop_adaptertypeW[] = {'A','d','a','p','t','e','r','T','y','p','e',0}; static const WCHAR prop_addresswidthW[] = {'A','d','d','r','e','s','s','W','i','d','t','h',0}; +static const WCHAR prop_architectureW[] = + {'A','r','c','h','i','t','e','c','t','u','r','e',0}; static const WCHAR prop_attributesW[] = {'A','t','t','r','i','b','u','t','e','s',0}; #ifndef __REACTOS__ @@ -136,6 +176,8 @@ static const WCHAR prop_codesetW[] = {'C','o','d','e','S','e','t',0}; static const WCHAR prop_commandlineW[] = {'C','o','m','m','a','n','d','L','i','n','e',0}; +static const WCHAR prop_configmanagererrorcodeW[] = + {'C','o','n','f','i','g','M','a','n','a','g','e','r','E','r','r','o','r','C','o','d','e',0}; static const WCHAR prop_countrycodeW[] = {'C','o','u','n','t','r','y','C','o','d','e',0}; static const WCHAR prop_cpustatusW[] = @@ -188,6 +230,8 @@ static const WCHAR prop_domainroleW[] = {'D','o','m','a','i','n','R','o','l','e',0}; static const WCHAR prop_driveW[] = {'D','r','i','v','e',0}; +static const WCHAR prop_driverdateW[] = + {'D','r','i','v','e','r','D','a','t','e',0}; static const WCHAR prop_drivernameW[] = {'D','r','i','v','e','r','N','a','m','e',0}; #ifndef __REACTOS__ @@ -204,6 +248,8 @@ static const WCHAR prop_flavorW[] = {'F','l','a','v','o','r',0}; static const WCHAR prop_freespaceW[] = {'F','r','e','e','S','p','a','c','e',0}; +static const WCHAR prop_freephysicalmemoryW[] = + {'F','r','e','e','P','h','y','s','i','c','a','l','M','e','m','o','r','y',0}; static const WCHAR prop_handleW[] = {'H','a','n','d','l','e',0}; static const WCHAR prop_horizontalresolutionW[] = @@ -218,6 +264,8 @@ static const WCHAR prop_indexW[] = {'I','n','d','e','x',0}; static const WCHAR prop_installdateW[] = {'I','n','s','t','a','l','l','D','a','t','e',0}; +static const WCHAR prop_installeddisplaydriversW[]= + {'I','n','s','t','a','l','l','e','d','D','i','s','p','l','a','y','D','r','i','v','e','r','s',0}; static const WCHAR prop_interfaceindexW[] = {'I','n','t','e','r','f','a','c','e','I','n','d','e','x',0}; static const WCHAR prop_interfacetypeW[] = @@ -230,12 +278,16 @@ static const WCHAR prop_ipenabledW[] = {'I','P','E','n','a','b','l','e','d',0}; static const WCHAR prop_lastbootuptimeW[] = {'L','a','s','t','B','o','o','t','U','p','T','i','m','e',0}; +static const WCHAR prop_levelW[] = + {'L','e','v','e','l',0}; static const WCHAR prop_localW[] = {'L','o','c','a','l',0}; static const WCHAR prop_localdatetimeW[] = {'L','o','c','a','l','D','a','t','e','T','i','m','e',0}; static const WCHAR prop_localeW[] = {'L','o','c','a','l','e',0}; +static const WCHAR prop_locationW[] = + {'L','o','c','a','t','i','o','n',0}; static const WCHAR prop_lockpresentW[] = {'L','o','c','k','P','r','e','s','e','n','t',0}; static const WCHAR prop_macaddressW[] = @@ -282,6 +334,8 @@ static const WCHAR prop_pixelsperxlogicalinchW[] = {'P','i','x','e','l','s','P','e','r','X','L','o','g','i','c','a','l','I','n','c','h',0}; static const WCHAR prop_pnpdeviceidW[] = {'P','N','P','D','e','v','i','c','e','I','D',0}; +static const WCHAR prop_portnameW[] = + {'P','o','r','t','N','a','m','e',0}; static const WCHAR prop_pprocessidW[] = {'P','a','r','e','n','t','P','r','o','c','e','s','s','I','D',0}; static const WCHAR prop_primaryW[] = @@ -300,6 +354,8 @@ static const WCHAR prop_referenceddomainnameW[] = {'R','e','f','e','r','e','n','c','e','d','D','o','m','a','i','n','N','a','m','e',0}; static const WCHAR prop_releasedateW[] = {'R','e','l','e','a','s','e','D','a','t','e',0}; +static const WCHAR prop_revisionW[] = + {'R','e','v','i','s','i','o','n',0}; static const WCHAR prop_serialnumberW[] = {'S','e','r','i','a','l','N','u','m','b','e','r',0}; static const WCHAR prop_servicepackmajorW[] = @@ -310,8 +366,14 @@ static const WCHAR prop_servicetypeW[] = {'S','e','r','v','i','c','e','T','y','p','e',0}; static const WCHAR prop_settingidW[] = {'S','e','t','t','i','n','g','I','D',0}; +static const WCHAR prop_skunumberW[] = + {'S','K','U','N','u','m','b','e','r',0}; static const WCHAR prop_smbiosbiosversionW[] = {'S','M','B','I','O','S','B','I','O','S','V','e','r','s','i','o','n',0}; +static const WCHAR prop_smbiosmajorversionW[] = + {'S','M','B','I','O','S','M','a','j','o','r','V','e','r','s','i','o','n',0}; +static const WCHAR prop_smbiosminorversionW[] = + {'S','M','B','I','O','S','M','i','n','o','r','V','e','r','s','i','o','n',0}; static const WCHAR prop_startmodeW[] = {'S','t','a','r','t','M','o','d','e',0}; static const WCHAR prop_sidW[] = @@ -326,6 +388,8 @@ static const WCHAR prop_startingoffsetW[] = {'S','t','a','r','t','i','n','g','O','f','f','s','e','t',0}; static const WCHAR prop_stateW[] = {'S','t','a','t','e',0}; +static const WCHAR prop_statusW[] = + {'S','t','a','t','u','s',0}; static const WCHAR prop_statusinfoW[] = {'S','t','a','t','u','s','I','n','f','o',0}; static const WCHAR prop_strvalueW[] = @@ -356,6 +420,8 @@ static const WCHAR prop_uuidW[] = {'U','U','I','D',0}; static const WCHAR prop_varianttypeW[] = {'V','a','r','i','a','n','t','T','y','p','e',0}; +static const WCHAR prop_vendorW[] = + {'V','e','n','d','o','r',0}; static const WCHAR prop_versionW[] = {'V','e','r','s','i','o','n',0}; #ifndef __REACTOS__ @@ -395,6 +461,8 @@ static const struct column col_bios[] = { prop_releasedateW, CIM_DATETIME }, { prop_serialnumberW, CIM_STRING }, { prop_smbiosbiosversionW, CIM_STRING }, + { prop_smbiosmajorversionW, CIM_UINT16, VT_I4 }, + { prop_smbiosminorversionW, CIM_UINT16, VT_I4 }, { prop_versionW, CIM_STRING|COL_FLAG_KEY } }; static const struct column col_cdromdrive[] = @@ -421,7 +489,11 @@ static const struct column col_compsys[] = static const struct column col_compsysproduct[] = { { prop_identifyingnumberW, CIM_STRING|COL_FLAG_KEY }, - { prop_uuidW, CIM_STRING|COL_FLAG_DYNAMIC } + { prop_nameW, CIM_STRING|COL_FLAG_KEY }, + { prop_skunumberW, CIM_STRING }, + { prop_uuidW, CIM_STRING|COL_FLAG_DYNAMIC }, + { prop_vendorW, CIM_STRING }, + { prop_versionW, CIM_STRING|COL_FLAG_KEY } }; static const struct column col_datafile[] = { @@ -512,6 +584,7 @@ static const struct column col_os[] = { prop_codesetW, CIM_STRING|COL_FLAG_DYNAMIC }, { prop_countrycodeW, CIM_STRING|COL_FLAG_DYNAMIC }, { prop_csdversionW, CIM_STRING|COL_FLAG_DYNAMIC }, + { prop_freephysicalmemoryW, CIM_UINT64 }, { prop_installdateW, CIM_DATETIME }, { prop_lastbootuptimeW, CIM_DATETIME|COL_FLAG_DYNAMIC }, { prop_localdatetimeW, CIM_DATETIME|COL_FLAG_DYNAMIC }, @@ -554,11 +627,14 @@ static const struct column col_physicalmemory[] = static const struct column col_printer[] = { { prop_attributesW, CIM_UINT32 }, + { prop_deviceidW, CIM_STRING|COL_FLAG_DYNAMIC|COL_FLAG_KEY }, { prop_drivernameW, CIM_STRING|COL_FLAG_DYNAMIC }, { prop_horizontalresolutionW, CIM_UINT32 }, { prop_localW, CIM_BOOLEAN }, + { prop_locationW, CIM_STRING|COL_FLAG_DYNAMIC }, { prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC }, - { prop_networkW, CIM_BOOLEAN } + { prop_networkW, CIM_BOOLEAN }, + { prop_portnameW, CIM_STRING|COL_FLAG_DYNAMIC }, }; static const struct column col_process[] = { @@ -577,6 +653,7 @@ static const struct column col_process[] = static const struct column col_processor[] = { { prop_addresswidthW, CIM_UINT16, VT_I4 }, + { prop_architectureW, CIM_UINT16, VT_I4 }, { prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC }, { prop_cpustatusW, CIM_UINT16 }, { prop_currentclockspeedW, CIM_UINT32, VT_I4 }, @@ -584,6 +661,7 @@ static const struct column col_processor[] = { prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC }, { prop_deviceidW, CIM_STRING|COL_FLAG_DYNAMIC|COL_FLAG_KEY }, { prop_familyW, CIM_UINT16, VT_I4 }, + { prop_levelW, CIM_UINT16, VT_I4 }, { prop_manufacturerW, CIM_STRING|COL_FLAG_DYNAMIC }, { prop_maxclockspeedW, CIM_UINT32, VT_I4 }, { prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC }, @@ -591,6 +669,7 @@ static const struct column col_processor[] = { prop_numlogicalprocessorsW, CIM_UINT32, VT_I4 }, { prop_processoridW, CIM_STRING|COL_FLAG_DYNAMIC }, { prop_processortypeW, CIM_UINT16, VT_I4 }, + { prop_revisionW, CIM_UINT16, VT_I4 }, { prop_uniqueidW, CIM_STRING }, { prop_versionW, CIM_STRING|COL_FLAG_DYNAMIC } }; @@ -660,24 +739,28 @@ static const struct column col_systemsecurity[] = #ifndef __REACTOS__ static const struct column col_videocontroller[] = { - { prop_adapterdactypeW, CIM_STRING }, - { prop_adapterramW, CIM_UINT32, VT_I4 }, - { prop_availabilityW, CIM_UINT16 }, - { prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC }, - { prop_currentbitsperpixelW, CIM_UINT32, VT_I4 }, - { prop_currenthorizontalresW, CIM_UINT32, VT_I4 }, - { prop_currentrefreshrateW, CIM_UINT32, VT_I4 }, - { prop_currentscanmodeW, CIM_UINT16, VT_I4 }, - { prop_currentverticalresW, CIM_UINT32, VT_I4 }, - { prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC }, - { prop_deviceidW, CIM_STRING|COL_FLAG_KEY }, - { prop_driverversionW, CIM_STRING }, - { prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC }, - { prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC }, - { prop_videoarchitectureW, CIM_UINT16, VT_I4 }, - { prop_videomemorytypeW, CIM_UINT16, VT_I4 }, - { prop_videomodedescriptionW, CIM_STRING|COL_FLAG_DYNAMIC }, - { prop_videoprocessorW, CIM_STRING|COL_FLAG_DYNAMIC } + { prop_adapterdactypeW, CIM_STRING }, + { prop_adapterramW, CIM_UINT32, VT_I4 }, + { prop_availabilityW, CIM_UINT16 }, + { prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC }, + { prop_configmanagererrorcodeW, CIM_UINT32, VT_I4 }, + { prop_currentbitsperpixelW, CIM_UINT32, VT_I4 }, + { prop_currenthorizontalresW, CIM_UINT32, VT_I4 }, + { prop_currentrefreshrateW, CIM_UINT32, VT_I4 }, + { prop_currentscanmodeW, CIM_UINT16, VT_I4 }, + { prop_currentverticalresW, CIM_UINT32, VT_I4 }, + { prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC }, + { prop_deviceidW, CIM_STRING|COL_FLAG_KEY }, + { prop_driverdateW, CIM_DATETIME }, + { prop_driverversionW, CIM_STRING }, + { prop_installeddisplaydriversW,CIM_STRING }, + { prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC }, + { prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC }, + { prop_statusW, CIM_STRING }, + { prop_videoarchitectureW, CIM_UINT16, VT_I4 }, + { prop_videomemorytypeW, CIM_UINT16, VT_I4 }, + { prop_videomodedescriptionW, CIM_STRING|COL_FLAG_DYNAMIC }, + { prop_videoprocessorW, CIM_STRING|COL_FLAG_DYNAMIC }, }; #endif @@ -722,9 +805,15 @@ static const WCHAR compsys_modelW[] = {'W','i','n','e',0}; static const WCHAR compsysproduct_identifyingnumberW[] = {'0',0}; +static const WCHAR compsysproduct_nameW[] = + {'W','i','n','e',0}; static const WCHAR compsysproduct_uuidW[] = {'d','e','a','d','d','e','a','d','-','d','e','a','d','-','d','e','a','d','-','d','e','a','d','-', 'd','e','a','d','d','e','a','d','d','e','a','d',0}; +static const WCHAR compsysproduct_vendorW[] = + {'T','h','e',' ','W','i','n','e',' ','P','r','o','j','e','c','t',0}; +static const WCHAR compsysproduct_versionW[] = + {'1','.','0',0}; static const WCHAR diskdrive_interfacetypeW[] = {'I','D','E',0}; static const WCHAR diskdrive_manufacturerW[] = @@ -766,8 +855,12 @@ static const WCHAR videocontroller_dactypeW[] = {'I','n','t','e','g','r','a','t','e','d',' ','R','A','M','D','A','C',0}; static const WCHAR videocontroller_deviceidW[] = {'V','i','d','e','o','C','o','n','t','r','o','l','l','e','r','1',0}; +static const WCHAR videocontroller_driverdateW[] = + {'2','0','1','7','0','1','0','1','0','0','0','0','0','0','.','0','0','0','0','0','0','+','0','0','0',0}; static const WCHAR videocontroller_driverversionW[] = {'1','.','0',0}; +static const WCHAR videocontroller_statusW[] = + {'O','K',0}; #endif #include "pshpack1.h" @@ -790,6 +883,8 @@ struct record_bios const WCHAR *releasedate; const WCHAR *serialnumber; const WCHAR *smbiosbiosversion; + UINT16 smbiosmajorversion; + UINT16 smbiosminorversion; const WCHAR *version; }; struct record_cdromdrive @@ -816,7 +911,11 @@ struct record_computersystem struct record_computersystemproduct { const WCHAR *identifyingnumber; + const WCHAR *name; + const WCHAR *skunumber; const WCHAR *uuid; + const WCHAR *vendor; + const WCHAR *version; }; struct record_datafile { @@ -907,6 +1006,7 @@ struct record_operatingsystem const WCHAR *codeset; const WCHAR *countrycode; const WCHAR *csdversion; + UINT64 freephysicalmemory; const WCHAR *installdate; const WCHAR *lastbootuptime; const WCHAR *localdatetime; @@ -949,11 +1049,14 @@ struct record_physicalmemory struct record_printer { UINT32 attributes; + const WCHAR *device_id; const WCHAR *drivername; UINT32 horizontalresolution; int local; + const WCHAR *location; const WCHAR *name; int network; + const WCHAR *portname; }; struct record_process { @@ -972,6 +1075,7 @@ struct record_process struct record_processor { UINT16 addresswidth; + UINT16 architecture; const WCHAR *caption; UINT16 cpu_status; UINT32 currentclockspeed; @@ -979,6 +1083,7 @@ struct record_processor const WCHAR *description; const WCHAR *device_id; UINT16 family; + UINT16 level; const WCHAR *manufacturer; UINT32 maxclockspeed; const WCHAR *name; @@ -986,6 +1091,7 @@ struct record_processor UINT32 num_logical_processors; const WCHAR *processor_id; UINT16 processortype; + UINT16 revision; const WCHAR *unique_id; const WCHAR *version; }; @@ -1057,6 +1163,7 @@ struct record_videocontroller UINT32 adapter_ram; UINT16 availability; const WCHAR *caption; + UINT32 config_errorcode; UINT32 current_bitsperpixel; UINT32 current_horizontalres; UINT32 current_refreshrate; @@ -1064,9 +1171,12 @@ struct record_videocontroller UINT32 current_verticalres; const WCHAR *description; const WCHAR *device_id; + const WCHAR *driverdate; const WCHAR *driverversion; + const WCHAR *installeddriver; const WCHAR *name; const WCHAR *pnpdevice_id; + const WCHAR *status; UINT16 videoarchitecture; UINT16 videomemorytype; const WCHAR *videomodedescription; @@ -1081,7 +1191,7 @@ static const struct record_baseboard data_baseboard[] = static const struct record_bios data_bios[] = { { bios_descriptionW, NULL, bios_manufacturerW, bios_nameW, bios_releasedateW, bios_serialnumberW, - bios_smbiosbiosversionW, bios_versionW } + bios_smbiosbiosversionW, 1, 0, bios_versionW } }; static const struct record_param data_param[] = { @@ -1290,6 +1400,15 @@ static UINT64 get_total_physical_memory(void) return status.ullTotalPhys; } +static UINT64 get_available_physical_memory(void) +{ + MEMORYSTATUSEX status; + + status.dwLength = sizeof(status); + if (!GlobalMemoryStatusEx( &status )) return 1024 * 1024 * 1024; + return status.ullAvailPhys; +} + static WCHAR *get_computername(void) { WCHAR *ret; @@ -1403,7 +1522,11 @@ static enum fill_status fill_compsysproduct( struct table *table, const struct e rec = (struct record_computersystemproduct *)table->data; rec->identifyingnumber = compsysproduct_identifyingnumberW; + rec->name = compsysproduct_nameW; + rec->skunumber = NULL; rec->uuid = get_compsysproduct_uuid(); + rec->vendor = compsysproduct_vendorW; + rec->version = compsysproduct_versionW; if (!match_row( table, row, cond, &status )) free_row_values( table, row ); else row++; @@ -2416,10 +2539,12 @@ static enum fill_status fill_physicalmemory( struct table *table, const struct e static enum fill_status fill_printer( struct table *table, const struct expr *cond ) { + static const WCHAR fmtW[] = {'P','r','i','n','t','e','r','%','d',0}; struct record_printer *rec; enum fill_status status = FILL_STATUS_UNFILTERED; PRINTER_INFO_2W *info; DWORD i, offset = 0, count = 0, size = 0, num_rows = 0; + WCHAR id[20]; EnumPrintersW( PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &size, &count ); if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) return FILL_STATUS_FAILED; @@ -2440,11 +2565,15 @@ static enum fill_status fill_printer( struct table *table, const struct expr *co { rec = (struct record_printer *)(table->data + offset); rec->attributes = info[i].Attributes; + sprintfW( id, fmtW, i ); + rec->device_id = heap_strdupW( id ); rec->drivername = heap_strdupW( info[i].pDriverName ); rec->horizontalresolution = info[i].pDevMode->u1.s1.dmPrintQuality; rec->local = -1; + rec->location = heap_strdupW( info[i].pLocation ); rec->name = heap_strdupW( info[i].pPrinterName ); rec->network = 0; + rec->portname = heap_strdupW( info[i].pPortName ); if (!match_row( table, i, cond, &status )) { free_row_values( table, i ); @@ -2561,6 +2690,12 @@ static void get_processor_version( WCHAR *version ) do_cpuid( 1, regs ); sprintfW( version, fmtW, (regs[0] & (15 << 4)) >> 4, regs[0] & 15 ); } +static UINT16 get_processor_revision(void) +{ + unsigned int regs[4] = {0, 0, 0, 0}; + do_cpuid( 1, regs ); + return regs[0]; +} static void get_processor_id( WCHAR *processor_id ) { static const WCHAR fmtW[] = {'%','0','8','X','%','0','8','X',0}; @@ -2655,6 +2790,7 @@ static enum fill_status fill_processor( struct table *table, const struct expr * { rec = (struct record_processor *)(table->data + offset); rec->addresswidth = get_osarchitecture() == os_32bitW ? 32 : 64; + rec->architecture = get_osarchitecture() == os_32bitW ? 0 : 9; rec->caption = heap_strdupW( caption ); rec->cpu_status = 1; /* CPU Enabled */ rec->currentclockspeed = get_processor_currentclockspeed( i ); @@ -2663,6 +2799,7 @@ static enum fill_status fill_processor( struct table *table, const struct expr * sprintfW( device_id, fmtW, i ); rec->device_id = heap_strdupW( device_id ); rec->family = 2; /* Unknown */ + rec->level = 15; rec->manufacturer = heap_strdupW( manufacturer ); rec->maxclockspeed = get_processor_maxclockspeed( i ); rec->name = heap_strdupW( name ); @@ -2670,6 +2807,7 @@ static enum fill_status fill_processor( struct table *table, const struct expr * rec->num_logical_processors = num_logical_processors; rec->processor_id = heap_strdupW( processor_id ); rec->processortype = 3; /* central processor */ + rec->revision = get_processor_revision(); rec->unique_id = NULL; rec->version = heap_strdupW( version ); if (!match_row( table, i, cond, &status )) @@ -2856,6 +2994,7 @@ static enum fill_status fill_os( struct table *table, const struct expr *cond ) rec->codeset = get_codeset(); rec->countrycode = get_countrycode(); rec->csdversion = ver.szCSDVersion[0] ? heap_strdupW( ver.szCSDVersion ) : NULL; + rec->freephysicalmemory = get_available_physical_memory() / 1024; rec->installdate = os_installdateW; rec->lastbootuptime = get_lastbootuptime(); rec->localdatetime = get_localdatetime(); @@ -3160,6 +3299,29 @@ static WCHAR *get_pnpdeviceid( DXGI_ADAPTER_DESC *desc ) return ret; } +#define HW_VENDOR_AMD 0x1002 +#define HW_VENDOR_NVIDIA 0x10de +#define HW_VENDOR_VMWARE 0x15ad +#define HW_VENDOR_INTEL 0x8086 + +static const WCHAR *get_installeddriver( UINT vendorid ) +{ + static const WCHAR driver_amdW[] = {'a','t','i','c','f','x','3','2','.','d','l','l',0}; + static const WCHAR driver_intelW[] = {'i','g','d','u','m','d','i','m','3','2','.','d','l','l',0}; + static const WCHAR driver_nvidiaW[] = {'n','v','d','3','d','u','m','.','d','l','l',0}; + static const WCHAR driver_wineW[] = {'w','i','n','e','.','d','l','l',0}; + + /* FIXME: wined3d has a better table, but we can not access this information through dxgi */ + + if (vendorid == HW_VENDOR_AMD) + return driver_amdW; + else if (vendorid == HW_VENDOR_NVIDIA) + return driver_nvidiaW; + else if (vendorid == HW_VENDOR_INTEL) + return driver_intelW; + return driver_wineW; +} + static enum fill_status fill_videocontroller( struct table *table, const struct expr *cond ) { static const WCHAR fmtW[] = {'%','u',' ','x',' ','%','u',' ','x',' ','%','I','6','4','u',' ','c','o','l','o','r','s',0}; @@ -3194,6 +3356,7 @@ done: rec->adapter_dactype = videocontroller_dactypeW; rec->adapter_ram = vidmem; rec->availability = 3; /* Running or Full Power */ + rec->config_errorcode = 0; /* no error */ rec->caption = heap_strdupW( name ); rec->current_bitsperpixel = get_bits_per_pixel( &hres, &vres ); rec->current_horizontalres = hres; @@ -3202,9 +3365,12 @@ done: rec->current_verticalres = vres; rec->description = heap_strdupW( name ); rec->device_id = videocontroller_deviceidW; + rec->driverdate = videocontroller_driverdateW; rec->driverversion = videocontroller_driverversionW; + rec->installeddriver = get_installeddriver( desc.VendorId ); rec->name = heap_strdupW( name ); rec->pnpdevice_id = get_pnpdeviceid( &desc ); + rec->status = videocontroller_statusW; rec->videoarchitecture = 2; /* Unknown */ rec->videomemorytype = 2; /* Unknown */ wsprintfW( mode, fmtW, hres, vres, (UINT64)1 << rec->current_bitsperpixel ); diff --git a/dll/win32/wbemprox/class.c b/dll/win32/wbemprox/class.c index 3d3e777861..27229bd69a 100644 --- a/dll/win32/wbemprox/class.c +++ b/dll/win32/wbemprox/class.c @@ -16,8 +16,21 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "objbase.h" +#include "wbemcli.h" + +#include "wine/debug.h" #include "wbemprox_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); + struct enum_class_object { IEnumWbemClassObject IEnumWbemClassObject_iface; diff --git a/dll/win32/wbemprox/main.c b/dll/win32/wbemprox/main.c index 214dfd7a41..e6ccd5c21c 100644 --- a/dll/win32/wbemprox/main.c +++ b/dll/win32/wbemprox/main.c @@ -17,10 +17,23 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "config.h" + +#include <stdarg.h> + +#define COBJMACROS + +#include "windef.h" +#include "winbase.h" +#include "objbase.h" +#include "wbemcli.h" +#include "wbemprov.h" +#include "rpcproxy.h" + #include "wbemprox_private.h" +#include "wine/debug.h" -#include <wbemprov.h> -#include <rpcproxy.h> +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); static HINSTANCE instance; diff --git a/dll/win32/wbemprox/precomp.h b/dll/win32/wbemprox/precomp.h new file mode 100644 index 0000000000..54f2817c4c --- /dev/null +++ b/dll/win32/wbemprox/precomp.h @@ -0,0 +1,28 @@ + +#ifndef _WBEMPROX_PRECOMP_H_ +#define _WBEMPROX_PRECOMP_H_ + +#include <wine/config.h> + +#include <stdarg.h> + +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#define COBJMACROS +#define NONAMELESSUNION +#define NONAMELESSSTRUCT + +#include <ntstatus.h> +#define WIN32_NO_STATUS +#include <windef.h> +#include <winbase.h> +#include <winuser.h> +#include <winsvc.h> +#include <objbase.h> +#include <oleauto.h> +#include <wbemcli.h> + +#include "wbemprox_private.h" + +#endif /* !_WBEMPROX_PRECOMP_H_ */ diff --git a/dll/win32/wbemprox/process.c b/dll/win32/wbemprox/process.c index 0f22a8d87e..6bc3f37529 100644 --- a/dll/win32/wbemprox/process.c +++ b/dll/win32/wbemprox/process.c @@ -18,8 +18,20 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wbemcli.h" + +#include "wine/debug.h" #include "wbemprox_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); + static HRESULT get_owner( VARIANT *user, VARIANT *domain, VARIANT *retval ) { DWORD len; diff --git a/dll/win32/wbemprox/qualifier.c b/dll/win32/wbemprox/qualifier.c index c14338698c..4da34454ae 100644 --- a/dll/win32/wbemprox/qualifier.c +++ b/dll/win32/wbemprox/qualifier.c @@ -16,8 +16,21 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "objbase.h" +#include "wbemcli.h" + +#include "wine/debug.h" #include "wbemprox_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); + struct qualifier_set { IWbemQualifierSet IWbemQualifierSet_iface; diff --git a/dll/win32/wbemprox/query.c b/dll/win32/wbemprox/query.c index 3e37f4277f..76f5caa634 100644 --- a/dll/win32/wbemprox/query.c +++ b/dll/win32/wbemprox/query.c @@ -16,9 +16,19 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wbemcli.h" + +#include "wine/debug.h" #include "wbemprox_private.h" -#include <winuser.h> +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); HRESULT create_view( const struct property *proplist, const WCHAR *class, const struct expr *cond, struct view **ret ) diff --git a/dll/win32/wbemprox/reg.c b/dll/win32/wbemprox/reg.c index 247dcaafa3..b0bacd7ab8 100644 --- a/dll/win32/wbemprox/reg.c +++ b/dll/win32/wbemprox/reg.c @@ -18,9 +18,23 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wbemcli.h" + +#include "wine/debug.h" #include "wbemprox_private.h" +#ifdef __REACTOS__ #include <winreg.h> +#endif + +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); static HRESULT to_bstr_array( BSTR *strings, DWORD count, VARIANT *var ) { diff --git a/dll/win32/wbemprox/security.c b/dll/win32/wbemprox/security.c index 8b109294d2..d3057e01f5 100644 --- a/dll/win32/wbemprox/security.c +++ b/dll/win32/wbemprox/security.c @@ -18,9 +18,20 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wbemcli.h" +#include "iads.h" + +#include "wine/debug.h" #include "wbemprox_private.h" -#include <iads.h> +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); static HRESULT to_byte_array( void *data, DWORD size, VARIANT *var ) { diff --git a/dll/win32/wbemprox/service.c b/dll/win32/wbemprox/service.c index 6c09f76af1..b096c5ceb9 100644 --- a/dll/win32/wbemprox/service.c +++ b/dll/win32/wbemprox/service.c @@ -18,8 +18,21 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wbemcli.h" +#include "winsvc.h" + +#include "wine/debug.h" #include "wbemprox_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); + static UINT map_error( DWORD error ) { switch (error) diff --git a/dll/win32/wbemprox/services.c b/dll/win32/wbemprox/services.c index 70d1442d8c..fd87feb12e 100644 --- a/dll/win32/wbemprox/services.c +++ b/dll/win32/wbemprox/services.c @@ -16,8 +16,22 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "objbase.h" +#include "wbemcli.h" + +#include "wine/debug.h" +#include "wine/unicode.h" #include "wbemprox_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); + struct client_security { IClientSecurity IClientSecurity_iface; diff --git a/dll/win32/wbemprox/table.c b/dll/win32/wbemprox/table.c index 6c53a06676..ad56e0c7ba 100644 --- a/dll/win32/wbemprox/table.c +++ b/dll/win32/wbemprox/table.c @@ -16,9 +16,19 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wbemcli.h" + +#include "wine/debug.h" #include "wbemprox_private.h" -#include <winuser.h> +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); HRESULT get_column_index( const struct table *table, const WCHAR *name, UINT *column ) { diff --git a/dll/win32/wbemprox/wbemlocator.c b/dll/win32/wbemprox/wbemlocator.c index 36eba95025..6ed0aed59e 100644 --- a/dll/win32/wbemprox/wbemlocator.c +++ b/dll/win32/wbemprox/wbemlocator.c @@ -16,8 +16,22 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "objbase.h" +#include "wbemcli.h" + +#include "wine/debug.h" +#include "wine/unicode.h" #include "wbemprox_private.h" +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); + typedef struct { IWbemLocator IWbemLocator_iface; diff --git a/dll/win32/wbemprox/wbemprox_private.h b/dll/win32/wbemprox/wbemprox_private.h index 87fc719004..a2696bb459 100644 --- a/dll/win32/wbemprox/wbemprox_private.h +++ b/dll/win32/wbemprox/wbemprox_private.h @@ -16,34 +16,12 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#ifndef _WBEMPROX_PRIVATE_H_ -#define _WBEMPROX_PRIVATE_H_ +#pragma once -#include <config.h> - -#include <stdarg.h> - -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - -#define COBJMACROS -#define NONAMELESSUNION -#define NONAMELESSSTRUCT - -#include <ntstatus.h> -#define WIN32_NO_STATUS -#include <windef.h> -#include <winbase.h> -#include <winsvc.h> -#include <objbase.h> -#include <oleauto.h> -#include <wbemcli.h> - -#include <wine/debug.h> -#include <wine/list.h> -#include <wine/unicode.h> - -WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); +#include "wine/debug.h" +#include "wine/heap.h" +#include "wine/list.h" +#include "wine/unicode.h" IClientSecurity client_security DECLSPEC_HIDDEN; struct list *table_list DECLSPEC_HIDDEN; @@ -252,26 +230,6 @@ HRESULT service_stop_service(IWbemClassObject *, IWbemClassObject *, IWbemClassO HRESULT security_get_sd(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN; HRESULT security_set_sd(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN; -static inline void* __WINE_ALLOC_SIZE(1) heap_alloc(size_t size) -{ - return HeapAlloc(GetProcessHeap(), 0, size); -} - -static inline void* __WINE_ALLOC_SIZE(1) heap_alloc_zero(size_t size) -{ - return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size); -} - -static inline void* __WINE_ALLOC_SIZE(2) heap_realloc(void *mem, size_t size) -{ - return HeapReAlloc(GetProcessHeap(), 0, mem, size); -} - -static inline BOOL heap_free(void *mem) -{ - return HeapFree(GetProcessHeap(), 0, mem); -} - static inline WCHAR *heap_strdupW( const WCHAR *src ) { WCHAR *dst; @@ -308,5 +266,3 @@ static const WCHAR param_typesW[] = {'T','y','p','e','s',0}; static const WCHAR param_userW[] = {'U','s','e','r',0}; static const WCHAR param_valueW[] = {'s','V','a','l','u','e',0}; static const WCHAR param_valuenameW[] = {'s','V','a','l','u','e','N','a','m','e',0}; - -#endif /* _WBEMPROX_PRIVATE_H_ */ diff --git a/dll/win32/wbemprox/wql.tab.c b/dll/win32/wbemprox/wql.tab.c index 4eaadd0818..13baba575c 100644 --- a/dll/win32/wbemprox/wql.tab.c +++ b/dll/win32/wbemprox/wql.tab.c @@ -89,8 +89,20 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wbemcli.h" #include "wbemprox_private.h" +#include "wine/list.h" +#include "wine/debug.h" +#include "wine/unicode.h" + +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); + struct parser { const WCHAR *cmd; @@ -243,7 +255,7 @@ static int wql_lex( void *val, struct parser *parser ); result = current_view -#line 247 "wql.tab.c" /* yacc.c:339 */ +#line 259 "wql.tab.c" /* yacc.c:339 */ # ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus @@ -263,8 +275,8 @@ static int wql_lex( void *val, struct parser *parser ); /* In a future release of Bison, this section will be replaced by #include "wql.tab.h". */ -#ifndef YY_WQL_E_REACTOSSYNC3_0_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED -# define YY_WQL_E_REACTOSSYNC3_0_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED +#ifndef YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED +# define YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -315,7 +327,7 @@ extern int wql_debug; typedef union YYSTYPE YYSTYPE; union YYSTYPE { -#line 182 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:355 */ +#line 194 "wql.y" /* yacc.c:355 */ struct string str; WCHAR *string; @@ -324,7 +336,7 @@ union YYSTYPE struct expr *expr; int integer; -#line 328 "wql.tab.c" /* yacc.c:355 */ +#line 340 "wql.tab.c" /* yacc.c:355 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -334,11 +346,11 @@ union YYSTYPE int wql_parse (struct parser *ctx); -#endif /* !YY_WQL_E_REACTOSSYNC3_0_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED */ +#endif /* !YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED */ /* Copy the second part of user declarations. */ -#line 342 "wql.tab.c" /* yacc.c:358 */ +#line 354 "wql.tab.c" /* yacc.c:358 */ #ifdef short # undef short @@ -619,11 +631,11 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 209, 209, 221, 233, 248, 249, 253, 260, 266, - 275, 284, 291, 297, 303, 309, 315, 321, 327, 333, - 339, 345, 351, 357, 363, 369, 375, 381, 387, 393, - 399, 405, 411, 417, 423, 432, 441, 450, 456, 462, - 468 + 0, 221, 221, 233, 245, 260, 261, 265, 272, 278, + 287, 296, 303, 309, 315, 321, 327, 333, 339, 345, + 351, 357, 363, 369, 375, 381, 387, 393, 399, 405, + 411, 417, 423, 429, 435, 444, 453, 462, 468, 474, + 480 }; #endif @@ -1448,7 +1460,7 @@ yyreduce: switch (yyn) { case 2: -#line 210 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 222 "wql.y" /* yacc.c:1646 */ { HRESULT hr; struct parser *parser = ctx; @@ -1460,11 +1472,11 @@ yyreduce: PARSER_BUBBLE_UP_VIEW( parser, (yyval.view), view ); } -#line 1464 "wql.tab.c" /* yacc.c:1646 */ +#line 1476 "wql.tab.c" /* yacc.c:1646 */ break; case 3: -#line 222 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 234 "wql.y" /* yacc.c:1646 */ { HRESULT hr; struct parser *parser = ctx; @@ -1476,11 +1488,11 @@ yyreduce: PARSER_BUBBLE_UP_VIEW( parser, (yyval.view), view ); } -#line 1480 "wql.tab.c" /* yacc.c:1646 */ +#line 1492 "wql.tab.c" /* yacc.c:1646 */ break; case 4: -#line 234 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 246 "wql.y" /* yacc.c:1646 */ { HRESULT hr; struct parser *parser = ctx; @@ -1492,355 +1504,355 @@ yyreduce: PARSER_BUBBLE_UP_VIEW( parser, (yyval.view), view ); } -#line 1496 "wql.tab.c" /* yacc.c:1646 */ +#line 1508 "wql.tab.c" /* yacc.c:1646 */ break; case 6: -#line 250 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 262 "wql.y" /* yacc.c:1646 */ { (yyvsp[-2].proplist)->next = (yyvsp[0].proplist); } -#line 1504 "wql.tab.c" /* yacc.c:1646 */ +#line 1516 "wql.tab.c" /* yacc.c:1646 */ break; case 7: -#line 254 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 266 "wql.y" /* yacc.c:1646 */ { (yyval.proplist) = NULL; } -#line 1512 "wql.tab.c" /* yacc.c:1646 */ +#line 1524 "wql.tab.c" /* yacc.c:1646 */ break; case 8: -#line 261 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 273 "wql.y" /* yacc.c:1646 */ { (yyval.proplist) = alloc_property( ctx, (yyvsp[-2].string), (yyvsp[0].string) ); if (!(yyval.proplist)) YYABORT; } -#line 1522 "wql.tab.c" /* yacc.c:1646 */ +#line 1534 "wql.tab.c" /* yacc.c:1646 */ break; case 9: -#line 267 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 279 "wql.y" /* yacc.c:1646 */ { (yyval.proplist) = alloc_property( ctx, NULL, (yyvsp[0].string) ); if (!(yyval.proplist)) YYABORT; } -#line 1532 "wql.tab.c" /* yacc.c:1646 */ +#line 1544 "wql.tab.c" /* yacc.c:1646 */ break; case 10: -#line 276 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 288 "wql.y" /* yacc.c:1646 */ { (yyval.string) = get_string( ctx, &(yyvsp[0].str) ); if (!(yyval.string)) YYABORT; } -#line 1542 "wql.tab.c" /* yacc.c:1646 */ +#line 1554 "wql.tab.c" /* yacc.c:1646 */ break; case 11: -#line 285 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 297 "wql.y" /* yacc.c:1646 */ { (yyval.integer) = get_int( ctx ); } -#line 1550 "wql.tab.c" /* yacc.c:1646 */ +#line 1562 "wql.tab.c" /* yacc.c:1646 */ break; case 12: -#line 292 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 304 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[-1].expr); if (!(yyval.expr)) YYABORT; } -#line 1560 "wql.tab.c" /* yacc.c:1646 */ +#line 1572 "wql.tab.c" /* yacc.c:1646 */ break; case 13: -#line 298 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 310 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_AND, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1570 "wql.tab.c" /* yacc.c:1646 */ +#line 1582 "wql.tab.c" /* yacc.c:1646 */ break; case 14: -#line 304 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 316 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_OR, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1580 "wql.tab.c" /* yacc.c:1646 */ +#line 1592 "wql.tab.c" /* yacc.c:1646 */ break; case 15: -#line 310 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 322 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_unary( ctx, (yyvsp[0].expr), OP_NOT ); if (!(yyval.expr)) YYABORT; } -#line 1590 "wql.tab.c" /* yacc.c:1646 */ +#line 1602 "wql.tab.c" /* yacc.c:1646 */ break; case 16: -#line 316 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 328 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_EQ, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1600 "wql.tab.c" /* yacc.c:1646 */ +#line 1612 "wql.tab.c" /* yacc.c:1646 */ break; case 17: -#line 322 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 334 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GT, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1610 "wql.tab.c" /* yacc.c:1646 */ +#line 1622 "wql.tab.c" /* yacc.c:1646 */ break; case 18: -#line 328 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 340 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LT, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1620 "wql.tab.c" /* yacc.c:1646 */ +#line 1632 "wql.tab.c" /* yacc.c:1646 */ break; case 19: -#line 334 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 346 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LE, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1630 "wql.tab.c" /* yacc.c:1646 */ +#line 1642 "wql.tab.c" /* yacc.c:1646 */ break; case 20: -#line 340 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 352 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GE, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1640 "wql.tab.c" /* yacc.c:1646 */ +#line 1652 "wql.tab.c" /* yacc.c:1646 */ break; case 21: -#line 346 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 358 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_NE, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1650 "wql.tab.c" /* yacc.c:1646 */ +#line 1662 "wql.tab.c" /* yacc.c:1646 */ break; case 22: -#line 352 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 364 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_EQ, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1660 "wql.tab.c" /* yacc.c:1646 */ +#line 1672 "wql.tab.c" /* yacc.c:1646 */ break; case 23: -#line 358 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 370 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GT, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1670 "wql.tab.c" /* yacc.c:1646 */ +#line 1682 "wql.tab.c" /* yacc.c:1646 */ break; case 24: -#line 364 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 376 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LT, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1680 "wql.tab.c" /* yacc.c:1646 */ +#line 1692 "wql.tab.c" /* yacc.c:1646 */ break; case 25: -#line 370 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 382 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LE, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1690 "wql.tab.c" /* yacc.c:1646 */ +#line 1702 "wql.tab.c" /* yacc.c:1646 */ break; case 26: -#line 376 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 388 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GE, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1700 "wql.tab.c" /* yacc.c:1646 */ +#line 1712 "wql.tab.c" /* yacc.c:1646 */ break; case 27: -#line 382 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 394 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_NE, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1710 "wql.tab.c" /* yacc.c:1646 */ +#line 1722 "wql.tab.c" /* yacc.c:1646 */ break; case 28: -#line 388 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 400 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LIKE, (yyvsp[0].expr) ); if (!(yyval.expr)) YYABORT; } -#line 1720 "wql.tab.c" /* yacc.c:1646 */ +#line 1732 "wql.tab.c" /* yacc.c:1646 */ break; case 29: -#line 394 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 406 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_unary( ctx, (yyvsp[-2].expr), OP_ISNULL ); if (!(yyval.expr)) YYABORT; } -#line 1730 "wql.tab.c" /* yacc.c:1646 */ +#line 1742 "wql.tab.c" /* yacc.c:1646 */ break; case 30: -#line 400 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 412 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_unary( ctx, (yyvsp[-3].expr), OP_NOTNULL ); if (!(yyval.expr)) YYABORT; } -#line 1740 "wql.tab.c" /* yacc.c:1646 */ +#line 1752 "wql.tab.c" /* yacc.c:1646 */ break; case 31: -#line 406 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 418 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_unary( ctx, (yyvsp[-2].expr), OP_ISNULL ); if (!(yyval.expr)) YYABORT; } -#line 1750 "wql.tab.c" /* yacc.c:1646 */ +#line 1762 "wql.tab.c" /* yacc.c:1646 */ break; case 32: -#line 412 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 424 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_unary( ctx, (yyvsp[0].expr), OP_ISNULL ); if (!(yyval.expr)) YYABORT; } -#line 1760 "wql.tab.c" /* yacc.c:1646 */ +#line 1772 "wql.tab.c" /* yacc.c:1646 */ break; case 33: -#line 418 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 430 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_unary( ctx, (yyvsp[-2].expr), OP_NOTNULL ); if (!(yyval.expr)) YYABORT; } -#line 1770 "wql.tab.c" /* yacc.c:1646 */ +#line 1782 "wql.tab.c" /* yacc.c:1646 */ break; case 34: -#line 424 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 436 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_unary( ctx, (yyvsp[0].expr), OP_NOTNULL ); if (!(yyval.expr)) YYABORT; } -#line 1780 "wql.tab.c" /* yacc.c:1646 */ +#line 1792 "wql.tab.c" /* yacc.c:1646 */ break; case 35: -#line 433 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 445 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_sval( ctx, &(yyvsp[0].str) ); if (!(yyval.expr)) YYABORT; } -#line 1790 "wql.tab.c" /* yacc.c:1646 */ +#line 1802 "wql.tab.c" /* yacc.c:1646 */ break; case 36: -#line 442 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 454 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_propval( ctx, (yyvsp[0].proplist) ); if (!(yyval.expr)) YYABORT; } -#line 1800 "wql.tab.c" /* yacc.c:1646 */ +#line 1812 "wql.tab.c" /* yacc.c:1646 */ break; case 37: -#line 451 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 463 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_ival( ctx, (yyvsp[0].integer) ); if (!(yyval.expr)) YYABORT; } -#line 1810 "wql.tab.c" /* yacc.c:1646 */ +#line 1822 "wql.tab.c" /* yacc.c:1646 */ break; case 38: -#line 457 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 469 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_sval( ctx, &(yyvsp[0].str) ); if (!(yyval.expr)) YYABORT; } -#line 1820 "wql.tab.c" /* yacc.c:1646 */ +#line 1832 "wql.tab.c" /* yacc.c:1646 */ break; case 39: -#line 463 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 475 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_bval( ctx, -1 ); if (!(yyval.expr)) YYABORT; } -#line 1830 "wql.tab.c" /* yacc.c:1646 */ +#line 1842 "wql.tab.c" /* yacc.c:1646 */ break; case 40: -#line 469 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */ +#line 481 "wql.y" /* yacc.c:1646 */ { (yyval.expr) = expr_bval( ctx, 0 ); if (!(yyval.expr)) YYABORT; } -#line 1840 "wql.tab.c" /* yacc.c:1646 */ +#line 1852 "wql.tab.c" /* yacc.c:1646 */ break; -#line 1844 "wql.tab.c" /* yacc.c:1646 */ +#line 1856 "wql.tab.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2068,7 +2080,7 @@ yyreturn: #endif return yyresult; } -#line 476 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1906 */ +#line 488 "wql.y" /* yacc.c:1906 */ HRESULT parse_query( const WCHAR *str, struct view **view, struct list *mem ) diff --git a/dll/win32/wbemprox/wql.tab.h b/dll/win32/wbemprox/wql.tab.h new file mode 100644 index 0000000000..3b0a77cb8a --- /dev/null +++ b/dll/win32/wbemprox/wql.tab.h @@ -0,0 +1,104 @@ +/* A Bison parser, made by GNU Bison 3.0. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <
http://www.gnu.org/licenses/
>. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +#ifndef YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED +# define YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int wql_debug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + TK_SELECT = 258, + TK_FROM = 259, + TK_STAR = 260, + TK_COMMA = 261, + TK_DOT = 262, + TK_IS = 263, + TK_LP = 264, + TK_RP = 265, + TK_NULL = 266, + TK_FALSE = 267, + TK_TRUE = 268, + TK_INTEGER = 269, + TK_WHERE = 270, + TK_SPACE = 271, + TK_MINUS = 272, + TK_ILLEGAL = 273, + TK_BY = 274, + TK_STRING = 275, + TK_ID = 276, + TK_OR = 277, + TK_AND = 278, + TK_NOT = 279, + TK_EQ = 280, + TK_NE = 281, + TK_LT = 282, + TK_GT = 283, + TK_LE = 284, + TK_GE = 285, + TK_LIKE = 286 + }; +#endif + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE YYSTYPE; +union YYSTYPE +{ +#line 194 "wql.y" /* yacc.c:1909 */ + + struct string str; + WCHAR *string; + struct property *proplist; + struct view *view; + struct expr *expr; + int integer; + +#line 95 "wql.tab.h" /* yacc.c:1909 */ +}; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + + +int wql_parse (struct parser *ctx); + +#endif /* !YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED */ diff --git a/dll/win32/wbemprox/wql.y b/dll/win32/wbemprox/wql.y index beba2de08a..88da2b9b0f 100644 --- a/dll/win32/wbemprox/wql.y +++ b/dll/win32/wbemprox/wql.y @@ -18,8 +18,20 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wbemcli.h" #include "wbemprox_private.h" +#include "wine/list.h" +#include "wine/debug.h" +#include "wine/unicode.h" + +WINE_DEFAULT_DEBUG_CHANNEL(wbemprox); + struct parser { const WCHAR *cmd; diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 3e1658c9b5..b4bd2a8c39 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -195,7 +195,7 @@ reactos/dll/win32/vbscript # Synced to WineStaging-3.3 reactos/dll/win32/version # Synced to WineStaging-3.3 reactos/dll/win32/vssapi # Synced to WineStaging-2.9 reactos/dll/win32/wbemdisp # Synced to WineStaging-3.3 -reactos/dll/win32/wbemprox # Synced to Wine-3.0 +reactos/dll/win32/wbemprox # Synced to WineStaging-3.3 reactos/dll/win32/windowscodecs # Synced to WineStaging-3.3 reactos/dll/win32/windowscodecsext # Synced to WineStaging-2.9 reactos/dll/win32/winemp3.acm # Synced to Wine-3.0
6 years, 9 months
1
0
0
0
01/01: [WBEMDISP] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=12e94103e6bc8b8696dc2…
commit 12e94103e6bc8b8696dc2d4acc38dabe4b69ca0f Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sat Mar 24 13:12:02 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sat Mar 24 13:12:02 2018 +0100 [WBEMDISP] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/wbemdisp/CMakeLists.txt | 4 +- dll/win32/wbemdisp/locator.c | 268 +++++++++++++++++++++++++++++++++- dll/win32/wbemdisp/main.c | 20 ++- dll/win32/wbemdisp/precomp.h | 26 ++++ dll/win32/wbemdisp/wbemdisp_private.h | 36 ----- media/doc/README.WINE | 2 +- 6 files changed, 308 insertions(+), 48 deletions(-) diff --git a/dll/win32/wbemdisp/CMakeLists.txt b/dll/win32/wbemdisp/CMakeLists.txt index c449313019..439e110067 100644 --- a/dll/win32/wbemdisp/CMakeLists.txt +++ b/dll/win32/wbemdisp/CMakeLists.txt @@ -6,7 +6,7 @@ spec2def(wbemdisp.dll wbemdisp.spec) list(APPEND SOURCE locator.c main.c - wbemdisp_private.h) + precomp.h) add_idl_headers(wbemdisp_idlheader wbemdisp_classes.idl) add_typelib(wbemdisp_tlb.idl) @@ -28,5 +28,5 @@ set_module_type(wbemdisp win32dll) target_link_libraries(wbemdisp uuid wine) add_dependencies(wbemdisp stdole2 wbemdisp_idlheader) add_importlibs(wbemdisp oleaut32 ole32 msvcrt kernel32 ntdll) -add_pch(wbemdisp wbemdisp_private.h SOURCE) +add_pch(wbemdisp precomp.h SOURCE) add_cd_file(TARGET wbemdisp DESTINATION reactos/system32/wbem FOR all) diff --git a/dll/win32/wbemdisp/locator.c b/dll/win32/wbemdisp/locator.c index 951e4648d0..18d735392e 100644 --- a/dll/win32/wbemdisp/locator.c +++ b/dll/win32/wbemdisp/locator.c @@ -16,11 +16,29 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#define COBJMACROS + +#include "config.h" +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "initguid.h" +#include "objbase.h" +#include "wmiutils.h" +#include "wbemcli.h" +#include "wbemdisp.h" + +#include "wine/debug.h" +#include "wine/heap.h" +#include "wine/unicode.h" #include "wbemdisp_private.h" +#include "wbemdisp_classes.h" -#include <wbemcli.h> +WINE_DEFAULT_DEBUG_CHANNEL(wbemdisp); static HRESULT EnumVARIANT_create( IEnumWbemClassObject *, IEnumVARIANT ** ); +static HRESULT ISWbemSecurity_create( ISWbemSecurity ** ); enum type_id { @@ -30,6 +48,7 @@ enum type_id ISWbemProperty_tid, ISWbemPropertySet_tid, ISWbemServices_tid, + ISWbemSecurity_tid, last_tid }; @@ -43,7 +62,8 @@ static REFIID wbemdisp_tid_id[] = &IID_ISWbemObjectSet, &IID_ISWbemProperty, &IID_ISWbemPropertySet, - &IID_ISWbemServices + &IID_ISWbemServices, + &IID_ISWbemSecurity }; static HRESULT get_typeinfo( enum type_id tid, ITypeInfo **ret ) @@ -1856,8 +1876,12 @@ static HRESULT WINAPI services_get_Security_( ISWbemServices *iface, ISWbemSecurity **objWbemSecurity ) { - FIXME( "\n" ); - return E_NOTIMPL; + TRACE( "%p, %p\n", iface, objWbemSecurity ); + + if (!objWbemSecurity) + return E_INVALIDARG; + + return ISWbemSecurity_create( objWbemSecurity ); } static const ISWbemServicesVtbl services_vtbl = @@ -2111,8 +2135,12 @@ static HRESULT WINAPI locator_get_Security_( ISWbemLocator *iface, ISWbemSecurity **objWbemSecurity ) { - FIXME( "%p, %p\n", iface, objWbemSecurity ); - return E_NOTIMPL; + TRACE( "%p, %p\n", iface, objWbemSecurity ); + + if (!objWbemSecurity) + return E_INVALIDARG; + + return ISWbemSecurity_create( objWbemSecurity ); } static const ISWbemLocatorVtbl locator_vtbl = @@ -2143,3 +2171,231 @@ HRESULT SWbemLocator_create( void **obj ) TRACE( "returning iface %p\n", *obj ); return S_OK; } + +struct security +{ + ISWbemSecurity ISWbemSecurity_iface; + LONG refs; + WbemImpersonationLevelEnum implevel; + WbemAuthenticationLevelEnum authlevel; +}; + +static inline struct security *impl_from_ISWbemSecurity( ISWbemSecurity *iface ) +{ + return CONTAINING_RECORD( iface, struct security, ISWbemSecurity_iface ); +} + +static ULONG WINAPI security_AddRef( + ISWbemSecurity *iface ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + return InterlockedIncrement( &security->refs ); +} + +static ULONG WINAPI security_Release( + ISWbemSecurity *iface ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + LONG refs = InterlockedDecrement( &security->refs ); + if (!refs) + { + TRACE( "destroying %p\n", security ); + heap_free( security ); + } + return refs; +} + +static HRESULT WINAPI security_QueryInterface( + ISWbemSecurity *iface, + REFIID riid, + void **ppvObject ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + TRACE( "%p, %s, %p\n", security, debugstr_guid( riid ), ppvObject ); + + if (IsEqualGUID( riid, &IID_ISWbemSecurity ) || + IsEqualGUID( riid, &IID_IDispatch ) || + IsEqualGUID( riid, &IID_IUnknown )) + { + *ppvObject = iface; + } + else + { + FIXME( "interface %s not implemented\n", debugstr_guid(riid) ); + return E_NOINTERFACE; + } + ISWbemSecurity_AddRef( iface ); + return S_OK; +} + +static HRESULT WINAPI security_GetTypeInfoCount( + ISWbemSecurity *iface, + UINT *count ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + TRACE( "%p, %p\n", security, count ); + + *count = 1; + return S_OK; +} + +static HRESULT WINAPI security_GetTypeInfo( + ISWbemSecurity *iface, + UINT index, + LCID lcid, + ITypeInfo **info ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + TRACE( "%p, %u, %u, %p\n", security, index, lcid, info ); + + return get_typeinfo( ISWbemSecurity_tid, info ); +} + +static HRESULT WINAPI security_GetIDsOfNames( + ISWbemSecurity *iface, + REFIID riid, + LPOLESTR *names, + UINT count, + LCID lcid, + DISPID *dispid ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + ITypeInfo *typeinfo; + HRESULT hr; + + TRACE( "%p, %s, %p, %u, %u, %p\n", security, debugstr_guid(riid), names, count, lcid, dispid ); + + if (!names || !count || !dispid) return E_INVALIDARG; + + hr = get_typeinfo( ISWbemSecurity_tid, &typeinfo ); + if (SUCCEEDED(hr)) + { + hr = ITypeInfo_GetIDsOfNames( typeinfo, names, count, dispid ); + ITypeInfo_Release( typeinfo ); + } + return hr; +} + +static HRESULT WINAPI security_Invoke( + ISWbemSecurity *iface, + DISPID member, + REFIID riid, + LCID lcid, + WORD flags, + DISPPARAMS *params, + VARIANT *result, + EXCEPINFO *excep_info, + UINT *arg_err ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + ITypeInfo *typeinfo; + HRESULT hr; + + TRACE( "%p, %d, %s, %d, %d, %p, %p, %p, %p\n", security, member, debugstr_guid(riid), + lcid, flags, params, result, excep_info, arg_err ); + + hr = get_typeinfo( ISWbemSecurity_tid, &typeinfo ); + if (SUCCEEDED(hr)) + { + hr = ITypeInfo_Invoke( typeinfo, &security->ISWbemSecurity_iface, member, flags, + params, result, excep_info, arg_err ); + ITypeInfo_Release( typeinfo ); + } + return hr; +} + +static HRESULT WINAPI security_get_ImpersonationLevel_( + ISWbemSecurity *iface, + WbemImpersonationLevelEnum *impersonation_level ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + FIXME( "%p, %p: stub\n", security, impersonation_level ); + + if (!impersonation_level) + return E_INVALIDARG; + + *impersonation_level = security->implevel; + return S_OK; +} + +static HRESULT WINAPI security_put_ImpersonationLevel_( + ISWbemSecurity *iface, + WbemImpersonationLevelEnum impersonation_level ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + FIXME( "%p, %d: stub\n", security, impersonation_level ); + + security->implevel = impersonation_level; + return S_OK; +} + +static HRESULT WINAPI security_get_AuthenticationLevel_( + ISWbemSecurity *iface, + WbemAuthenticationLevelEnum *authentication_level ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + FIXME( "%p, %p: stub\n", security, authentication_level ); + + if (!authentication_level) + return E_INVALIDARG; + + *authentication_level = security->authlevel; + return S_OK; +} + +static HRESULT WINAPI security_put_AuthenticationLevel_( + ISWbemSecurity *iface, + WbemAuthenticationLevelEnum authentication_level ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + FIXME( "%p, %d: stub\n", security, authentication_level ); + + security->authlevel = authentication_level; + return S_OK; +} + +static HRESULT WINAPI security_get_Privileges_( + ISWbemSecurity *iface, + ISWbemPrivilegeSet **privilege_set ) +{ + struct security *security = impl_from_ISWbemSecurity( iface ); + FIXME( "%p, %p: stub\n", security, privilege_set ); + + if (!privilege_set) + return E_INVALIDARG; + + return E_NOTIMPL; +} + +static const ISWbemSecurityVtbl security_vtbl = +{ + security_QueryInterface, + security_AddRef, + security_Release, + security_GetTypeInfoCount, + security_GetTypeInfo, + security_GetIDsOfNames, + security_Invoke, + security_get_ImpersonationLevel_, + security_put_ImpersonationLevel_, + security_get_AuthenticationLevel_, + security_put_AuthenticationLevel_, + security_get_Privileges_ +}; + +static HRESULT ISWbemSecurity_create( ISWbemSecurity **obj ) +{ + struct security *security; + + TRACE( "%p\n", obj ); + + if (!(security = heap_alloc( sizeof(*security) ))) return E_OUTOFMEMORY; + security->ISWbemSecurity_iface.lpVtbl = &security_vtbl; + security->refs = 1; + security->implevel = wbemImpersonationLevelAnonymous; + security->authlevel = wbemAuthenticationLevelDefault; + + *obj = &security->ISWbemSecurity_iface; + TRACE( "returning iface %p\n", *obj ); + return S_OK; +} diff --git a/dll/win32/wbemdisp/main.c b/dll/win32/wbemdisp/main.c index e6a3dc28b0..9d9b0adf40 100644 --- a/dll/win32/wbemdisp/main.c +++ b/dll/win32/wbemdisp/main.c @@ -16,11 +16,25 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "config.h" +#include <stdarg.h> + +#define COBJMACROS + +#include "windef.h" +#include "winbase.h" +#include "objbase.h" +#include "wmiutils.h" +#include "wbemdisp.h" +#include "rpcproxy.h" + +#include "wine/debug.h" +#include "wine/heap.h" +#include "wine/unicode.h" #include "wbemdisp_private.h" +#include "wbemdisp_classes.h" -#include <rpcproxy.h> -#include <wmiutils.h> -#include <wbemdisp_classes.h> +WINE_DEFAULT_DEBUG_CHANNEL(wbemdisp); static HINSTANCE instance; diff --git a/dll/win32/wbemdisp/precomp.h b/dll/win32/wbemdisp/precomp.h new file mode 100644 index 0000000000..c1f67ee56a --- /dev/null +++ b/dll/win32/wbemdisp/precomp.h @@ -0,0 +1,26 @@ + +#ifndef _WBEMDISP_PRECOMP_H_ +#define _WBEMDISP_PRECOMP_H_ + +#include <wine/config.h> + +#include <stdarg.h> + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#define COBJMACROS + +#include <windef.h> +#include <winbase.h> +#include <objbase.h> +#include <oleauto.h> +#include <wbemdisp.h> + +#include <wine/debug.h> +#include <wine/unicode.h> + +#include "wbemdisp_private.h" + +#endif /* !_WBEMDISP_PRECOMP_H_ */ diff --git a/dll/win32/wbemdisp/wbemdisp_private.h b/dll/win32/wbemdisp/wbemdisp_private.h index 301d5d34e4..b03a13e2ea 100644 --- a/dll/win32/wbemdisp/wbemdisp_private.h +++ b/dll/win32/wbemdisp/wbemdisp_private.h @@ -16,40 +16,4 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#ifndef _WBEMDISP_PRIVATE_H_ -#define _WBEMDISP_PRIVATE_H_ - -#include <wine/config.h> - -#include <stdarg.h> - -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - -#define COBJMACROS - -#include <windef.h> -#include <winbase.h> -#include <objbase.h> -#include <oleauto.h> -#include <wbemdisp.h> - -#include <wine/debug.h> -#include <wine/unicode.h> - -WINE_DEFAULT_DEBUG_CHANNEL(wbemdisp); - HRESULT SWbemLocator_create(LPVOID *) DECLSPEC_HIDDEN; - -static inline void* __WINE_ALLOC_SIZE(1) heap_alloc(size_t size) -{ - return HeapAlloc(GetProcessHeap(), 0, size); -} - -static inline BOOL heap_free(void *mem) -{ - return HeapFree(GetProcessHeap(), 0, mem); -} - -#endif /* _WBEMDISP_PRIVATE_H_ */ diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 45607118d9..3e1658c9b5 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -194,7 +194,7 @@ reactos/dll/win32/uxtheme # Forked reactos/dll/win32/vbscript # Synced to WineStaging-3.3 reactos/dll/win32/version # Synced to WineStaging-3.3 reactos/dll/win32/vssapi # Synced to WineStaging-2.9 -reactos/dll/win32/wbemdisp # Synced to Wine-3.0 +reactos/dll/win32/wbemdisp # Synced to WineStaging-3.3 reactos/dll/win32/wbemprox # Synced to Wine-3.0 reactos/dll/win32/windowscodecs # Synced to WineStaging-3.3 reactos/dll/win32/windowscodecsext # Synced to WineStaging-2.9
6 years, 9 months
1
0
0
0
01/01: [VERSION_WINETEST] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=dbca2b2f260790d1e9167…
commit dbca2b2f260790d1e91675738424eac8fc0813ad Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sat Mar 24 13:11:07 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sat Mar 24 13:11:07 2018 +0100 [VERSION_WINETEST] Sync with Wine Staging 3.3. CORE-14434 --- modules/rostests/winetests/version/info.c | 124 ++++++++++++++++++++++ modules/rostests/winetests/version/install.c | 151 +++++++++++++++++++++++++-- 2 files changed, 269 insertions(+), 6 deletions(-) diff --git a/modules/rostests/winetests/version/info.c b/modules/rostests/winetests/version/info.c index b99a335d81..6f16999b08 100644 --- a/modules/rostests/winetests/version/info.c +++ b/modules/rostests/winetests/version/info.c @@ -578,6 +578,129 @@ static void test_VerQueryValueA(void) HeapFree(GetProcessHeap(), 0, ver); } +static void test_VerQueryValue_InvalidLength(void) +{ + /* this buffer is created with the reactos resource compiler from this resource: +#include "winver.h" + +VS_VERSION_INFO VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 63 +FILEFLAGS 0 +FILEOS VOS_UNKNOWN +FILETYPE VFT_APP +FILESUBTYPE VFT2_UNKNOWN +{ + BLOCK "StringFileInfo" + { + } +} +*/ + char preparedbuffer[] = { + /* VS_VERSION_INFO_STRUCT32 */ + 0x80, 0x00, /* wLength */ + 0x34, 0x00, /* wValueLength */ + 0x00, 0x00, /* wType */ + /* L"VS_VERSION_INFO" + DWORD alignment */ + 0x56, 0x00, 0x53, 0x00, 0x5f, 0x00, 0x56, 0x00, 0x45, 0x00, 0x52, 0x00, 0x53, 0x00, 0x49, 0x00, 0x4f, + 0x00, 0x4e, 0x00, 0x5f, 0x00, 0x49, 0x00, 0x4e, 0x00, 0x46, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* VS_FIXEDFILEINFO */ + 0xbd, 0x04, 0xef, 0xfe, /* dwSignature */ + 0x00, 0x00, 0x01, 0x00, /* dwStrucVersion */ + 0x00, 0x00, 0x01, 0x00, /* dwFileVersionMS */ + 0x00, 0x00, 0x00, 0x00, /* dwFileVersionLS */ + 0x00, 0x00, 0x01, 0x00, /* dwProductVersionMS */ + 0x00, 0x00, 0x00, 0x00, /* dwProductVersionLS */ + 0x3f, 0x00, 0x00, 0x00, /* dwFileFlagsMask */ + 0x00, 0x00, 0x00, 0x00, /* dwFileFlags */ + 0x00, 0x00, 0x00, 0x00, /* dwFileOS */ + 0x01, 0x00, 0x00, 0x00, /* dwFileType */ + 0x00, 0x00, 0x00, 0x00, /* dwFileSubtype */ + 0x00, 0x00, 0x00, 0x00, /* dwFileDateMS */ + 0x00, 0x00, 0x00, 0x00, /* dwFileDateLS */ + + /* first child: */ + 0x24, 0x00, /* wLength */ + 0x00, 0x00, /* wValueLength */ + 0x01, 0x00, /* wType */ + /* L"StringFileInfo" + DWORD alignment */ + 0x53, 0x00, 0x74, 0x00, 0x72, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x46, 0x00, 0x69, 0x00, + 0x6c, 0x00, 0x65, 0x00, 0x49, 0x00, 0x6e, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x00, 0x00, + /* "FE2X" */ + 0x46, 0x45, 0x32, 0x58, + + /* Extra bytes allocated for W->A conversions. */ + 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, + 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, + 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, + 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, + 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, + 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, + 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, + 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, 0x0d, 0xf0, 0xad, 0xba, + }; + char *p; + UINT len, ret; + WCHAR FileDescriptionW[] = { '\\', '\\', 'S', 't', 'r', 'i', 'n', 'g', 'F', 'i', 'l', 'e', 'I', 'n', 'f', 'o', 0 }; + + p = (char *)0xdeadbeef; + len = 0xdeadbeef; + SetLastError(0xdeadbeef); + ret = VerQueryValueA(preparedbuffer, "StringFileInfo", (LPVOID *)&p, &len); + ok(ret, "VerQueryValueA error %u\n", GetLastError()); + ok(len == 0, "VerQueryValueA returned %u, expected 0\n", len); + todo_wine + ok(p == preparedbuffer + 0x7e, "p was %p, expected %p\n", p, preparedbuffer + 0x7e); + + p = (char *)0xdeadbeef; + len = 0xdeadbeef; + SetLastError(0xdeadbeef); + ret = VerQueryValueA(preparedbuffer, "\\StringFileInfo", (LPVOID *)&p, &len); + ok(ret, "VerQueryValueA error %u\n", GetLastError()); + ok(len == 0, "VerQueryValueA returned %u, expected 0\n", len); + todo_wine + ok(p == preparedbuffer + 0x7e, "p was %p, expected %p\n", p, preparedbuffer + 0x7e); + + p = (char *)0xdeadbeef; + len = 0xdeadbeef; + SetLastError(0xdeadbeef); + ret = VerQueryValueA(preparedbuffer, "\\\\StringFileInfo", (LPVOID *)&p, &len); + ok(ret, "VerQueryValueA error %u\n", GetLastError()); + ok(len == 0, "VerQueryValueA returned %u, expected 0\n", len); + todo_wine + ok(p == preparedbuffer + 0x7e, "p was %p, expected %p\n", p, preparedbuffer + 0x7e); + + /* also test the W versions. */ + p = (char *)0xdeadbeef; + len = 0xdeadbeef; + SetLastError(0xdeadbeef); + ret = VerQueryValueW(preparedbuffer, FileDescriptionW + 2, (LPVOID *)&p, &len); + ok(ret, "VerQueryValueW error %u\n", GetLastError()); + ok(len == 0, "VerQueryValueW returned %u, expected 0\n", len); + todo_wine + ok(p == preparedbuffer + 0x7e, "p was %p, expected %p\n", p, preparedbuffer + 0x7e); + + p = (char *)0xdeadbeef; + len = 0xdeadbeef; + SetLastError(0xdeadbeef); + ret = VerQueryValueW(preparedbuffer, FileDescriptionW + 1, (LPVOID *)&p, &len); + ok(ret, "VerQueryValueW error %u\n", GetLastError()); + ok(len == 0, "VerQueryValueW returned %u, expected 0\n", len); + todo_wine + ok(p == preparedbuffer + 0x7e, "p was %p, expected %p\n", p, preparedbuffer + 0x7e); + + p = (char *)0xdeadbeef; + len = 0xdeadbeef; + SetLastError(0xdeadbeef); + ret = VerQueryValueW(preparedbuffer, FileDescriptionW, (LPVOID *)&p, &len); + ok(ret, "VerQueryValueW error %u\n", GetLastError()); + ok(len == 0, "VerQueryValueW returned %u, expected 0\n", len); + todo_wine + ok(p == preparedbuffer + 0x7e, "p was %p, expected %p\n", p, preparedbuffer + 0x7e); +} + static void test_extra_block(void) { WORD extra_block[] = { @@ -738,6 +861,7 @@ START_TEST(info) test_info(); test_32bit_win(); test_VerQueryValueA(); + test_VerQueryValue_InvalidLength(); test_extra_block(); test_GetFileVersionInfoEx(); } diff --git a/modules/rostests/winetests/version/install.c b/modules/rostests/winetests/version/install.c index 9b84dce492..b06125ff50 100644 --- a/modules/rostests/winetests/version/install.c +++ b/modules/rostests/winetests/version/install.c @@ -24,11 +24,13 @@ #include "winbase.h" #include "winerror.h" #include "winver.h" +#include "shlobj.h" static void test_find_file(void) { DWORD ret; UINT dwCur, dwOut ; + char tmp[MAX_PATH]; char appdir[MAX_PATH]; char curdir[MAX_PATH]; char filename[MAX_PATH]; @@ -115,10 +117,11 @@ static void test_find_file(void) } } } - if(!GetModuleFileNameA(NULL, filename, MAX_PATH) || - !GetSystemDirectoryA(windir, MAX_PATH) || - !GetTempPathA(MAX_PATH, appdir)) - trace("GetModuleFileNameA, GetSystemDirectoryA or GetTempPathA failed\n"); + if(!GetSystemDirectoryA(windir, MAX_PATH) || + !SHGetSpecialFolderPathA(0, appdir, CSIDL_PROGRAM_FILES, FALSE) || + !GetTempPathA(MAX_PATH, tmp) || + !GetTempFileNameA(tmp, "tes", 0, filename)) + ok(0, "GetSystemDirectoryA, SHGetSpecialFolderPathA, GetTempPathA or GetTempFileNameA failed\n"); else { char *p = strrchr(filename, '\\'); if(p) { @@ -150,7 +153,7 @@ static void test_find_file(void) memset(outBuf, 0, MAX_PATH); memset(curdir, 0, MAX_PATH); ret = VerFindFileA(VFFF_ISSHAREDFILE, filename, NULL, appdir, curdir, &dwCur, outBuf, &dwOut); - todo_wine ok(VFF_CURNEDEST == ret, "Wrong return value got %x expected VFF_CURNEDEST\n", ret); + ok(VFF_CURNEDEST == ret, "Wrong return value got %x expected VFF_CURNEDEST\n", ret); ok(dwOut == 1 + strlen(windir), "Wrong length of buffer for current location: " "got %d(%s) expected %d\n", dwOut, outBuf, lstrlenA(windir)+1); @@ -159,9 +162,145 @@ static void test_find_file(void) memset(outBuf, 0, MAX_PATH); memset(curdir, 0, MAX_PATH); ret = VerFindFileA(0, filename, NULL, appdir, curdir, &dwCur, outBuf, &dwOut); - todo_wine ok(VFF_CURNEDEST == ret, "Wrong return value got %x expected VFF_CURNEDEST\n", ret); + ok(VFF_CURNEDEST == ret, "Wrong return value got %x expected VFF_CURNEDEST\n", ret); ok(dwOut == 1 + strlen(appdir), "Wrong length of buffer for current location: " "got %d(%s) expected %d\n", dwOut, outBuf, lstrlenA(appdir)+1); + + /* search for filename */ + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, filename, NULL, NULL, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, filename, NULL, empty, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, filename, NULL, appdir, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, filename, NULL, NULL, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, filename, NULL, empty, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, filename, NULL, appdir, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + /* search for regedit */ + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, "regedit", NULL, NULL, curdir, &dwCur, outBuf, &dwOut); + ok(!ret, "Wrong return value got %x expected 0\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, "regedit", NULL, empty, curdir, &dwCur, outBuf, &dwOut); + ok(!ret, "Wrong return value got %x expected 0\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, "regedit", NULL, appdir, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit", NULL, NULL, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit", NULL, empty, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit", NULL, appdir, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + /* search for regedit.exe */ + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, "regedit.exe", NULL, NULL, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, "regedit.exe", NULL, empty, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, "regedit.exe", NULL, appdir, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit.exe", NULL, NULL, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit.exe", NULL, empty, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, "regedit.exe", NULL, appdir, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + /* nonexistent filename */ + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, "doesnotexist.exe", NULL, NULL, curdir, &dwCur, outBuf, &dwOut); + ok(!ret, "Wrong return value got %x expected 0\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, "doesnotexist.exe", NULL, empty, curdir, &dwCur, outBuf, &dwOut); + ok(!ret, "Wrong return value got %x expected 0\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, "doesnotexist.exe", NULL, appdir, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(0, "doesnotexist.exe", NULL, "C:\\random_path_does_not_exist", curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, "doesnotexist.exe", NULL, NULL, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, "doesnotexist.exe", NULL, empty, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, "doesnotexist.exe", NULL, appdir, curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + dwCur=MAX_PATH; + dwOut=MAX_PATH; + ret = VerFindFileA(VFFF_ISSHAREDFILE, "doesnotexist.exe", NULL, "C:\\random_path_does_not_exist", curdir, &dwCur, outBuf, &dwOut); + ok(ret & VFF_CURNEDEST, "Wrong return value got %x expected VFF_CURNEDEST set\n", ret); + + DeleteFileA(filename); } }
6 years, 9 months
1
0
0
0
01/01: [VERSION] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=28928748f106b17693c6e…
commit 28928748f106b17693c6eb2c8049ec02b805c6b8 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sat Mar 24 13:10:33 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sat Mar 24 13:10:33 2018 +0100 [VERSION] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/version/version.c | 45 +++++++++++++++++++++++++++++---------------- media/doc/README.WINE | 2 +- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/dll/win32/version/version.c b/dll/win32/version/version.c index 13436cad16..78f8837364 100644 --- a/dll/win32/version/version.c +++ b/dll/win32/version/version.c @@ -705,7 +705,12 @@ DWORD WINAPI GetFileVersionInfoSizeExW( DWORD flags, LPCWSTR filename, LPDWORD h return (len * 2) + 4; default: - SetLastError( lzfd == HFILE_ERROR ? ofs.nErrCode : ERROR_RESOURCE_DATA_NOT_FOUND ); + if (lzfd == HFILE_ERROR) + SetLastError(ofs.nErrCode); + else if (GetVersion() & 0x80000000) + SetLastError(ERROR_FILE_NOT_FOUND); + else + SetLastError(ERROR_RESOURCE_DATA_NOT_FOUND); return 0; } } @@ -1124,16 +1129,22 @@ static int testFileExistenceA( char const * path, char const * file, BOOL excl ) fileinfo.cBytes = sizeof(OFSTRUCT); - strcpy(filename, path); - filenamelen = strlen(filename); + if (path) + { + strcpy(filename, path); + filenamelen = strlen(filename); - /* Add a trailing \ if necessary */ - if(filenamelen) { - if(filename[filenamelen - 1] != '\\') - strcat(filename, "\\"); + /* Add a trailing \ if necessary */ + if(filenamelen) + { + if(filename[filenamelen - 1] != '\\') + strcat(filename, "\\"); + } + else /* specify the current directory */ + strcpy(filename, ".\\"); } - else /* specify the current directory */ - strcpy(filename, ".\\"); + else + filename[0] = 0; /* Create the full pathname */ strcat(filename, file); @@ -1223,10 +1234,10 @@ DWORD WINAPI VerFindFileA( { if(testFileExistenceA(destDir, lpszFilename, FALSE)) curDir = destDir; else if(lpszAppDir && testFileExistenceA(lpszAppDir, lpszFilename, FALSE)) - { curDir = lpszAppDir; + + if(!testFileExistenceA(systemDir, lpszFilename, FALSE)) retval |= VFF_CURNEDEST; - } } } else /* not a shared file */ @@ -1237,15 +1248,17 @@ DWORD WINAPI VerFindFileA( GetWindowsDirectoryA( winDir, MAX_PATH ); if(testFileExistenceA(destDir, lpszFilename, FALSE)) curDir = destDir; else if(testFileExistenceA(winDir, lpszFilename, FALSE)) - { curDir = winDir; - retval |= VFF_CURNEDEST; - } else if(testFileExistenceA(systemDir, lpszFilename, FALSE)) - { curDir = systemDir; - retval |= VFF_CURNEDEST; + + if (lpszAppDir && lpszAppDir[0]) + { + if(!testFileExistenceA(lpszAppDir, lpszFilename, FALSE)) + retval |= VFF_CURNEDEST; } + else if(testFileExistenceA(NULL, lpszFilename, FALSE)) + retval |= VFF_CURNEDEST; } } diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 343cc070cf..45607118d9 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -192,7 +192,7 @@ reactos/dll/win32/urlmon # Synced to WineStaging-3.3 reactos/dll/win32/usp10 # Synced to WineStaging-3.3 reactos/dll/win32/uxtheme # Forked reactos/dll/win32/vbscript # Synced to WineStaging-3.3 -reactos/dll/win32/version # Synced to Wine-3.0 +reactos/dll/win32/version # Synced to WineStaging-3.3 reactos/dll/win32/vssapi # Synced to WineStaging-2.9 reactos/dll/win32/wbemdisp # Synced to Wine-3.0 reactos/dll/win32/wbemprox # Synced to Wine-3.0
6 years, 9 months
1
0
0
0
01/01: [VBSCRIPT_WINETEST] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ff857de1ad1efe7932bea…
commit ff857de1ad1efe7932beac4e96f219311a9e8e9e Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sat Mar 24 13:09:43 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sat Mar 24 13:09:43 2018 +0100 [VBSCRIPT_WINETEST] Sync with Wine Staging 3.3. CORE-14434 --- modules/rostests/winetests/vbscript/createobj.c | 14 +++----------- modules/rostests/winetests/vbscript/run.c | 11 ++--------- modules/rostests/winetests/vbscript/vbscript.c | 13 ++----------- 3 files changed, 7 insertions(+), 31 deletions(-) diff --git a/modules/rostests/winetests/vbscript/createobj.c b/modules/rostests/winetests/vbscript/createobj.c index 4ff0ea7952..1c72ed25c4 100644 --- a/modules/rostests/winetests/vbscript/createobj.c +++ b/modules/rostests/winetests/vbscript/createobj.c @@ -18,25 +18,17 @@ #include <stdio.h> -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - #define COBJMACROS #define CONST_VTABLE -#include <windef.h> -#include <winbase.h> -#include <winreg.h> -#include <winnls.h> #include <ole2.h> #include <dispex.h> #include <activscp.h> #include <objsafe.h> -//#include <urlmon.h> -//#include <mshtmhst.h> +#include <urlmon.h> +#include <mshtmhst.h> -#include <wine/test.h> +#include "wine/test.h" #ifdef _WIN64 diff --git a/modules/rostests/winetests/vbscript/run.c b/modules/rostests/winetests/vbscript/run.c index 382cffca97..ee811c6e5b 100644 --- a/modules/rostests/winetests/vbscript/run.c +++ b/modules/rostests/winetests/vbscript/run.c @@ -18,23 +18,16 @@ #include <stdio.h> -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - #define COBJMACROS #define CONST_VTABLE -#include <windef.h> -#include <winbase.h> -#include <winnls.h> #include <ole2.h> #include <dispex.h> #include <activscp.h> -#include <vbsregexp55.h> +#include "vbsregexp55.h" -#include <wine/test.h> +#include "wine/test.h" #ifdef _WIN64 diff --git a/modules/rostests/winetests/vbscript/vbscript.c b/modules/rostests/winetests/vbscript/vbscript.c index 5f14d4b509..9e86a5f919 100644 --- a/modules/rostests/winetests/vbscript/vbscript.c +++ b/modules/rostests/winetests/vbscript/vbscript.c @@ -16,27 +16,18 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include <stdarg.h> - -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - #define COBJMACROS #define CONST_VTABLE -#include <windef.h> -#include <winbase.h> -#include <winnls.h> #include <initguid.h> #include <ole2.h> #include <activscp.h> #include <objsafe.h> #include <dispex.h> -#include <vbsregexp55.h> +#include "vbsregexp55.h" -#include <wine/test.h> +#include "wine/test.h" #ifdef _WIN64
6 years, 9 months
1
0
0
0
01/01: [VBSCRIPT] Sync with Wine Staging 3.3. CORE-14434
by Amine Khaldi
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9f8faabac0e465d991bf7…
commit 9f8faabac0e465d991bf72ebacb20b6ef72c1735 Author: Amine Khaldi <amine.khaldi(a)reactos.org> AuthorDate: Sat Mar 24 13:09:01 2018 +0100 Commit: Amine Khaldi <amine.khaldi(a)reactos.org> CommitDate: Sat Mar 24 13:09:01 2018 +0100 [VBSCRIPT] Sync with Wine Staging 3.3. CORE-14434 --- dll/win32/vbscript/CMakeLists.txt | 4 +- dll/win32/vbscript/compile.c | 7 + dll/win32/vbscript/global.c | 15 +- dll/win32/vbscript/interp.c | 6 + dll/win32/vbscript/lex.c | 12 +- dll/win32/vbscript/parse.h | 2 + dll/win32/vbscript/parser.tab.c | 693 +++++++++++++++++++------------------ dll/win32/vbscript/parser.tab.h | 8 +- dll/win32/vbscript/parser.y | 5 + dll/win32/vbscript/precomp.h | 21 ++ dll/win32/vbscript/regexp.c | 7 + dll/win32/vbscript/regexp.h | 2 + dll/win32/vbscript/utils.c | 4 + dll/win32/vbscript/vbdisp.c | 8 +- dll/win32/vbscript/vbregexp.c | 7 +- dll/win32/vbscript/vbscript.c | 8 +- dll/win32/vbscript/vbscript.h | 57 +-- dll/win32/vbscript/vbscript.rc | 2 +- dll/win32/vbscript/vbscript_main.c | 16 +- media/doc/README.WINE | 2 +- 20 files changed, 478 insertions(+), 408 deletions(-) diff --git a/dll/win32/vbscript/CMakeLists.txt b/dll/win32/vbscript/CMakeLists.txt index 99df1c3163..458cd1c790 100644 --- a/dll/win32/vbscript/CMakeLists.txt +++ b/dll/win32/vbscript/CMakeLists.txt @@ -15,7 +15,7 @@ list(APPEND SOURCE vbregexp.c vbscript.c vbscript_main.c - vbscript.h) + precomp.h) list(APPEND vbscript_rc_deps ${CMAKE_CURRENT_SOURCE_DIR}/vbscript_classes.rgs @@ -39,5 +39,5 @@ set_module_type(vbscript win32dll) target_link_libraries(vbscript uuid wine) add_importlibs(vbscript oleaut32 ole32 user32 msvcrt kernel32 ntdll) add_dependencies(vbscript vbscript_idlheader stdole2) -add_pch(vbscript vbscript.h SOURCE) +add_pch(vbscript precomp.h SOURCE) add_cd_file(TARGET vbscript DESTINATION reactos/system32 FOR all) diff --git a/dll/win32/vbscript/compile.c b/dll/win32/vbscript/compile.c index 3a816abb32..c8189d6d96 100644 --- a/dll/win32/vbscript/compile.c +++ b/dll/win32/vbscript/compile.c @@ -16,8 +16,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include <assert.h> + #include "vbscript.h" +#include "parse.h" +#include "parser.tab.h" + +#include "wine/debug.h" +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); WINE_DECLARE_DEBUG_CHANNEL(vbscript_disas); typedef struct _statement_ctx_t { diff --git a/dll/win32/vbscript/global.c b/dll/win32/vbscript/global.c index 16bd9bbd20..668a71a78b 100644 --- a/dll/win32/vbscript/global.c +++ b/dll/win32/vbscript/global.c @@ -16,11 +16,22 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include <assert.h> +#include <math.h> + #include "vbscript.h" +#include "vbscript_defs.h" -#include <math.h> +#include "mshtmhst.h" +#include "objsafe.h" + +#include "wine/debug.h" + +#ifdef __REACTOS__ #include <wingdi.h> -#include <mshtmhst.h> +#endif + +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); #define VB_E_CANNOT_CREATE_OBJ 0x800a01ad #define VB_E_MK_PARSE_ERROR 0x800a01b0 diff --git a/dll/win32/vbscript/interp.c b/dll/win32/vbscript/interp.c index 56eaf9114f..9ec329924c 100644 --- a/dll/win32/vbscript/interp.c +++ b/dll/win32/vbscript/interp.c @@ -16,8 +16,14 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include <assert.h> + #include "vbscript.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); + static DISPID propput_dispid = DISPID_PROPERTYPUT; typedef struct { diff --git a/dll/win32/vbscript/lex.c b/dll/win32/vbscript/lex.c index 7dcc482bdd..98b4cbb842 100644 --- a/dll/win32/vbscript/lex.c +++ b/dll/win32/vbscript/lex.c @@ -16,11 +16,19 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "config.h" +#include "wine/port.h" + +#include <assert.h> +#include <limits.h> + #include "vbscript.h" +#include "parse.h" #include "parser.tab.h" -#include <wine/config.h> -#include <wine/port.h> +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); static const WCHAR andW[] = {'a','n','d',0}; static const WCHAR byrefW[] = {'b','y','r','e','f',0}; diff --git a/dll/win32/vbscript/parse.h b/dll/win32/vbscript/parse.h index f0479b5be0..1fc2650748 100644 --- a/dll/win32/vbscript/parse.h +++ b/dll/win32/vbscript/parse.h @@ -16,6 +16,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#pragma once + typedef enum { EXPR_ADD, EXPR_AND, diff --git a/dll/win32/vbscript/parser.tab.c b/dll/win32/vbscript/parser.tab.c index 39842e6bf5..c39ff414d8 100644 --- a/dll/win32/vbscript/parser.tab.c +++ b/dll/win32/vbscript/parser.tab.c @@ -72,6 +72,11 @@ #include "vbscript.h" +#include "parse.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); static int parser_error(parser_ctx_t *,const char*); @@ -127,7 +132,7 @@ static const WCHAR propertyW[] = {'p','r','o','p','e','r','t','y',0}; #define CHECK_ERROR if(((parser_ctx_t*)ctx)->hres != S_OK) YYABORT -#line 131 "parser.tab.c" /* yacc.c:339 */ +#line 136 "parser.tab.c" /* yacc.c:339 */ # ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus @@ -147,8 +152,8 @@ static const WCHAR propertyW[] = {'p','r','o','p','e','r','t','y',0}; /* In a future release of Bison, this section will be replaced by #include "parser.tab.h". */ -#ifndef YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED -# define YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED +#ifndef YY_PARSER_E_REACTOSSYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED +# define YY_PARSER_E_REACTOSSYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -238,7 +243,7 @@ extern int parser_debug; typedef union YYSTYPE YYSTYPE; union YYSTYPE { -#line 83 "parser.y" /* yacc.c:355 */ +#line 88 "parser.y" /* yacc.c:355 */ const WCHAR *string; statement_t *statement; @@ -257,7 +262,7 @@ union YYSTYPE BOOL boolean; double dbl; -#line 261 "parser.tab.c" /* yacc.c:355 */ +#line 266 "parser.tab.c" /* yacc.c:355 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -267,11 +272,11 @@ union YYSTYPE int parser_parse (parser_ctx_t *ctx); -#endif /* !YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED */ +#endif /* !YY_PARSER_E_REACTOSSYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED */ /* Copy the second part of user declarations. */ -#line 275 "parser.tab.c" /* yacc.c:358 */ +#line 280 "parser.tab.c" /* yacc.c:358 */ #ifdef short # undef short @@ -556,23 +561,23 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 142, 142, 145, 146, 148, 150, 151, 154, 155, - 158, 159, 162, 165, 166, 167, 168, 169, 172, 173, - 174, 176, 177, 178, 180, 183, 186, 187, 188, 189, - 190, 191, 192, 193, 195, 196, 197, 198, 199, 201, - 203, 207, 208, 211, 212, 215, 216, 217, 220, 221, - 224, 225, 228, 231, 232, 235, 236, 239, 240, 243, - 245, 246, 249, 251, 254, 255, 258, 259, 262, 266, - 267, 270, 271, 272, 276, 277, 280, 281, 284, 285, - 286, 288, 290, 293, 294, 297, 298, 301, 302, 305, - 306, 309, 310, 313, 314, 317, 318, 321, 322, 323, - 324, 325, 326, 327, 328, 331, 332, 335, 336, 337, - 340, 341, 344, 345, 349, 350, 352, 356, 357, 360, - 361, 362, 363, 366, 367, 370, 371, 372, 373, 374, - 375, 376, 379, 380, 381, 382, 385, 386, 387, 390, - 391, 394, 397, 398, 400, 402, 403, 406, 408, 410, - 414, 416, 420, 421, 424, 425, 426, 429, 430, 433, - 434, 437, 438, 439, 443, 444, 448, 449, 450, 451 + 0, 147, 147, 150, 151, 153, 155, 156, 159, 160, + 163, 164, 167, 170, 171, 172, 173, 174, 177, 178, + 179, 181, 182, 183, 185, 188, 191, 192, 193, 194, + 195, 196, 197, 198, 200, 201, 202, 203, 204, 206, + 208, 212, 213, 216, 217, 220, 221, 222, 225, 226, + 229, 230, 233, 236, 237, 240, 241, 244, 245, 248, + 250, 251, 254, 256, 259, 260, 263, 264, 267, 271, + 272, 275, 276, 277, 281, 282, 285, 286, 289, 290, + 291, 293, 295, 298, 299, 302, 303, 306, 307, 310, + 311, 314, 315, 318, 319, 322, 323, 326, 327, 328, + 329, 330, 331, 332, 333, 336, 337, 340, 341, 342, + 345, 346, 349, 350, 354, 355, 357, 361, 362, 365, + 366, 367, 368, 371, 372, 375, 376, 377, 378, 379, + 380, 381, 384, 385, 386, 387, 390, 391, 392, 395, + 396, 399, 402, 403, 405, 407, 408, 411, 413, 415, + 419, 421, 425, 426, 429, 430, 431, 434, 435, 438, + 439, 442, 443, 444, 448, 449, 453, 454, 455, 456 }; #endif @@ -1709,964 +1714,964 @@ yyreduce: switch (yyn) { case 2: -#line 142 "parser.y" /* yacc.c:1646 */ +#line 147 "parser.y" /* yacc.c:1646 */ { parse_complete(ctx, (yyvsp[-2].boolean)); } -#line 1715 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1720 "parser.tab.c" /* yacc.c:1646 */ break; case 3: -#line 145 "parser.y" /* yacc.c:1646 */ +#line 150 "parser.y" /* yacc.c:1646 */ { (yyval.boolean) = FALSE; } -#line 1721 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1726 "parser.tab.c" /* yacc.c:1646 */ break; case 4: -#line 146 "parser.y" /* yacc.c:1646 */ +#line 151 "parser.y" /* yacc.c:1646 */ { (yyval.boolean) = TRUE; } -#line 1727 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1732 "parser.tab.c" /* yacc.c:1646 */ break; case 6: -#line 150 "parser.y" /* yacc.c:1646 */ +#line 155 "parser.y" /* yacc.c:1646 */ { source_add_statement(ctx, (yyvsp[0].statement)); } -#line 1733 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1738 "parser.tab.c" /* yacc.c:1646 */ break; case 7: -#line 151 "parser.y" /* yacc.c:1646 */ +#line 156 "parser.y" /* yacc.c:1646 */ { source_add_class(ctx, (yyvsp[0].class_decl)); } -#line 1739 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1744 "parser.tab.c" /* yacc.c:1646 */ break; case 8: -#line 154 "parser.y" /* yacc.c:1646 */ +#line 159 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = NULL; } -#line 1745 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1750 "parser.tab.c" /* yacc.c:1646 */ break; case 9: -#line 155 "parser.y" /* yacc.c:1646 */ +#line 160 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1751 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1756 "parser.tab.c" /* yacc.c:1646 */ break; case 10: -#line 158 "parser.y" /* yacc.c:1646 */ +#line 163 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1757 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1762 "parser.tab.c" /* yacc.c:1646 */ break; case 11: -#line 159 "parser.y" /* yacc.c:1646 */ +#line 164 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = link_statements((yyvsp[-1].statement), (yyvsp[0].statement)); } -#line 1763 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1768 "parser.tab.c" /* yacc.c:1646 */ break; case 12: -#line 162 "parser.y" /* yacc.c:1646 */ +#line 167 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[-1].statement); } -#line 1769 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1774 "parser.tab.c" /* yacc.c:1646 */ break; case 13: -#line 165 "parser.y" /* yacc.c:1646 */ +#line 170 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = NULL; } -#line 1775 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1780 "parser.tab.c" /* yacc.c:1646 */ break; case 14: -#line 166 "parser.y" /* yacc.c:1646 */ +#line 171 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1781 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1786 "parser.tab.c" /* yacc.c:1646 */ break; case 15: -#line 167 "parser.y" /* yacc.c:1646 */ +#line 172 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1787 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1792 "parser.tab.c" /* yacc.c:1646 */ break; case 16: -#line 168 "parser.y" /* yacc.c:1646 */ +#line 173 "parser.y" /* yacc.c:1646 */ { (yyvsp[-2].statement)->next = (yyvsp[0].statement); (yyval.statement) = (yyvsp[-2].statement); } -#line 1793 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1798 "parser.tab.c" /* yacc.c:1646 */ break; case 17: -#line 169 "parser.y" /* yacc.c:1646 */ +#line 174 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[-1].statement); } -#line 1799 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1804 "parser.tab.c" /* yacc.c:1646 */ break; case 18: -#line 172 "parser.y" /* yacc.c:1646 */ +#line 177 "parser.y" /* yacc.c:1646 */ { (yyvsp[-1].member)->args = (yyvsp[0].expression); (yyval.statement) = new_call_statement(ctx, FALSE, (yyvsp[-1].member)); CHECK_ERROR; } -#line 1805 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1810 "parser.tab.c" /* yacc.c:1646 */ break; case 19: -#line 173 "parser.y" /* yacc.c:1646 */ +#line 178 "parser.y" /* yacc.c:1646 */ { (yyvsp[-1].member)->args = (yyvsp[0].expression); (yyval.statement) = new_call_statement(ctx, TRUE, (yyvsp[-1].member)); CHECK_ERROR; } -#line 1811 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1816 "parser.tab.c" /* yacc.c:1646 */ break; case 20: -#line 175 "parser.y" /* yacc.c:1646 */ +#line 180 "parser.y" /* yacc.c:1646 */ { (yyvsp[-3].member)->args = (yyvsp[-2].expression); (yyval.statement) = new_assign_statement(ctx, (yyvsp[-3].member), (yyvsp[0].expression)); CHECK_ERROR; } -#line 1817 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1822 "parser.tab.c" /* yacc.c:1646 */ break; case 21: -#line 176 "parser.y" /* yacc.c:1646 */ +#line 181 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_dim_statement(ctx, (yyvsp[0].dim_decl)); CHECK_ERROR; } -#line 1823 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1828 "parser.tab.c" /* yacc.c:1646 */ break; case 22: -#line 177 "parser.y" /* yacc.c:1646 */ +#line 182 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1829 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1834 "parser.tab.c" /* yacc.c:1646 */ break; case 23: -#line 179 "parser.y" /* yacc.c:1646 */ +#line 184 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_while_statement(ctx, STAT_WHILE, (yyvsp[-3].expression), (yyvsp[-1].statement)); CHECK_ERROR; } -#line 1835 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1840 "parser.tab.c" /* yacc.c:1646 */ break; case 24: -#line 181 "parser.y" /* yacc.c:1646 */ +#line 186 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_while_statement(ctx, (yyvsp[-4].boolean) ? STAT_WHILELOOP : STAT_UNTIL, (yyvsp[-3].expression), (yyvsp[-1].statement)); CHECK_ERROR; } -#line 1842 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1847 "parser.tab.c" /* yacc.c:1646 */ break; case 25: -#line 184 "parser.y" /* yacc.c:1646 */ +#line 189 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_while_statement(ctx, (yyvsp[-1].boolean) ? STAT_DOWHILE : STAT_DOUNTIL, (yyvsp[0].expression), (yyvsp[-3].statement)); CHECK_ERROR; } -#line 1849 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1854 "parser.tab.c" /* yacc.c:1646 */ break; case 26: -#line 186 "parser.y" /* yacc.c:1646 */ +#line 191 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_while_statement(ctx, STAT_DOWHILE, NULL, (yyvsp[-1].statement)); CHECK_ERROR; } -#line 1855 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1860 "parser.tab.c" /* yacc.c:1646 */ break; case 27: -#line 187 "parser.y" /* yacc.c:1646 */ +#line 192 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_function_statement(ctx, (yyvsp[0].func_decl)); CHECK_ERROR; } -#line 1861 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1866 "parser.tab.c" /* yacc.c:1646 */ break; case 28: -#line 188 "parser.y" /* yacc.c:1646 */ +#line 193 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_statement(ctx, STAT_EXITDO, 0); CHECK_ERROR; } -#line 1867 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1872 "parser.tab.c" /* yacc.c:1646 */ break; case 29: -#line 189 "parser.y" /* yacc.c:1646 */ +#line 194 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_statement(ctx, STAT_EXITFOR, 0); CHECK_ERROR; } -#line 1873 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1878 "parser.tab.c" /* yacc.c:1646 */ break; case 30: -#line 190 "parser.y" /* yacc.c:1646 */ +#line 195 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_statement(ctx, STAT_EXITFUNC, 0); CHECK_ERROR; } -#line 1879 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1884 "parser.tab.c" /* yacc.c:1646 */ break; case 31: -#line 191 "parser.y" /* yacc.c:1646 */ +#line 196 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_statement(ctx, STAT_EXITPROP, 0); CHECK_ERROR; } -#line 1885 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1890 "parser.tab.c" /* yacc.c:1646 */ break; case 32: -#line 192 "parser.y" /* yacc.c:1646 */ +#line 197 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_statement(ctx, STAT_EXITSUB, 0); CHECK_ERROR; } -#line 1891 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1896 "parser.tab.c" /* yacc.c:1646 */ break; case 33: -#line 194 "parser.y" /* yacc.c:1646 */ +#line 199 "parser.y" /* yacc.c:1646 */ { (yyvsp[-3].member)->args = (yyvsp[-2].expression); (yyval.statement) = new_set_statement(ctx, (yyvsp[-3].member), (yyvsp[0].expression)); CHECK_ERROR; } -#line 1897 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1902 "parser.tab.c" /* yacc.c:1646 */ break; case 34: -#line 195 "parser.y" /* yacc.c:1646 */ +#line 200 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_statement(ctx, STAT_STOP, 0); CHECK_ERROR; } -#line 1903 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1908 "parser.tab.c" /* yacc.c:1646 */ break; case 35: -#line 196 "parser.y" /* yacc.c:1646 */ +#line 201 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_onerror_statement(ctx, TRUE); CHECK_ERROR; } -#line 1909 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1914 "parser.tab.c" /* yacc.c:1646 */ break; case 36: -#line 197 "parser.y" /* yacc.c:1646 */ +#line 202 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_onerror_statement(ctx, FALSE); CHECK_ERROR; } -#line 1915 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1920 "parser.tab.c" /* yacc.c:1646 */ break; case 37: -#line 198 "parser.y" /* yacc.c:1646 */ +#line 203 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_const_statement(ctx, (yyvsp[0].const_decl)); CHECK_ERROR; } -#line 1921 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1926 "parser.tab.c" /* yacc.c:1646 */ break; case 38: -#line 200 "parser.y" /* yacc.c:1646 */ +#line 205 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_forto_statement(ctx, (yyvsp[-8].string), (yyvsp[-6].expression), (yyvsp[-4].expression), (yyvsp[-3].expression), (yyvsp[-1].statement)); CHECK_ERROR; } -#line 1927 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1932 "parser.tab.c" /* yacc.c:1646 */ break; case 39: -#line 202 "parser.y" /* yacc.c:1646 */ +#line 207 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_foreach_statement(ctx, (yyvsp[-5].string), (yyvsp[-3].expression), (yyvsp[-1].statement)); } -#line 1933 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1938 "parser.tab.c" /* yacc.c:1646 */ break; case 40: -#line 204 "parser.y" /* yacc.c:1646 */ +#line 209 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_select_statement(ctx, (yyvsp[-4].expression), (yyvsp[-2].case_clausule)); } -#line 1939 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1944 "parser.tab.c" /* yacc.c:1646 */ break; case 41: -#line 207 "parser.y" /* yacc.c:1646 */ +#line 212 "parser.y" /* yacc.c:1646 */ { (yyval.member) = new_member_expression(ctx, NULL, (yyvsp[0].string)); CHECK_ERROR; } -#line 1945 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1950 "parser.tab.c" /* yacc.c:1646 */ break; case 42: -#line 208 "parser.y" /* yacc.c:1646 */ +#line 213 "parser.y" /* yacc.c:1646 */ { (yyval.member) = new_member_expression(ctx, (yyvsp[-2].expression), (yyvsp[0].string)); CHECK_ERROR; } -#line 1951 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1956 "parser.tab.c" /* yacc.c:1646 */ break; case 43: -#line 211 "parser.y" /* yacc.c:1646 */ +#line 216 "parser.y" /* yacc.c:1646 */ { (yyval.dim_decl) = (yyvsp[0].dim_decl); } -#line 1957 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1962 "parser.tab.c" /* yacc.c:1646 */ break; case 44: -#line 212 "parser.y" /* yacc.c:1646 */ +#line 217 "parser.y" /* yacc.c:1646 */ { (yyvsp[-2].dim_decl)->next = (yyvsp[0].dim_decl); (yyval.dim_decl) = (yyvsp[-2].dim_decl); } -#line 1963 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1968 "parser.tab.c" /* yacc.c:1646 */ break; case 45: -#line 215 "parser.y" /* yacc.c:1646 */ +#line 220 "parser.y" /* yacc.c:1646 */ { (yyval.dim_decl) = new_dim_decl(ctx, (yyvsp[0].string), FALSE, NULL); CHECK_ERROR; } -#line 1969 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1974 "parser.tab.c" /* yacc.c:1646 */ break; case 46: -#line 216 "parser.y" /* yacc.c:1646 */ +#line 221 "parser.y" /* yacc.c:1646 */ { (yyval.dim_decl) = new_dim_decl(ctx, (yyvsp[-3].string), TRUE, (yyvsp[-1].dim_list)); CHECK_ERROR; } -#line 1975 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1980 "parser.tab.c" /* yacc.c:1646 */ break; case 47: -#line 217 "parser.y" /* yacc.c:1646 */ +#line 222 "parser.y" /* yacc.c:1646 */ { (yyval.dim_decl) = new_dim_decl(ctx, (yyvsp[-1].string), TRUE, NULL); CHECK_ERROR; } -#line 1981 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1986 "parser.tab.c" /* yacc.c:1646 */ break; case 48: -#line 220 "parser.y" /* yacc.c:1646 */ +#line 225 "parser.y" /* yacc.c:1646 */ { (yyval.dim_list) = new_dim(ctx, (yyvsp[0].uint), NULL); } -#line 1987 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1992 "parser.tab.c" /* yacc.c:1646 */ break; case 49: -#line 221 "parser.y" /* yacc.c:1646 */ +#line 226 "parser.y" /* yacc.c:1646 */ { (yyval.dim_list) = new_dim(ctx, (yyvsp[-2].uint), (yyvsp[0].dim_list)); } -#line 1993 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 1998 "parser.tab.c" /* yacc.c:1646 */ break; case 50: -#line 224 "parser.y" /* yacc.c:1646 */ +#line 229 "parser.y" /* yacc.c:1646 */ { (yyval.const_decl) = (yyvsp[0].const_decl); } -#line 1999 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2004 "parser.tab.c" /* yacc.c:1646 */ break; case 51: -#line 225 "parser.y" /* yacc.c:1646 */ +#line 230 "parser.y" /* yacc.c:1646 */ { (yyvsp[-2].const_decl)->next = (yyvsp[0].const_decl); (yyval.const_decl) = (yyvsp[-2].const_decl); } -#line 2005 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2010 "parser.tab.c" /* yacc.c:1646 */ break; case 52: -#line 228 "parser.y" /* yacc.c:1646 */ +#line 233 "parser.y" /* yacc.c:1646 */ { (yyval.const_decl) = new_const_decl(ctx, (yyvsp[-2].string), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2011 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2016 "parser.tab.c" /* yacc.c:1646 */ break; case 53: -#line 231 "parser.y" /* yacc.c:1646 */ +#line 236 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2017 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2022 "parser.tab.c" /* yacc.c:1646 */ break; case 54: -#line 232 "parser.y" /* yacc.c:1646 */ +#line 237 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_unary_expression(ctx, EXPR_NEG, (yyvsp[0].expression)); CHECK_ERROR; } -#line 2023 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2028 "parser.tab.c" /* yacc.c:1646 */ break; case 55: -#line 235 "parser.y" /* yacc.c:1646 */ +#line 240 "parser.y" /* yacc.c:1646 */ { (yyval.boolean) = TRUE; } -#line 2029 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2034 "parser.tab.c" /* yacc.c:1646 */ break; case 56: -#line 236 "parser.y" /* yacc.c:1646 */ +#line 241 "parser.y" /* yacc.c:1646 */ { (yyval.boolean) = FALSE; } -#line 2035 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2040 "parser.tab.c" /* yacc.c:1646 */ break; case 57: -#line 239 "parser.y" /* yacc.c:1646 */ +#line 244 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = NULL;} -#line 2041 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2046 "parser.tab.c" /* yacc.c:1646 */ break; case 58: -#line 240 "parser.y" /* yacc.c:1646 */ +#line 245 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2047 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2052 "parser.tab.c" /* yacc.c:1646 */ break; case 59: -#line 244 "parser.y" /* yacc.c:1646 */ +#line 249 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_if_statement(ctx, (yyvsp[-7].expression), (yyvsp[-4].statement), (yyvsp[-3].elseif), (yyvsp[-2].statement)); CHECK_ERROR; } -#line 2053 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2058 "parser.tab.c" /* yacc.c:1646 */ break; case 60: -#line 245 "parser.y" /* yacc.c:1646 */ +#line 250 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_if_statement(ctx, (yyvsp[-3].expression), (yyvsp[-1].statement), NULL, NULL); CHECK_ERROR; } -#line 2059 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2064 "parser.tab.c" /* yacc.c:1646 */ break; case 61: -#line 247 "parser.y" /* yacc.c:1646 */ +#line 252 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = new_if_statement(ctx, (yyvsp[-5].expression), (yyvsp[-3].statement), NULL, (yyvsp[-1].statement)); CHECK_ERROR; } -#line 2065 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2070 "parser.tab.c" /* yacc.c:1646 */ break; case 64: -#line 254 "parser.y" /* yacc.c:1646 */ +#line 259 "parser.y" /* yacc.c:1646 */ { (yyval.elseif) = NULL; } -#line 2071 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2076 "parser.tab.c" /* yacc.c:1646 */ break; case 65: -#line 255 "parser.y" /* yacc.c:1646 */ +#line 260 "parser.y" /* yacc.c:1646 */ { (yyval.elseif) = (yyvsp[0].elseif); } -#line 2077 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2082 "parser.tab.c" /* yacc.c:1646 */ break; case 66: -#line 258 "parser.y" /* yacc.c:1646 */ +#line 263 "parser.y" /* yacc.c:1646 */ { (yyval.elseif) = (yyvsp[0].elseif); } -#line 2083 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2088 "parser.tab.c" /* yacc.c:1646 */ break; case 67: -#line 259 "parser.y" /* yacc.c:1646 */ +#line 264 "parser.y" /* yacc.c:1646 */ { (yyvsp[-1].elseif)->next = (yyvsp[0].elseif); (yyval.elseif) = (yyvsp[-1].elseif); } -#line 2089 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2094 "parser.tab.c" /* yacc.c:1646 */ break; case 68: -#line 263 "parser.y" /* yacc.c:1646 */ +#line 268 "parser.y" /* yacc.c:1646 */ { (yyval.elseif) = new_elseif_decl(ctx, (yyvsp[-3].expression), (yyvsp[0].statement)); } -#line 2095 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2100 "parser.tab.c" /* yacc.c:1646 */ break; case 69: -#line 266 "parser.y" /* yacc.c:1646 */ +#line 271 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = NULL; } -#line 2101 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2106 "parser.tab.c" /* yacc.c:1646 */ break; case 70: -#line 267 "parser.y" /* yacc.c:1646 */ +#line 272 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 2107 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2112 "parser.tab.c" /* yacc.c:1646 */ break; case 71: -#line 270 "parser.y" /* yacc.c:1646 */ +#line 275 "parser.y" /* yacc.c:1646 */ { (yyval.case_clausule) = NULL; } -#line 2113 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2118 "parser.tab.c" /* yacc.c:1646 */ break; case 72: -#line 271 "parser.y" /* yacc.c:1646 */ +#line 276 "parser.y" /* yacc.c:1646 */ { (yyval.case_clausule) = new_case_clausule(ctx, NULL, (yyvsp[0].statement), NULL); } -#line 2119 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2124 "parser.tab.c" /* yacc.c:1646 */ break; case 73: -#line 273 "parser.y" /* yacc.c:1646 */ +#line 278 "parser.y" /* yacc.c:1646 */ { (yyval.case_clausule) = new_case_clausule(ctx, (yyvsp[-3].expression), (yyvsp[-1].statement), (yyvsp[0].case_clausule)); } -#line 2125 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2130 "parser.tab.c" /* yacc.c:1646 */ break; case 74: -#line 276 "parser.y" /* yacc.c:1646 */ +#line 281 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = NULL; } -#line 2131 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2136 "parser.tab.c" /* yacc.c:1646 */ break; case 75: -#line 277 "parser.y" /* yacc.c:1646 */ +#line 282 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[-1].expression); } -#line 2137 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2142 "parser.tab.c" /* yacc.c:1646 */ break; case 76: -#line 280 "parser.y" /* yacc.c:1646 */ +#line 285 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = NULL; } -#line 2143 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2148 "parser.tab.c" /* yacc.c:1646 */ break; case 77: -#line 281 "parser.y" /* yacc.c:1646 */ +#line 286 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2149 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2154 "parser.tab.c" /* yacc.c:1646 */ break; case 78: -#line 284 "parser.y" /* yacc.c:1646 */ +#line 289 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2155 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2160 "parser.tab.c" /* yacc.c:1646 */ break; case 79: -#line 285 "parser.y" /* yacc.c:1646 */ +#line 290 "parser.y" /* yacc.c:1646 */ { (yyvsp[-2].expression)->next = (yyvsp[0].expression); (yyval.expression) = (yyvsp[-2].expression); } -#line 2161 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2166 "parser.tab.c" /* yacc.c:1646 */ break; case 80: -#line 286 "parser.y" /* yacc.c:1646 */ +#line 291 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_expression(ctx, EXPR_NOARG, 0); CHECK_ERROR; (yyval.expression)->next = (yyvsp[0].expression); } -#line 2167 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2172 "parser.tab.c" /* yacc.c:1646 */ break; case 83: -#line 293 "parser.y" /* yacc.c:1646 */ +#line 298 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2173 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2178 "parser.tab.c" /* yacc.c:1646 */ break; case 84: -#line 294 "parser.y" /* yacc.c:1646 */ +#line 299 "parser.y" /* yacc.c:1646 */ { (yyvsp[-2].expression)->next = (yyvsp[0].expression); (yyval.expression) = (yyvsp[-2].expression); } -#line 2179 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2184 "parser.tab.c" /* yacc.c:1646 */ break; case 85: -#line 297 "parser.y" /* yacc.c:1646 */ +#line 302 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2185 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2190 "parser.tab.c" /* yacc.c:1646 */ break; case 86: -#line 298 "parser.y" /* yacc.c:1646 */ +#line 303 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_IMP, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2191 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2196 "parser.tab.c" /* yacc.c:1646 */ break; case 87: -#line 301 "parser.y" /* yacc.c:1646 */ +#line 306 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2197 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2202 "parser.tab.c" /* yacc.c:1646 */ break; case 88: -#line 302 "parser.y" /* yacc.c:1646 */ +#line 307 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_EQV, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2203 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2208 "parser.tab.c" /* yacc.c:1646 */ break; case 89: -#line 305 "parser.y" /* yacc.c:1646 */ +#line 310 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2209 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2214 "parser.tab.c" /* yacc.c:1646 */ break; case 90: -#line 306 "parser.y" /* yacc.c:1646 */ +#line 311 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_XOR, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2215 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2220 "parser.tab.c" /* yacc.c:1646 */ break; case 91: -#line 309 "parser.y" /* yacc.c:1646 */ +#line 314 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2221 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2226 "parser.tab.c" /* yacc.c:1646 */ break; case 92: -#line 310 "parser.y" /* yacc.c:1646 */ +#line 315 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_OR, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2227 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2232 "parser.tab.c" /* yacc.c:1646 */ break; case 93: -#line 313 "parser.y" /* yacc.c:1646 */ +#line 318 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2233 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2238 "parser.tab.c" /* yacc.c:1646 */ break; case 94: -#line 314 "parser.y" /* yacc.c:1646 */ +#line 319 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_AND, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2239 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2244 "parser.tab.c" /* yacc.c:1646 */ break; case 95: -#line 317 "parser.y" /* yacc.c:1646 */ +#line 322 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2245 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2250 "parser.tab.c" /* yacc.c:1646 */ break; case 96: -#line 318 "parser.y" /* yacc.c:1646 */ +#line 323 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_unary_expression(ctx, EXPR_NOT, (yyvsp[0].expression)); CHECK_ERROR; } -#line 2251 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2256 "parser.tab.c" /* yacc.c:1646 */ break; case 97: -#line 321 "parser.y" /* yacc.c:1646 */ +#line 326 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2257 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2262 "parser.tab.c" /* yacc.c:1646 */ break; case 98: -#line 322 "parser.y" /* yacc.c:1646 */ +#line 327 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_EQUAL, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2263 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2268 "parser.tab.c" /* yacc.c:1646 */ break; case 99: -#line 323 "parser.y" /* yacc.c:1646 */ +#line 328 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_NEQUAL, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2269 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2274 "parser.tab.c" /* yacc.c:1646 */ break; case 100: -#line 324 "parser.y" /* yacc.c:1646 */ +#line 329 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_GT, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2275 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2280 "parser.tab.c" /* yacc.c:1646 */ break; case 101: -#line 325 "parser.y" /* yacc.c:1646 */ +#line 330 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_LT, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2281 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2286 "parser.tab.c" /* yacc.c:1646 */ break; case 102: -#line 326 "parser.y" /* yacc.c:1646 */ +#line 331 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_GTEQ, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2287 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2292 "parser.tab.c" /* yacc.c:1646 */ break; case 103: -#line 327 "parser.y" /* yacc.c:1646 */ +#line 332 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_LTEQ, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2293 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2298 "parser.tab.c" /* yacc.c:1646 */ break; case 104: -#line 328 "parser.y" /* yacc.c:1646 */ +#line 333 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_IS, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2299 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2304 "parser.tab.c" /* yacc.c:1646 */ break; case 105: -#line 331 "parser.y" /* yacc.c:1646 */ +#line 336 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2305 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2310 "parser.tab.c" /* yacc.c:1646 */ break; case 106: -#line 332 "parser.y" /* yacc.c:1646 */ +#line 337 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_CONCAT, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2311 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2316 "parser.tab.c" /* yacc.c:1646 */ break; case 107: -#line 335 "parser.y" /* yacc.c:1646 */ +#line 340 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2317 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2322 "parser.tab.c" /* yacc.c:1646 */ break; case 108: -#line 336 "parser.y" /* yacc.c:1646 */ +#line 341 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_ADD, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2323 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2328 "parser.tab.c" /* yacc.c:1646 */ break; case 109: -#line 337 "parser.y" /* yacc.c:1646 */ +#line 342 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_SUB, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2329 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2334 "parser.tab.c" /* yacc.c:1646 */ break; case 110: -#line 340 "parser.y" /* yacc.c:1646 */ +#line 345 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2335 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2340 "parser.tab.c" /* yacc.c:1646 */ break; case 111: -#line 341 "parser.y" /* yacc.c:1646 */ +#line 346 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_MOD, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2341 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2346 "parser.tab.c" /* yacc.c:1646 */ break; case 112: -#line 344 "parser.y" /* yacc.c:1646 */ +#line 349 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2347 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2352 "parser.tab.c" /* yacc.c:1646 */ break; case 113: -#line 346 "parser.y" /* yacc.c:1646 */ +#line 351 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_IDIV, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2353 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2358 "parser.tab.c" /* yacc.c:1646 */ break; case 114: -#line 349 "parser.y" /* yacc.c:1646 */ +#line 354 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2359 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2364 "parser.tab.c" /* yacc.c:1646 */ break; case 115: -#line 351 "parser.y" /* yacc.c:1646 */ +#line 356 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_MUL, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2365 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2370 "parser.tab.c" /* yacc.c:1646 */ break; case 116: -#line 353 "parser.y" /* yacc.c:1646 */ +#line 358 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_DIV, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2371 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2376 "parser.tab.c" /* yacc.c:1646 */ break; case 117: -#line 356 "parser.y" /* yacc.c:1646 */ +#line 361 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2377 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2382 "parser.tab.c" /* yacc.c:1646 */ break; case 118: -#line 357 "parser.y" /* yacc.c:1646 */ +#line 362 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_binary_expression(ctx, EXPR_EXP, (yyvsp[-2].expression), (yyvsp[0].expression)); CHECK_ERROR; } -#line 2383 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2388 "parser.tab.c" /* yacc.c:1646 */ break; case 119: -#line 360 "parser.y" /* yacc.c:1646 */ +#line 365 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2389 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2394 "parser.tab.c" /* yacc.c:1646 */ break; case 120: -#line 361 "parser.y" /* yacc.c:1646 */ +#line 366 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2395 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2400 "parser.tab.c" /* yacc.c:1646 */ break; case 121: -#line 362 "parser.y" /* yacc.c:1646 */ +#line 367 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_new_expression(ctx, (yyvsp[0].string)); CHECK_ERROR; } -#line 2401 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2406 "parser.tab.c" /* yacc.c:1646 */ break; case 122: -#line 363 "parser.y" /* yacc.c:1646 */ +#line 368 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_unary_expression(ctx, EXPR_NEG, (yyvsp[0].expression)); CHECK_ERROR; } -#line 2407 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2412 "parser.tab.c" /* yacc.c:1646 */ break; case 123: -#line 366 "parser.y" /* yacc.c:1646 */ +#line 371 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2413 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2418 "parser.tab.c" /* yacc.c:1646 */ break; case 124: -#line 367 "parser.y" /* yacc.c:1646 */ +#line 372 "parser.y" /* yacc.c:1646 */ { (yyvsp[-1].member)->args = (yyvsp[0].expression); (yyval.expression) = &(yyvsp[-1].member)->expr; } -#line 2419 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2424 "parser.tab.c" /* yacc.c:1646 */ break; case 125: -#line 370 "parser.y" /* yacc.c:1646 */ +#line 375 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_bool_expression(ctx, VARIANT_TRUE); CHECK_ERROR; } -#line 2425 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2430 "parser.tab.c" /* yacc.c:1646 */ break; case 126: -#line 371 "parser.y" /* yacc.c:1646 */ +#line 376 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_bool_expression(ctx, VARIANT_FALSE); CHECK_ERROR; } -#line 2431 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2436 "parser.tab.c" /* yacc.c:1646 */ break; case 127: -#line 372 "parser.y" /* yacc.c:1646 */ +#line 377 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_string_expression(ctx, (yyvsp[0].string)); CHECK_ERROR; } -#line 2437 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2442 "parser.tab.c" /* yacc.c:1646 */ break; case 128: -#line 373 "parser.y" /* yacc.c:1646 */ +#line 378 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = (yyvsp[0].expression); } -#line 2443 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2448 "parser.tab.c" /* yacc.c:1646 */ break; case 129: -#line 374 "parser.y" /* yacc.c:1646 */ +#line 379 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_expression(ctx, EXPR_EMPTY, 0); CHECK_ERROR; } -#line 2449 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2454 "parser.tab.c" /* yacc.c:1646 */ break; case 130: -#line 375 "parser.y" /* yacc.c:1646 */ +#line 380 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_expression(ctx, EXPR_NULL, 0); CHECK_ERROR; } -#line 2455 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2460 "parser.tab.c" /* yacc.c:1646 */ break; case 131: -#line 376 "parser.y" /* yacc.c:1646 */ +#line 381 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_expression(ctx, EXPR_NOTHING, 0); CHECK_ERROR; } -#line 2461 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2466 "parser.tab.c" /* yacc.c:1646 */ break; case 132: -#line 379 "parser.y" /* yacc.c:1646 */ +#line 384 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_long_expression(ctx, EXPR_USHORT, (yyvsp[0].lng)); CHECK_ERROR; } -#line 2467 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2472 "parser.tab.c" /* yacc.c:1646 */ break; case 133: -#line 380 "parser.y" /* yacc.c:1646 */ +#line 385 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_long_expression(ctx, EXPR_USHORT, 0); CHECK_ERROR; } -#line 2473 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2478 "parser.tab.c" /* yacc.c:1646 */ break; case 134: -#line 381 "parser.y" /* yacc.c:1646 */ +#line 386 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_long_expression(ctx, EXPR_ULONG, (yyvsp[0].lng)); CHECK_ERROR; } -#line 2479 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2484 "parser.tab.c" /* yacc.c:1646 */ break; case 135: -#line 382 "parser.y" /* yacc.c:1646 */ +#line 387 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_double_expression(ctx, (yyvsp[0].dbl)); CHECK_ERROR; } -#line 2485 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2490 "parser.tab.c" /* yacc.c:1646 */ break; case 136: -#line 385 "parser.y" /* yacc.c:1646 */ +#line 390 "parser.y" /* yacc.c:1646 */ { (yyval.uint) = (yyvsp[0].lng); } -#line 2491 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2496 "parser.tab.c" /* yacc.c:1646 */ break; case 137: -#line 386 "parser.y" /* yacc.c:1646 */ +#line 391 "parser.y" /* yacc.c:1646 */ { (yyval.uint) = 0; } -#line 2497 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2502 "parser.tab.c" /* yacc.c:1646 */ break; case 138: -#line 387 "parser.y" /* yacc.c:1646 */ +#line 392 "parser.y" /* yacc.c:1646 */ { (yyval.uint) = (yyvsp[0].lng); } -#line 2503 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2508 "parser.tab.c" /* yacc.c:1646 */ break; case 139: -#line 390 "parser.y" /* yacc.c:1646 */ +#line 395 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_unary_expression(ctx, EXPR_BRACKETS, (yyvsp[-1].expression)); } -#line 2509 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2514 "parser.tab.c" /* yacc.c:1646 */ break; case 140: -#line 391 "parser.y" /* yacc.c:1646 */ +#line 396 "parser.y" /* yacc.c:1646 */ { (yyval.expression) = new_expression(ctx, EXPR_ME, 0); CHECK_ERROR; } -#line 2515 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2520 "parser.tab.c" /* yacc.c:1646 */ break; case 141: -#line 394 "parser.y" /* yacc.c:1646 */ +#line 399 "parser.y" /* yacc.c:1646 */ { (yyvsp[-3].class_decl)->name = (yyvsp[-5].string); (yyval.class_decl) = (yyvsp[-3].class_decl); } -#line 2521 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2526 "parser.tab.c" /* yacc.c:1646 */ break; case 142: -#line 397 "parser.y" /* yacc.c:1646 */ +#line 402 "parser.y" /* yacc.c:1646 */ { (yyval.class_decl) = new_class_decl(ctx); } -#line 2527 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2532 "parser.tab.c" /* yacc.c:1646 */ break; case 143: -#line 398 "parser.y" /* yacc.c:1646 */ +#line 403 "parser.y" /* yacc.c:1646 */ { (yyval.class_decl) = add_class_function(ctx, (yyvsp[0].class_decl), (yyvsp[-2].func_decl)); CHECK_ERROR; } -#line 2533 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2538 "parser.tab.c" /* yacc.c:1646 */ break; case 144: -#line 400 "parser.y" /* yacc.c:1646 */ +#line 405 "parser.y" /* yacc.c:1646 */ { dim_decl_t *dim_decl = new_dim_decl(ctx, (yyvsp[-2].string), FALSE, NULL); CHECK_ERROR; (yyval.class_decl) = add_dim_prop(ctx, (yyvsp[0].class_decl), dim_decl, (yyvsp[-3].uint)); CHECK_ERROR; } -#line 2540 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2545 "parser.tab.c" /* yacc.c:1646 */ break; case 145: -#line 402 "parser.y" /* yacc.c:1646 */ +#line 407 "parser.y" /* yacc.c:1646 */ { (yyval.class_decl) = add_dim_prop(ctx, (yyvsp[0].class_decl), (yyvsp[-2].dim_decl), 0); CHECK_ERROR; } -#line 2546 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2551 "parser.tab.c" /* yacc.c:1646 */ break; case 146: -#line 403 "parser.y" /* yacc.c:1646 */ +#line 408 "parser.y" /* yacc.c:1646 */ { (yyval.class_decl) = add_class_function(ctx, (yyvsp[0].class_decl), (yyvsp[-2].func_decl)); CHECK_ERROR; } -#line 2552 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2557 "parser.tab.c" /* yacc.c:1646 */ break; case 147: -#line 407 "parser.y" /* yacc.c:1646 */ +#line 412 "parser.y" /* yacc.c:1646 */ { (yyval.func_decl) = new_function_decl(ctx, (yyvsp[-5].string), FUNC_PROPGET, (yyvsp[-8].uint), (yyvsp[-4].arg_decl), (yyvsp[-2].statement)); CHECK_ERROR; } -#line 2558 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2563 "parser.tab.c" /* yacc.c:1646 */ break; case 148: -#line 409 "parser.y" /* yacc.c:1646 */ +#line 414 "parser.y" /* yacc.c:1646 */ { (yyval.func_decl) = new_function_decl(ctx, (yyvsp[-7].string), FUNC_PROPLET, (yyvsp[-10].uint), (yyvsp[-5].arg_decl), (yyvsp[-2].statement)); CHECK_ERROR; } -#line 2564 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2569 "parser.tab.c" /* yacc.c:1646 */ break; case 149: -#line 411 "parser.y" /* yacc.c:1646 */ +#line 416 "parser.y" /* yacc.c:1646 */ { (yyval.func_decl) = new_function_decl(ctx, (yyvsp[-7].string), FUNC_PROPSET, (yyvsp[-10].uint), (yyvsp[-5].arg_decl), (yyvsp[-2].statement)); CHECK_ERROR; } -#line 2570 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2575 "parser.tab.c" /* yacc.c:1646 */ break; case 150: -#line 415 "parser.y" /* yacc.c:1646 */ +#line 420 "parser.y" /* yacc.c:1646 */ { (yyval.func_decl) = new_function_decl(ctx, (yyvsp[-5].string), FUNC_SUB, (yyvsp[-7].uint), (yyvsp[-4].arg_decl), (yyvsp[-2].statement)); CHECK_ERROR; } -#line 2576 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2581 "parser.tab.c" /* yacc.c:1646 */ break; case 151: -#line 417 "parser.y" /* yacc.c:1646 */ +#line 422 "parser.y" /* yacc.c:1646 */ { (yyval.func_decl) = new_function_decl(ctx, (yyvsp[-5].string), FUNC_FUNCTION, (yyvsp[-7].uint), (yyvsp[-4].arg_decl), (yyvsp[-2].statement)); CHECK_ERROR; } -#line 2582 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2587 "parser.tab.c" /* yacc.c:1646 */ break; case 152: -#line 420 "parser.y" /* yacc.c:1646 */ +#line 425 "parser.y" /* yacc.c:1646 */ { (yyval.uint) = 0; } -#line 2588 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2593 "parser.tab.c" /* yacc.c:1646 */ break; case 153: -#line 421 "parser.y" /* yacc.c:1646 */ +#line 426 "parser.y" /* yacc.c:1646 */ { (yyval.uint) = (yyvsp[0].uint); } -#line 2594 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2599 "parser.tab.c" /* yacc.c:1646 */ break; case 154: -#line 424 "parser.y" /* yacc.c:1646 */ +#line 429 "parser.y" /* yacc.c:1646 */ { (yyval.uint) = STORAGE_IS_DEFAULT; } -#line 2600 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2605 "parser.tab.c" /* yacc.c:1646 */ break; case 155: -#line 425 "parser.y" /* yacc.c:1646 */ +#line 430 "parser.y" /* yacc.c:1646 */ { (yyval.uint) = 0; } -#line 2606 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2611 "parser.tab.c" /* yacc.c:1646 */ break; case 156: -#line 426 "parser.y" /* yacc.c:1646 */ +#line 431 "parser.y" /* yacc.c:1646 */ { (yyval.uint) = STORAGE_IS_PRIVATE; } -#line 2612 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2617 "parser.tab.c" /* yacc.c:1646 */ break; case 157: -#line 429 "parser.y" /* yacc.c:1646 */ +#line 434 "parser.y" /* yacc.c:1646 */ { (yyval.arg_decl) = NULL; } -#line 2618 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2623 "parser.tab.c" /* yacc.c:1646 */ break; case 158: -#line 430 "parser.y" /* yacc.c:1646 */ +#line 435 "parser.y" /* yacc.c:1646 */ { (yyval.arg_decl) = (yyvsp[-1].arg_decl); } -#line 2624 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2629 "parser.tab.c" /* yacc.c:1646 */ break; case 159: -#line 433 "parser.y" /* yacc.c:1646 */ +#line 438 "parser.y" /* yacc.c:1646 */ { (yyval.arg_decl) = (yyvsp[0].arg_decl); } -#line 2630 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2635 "parser.tab.c" /* yacc.c:1646 */ break; case 160: -#line 434 "parser.y" /* yacc.c:1646 */ +#line 439 "parser.y" /* yacc.c:1646 */ { (yyvsp[-2].arg_decl)->next = (yyvsp[0].arg_decl); (yyval.arg_decl) = (yyvsp[-2].arg_decl); } -#line 2636 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2641 "parser.tab.c" /* yacc.c:1646 */ break; case 161: -#line 437 "parser.y" /* yacc.c:1646 */ +#line 442 "parser.y" /* yacc.c:1646 */ { (yyval.arg_decl) = new_argument_decl(ctx, (yyvsp[-1].string), TRUE); } -#line 2642 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2647 "parser.tab.c" /* yacc.c:1646 */ break; case 162: -#line 438 "parser.y" /* yacc.c:1646 */ +#line 443 "parser.y" /* yacc.c:1646 */ { (yyval.arg_decl) = new_argument_decl(ctx, (yyvsp[-1].string), TRUE); } -#line 2648 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2653 "parser.tab.c" /* yacc.c:1646 */ break; case 163: -#line 439 "parser.y" /* yacc.c:1646 */ +#line 444 "parser.y" /* yacc.c:1646 */ { (yyval.arg_decl) = new_argument_decl(ctx, (yyvsp[-1].string), FALSE); } -#line 2654 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2659 "parser.tab.c" /* yacc.c:1646 */ break; case 164: -#line 443 "parser.y" /* yacc.c:1646 */ +#line 448 "parser.y" /* yacc.c:1646 */ { (yyval.string) = (yyvsp[0].string); } -#line 2660 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2665 "parser.tab.c" /* yacc.c:1646 */ break; case 165: -#line 444 "parser.y" /* yacc.c:1646 */ +#line 449 "parser.y" /* yacc.c:1646 */ { (yyval.string) = propertyW; } -#line 2666 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2671 "parser.tab.c" /* yacc.c:1646 */ break; -#line 2670 "E:/reactosSync3.0_gcc/dll/win32/vbscript/parser.tab.c" /* yacc.c:1646 */ +#line 2675 "parser.tab.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2894,7 +2899,7 @@ yyreturn: #endif return yyresult; } -#line 453 "parser.y" /* yacc.c:1906 */ +#line 458 "parser.y" /* yacc.c:1906 */ static int parser_error(parser_ctx_t *ctx, const char *str) diff --git a/dll/win32/vbscript/parser.tab.h b/dll/win32/vbscript/parser.tab.h index 513c2ef053..5ac7e40e66 100644 --- a/dll/win32/vbscript/parser.tab.h +++ b/dll/win32/vbscript/parser.tab.h @@ -30,8 +30,8 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -#ifndef YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED -# define YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED +#ifndef YY_PARSER_E_REACTOSSYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED +# define YY_PARSER_E_REACTOSSYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -121,7 +121,7 @@ extern int parser_debug; typedef union YYSTYPE YYSTYPE; union YYSTYPE { -#line 83 "parser.y" /* yacc.c:1909 */ +#line 88 "parser.y" /* yacc.c:1909 */ const WCHAR *string; statement_t *statement; @@ -150,4 +150,4 @@ union YYSTYPE int parser_parse (parser_ctx_t *ctx); -#endif /* !YY_PARSER_E_REACTOSSYNC3_0_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED */ +#endif /* !YY_PARSER_E_REACTOSSYNC_GCC_DLL_WIN32_VBSCRIPT_PARSER_TAB_H_INCLUDED */ diff --git a/dll/win32/vbscript/parser.y b/dll/win32/vbscript/parser.y index 34a07ad94b..e8ecf4d1fd 100644 --- a/dll/win32/vbscript/parser.y +++ b/dll/win32/vbscript/parser.y @@ -19,6 +19,11 @@ %{ #include "vbscript.h" +#include "parse.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); static int parser_error(parser_ctx_t *,const char*); diff --git a/dll/win32/vbscript/precomp.h b/dll/win32/vbscript/precomp.h new file mode 100644 index 0000000000..94c165333d --- /dev/null +++ b/dll/win32/vbscript/precomp.h @@ -0,0 +1,21 @@ + +#ifndef _VBSCRIPT_PRECOMP_H +#define _VBSCRIPT_PRECOMP_H + +#include <assert.h> + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#include "vbscript.h" + +#include <objsafe.h> + +#include <wine/debug.h> + +#include "parse.h" +#include "regexp.h" +#include "vbscript_defs.h" + +#endif /* !_VBSCRIPT_PRECOMP_H */ diff --git a/dll/win32/vbscript/regexp.c b/dll/win32/vbscript/regexp.c index cf5153030d..4777d5069e 100644 --- a/dll/win32/vbscript/regexp.c +++ b/dll/win32/vbscript/regexp.c @@ -31,7 +31,14 @@ * the Initial Developer. All Rights Reserved. */ +#include <assert.h> + #include "vbscript.h" +#include "regexp.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); /* FIXME: Better error handling */ #define ReportRegExpError(a,b,c) diff --git a/dll/win32/vbscript/regexp.h b/dll/win32/vbscript/regexp.h index 5ceb8a0c77..d8738e1802 100644 --- a/dll/win32/vbscript/regexp.h +++ b/dll/win32/vbscript/regexp.h @@ -31,6 +31,8 @@ * the Initial Developer. All Rights Reserved. */ +#pragma once + #define REG_FOLD 0x01 /* fold uppercase to lowercase */ #define REG_GLOB 0x02 /* global exec, creates array of matches */ #define REG_MULTILINE 0x04 /* treat ^ and $ as begin and end of line */ diff --git a/dll/win32/vbscript/utils.c b/dll/win32/vbscript/utils.c index 9444c4778f..d30842c52e 100644 --- a/dll/win32/vbscript/utils.c +++ b/dll/win32/vbscript/utils.c @@ -18,6 +18,10 @@ #include "vbscript.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); + typedef struct { IEnumVARIANT IEnumVARIANT_iface; diff --git a/dll/win32/vbscript/vbdisp.c b/dll/win32/vbscript/vbdisp.c index 5a4b1f8806..daed7ec47c 100644 --- a/dll/win32/vbscript/vbdisp.c +++ b/dll/win32/vbscript/vbdisp.c @@ -16,8 +16,14 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include <assert.h> + #include "vbscript.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); + #define FDEX_VERSION_MASK 0xf0000000 static inline BOOL is_func_id(vbdisp_t *This, DISPID id) @@ -549,7 +555,7 @@ static IDispatchExVtbl DispatchExVtbl = { static inline vbdisp_t *unsafe_impl_from_IDispatch(IDispatch *iface) { return iface->lpVtbl == (IDispatchVtbl*)&DispatchExVtbl - ? CONTAINING_RECORD(iface, vbdisp_t, IDispatchEx_iface) + ? CONTAINING_RECORD((IDispatchEx *)iface, vbdisp_t, IDispatchEx_iface) : NULL; } diff --git a/dll/win32/vbscript/vbregexp.c b/dll/win32/vbscript/vbregexp.c index 9f3dad8bb2..800ea5e74f 100644 --- a/dll/win32/vbscript/vbregexp.c +++ b/dll/win32/vbscript/vbregexp.c @@ -17,9 +17,12 @@ */ #include "vbscript.h" +#include "regexp.h" +#include "vbsregexp55.h" -#include <initguid.h> -#include <vbsregexp55.h> +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); #define REGEXP_TID_LIST \ XDIID(RegExp2), \ diff --git a/dll/win32/vbscript/vbscript.c b/dll/win32/vbscript/vbscript.c index 1fc788117c..645068e347 100644 --- a/dll/win32/vbscript/vbscript.c +++ b/dll/win32/vbscript/vbscript.c @@ -16,9 +16,15 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ + +#include <assert.h> + #include "vbscript.h" +#include "objsafe.h" + +#include "wine/debug.h" -#include <vbscript_classes.h> +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); #ifdef _WIN64 diff --git a/dll/win32/vbscript/vbscript.h b/dll/win32/vbscript/vbscript.h index 5bb1577e4f..94fdefe277 100644 --- a/dll/win32/vbscript/vbscript.h +++ b/dll/win32/vbscript/vbscript.h @@ -16,31 +16,26 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#ifndef _VBSCRIPT_H -#define _VBSCRIPT_H +#pragma once -#include <assert.h> #include <stdarg.h> -#define WIN32_NO_STATUS -#define _INC_WINDOWS -#define COM_NO_WINDOWS_H - #define COBJMACROS -#include <windef.h> -#include <winbase.h> -#include <objbase.h> -#include <oleauto.h> -#include <objsafe.h> -#include <dispex.h> -#include <activscp.h> +#include "windef.h" +#include "winbase.h" +#include "ole2.h" +#include "dispex.h" +#include "activscp.h" -#include <wine/debug.h> -#include <wine/list.h> -#include <wine/unicode.h> +#ifdef __REACTOS__ +#include <initguid.h> +#endif +#include "vbscript_classes.h" -WINE_DEFAULT_DEBUG_CHANNEL(vbscript); +#include "wine/heap.h" +#include "wine/list.h" +#include "wine/unicode.h" typedef struct { void **blocks; @@ -441,26 +436,6 @@ HRESULT create_safearray_iter(SAFEARRAY *sa, IEnumVARIANT **ev) DECLSPEC_HIDDEN; HRESULT WINAPI VBScriptFactory_CreateInstance(IClassFactory*,IUnknown*,REFIID,void**) DECLSPEC_HIDDEN; HRESULT WINAPI VBScriptRegExpFactory_CreateInstance(IClassFactory*,IUnknown*,REFIID,void**) DECLSPEC_HIDDEN; -static inline void* __WINE_ALLOC_SIZE(1) heap_alloc(size_t size) -{ - return HeapAlloc(GetProcessHeap(), 0, size); -} - -static inline void* __WINE_ALLOC_SIZE(1) heap_alloc_zero(size_t size) -{ - return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size); -} - -static inline void* __WINE_ALLOC_SIZE(2) heap_realloc(void *mem, size_t size) -{ - return HeapReAlloc(GetProcessHeap(), 0, mem, size); -} - -static inline BOOL heap_free(void *mem) -{ - return HeapFree(GetProcessHeap(), 0, mem); -} - static inline LPWSTR heap_strdupW(LPCWSTR str) { LPWSTR ret = NULL; @@ -480,9 +455,3 @@ static inline LPWSTR heap_strdupW(LPCWSTR str) #define VBSCRIPT_BUILD_VERSION 16978 #define VBSCRIPT_MAJOR_VERSION 5 #define VBSCRIPT_MINOR_VERSION 8 - -#include "parse.h" -#include "regexp.h" -#include "vbscript_defs.h" - -#endif /* _VBSCRIPT_H */ diff --git a/dll/win32/vbscript/vbscript.rc b/dll/win32/vbscript/vbscript.rc index 21ce6d74d9..7f03c04160 100644 --- a/dll/win32/vbscript/vbscript.rc +++ b/dll/win32/vbscript/vbscript.rc @@ -39,4 +39,4 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #define WINE_PRODUCTVERSION 5,8,0,16978 #define WINE_PRODUCTVERSION_STR "5.8.7601.16978" -#include <wine/wine_common_ver.rc> +#include "wine/wine_common_ver.rc" diff --git a/dll/win32/vbscript/vbscript_main.c b/dll/win32/vbscript/vbscript_main.c index b04f14382c..7b7161c21e 100644 --- a/dll/win32/vbscript/vbscript_main.c +++ b/dll/win32/vbscript/vbscript_main.c @@ -16,15 +16,23 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#include "initguid.h" + #include "vbscript.h" +#include "objsafe.h" +#include "mshtmhst.h" +#include "rpcproxy.h" +#include "vbscript_classes.h" +#include "vbsglobal.h" +#include "vbsregexp55.h" -#include <rpcproxy.h> -#include <initguid.h> -#include <vbscript_classes.h> -#include <vbsglobal.h> +#include "wine/debug.h" +WINE_DEFAULT_DEBUG_CHANNEL(vbscript); WINE_DECLARE_DEBUG_CHANNEL(heap); +DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); + static HINSTANCE vbscript_hinstance; static ITypeLib *typelib; diff --git a/media/doc/README.WINE b/media/doc/README.WINE index d9e9e13644..343cc070cf 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -191,7 +191,7 @@ reactos/dll/win32/url # Synced to WineStaging-3.3 reactos/dll/win32/urlmon # Synced to WineStaging-3.3 reactos/dll/win32/usp10 # Synced to WineStaging-3.3 reactos/dll/win32/uxtheme # Forked -reactos/dll/win32/vbscript # Synced to Wine-3.0 +reactos/dll/win32/vbscript # Synced to WineStaging-3.3 reactos/dll/win32/version # Synced to Wine-3.0 reactos/dll/win32/vssapi # Synced to WineStaging-2.9 reactos/dll/win32/wbemdisp # Synced to Wine-3.0
6 years, 9 months
1
0
0
0
← Newer
1
...
12
13
14
15
16
17
18
...
44
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
Results per page:
10
25
50
100
200