winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
May 2018
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
2 participants
716 discussions
Start a n
N
ew thread
Hans Leidekker : wbemprox: Add more Win32_ComputerSystemProduct properties.
by Alexandre Julliard
14 May '18
14 May '18
Module: wine Branch: stable Commit: d25bbf9735ca1328d49efae8494fc4dc4b6b37cc URL:
https://source.winehq.org/git/wine.git/?a=commit;h=d25bbf9735ca1328d49efae8…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Mon Feb 5 16:08:15 2018 +0100 wbemprox: Add more Win32_ComputerSystemProduct properties. Signed-off-by: Hans Leidekker <hans(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 7c0025b60851b67cae036ce74403e41d4088da9b) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/wbemprox/builtin.c | 24 +++++++++++++++++- dlls/wbemprox/tests/query.c | 59 +++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 80 insertions(+), 3 deletions(-) diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c index 93bea52..dd5b9ac 100644 --- a/dlls/wbemprox/builtin.c +++ b/dlls/wbemprox/builtin.c @@ -331,6 +331,8 @@ 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_startmodeW[] = @@ -377,6 +379,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}; static const WCHAR prop_videoarchitectureW[] = @@ -440,7 +444,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[] = { @@ -738,9 +746,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[] = @@ -830,7 +844,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 { @@ -1417,7 +1435,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++; diff --git a/dlls/wbemprox/tests/query.c b/dlls/wbemprox/tests/query.c index 79b09c0..7f2e864 100644 --- a/dlls/wbemprox/tests/query.c +++ b/dlls/wbemprox/tests/query.c @@ -1223,7 +1223,18 @@ static void test_OperatingSystem( IWbemServices *services ) static void test_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}; @@ -1247,13 +1258,57 @@ static void test_ComputerSystemProduct( IWbemServices *services ) 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 );
1
0
0
0
Andrew Eikum : advapi32: Also wait on services without a control thread during shutdown.
by Alexandre Julliard
14 May '18
14 May '18
Module: wine Branch: stable Commit: 3e06acc95cfaee3121e8db6681828f2317aed951 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=3e06acc95cfaee3121e8db66…
Author: Andrew Eikum <aeikum(a)codeweavers.com> Date: Tue Feb 6 10:43:57 2018 -0600 advapi32: Also wait on services without a control thread during shutdown. Tested service messages during OS shutdown manually on Windows 7. Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit e5294a7414ca81c4761c00421cd7d59d9b83caa8) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/advapi32/service.c | 94 +++++++++++++++++++++++++++++++------------------ 1 file changed, 59 insertions(+), 35 deletions(-) diff --git a/dlls/advapi32/service.c b/dlls/advapi32/service.c index ddd6a21..21693fe 100644 --- a/dlls/advapi32/service.c +++ b/dlls/advapi32/service.c @@ -516,6 +516,63 @@ static DWORD WINAPI service_control_dispatcher(LPVOID arg) return 1; } +/* wait for services which accept this type of message to become STOPPED */ +static void handle_shutdown_msg(DWORD msg, DWORD accept) +{ + SERVICE_STATUS st; + SERVICE_PRESHUTDOWN_INFO spi; + DWORD i, n = 0, sz, timeout = 2000; + ULONGLONG stop_time; + BOOL res, done = TRUE; + SC_HANDLE *wait_handles = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SC_HANDLE) * nb_services ); + + EnterCriticalSection( &service_cs ); + for (i = 0; i < nb_services; i++) + { + res = QueryServiceStatus( services[i]->full_access_handle, &st ); + if (!res || st.dwCurrentState == SERVICE_STOPPED || !(st.dwControlsAccepted & accept)) + continue; + + done = FALSE; + + if (accept == SERVICE_ACCEPT_PRESHUTDOWN) + { + res = QueryServiceConfig2W( services[i]->full_access_handle, SERVICE_CONFIG_PRESHUTDOWN_INFO, + (LPBYTE)&spi, sizeof(spi), &sz ); + if (res) + { + FIXME( "service should be able to delay shutdown\n" ); + timeout = max( spi.dwPreshutdownTimeout, timeout ); + } + } + + service_handle_control( services[i], msg, NULL, 0 ); + wait_handles[n++] = services[i]->full_access_handle; + } + LeaveCriticalSection( &service_cs ); + + /* FIXME: these timeouts should be more generous, but we can't currently delay prefix shutdown */ + timeout = min( timeout, 3000 ); + stop_time = GetTickCount64() + timeout; + + while (!done && GetTickCount64() < stop_time) + { + done = TRUE; + for (i = 0; i < n; i++) + { + res = QueryServiceStatus( wait_handles[i], &st ); + if (!res || st.dwCurrentState == SERVICE_STOPPED) + continue; + + done = FALSE; + Sleep( 100 ); + break; + } + } + + HeapFree( GetProcessHeap(), 0, wait_handles ); +} + /****************************************************************************** * service_run_main_thread */ @@ -570,41 +627,8 @@ static BOOL service_run_main_thread(void) ret = WaitForMultipleObjects( n, wait_handles, FALSE, INFINITE ); if (!ret) /* system process event */ { - SERVICE_STATUS st; - SERVICE_PRESHUTDOWN_INFO spi; - DWORD timeout = 5000; - BOOL res; - - EnterCriticalSection( &service_cs ); - n = 0; - for (i = 0; i < nb_services && n < MAXIMUM_WAIT_OBJECTS; i++) - { - if (!services[i]->thread) continue; - - res = QueryServiceStatus(services[i]->full_access_handle, &st); - ret = ERROR_SUCCESS; - if (res && (st.dwControlsAccepted & SERVICE_ACCEPT_PRESHUTDOWN)) - { - res = QueryServiceConfig2W( services[i]->full_access_handle, SERVICE_CONFIG_PRESHUTDOWN_INFO, - (LPBYTE)&spi, sizeof(spi), &i ); - if (res) - { - FIXME("service should be able to delay shutdown\n"); - timeout += spi.dwPreshutdownTimeout; - ret = service_handle_control( services[i], SERVICE_CONTROL_PRESHUTDOWN, NULL, 0 ); - wait_handles[n++] = services[i]->thread; - } - } - else if (res && (st.dwControlsAccepted & SERVICE_ACCEPT_SHUTDOWN)) - { - ret = service_handle_control( services[i], SERVICE_CONTROL_SHUTDOWN, NULL, 0 ); - wait_handles[n++] = services[i]->thread; - } - } - LeaveCriticalSection( &service_cs ); - - TRACE("last user process exited, shutting down (timeout: %d)\n", timeout); - WaitForMultipleObjects( n, wait_handles, TRUE, timeout ); + handle_shutdown_msg(SERVICE_CONTROL_PRESHUTDOWN, SERVICE_ACCEPT_PRESHUTDOWN); + handle_shutdown_msg(SERVICE_CONTROL_SHUTDOWN, SERVICE_ACCEPT_SHUTDOWN); ExitProcess(0); } else if (ret == 1)
1
0
0
0
Piotr Caban : msvcr100: Add _NonReentrantPPLLock@details class stub.
by Alexandre Julliard
14 May '18
14 May '18
Module: wine Branch: stable Commit: d56f764d7d34a7b98d41192e9d901c5c9231b846 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=d56f764d7d34a7b98d41192e…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Fri Feb 2 16:36:12 2018 +0100 msvcr100: Add _NonReentrantPPLLock@details class stub. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit a672732476ad237b9967b8a61ffb735c8609baa1) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/concrt140/concrt140.spec | 12 ++++++------ dlls/msvcr100/msvcr100.spec | 12 ++++++------ dlls/msvcr110/msvcr110.spec | 18 +++++++++--------- dlls/msvcr120/msvcr120.spec | 18 +++++++++--------- dlls/msvcr120_app/msvcr120_app.spec | 18 +++++++++--------- dlls/msvcrt/lock.c | 30 ++++++++++++++++++++++++++++++ 6 files changed, 69 insertions(+), 39 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=d56f764d7d34a7b98d41…
1
0
0
0
Fabian Maurer : cmd.exe: Parse parameters in "FOR /F" properly.
by Alexandre Julliard
14 May '18
14 May '18
Module: wine Branch: stable Commit: 64f6a650d11db0e49715a8956f962b1aaec39a89 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=64f6a650d11db0e49715a895…
Author: Fabian Maurer <dark.shadow4(a)web.de> Date: Sat Feb 3 17:13:11 2018 +0100 cmd.exe: Parse parameters in "FOR /F" properly. We must not remove the quotes from parameters, or strings like "param=value" will get parsed incorrectly. Signed-off-by: Fabian Maurer <dark.shadow4(a)web.de> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit e62000c5c0ba17be6d3c6397e04604407cfb7601) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- programs/cmd/builtins.c | 2 +- programs/cmd/tests/test_builtins.cmd | 10 ++++++++++ programs/cmd/tests/test_builtins.cmd.exp | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c index 14961d7..ec66cd5 100644 --- a/programs/cmd/builtins.c +++ b/programs/cmd/builtins.c @@ -1978,7 +1978,7 @@ static void WCMD_parse_line(CMD_LIST *cmdStart, anyduplicates |= thisduplicate; /* Extract the token number requested and set into the next variable context */ - parm = WCMD_parameter_with_delims(buffer, (nexttoken-1), NULL, FALSE, FALSE, forf_delims); + parm = WCMD_parameter_with_delims(buffer, (nexttoken-1), NULL, TRUE, FALSE, forf_delims); WINE_TRACE("Parsed token %d(%d) as parameter %s\n", nexttoken, varidx + varoffset, wine_dbgstr_w(parm)); if (varidx >=0) { diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd index 62334b1..f684628 100644 --- a/programs/cmd/tests/test_builtins.cmd +++ b/programs/cmd/tests/test_builtins.cmd @@ -1696,6 +1696,16 @@ for /f "tokens=2,2,3*" %%i in ("a b c d e f g") do echo h=%%h i=%%i j=%%j k=%%k for /f "tokens=3,2,3*" %%i in ("a b c d e f g") do echo h=%%h i=%%i j=%%j k=%%k l=%%l m=%%m n=%%n o=%%o cd .. rd /s/q foobar +echo ------ parameter splitting +echo forFParameterSplittingFunc "myparam1=myvalue1 myparam2=myparam2" mytest> foo +for /f "tokens=1 delims=;" %%i in (foo) do (call :%%i) +del foo +for /f "tokens=1 delims=;" %%i in ("forFParameterSplittingFunc "myparam1^=myvalue1 myparam2^=myparam2" mytest") do (call :%%i) +goto :forFParameterSplittingEnd +:forFParameterSplittingFunc +echo %~0 %~1 %~2 %~3 %~4 %~5 +goto :eof +:forFParameterSplittingEnd echo ------------ Testing del ------------ echo abc > file diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index 796550e..4663c86 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -1222,6 +1222,9 @@ h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o@or_broken@h=%h i=a j=b k=c l=d e f g m h=%h i=a j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=a j=c k= l= m= n=%n o=%o h=%h i=b j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=b j=c k= l= m= n=%n o=%o h=%h i=b j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=b j=c k= l= m= n=%n o=%o +------ parameter splitting +:forFParameterSplittingFunc myparam1=myvalue1 myparam2=myparam2 mytest@space@@space@@space@ +:forFParameterSplittingFunc myparam1=myvalue1 myparam2=myparam2 mytest@space@@space@@space@ ------------ Testing del ------------ deleting 'file' errorlevel is 0, good
1
0
0
0
Hans Leidekker : msi: Don' t mark uncompressed global assembly files as installed until they are in the assembly cache.
by Alexandre Julliard
14 May '18
14 May '18
Module: wine Branch: stable Commit: 9d62d437d1b91e4591678dec1d67f2ca2cad4a1a URL:
https://source.winehq.org/git/wine.git/?a=commit;h=9d62d437d1b91e4591678dec…
Author: Hans Leidekker <hans(a)codeweavers.com> Date: Wed Feb 7 10:46:09 2018 +0100 msi: Don't mark uncompressed global assembly files as installed until they are in the assembly cache. Signed-off-by: Hans Leidekker <hans(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit ff754f4edef05ab967ace9dc61400b32187de699) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/msi/files.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dlls/msi/files.c b/dlls/msi/files.c index 02ff8ec..adffcaf 100644 --- a/dlls/msi/files.c +++ b/dlls/msi/files.c @@ -200,8 +200,6 @@ static UINT copy_file(MSIFILE *file, LPWSTR source) return GetLastError(); SetFileAttributesW(file->TargetPath, FILE_ATTRIBUTE_NORMAL); - - file->state = msifs_installed; return ERROR_SUCCESS; } @@ -249,7 +247,6 @@ static UINT copy_install_file(MSIPACKAGE *package, MSIFILE *file, LPWSTR source) MoveFileExW(file->TargetPath, NULL, MOVEFILE_DELAY_UNTIL_REBOOT) && MoveFileExW(tmpfileW, file->TargetPath, MOVEFILE_DELAY_UNTIL_REBOOT)) { - file->state = msifs_installed; package->need_reboot_at_end = 1; gle = ERROR_SUCCESS; } @@ -365,6 +362,8 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package) LIST_FOR_EACH_ENTRY( file, &package->files, MSIFILE, entry ) { + BOOL is_global_assembly = msi_is_global_assembly( file->Component ); + msi_file_update_ui( package, file, szInstallFiles ); rc = msi_load_media_info( package, file->Sequence, mi ); @@ -412,7 +411,7 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package) TRACE("copying %s to %s\n", debugstr_w(source), debugstr_w(file->TargetPath)); - if (!msi_is_global_assembly( file->Component )) + if (!is_global_assembly) { msi_create_directory(package, file->Component->Directory); } @@ -424,10 +423,11 @@ UINT ACTION_InstallFiles(MSIPACKAGE *package) msi_free(source); goto done; } + if (!is_global_assembly) file->state = msifs_installed; msi_free(source); } - else if (!msi_is_global_assembly( file->Component ) && - file->state != msifs_installed && !(file->Attributes & msidbFileAttributesPatchAdded)) + else if (!is_global_assembly && file->state != msifs_installed && + !(file->Attributes & msidbFileAttributesPatchAdded)) { ERR("compressed file wasn't installed (%s)\n", debugstr_w(file->File)); rc = ERROR_INSTALL_FAILURE;
1
0
0
0
Zebediah Figura : server: Fix pointer arithmetic in get_selector_entry().
by Alexandre Julliard
14 May '18
14 May '18
Module: wine Branch: stable Commit: 6a6b6ba69cf6f78028c2a2144c0e168847ff793f URL:
https://source.winehq.org/git/wine.git/?a=commit;h=6a6b6ba69cf6f78028c2a214…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Sat Feb 10 10:46:07 2018 -0600 server: Fix pointer arithmetic in get_selector_entry(). The selector table is exclusively 32-bit, so trying to get selector entries with a 64-bit wineserver will return the wrong values due to the different size of (long *). Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit c6dfce272309c1ad869886a0fce186c795f3e5b7) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- server/ptrace.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/server/ptrace.c b/server/ptrace.c index a647df9..704b17d 100644 --- a/server/ptrace.c +++ b/server/ptrace.c @@ -517,13 +517,13 @@ void get_selector_entry( struct thread *thread, int entry, unsigned int *base, } if (suspend_for_ptrace( thread )) { - unsigned char flags_buf[sizeof(long)]; - long *addr = (long *)(unsigned long)thread->process->ldt_copy + entry; - if (read_thread_long( thread, addr, (long *)base ) == -1) goto done; - if (read_thread_long( thread, addr + 8192, (long *)limit ) == -1) goto done; - addr = (long *)(unsigned long)thread->process->ldt_copy + 2*8192 + (entry / sizeof(long)); - if (read_thread_long( thread, addr, (long *)flags_buf ) == -1) goto done; - *flags = flags_buf[entry % sizeof(long)]; + unsigned char flags_buf[4]; + unsigned long addr = (unsigned long)thread->process->ldt_copy + (entry * 4); + if (read_thread_long( thread, (long *)addr, (long *)base ) == -1) goto done; + if (read_thread_long( thread, (long *)(addr + (8192 * 4)), (long *)limit ) == -1) goto done; + addr = (unsigned long)thread->process->ldt_copy + (2 * 8192 * 4) + (entry & ~3); + if (read_thread_long( thread, (long *)addr, (long *)flags_buf ) == -1) goto done; + *flags = flags_buf[entry % 4]; done: resume_after_ptrace( thread ); }
1
0
0
0
Henri Verbeet : include: Add d3d11.1 and d3d11.2 constants to d3d11.idl.
by Alexandre Julliard
14 May '18
14 May '18
Module: wine Branch: stable Commit: 2008619cf6566802944cea920cf597949324b840 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=2008619cf6566802944cea92…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Feb 13 13:20:46 2018 +0330 include: Add d3d11.1 and d3d11.2 constants to d3d11.idl. Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 529168ecf7e538ae23ccb037f99dffec66470350) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- include/d3d11.idl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/d3d11.idl b/include/d3d11.idl index a7b9812..8de2056 100644 --- a/include/d3d11.idl +++ b/include/d3d11.idl @@ -260,6 +260,16 @@ cpp_quote("struct CD3D11_DEFAULT {};") cpp_quote("extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;") cpp_quote("#endif") +cpp_quote("#ifndef _D3D11_1_CONSTANTS") +cpp_quote("#define _D3D11_1_CONSTANTS") +const UINT D3D11_1_UAV_SLOT_COUNT = 64; +cpp_quote("#endif") + +cpp_quote("#ifndef _D3D11_2_CONSTANTS") +cpp_quote("#define _D3D11_2_CONSTANTS") +const UINT D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES = 0x10000; +cpp_quote("#endif") + typedef enum D3D11_BLEND { D3D11_BLEND_ZERO = 1,
1
0
0
0
Nikolay Sivov : uxtheme: Properly initialize text drawing options.
by Alexandre Julliard
14 May '18
14 May '18
Module: wine Branch: stable Commit: c88fd0a39273af3017f5ed374b1435e99721af79 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=c88fd0a39273af3017f5ed37…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Wed Feb 14 08:39:21 2018 +0300 uxtheme: Properly initialize text drawing options. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit ce50a7ff4df919aedd037cecf15c484c14f10d41) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/uxtheme/draw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/uxtheme/draw.c b/dlls/uxtheme/draw.c index e917dd1..d07d075 100644 --- a/dlls/uxtheme/draw.c +++ b/dlls/uxtheme/draw.c @@ -1636,7 +1636,7 @@ HRESULT WINAPI DrawThemeText(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, LPCWSTR pszText, int iCharCount, DWORD flags, DWORD flags2, const RECT *pRect) { - DTTOPTS opts; + DTTOPTS opts = { 0 }; RECT rt; TRACE("%d %d\n", iPartId, iStateId);
1
0
0
0
Piotr Caban : msvcr110: Add Concurrency::_Trace_agents function stub.
by Alexandre Julliard
14 May '18
14 May '18
Module: wine Branch: stable Commit: 18923898d8e26cb1bf01df88b1fb2f7afa29626f URL:
https://source.winehq.org/git/wine.git/?a=commit;h=18923898d8e26cb1bf01df88…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Tue Feb 6 15:38:05 2018 +0100 msvcr110: Add Concurrency::_Trace_agents function stub. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 475fa2c749e7ca5b648f456b8ecf47fe3d1b4964) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/concrt140/concrt140.spec | 2 +- dlls/msvcr110/msvcr110.spec | 2 +- dlls/msvcr120/msvcr120.spec | 2 +- dlls/msvcr120_app/msvcr120_app.spec | 2 +- dlls/msvcrt/misc.c | 6 ++++++ 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/dlls/concrt140/concrt140.spec b/dlls/concrt140/concrt140.spec index bb41952..9e88741 100644 --- a/dlls/concrt140/concrt140.spec +++ b/dlls/concrt140/concrt140.spec @@ -455,7 +455,7 @@ @ stub -arch=win64 ?_Start@_Timer@details@Concurrency@@IEAAXXZ @ stub -arch=i386 ?_Stop@_Timer@details@Concurrency@@IAEXXZ @ stub -arch=win64 ?_Stop@_Timer@details@Concurrency@@IEAAXXZ -@ stub ?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ +@ varargs ?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ(long int64) msvcr120.?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ @ cdecl -arch=win32 ?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z(ptr long long) msvcr120.?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z @ cdecl -arch=win64 ?_Trace_ppl_function@Concurrency@@YAXAEBU_GUID@@EW4ConcRT_EventType@1@@Z(ptr long long) msvcr120.?_Trace_ppl_function@Concurrency@@YAXAEBU_GUID@@EW4ConcRT_EventType@1@@Z @ thiscall -arch=i386 ?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ(ptr) msvcr120.?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 7171067..29187ca 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -657,7 +657,7 @@ @ stub -arch=arm ?_Tidy@exception@std@@AAAXXZ @ stub -arch=i386 ?_Tidy@exception@std@@AAEXXZ @ stub -arch=win64 ?_Tidy@exception@std@@AEAAXXZ -@ stub ?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ +@ varargs ?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ(long int64) _Trace_agents @ cdecl -arch=win32 ?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z(ptr long long) Concurrency__Trace_ppl_function @ cdecl -arch=win64 ?_Trace_ppl_function@Concurrency@@YAXAEBU_GUID@@EW4ConcRT_EventType@1@@Z(ptr long long) Concurrency__Trace_ppl_function @ cdecl -arch=arm ?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAA_NXZ(ptr) _ReentrantBlockingLock__TryAcquire diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 2463b15..c2c4f3c 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -639,7 +639,7 @@ @ stub -arch=arm ?_Tidy@exception@std@@AAAXXZ @ stub -arch=i386 ?_Tidy@exception@std@@AAEXXZ @ stub -arch=win64 ?_Tidy@exception@std@@AEAAXXZ -@ stub ?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ +@ varargs ?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ(long int64) _Trace_agents @ cdecl -arch=win32 ?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z(ptr long long) Concurrency__Trace_ppl_function @ cdecl -arch=win64 ?_Trace_ppl_function@Concurrency@@YAXAEBU_GUID@@EW4ConcRT_EventType@1@@Z(ptr long long) Concurrency__Trace_ppl_function @ cdecl -arch=arm ?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAA_NXZ(ptr) _ReentrantBlockingLock__TryAcquire diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index c513f52..3e9afe1 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -635,7 +635,7 @@ @ stub -arch=arm ?_Tidy@exception@std@@AAAXXZ @ stub -arch=i386 ?_Tidy@exception@std@@AAEXXZ @ stub -arch=win64 ?_Tidy@exception@std@@AEAAXXZ -@ stub ?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ +@ varargs ?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ(long int64) msvcr120.?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ @ cdecl -arch=win32 ?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z(ptr long long) msvcr120.?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z @ cdecl -arch=win64 ?_Trace_ppl_function@Concurrency@@YAXAEBU_GUID@@EW4ConcRT_EventType@1@@Z(ptr long long) msvcr120.?_Trace_ppl_function@Concurrency@@YAXAEBU_GUID@@EW4ConcRT_EventType@1@@Z @ cdecl -arch=arm ?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAA_NXZ(ptr) msvcr120.?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAA_NXZ diff --git a/dlls/msvcrt/misc.c b/dlls/msvcrt/misc.c index 8f18aa4..c197d69 100644 --- a/dlls/msvcrt/misc.c +++ b/dlls/msvcrt/misc.c @@ -561,6 +561,12 @@ LONG CDECL MSVCRT__crtUnhandledException(EXCEPTION_POINTERS *ep) SetUnhandledExceptionFilter(NULL); return UnhandledExceptionFilter(ep); } + +/* ?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ */ +void WINAPIV _Trace_agents(/*enum Concurrency::Agents_EventType*/int type, __int64 id, ...) +{ + FIXME("(%d %s)\n", type, wine_dbgstr_longlong(id)); +} #endif #if _MSVCR_VER>=120
1
0
0
0
Nikolay Sivov : wevtapi: Add EvtNext() stub.
by Alexandre Julliard
14 May '18
14 May '18
Module: wine Branch: stable Commit: b31248e68bbf8505650b370856c204530d4e4fc7 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=b31248e68bbf8505650b3708…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Fri Jan 26 16:57:21 2018 +0300 wevtapi: Add EvtNext() stub. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit aaf4e1d93d9c25273a1d5af2be8ab7f41f418cdc) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/wevtapi/main.c | 7 +++++++ dlls/wevtapi/wevtapi.spec | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dlls/wevtapi/main.c b/dlls/wevtapi/main.c index 5b9949b..a978437 100644 --- a/dlls/wevtapi/main.c +++ b/dlls/wevtapi/main.c @@ -115,3 +115,10 @@ BOOL WINAPI EvtClose(EVT_HANDLE handle) FIXME("(%p) stub\n", handle); return TRUE; } + +BOOL WINAPI EvtNext(EVT_HANDLE result_set, DWORD size, EVT_HANDLE *array, DWORD timeout, DWORD flags, DWORD *ret_count) +{ + FIXME("(%p %u %p %u %#x %p) stub!\n", result_set, size, array, timeout, flags, ret_count); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; +} diff --git a/dlls/wevtapi/wevtapi.spec b/dlls/wevtapi/wevtapi.spec index e2bec57..ddd2f32 100644 --- a/dlls/wevtapi/wevtapi.spec +++ b/dlls/wevtapi/wevtapi.spec @@ -25,7 +25,7 @@ @ stub EvtIntRetractConfig @ stub EvtIntSysprepCleanup @ stub EvtIntWriteXmlEventToLocalLogfile -@ stub EvtNext +@ stdcall EvtNext(ptr long ptr long long ptr) @ stdcall EvtNextChannelPath(ptr long ptr ptr) @ stub EvtNextEventMetadata @ stub EvtNextPublisherId
1
0
0
0
← Newer
1
...
47
48
49
50
51
52
53
...
72
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Results per page:
10
25
50
100
200