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
August 2006
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
5 participants
746 discussions
Start a n
N
ew thread
Robert Reif : dsound: Class factory cleanup.
by Alexandre Julliard
18 Aug '06
18 Aug '06
Module: wine Branch: master Commit: 595d6aa6fbc8cd97d4fa8fa323b3f9bdddc32bd4 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=595d6aa6fbc8cd97d4fa8fa…
Author: Robert Reif <reif(a)earthlink.net> Date: Fri Aug 18 01:13:31 2006 -0400 dsound: Class factory cleanup. Consolidate all class factories into a single implementation. Fixes a problem discovered by oleview. --- dlls/dsound/capture.c | 109 ++++----------------- dlls/dsound/dsound.c | 28 ++++- dlls/dsound/dsound_main.c | 217 +++++++++++++----------------------------- dlls/dsound/dsound_private.h | 27 ++--- dlls/dsound/duplex.c | 93 ++---------------- dlls/dsound/propset.c | 8 ++ 6 files changed, 137 insertions(+), 345 deletions(-) Diff:
http://source.winehq.org/git/?p=wine.git;a=commitdiff;h=595d6aa6fbc8cd97d4f…
1
0
0
0
Kai Blin : secur32: Gracefully handle ntlm_auth versions that don' t support the new commands.
by Alexandre Julliard
18 Aug '06
18 Aug '06
Module: wine Branch: master Commit: 21645023224fba28491d2e21b908ee6b92b50f92 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=21645023224fba28491d2e2…
Author: Kai Blin <kai.blin(a)gmail.com> Date: Thu Aug 17 21:05:14 2006 +0200 secur32: Gracefully handle ntlm_auth versions that don't support the new commands. --- dlls/secur32/dispatcher.c | 5 ---- dlls/secur32/ntlm.c | 59 +++++++++++++++++++++------------------------ 2 files changed, 28 insertions(+), 36 deletions(-) diff --git a/dlls/secur32/dispatcher.c b/dlls/secur32/dispatcher.c index d9dfeef..f9f37e4 100644 --- a/dlls/secur32/dispatcher.c +++ b/dlls/secur32/dispatcher.c @@ -236,11 +236,6 @@ SECURITY_STATUS run_helper(PNegoHelper h return SEC_E_ILLEGAL_MESSAGE; } - if( (*buflen <= 3) && (strncmp(helper->com_buf, "BH", 2) == 0)) - { - return SEC_E_INTERNAL_ERROR; - } - /* We only get ERR if the input size is too big. On a GENSEC error, * ntlm_auth will return BH */ if(strncmp(helper->com_buf, "ERR", 3) == 0) diff --git a/dlls/secur32/ntlm.c b/dlls/secur32/ntlm.c index 130adbd..a1011da 100644 --- a/dlls/secur32/ntlm.c +++ b/dlls/secur32/ntlm.c @@ -627,6 +627,7 @@ static SECURITY_STATUS SEC_ENTRY ntlm_In if(buffer_len < 3) { TRACE("No flags negotiated, or helper does not support GF command\n"); + helper->neg_flags = 0l; } else { @@ -640,41 +641,37 @@ static SECURITY_STATUS SEC_ENTRY ntlm_In if((ret = run_helper(helper, buffer, max_len, &buffer_len)) != SEC_E_OK) goto isc_end; - if(buffer_len < 3) - TRACE("Helper does not support GK command\n"); - else + if(strncmp(buffer, "BH", 2) == 0) { - if(strncmp(buffer, "BH ", 3) == 0) + TRACE("Helper does not understand command or no key negotiated.\n"); + helper->valid_session_key = FALSE; + helper->session_key = HeapAlloc(GetProcessHeap(), 0, 16); + /*Generate the dummy session key = MD4(MD4(password))*/ + if(helper->password) + SECUR32_CreateNTLMv1SessionKey(helper->password, helper->session_key); + else + memset(helper->session_key, 0, 16); + } + else if(strncmp(buffer, "GK ", 3) == 0) + { + if((ret = decodeBase64(buffer+3, buffer_len-3, bin, max_len, + &bin_len)) != SEC_E_OK) { - TRACE("Helper sent %s\n", debugstr_a(buffer+3)); - helper->valid_session_key = FALSE; - helper->session_key = HeapAlloc(GetProcessHeap(), 0, 16); - /*Generate the dummy session key = MD4(MD4(password))*/ - if(helper->password) - SECUR32_CreateNTLMv1SessionKey(helper->password, helper->session_key); - else - memset(helper->session_key, 0, 16); + TRACE("Failed to decode session key\n"); } - else if(strncmp(buffer, "GK ", 3) == 0) + TRACE("Session key is %s\n", debugstr_a(buffer+3)); + helper->valid_session_key = TRUE; + if(!helper->session_key) + helper->session_key = HeapAlloc(GetProcessHeap(), 0, bin_len); + if(!helper->session_key) { - if((ret = decodeBase64(buffer+3, buffer_len-3, bin, max_len, - &bin_len)) != SEC_E_OK) - { - TRACE("Failed to decode session key\n"); - } - TRACE("Session key is %s\n", debugstr_a(buffer+3)); - helper->valid_session_key = TRUE; - if(!helper->session_key) - helper->session_key = HeapAlloc(GetProcessHeap(), 0, bin_len); - if(!helper->session_key) - { - TRACE("Failed to allocate memory for session key\n"); - ret = SEC_E_INTERNAL_ERROR; - goto isc_end; - } - memcpy(helper->session_key, bin, bin_len); + TRACE("Failed to allocate memory for session key\n"); + ret = SEC_E_INTERNAL_ERROR; + goto isc_end; } + memcpy(helper->session_key, bin, bin_len); } + helper->crypt.ntlm.a4i = SECUR32_arc4Alloc(); SECUR32_arc4Init(helper->crypt.ntlm.a4i, helper->session_key, 16); helper->crypt.ntlm.seq_num = 0l; @@ -1239,7 +1236,7 @@ static SECURITY_STATUS SEC_ENTRY ntlm_Ma return SEC_E_UNSUPPORTED_FUNCTION; } - if(helper->neg_flags & NTLMSSP_NEGOTIATE_ALWAYS_SIGN) + if(helper->neg_flags & NTLMSSP_NEGOTIATE_ALWAYS_SIGN || helper->neg_flags == 0) { TRACE("Generating dummy signature\n"); /* A dummy signature is 0x01 followed by 15 bytes of 0x00 */ @@ -1315,7 +1312,7 @@ static SECURITY_STATUS SEC_ENTRY ntlm_Ve return SEC_E_UNSUPPORTED_FUNCTION; } - if(helper->neg_flags & NTLMSSP_NEGOTIATE_ALWAYS_SIGN) + if(helper->neg_flags & NTLMSSP_NEGOTIATE_ALWAYS_SIGN || helper->neg_flags == 0) { const BYTE dummy_sig[] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
1
0
0
0
Mikołaj Zalewski : shlwapi: Add the Polish translation .
by Alexandre Julliard
18 Aug '06
18 Aug '06
Module: wine Branch: master Commit: fc6d24f33d0327e71949c8953c5492fcba497c6c URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=fc6d24f33d0327e71949c89…
Author: Mikołaj Zalewski <mikolaj(a)zalewski.pl> Date: Thu Aug 17 22:45:16 2006 +0200 shlwapi: Add the Polish translation. --- dlls/shlwapi/shlwapi.rc | 7 ++++--- dlls/shlwapi/shlwapi_Pl.rc | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 dlls/shlwapi/shlwapi_Pl.rc diff --git a/dlls/shlwapi/shlwapi.rc b/dlls/shlwapi/shlwapi.rc index dcd7202..d81bcc7 100644 --- a/dlls/shlwapi/shlwapi.rc +++ b/dlls/shlwapi/shlwapi.rc @@ -27,15 +27,16 @@ #include "version.rc" #include "shlwapi_De.rc" #include "shlwapi_En.rc" -#include "shlwapi_Fr.rc" #include "shlwapi_Eo.rc" #include "shlwapi_Es.rc" #include "shlwapi_Fi.rc" +#include "shlwapi_Fr.rc" #include "shlwapi_Hu.rc" +#include "shlwapi_It.rc" +#include "shlwapi_Ja.rc" #include "shlwapi_Ko.rc" #include "shlwapi_Nl.rc" #include "shlwapi_No.rc" -#include "shlwapi_It.rc" -#include "shlwapi_Ja.rc" +#include "shlwapi_Pl.rc" #include "shlwapi_Pt.rc" #include "shlwapi_Tr.rc" diff --git a/dlls/shlwapi/shlwapi_Pl.rc b/dlls/shlwapi/shlwapi_Pl.rc new file mode 100644 index 0000000..8942a77 --- /dev/null +++ b/dlls/shlwapi/shlwapi_Pl.rc @@ -0,0 +1,41 @@ +/* + * English resources for shlwapi + * + * Copyright 2004 Jon Griffiths + * Copyright 2006 Mikolaj Zalewski + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_POLISH, SUBLANG_DEFAULT + +IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "B��d!" +FONT 8, "MS Shell Dlg" +{ + LTEXT "", IDS_ERR_USER_MSG2, 15, 5, 28, 20 + LTEXT "", IDS_ERR_USER_MSG, 15, 5, 210, 8 + CHECKBOX "Nie pokazuj w&i�cej tego komunikatu", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + PUSHBUTTON L"&OK" IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON L"&Anuluj" IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON L"&Tak" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON L"&Nie" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP +} + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bajt�w" +}
1
0
0
0
Mikołaj Zalewski : shlwapi: Store the "%ld bytes" string as a resource.
by Alexandre Julliard
18 Aug '06
18 Aug '06
Module: wine Branch: master Commit: c0e6c94ab492d41b57fe00b243672f305ad14240 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=c0e6c94ab492d41b57fe00b…
Author: Mikołaj Zalewski <mikolaj(a)zalewski.pl> Date: Thu Aug 17 22:44:29 2006 +0200 shlwapi: Store the "%ld bytes" string as a resource. --- dlls/shlwapi/resource.h | 2 ++ dlls/shlwapi/shlwapi_De.rc | 5 +++++ dlls/shlwapi/shlwapi_En.rc | 5 +++++ dlls/shlwapi/shlwapi_Eo.rc | 5 +++++ dlls/shlwapi/shlwapi_Es.rc | 5 +++++ dlls/shlwapi/shlwapi_Fi.rc | 5 +++++ dlls/shlwapi/shlwapi_Fr.rc | 5 +++++ dlls/shlwapi/shlwapi_Hu.rc | 5 +++++ dlls/shlwapi/shlwapi_It.rc | 5 +++++ dlls/shlwapi/shlwapi_Ja.rc | 5 +++++ dlls/shlwapi/shlwapi_Ko.rc | 5 +++++ dlls/shlwapi/shlwapi_Nl.rc | 5 +++++ dlls/shlwapi/shlwapi_No.rc | 5 +++++ dlls/shlwapi/shlwapi_Pt.rc | 5 +++++ dlls/shlwapi/shlwapi_Tr.rc | 5 +++++ dlls/shlwapi/string.c | 8 ++++++-- 16 files changed, 78 insertions(+), 2 deletions(-) diff --git a/dlls/shlwapi/resource.h b/dlls/shlwapi/resource.h index bd59505..c06dbf7 100644 --- a/dlls/shlwapi/resource.h +++ b/dlls/shlwapi/resource.h @@ -20,6 +20,8 @@ #ifndef WINE_SHLWAPI_RESOURCE_H #define WINE_SHLWAPI_RESOURCE_H +#define IDS_BYTES_FORMAT 64 + /* These numbers match native ID's and shouldn't be abitrarily changed */ #define IDD_ERR_DIALOG 0x1200 #define IDS_ERR_USER_MSG 0x1201 diff --git a/dlls/shlwapi/shlwapi_De.rc b/dlls/shlwapi/shlwapi_De.rc index 05258d5..1680b4a 100644 --- a/dlls/shlwapi/shlwapi_De.rc +++ b/dlls/shlwapi/shlwapi_De.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Ja" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Nein" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_En.rc b/dlls/shlwapi/shlwapi_En.rc index 7d0e95c..a8d1980 100644 --- a/dlls/shlwapi/shlwapi_En.rc +++ b/dlls/shlwapi/shlwapi_En.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Yes" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&No" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_Eo.rc b/dlls/shlwapi/shlwapi_Eo.rc index af63821..dcbcdaf 100644 --- a/dlls/shlwapi/shlwapi_Eo.rc +++ b/dlls/shlwapi/shlwapi_Eo.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Jes" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Ne" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_Es.rc b/dlls/shlwapi/shlwapi_Es.rc index 469c08d..61782c9 100644 --- a/dlls/shlwapi/shlwapi_Es.rc +++ b/dlls/shlwapi/shlwapi_Es.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&S�" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&No" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_Fi.rc b/dlls/shlwapi/shlwapi_Fi.rc index 4b79e5c..5ba5d3c 100644 --- a/dlls/shlwapi/shlwapi_Fi.rc +++ b/dlls/shlwapi/shlwapi_Fi.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Kyll�" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Ei" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_Fr.rc b/dlls/shlwapi/shlwapi_Fr.rc index f8be5e8..e84403d 100644 --- a/dlls/shlwapi/shlwapi_Fr.rc +++ b/dlls/shlwapi/shlwapi_Fr.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Oui" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Non" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_Hu.rc b/dlls/shlwapi/shlwapi_Hu.rc index 7c4e6ca..52efedc 100644 --- a/dlls/shlwapi/shlwapi_Hu.rc +++ b/dlls/shlwapi/shlwapi_Hu.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Igen" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Nem" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_It.rc b/dlls/shlwapi/shlwapi_It.rc index a56f048..cdb113e 100644 --- a/dlls/shlwapi/shlwapi_It.rc +++ b/dlls/shlwapi/shlwapi_It.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Si" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&No" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_Ja.rc b/dlls/shlwapi/shlwapi_Ja.rc index e39ca76..7ac8d41 100644 --- a/dlls/shlwapi/shlwapi_Ja.rc +++ b/dlls/shlwapi/shlwapi_Ja.rc @@ -33,3 +33,8 @@ FONT 9, "MS UI Gothic" PUSHBUTTON L"�͂�(&Y)" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"������(&N)" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_Ko.rc b/dlls/shlwapi/shlwapi_Ko.rc index 7330724..92dab21 100644 --- a/dlls/shlwapi/shlwapi_Ko.rc +++ b/dlls/shlwapi/shlwapi_Ko.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"��(&Y)" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"�ƴϿ�(&N)" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_Nl.rc b/dlls/shlwapi/shlwapi_Nl.rc index 11e424f..5d25780 100644 --- a/dlls/shlwapi/shlwapi_Nl.rc +++ b/dlls/shlwapi/shlwapi_Nl.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Ja" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Nee" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_No.rc b/dlls/shlwapi/shlwapi_No.rc index 435cfb5..3ca08a3 100644 --- a/dlls/shlwapi/shlwapi_No.rc +++ b/dlls/shlwapi/shlwapi_No.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Ja" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Nei" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_Pt.rc b/dlls/shlwapi/shlwapi_Pt.rc index 64d28f3..c0fb168 100644 --- a/dlls/shlwapi/shlwapi_Pt.rc +++ b/dlls/shlwapi/shlwapi_Pt.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Sim" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Não" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/shlwapi_Tr.rc b/dlls/shlwapi/shlwapi_Tr.rc index 139b3b0..a55641b 100644 --- a/dlls/shlwapi/shlwapi_Tr.rc +++ b/dlls/shlwapi/shlwapi_Tr.rc @@ -33,3 +33,8 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON L"&Evet" IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON L"&Hay�r" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } + +STRINGTABLE DISCARDABLE +{ + IDS_BYTES_FORMAT "%ld bytes" +} diff --git a/dlls/shlwapi/string.c b/dlls/shlwapi/string.c index b03bdfb..aafddd0 100644 --- a/dlls/shlwapi/string.c +++ b/dlls/shlwapi/string.c @@ -42,6 +42,8 @@ #include "ddeml.h" #include "wine/unicode.h" #include "wine/debug.h" +#include "resource.h" + WINE_DEFAULT_DEBUG_CHANNEL(shell); /* Get a function pointer from a DLL handle */ @@ -55,6 +57,7 @@ #define GET_FUNC(func, module, name, fai } while (0) extern HMODULE SHLWAPI_hmlang; +extern HINSTANCE shlwapi_hInstance; typedef HRESULT (WINAPI *fnpConvertINetUnicodeToMultiByte)(LPDWORD,DWORD,LPCWSTR,LPINT,LPSTR,LPINT); static fnpConvertINetUnicodeToMultiByte pConvertINetUnicodeToMultiByte; @@ -2230,7 +2233,6 @@ typedef struct tagSHLWAPI_BYTEFORMATS */ LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax) { - static const WCHAR wszBytes[] = {'%','l','d',' ','b','y','t','e','s',0}; static const WCHAR wsz3_0[] = {'%','3','.','0','f',0}; static const WCHAR wsz3_1[] = {'%','3','.','1','f',0}; static const WCHAR wsz3_2[] = {'%','3','.','2','f',0}; @@ -2272,7 +2274,9 @@ #define PB (KB*KB*KB*KB*KB) if (llBytes < 1024) /* 1K */ { - snprintfW(lpszDest, cchMax, wszBytes, (long)llBytes); + WCHAR wszBytesFormat[64]; + LoadStringW(shlwapi_hInstance, IDS_BYTES_FORMAT, wszBytesFormat, 64); + snprintfW(lpszDest, cchMax, wszBytesFormat, (long)llBytes); return lpszDest; }
1
0
0
0
Mikołaj Zalewski : shell32: Show the original file name and deletion date in the Trash folder.
by Alexandre Julliard
18 Aug '06
18 Aug '06
Module: wine Branch: master Commit: 47b40c58792b8aa818e9bcac18573e97248e401b URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=47b40c58792b8aa818e9bca…
Author: Mikołaj Zalewski <mikolaj(a)zalewski.pl> Date: Thu Aug 17 18:29:58 2006 +0200 shell32: Show the original file name and deletion date in the Trash folder. --- dlls/shell32/trash.c | 85 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 76 insertions(+), 9 deletions(-) diff --git a/dlls/shell32/trash.c b/dlls/shell32/trash.c index c7e4bb8..fc0ce42 100644 --- a/dlls/shell32/trash.c +++ b/dlls/shell32/trash.c @@ -55,6 +55,7 @@ static CRITICAL_SECTION TRASH_Creating = static const char trashinfo_suffix[] = ".trashinfo"; static const char trashinfo_header[] = "[Trash Info]\n"; +static const char trashinfo_group[] = "Trash Info"; typedef struct { @@ -382,30 +383,96 @@ void TRASH_DisposeElement(TRASH_ELEMENT HRESULT TRASH_GetDetails(const TRASH_ELEMENT *element, WIN32_FIND_DATAW *data) { - LPSTR path; + LPSTR path = NULL; + XDG_PARSED_FILE *parsed = NULL; + char *original_file_name = NULL; + char *deletion_date = NULL; + int fd = -1; struct stat stats; + HRESULT ret = S_FALSE; + LPWSTR original_dos_name; int suffix_length = lstrlenA(trashinfo_suffix); int filename_length = lstrlenA(element->filename); - int path_length = lstrlenA(element->bucket->files_dir); - static const WCHAR fmt[] = {'T','O','D','O','\\','(','%','h','s',')',0}; + int files_length = lstrlenA(element->bucket->files_dir); + int path_length = max(lstrlenA(element->bucket->info_dir), files_length); path = SHAlloc(path_length + filename_length + 1); if (path == NULL) return E_OUTOFMEMORY; - lstrcpyA(path, element->bucket->files_dir); - lstrcpyA(path+path_length, element->filename); - path[path_length + filename_length - suffix_length] = 0; /* remove the '.trashinfo' */ + wsprintfA(path, "%s%s", element->bucket->files_dir, element->filename); + path[path_length + filename_length - suffix_length] = 0; /* remove the '.trashinfo' */ if (lstat(path, &stats) == -1) { ERR("Error accessing data file for trashinfo %s (errno=%d)\n", element->filename, errno); - return S_FALSE; + goto failed; + } + + wsprintfA(path, "%s%s", element->bucket->info_dir, element->filename); + fd = open(path, O_RDONLY); + if (fd == -1) + { + ERR("Couldn't open trashinfo file %s (errno=%d)\n", path, errno); + goto failed; + } + + parsed = XDG_ParseDesktopFile(fd); + if (parsed == NULL) + { + ERR("Parse error in trashinfo file %s\n", path); + goto failed; + } + + original_file_name = XDG_GetStringValue(parsed, trashinfo_group, "Path", XDG_URLENCODE); + if (original_file_name == NULL) + { + ERR("No 'Path' entry in trashinfo file\n"); + goto failed; } ZeroMemory(data, sizeof(*data)); data->nFileSizeHigh = (DWORD)((LONGLONG)stats.st_size>>32); data->nFileSizeLow = stats.st_size & 0xffffffff; RtlSecondsSince1970ToTime(stats.st_mtime, (LARGE_INTEGER *)&data->ftLastWriteTime); - wnsprintfW(data->cFileName, MAX_PATH, fmt, element->filename); - return S_OK; + + original_dos_name = wine_get_dos_file_name(original_file_name); + if (original_dos_name != NULL) + { + lstrcpynW(data->cFileName, original_dos_name, MAX_PATH); + SHFree(original_dos_name); + } + else + { + /* show only the file name */ + char *filename = strrchr(original_file_name, '/'); + if (filename == NULL) + filename = original_file_name; + MultiByteToWideChar(CP_UNIXCP, 0, filename, -1, data->cFileName, MAX_PATH); + } + + deletion_date = XDG_GetStringValue(parsed, trashinfo_group, "DeletionDate", 0); + if (deletion_date) + { + struct tm del_time; + time_t del_secs; + + sscanf(deletion_date, "%d-%d-%dT%d:%d:%d", + &del_time.tm_year, &del_time.tm_mon, &del_time.tm_mday, + &del_time.tm_hour, &del_time.tm_min, &del_time.tm_sec); + del_time.tm_year -= 1900; + del_time.tm_mon--; + del_secs = mktime(&del_time); + + RtlSecondsSince1970ToTime(del_secs, (LARGE_INTEGER *)&data->ftLastAccessTime); + } + + ret = S_OK; +failed: + SHFree(path); + SHFree(original_file_name); + SHFree(deletion_date); + if (fd != -1) + close(fd); + XDG_FreeParsedFile(parsed); + return ret; } INT CALLBACK free_item_callback(void *item, void *lParam)
1
0
0
0
Mikołaj Zalewski : shell32: Add desktop entries parsing code.
by Alexandre Julliard
18 Aug '06
18 Aug '06
Module: wine Branch: master Commit: 589aeba979e0cdd216f8c666555cb7da253e32d0 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=589aeba979e0cdd216f8c66…
Author: Mikołaj Zalewski <mikolaj(a)zalewski.pl> Date: Thu Aug 17 18:28:51 2006 +0200 shell32: Add desktop entries parsing code. --- dlls/shell32/xdg.c | 336 ++++++++++++++++++++++++++++++++++++++++++++++++++++ dlls/shell32/xdg.h | 6 + 2 files changed, 342 insertions(+), 0 deletions(-) Diff:
http://source.winehq.org/git/?p=wine.git;a=commitdiff;h=589aeba979e0cdd216f…
1
0
0
0
Mikołaj Zalewski : shell32: Use Yes/No instead of OK/ Cancel in confirm dialogs.
by Alexandre Julliard
18 Aug '06
18 Aug '06
Module: wine Branch: master Commit: 961881836e04d47e7d7cbfee2041f36ed608e057 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=961881836e04d47e7d7cbfe…
Author: Mikołaj Zalewski <mikolaj(a)zalewski.pl> Date: Thu Aug 17 18:22:27 2006 +0200 shell32: Use Yes/No instead of OK/Cancel in confirm dialogs. --- dlls/shell32/shlfileop.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c index e05b2fa..fccc2ac 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c @@ -151,7 +151,7 @@ BOOL SHELL_ConfirmDialogW(HWND hWnd, int params.lpszText = szBuffer; params.lpszCaption = szCaption; params.lpszIcon = (LPWSTR)MAKEINTRESOURCE(ids.icon_resource_id); - params.dwStyle = MB_OKCANCEL | MB_USERICON; + params.dwStyle = MB_YESNO | MB_USERICON; return (IDOK == MessageBoxIndirectW(¶ms)); }
1
0
0
0
Mike McCormack : kernel32: Change a FIXME to a WARN.
by Alexandre Julliard
18 Aug '06
18 Aug '06
Module: wine Branch: master Commit: 083bb7e9d1fbe74e1c61cfea52f199b2bcbd455e URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=083bb7e9d1fbe74e1c61cfe…
Author: Mike McCormack <mike(a)codeweavers.com> Date: Fri Aug 18 14:09:15 2006 +0900 kernel32: Change a FIXME to a WARN. --- dlls/kernel/locale.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/dlls/kernel/locale.c b/dlls/kernel/locale.c index ae50f07..a1608e2 100644 --- a/dlls/kernel/locale.c +++ b/dlls/kernel/locale.c @@ -2375,8 +2375,9 @@ INT WINAPI CompareStringW(LCID lcid, DWO return 0; } + /* this style is related to diacritics in Arabic, Japanese, and Hebrew */ if (style & 0x10000000) - FIXME("Ignoring unknown style 0x10000000\n"); + WARN("Ignoring unknown style 0x10000000\n"); if (len1 < 0) len1 = strlenW(str1); if (len2 < 0) len2 = strlenW(str2);
1
0
0
0
Mike McCormack : msi: Add a stub ALTER query.
by Alexandre Julliard
18 Aug '06
18 Aug '06
Module: wine Branch: master Commit: 399321c4f27277086f099e5c1ca05296c1de60b7 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=399321c4f27277086f099e5…
Author: Mike McCormack <mike(a)codeweavers.com> Date: Fri Aug 18 14:09:03 2006 +0900 msi: Add a stub ALTER query. --- dlls/msi/Makefile.in | 1 dlls/msi/alter.c | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++ dlls/msi/query.h | 2 + dlls/msi/sql.y | 35 +++++++++- dlls/msi/tokenize.c | 3 + 5 files changed, 212 insertions(+), 5 deletions(-) create mode 100644 dlls/msi/alter.c diff --git a/dlls/msi/Makefile.in b/dlls/msi/Makefile.in index fe12586..6bc9d01 100644 --- a/dlls/msi/Makefile.in +++ b/dlls/msi/Makefile.in @@ -9,6 +9,7 @@ EXTRALIBS = -luuid C_SRCS = \ action.c \ + alter.c \ appsearch.c \ classes.c \ create.c \ diff --git a/dlls/msi/alter.c b/dlls/msi/alter.c new file mode 100644 index 0000000..98a6243 --- /dev/null +++ b/dlls/msi/alter.c @@ -0,0 +1,176 @@ +/* + * Implementation of the Microsoft Installer (msi.dll) + * + * Copyright 2006 Mike McCormack + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "wine/debug.h" +#include "msi.h" +#include "msiquery.h" +#include "objbase.h" +#include "objidl.h" +#include "msipriv.h" + +#include "query.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msidb); + +typedef struct tagMSIALTERVIEW +{ + MSIVIEW view; + MSIDATABASE *db; +} MSIALTERVIEW; + +static UINT ALTER_fetch_int( struct tagMSIVIEW *view, UINT row, UINT col, UINT *val ) +{ + MSIALTERVIEW *av = (MSIALTERVIEW*)view; + + TRACE("%p %d %d %p\n", av, row, col, val ); + + return ERROR_FUNCTION_FAILED; +} + +static UINT ALTER_fetch_stream( struct tagMSIVIEW *view, UINT row, UINT col, IStream **stm) +{ + MSIALTERVIEW *av = (MSIALTERVIEW*)view; + + TRACE("%p %d %d %p\n", av, row, col, stm ); + + return ERROR_FUNCTION_FAILED; +} + +static UINT ALTER_set_int( struct tagMSIVIEW *view, UINT row, UINT col, UINT val ) +{ + MSIALTERVIEW *av = (MSIALTERVIEW*)view; + + TRACE("%p %d %d %04x\n", av, row, col, val ); + + return ERROR_FUNCTION_FAILED; +} + +static UINT ALTER_insert_row( struct tagMSIVIEW *view, MSIRECORD *record ) +{ + MSIALTERVIEW *av = (MSIALTERVIEW*)view; + + TRACE("%p %p\n", av, record ); + + return ERROR_FUNCTION_FAILED; +} + +static UINT ALTER_execute( struct tagMSIVIEW *view, MSIRECORD *record ) +{ + MSIALTERVIEW *av = (MSIALTERVIEW*)view; + + FIXME("%p %p\n", av, record); + + return ERROR_SUCCESS; +} + +static UINT ALTER_close( struct tagMSIVIEW *view ) +{ + MSIALTERVIEW *av = (MSIALTERVIEW*)view; + + TRACE("%p\n", av ); + + return ERROR_SUCCESS; +} + +static UINT ALTER_get_dimensions( struct tagMSIVIEW *view, UINT *rows, UINT *cols ) +{ + MSIALTERVIEW *av = (MSIALTERVIEW*)view; + + TRACE("%p %p %p\n", av, rows, cols ); + + return ERROR_FUNCTION_FAILED; +} + +static UINT ALTER_get_column_info( struct tagMSIVIEW *view, + UINT n, LPWSTR *name, UINT *type ) +{ + MSIALTERVIEW *av = (MSIALTERVIEW*)view; + + TRACE("%p %d %p %p\n", av, n, name, type ); + + return ERROR_FUNCTION_FAILED; +} + +static UINT ALTER_modify( struct tagMSIVIEW *view, MSIMODIFY eModifyMode, + MSIRECORD *rec ) +{ + MSIALTERVIEW *av = (MSIALTERVIEW*)view; + + TRACE("%p %d %p\n", av, eModifyMode, rec ); + + return ERROR_FUNCTION_FAILED; +} + +static UINT ALTER_delete( struct tagMSIVIEW *view ) +{ + MSIALTERVIEW *av = (MSIALTERVIEW*)view; + + TRACE("%p\n", av ); + + return ERROR_SUCCESS; +} + +static UINT ALTER_find_matching_rows( struct tagMSIVIEW *view, UINT col, + UINT val, UINT *row, MSIITERHANDLE *handle ) +{ + TRACE("%p, %d, %u, %p\n", view, col, val, *handle); + + return ERROR_FUNCTION_FAILED; +} + + +static const MSIVIEWOPS alter_ops = +{ + ALTER_fetch_int, + ALTER_fetch_stream, + ALTER_set_int, + ALTER_insert_row, + ALTER_execute, + ALTER_close, + ALTER_get_dimensions, + ALTER_get_column_info, + ALTER_modify, + ALTER_delete, + ALTER_find_matching_rows +}; + +UINT ALTER_CreateView( MSIDATABASE *db, MSIVIEW **view, LPCWSTR name, int hold ) +{ + MSIALTERVIEW *av = NULL; + + TRACE("%p\n", av ); + + av = msi_alloc_zero( sizeof *av ); + if( !av ) + return ERROR_FUNCTION_FAILED; + + /* fill the structure */ + av->view.ops = &alter_ops; + av->db = db; + + *view = &av->view; + + return ERROR_SUCCESS; +} diff --git a/dlls/msi/query.h b/dlls/msi/query.h index c0de03b..16aeb66 100644 --- a/dlls/msi/query.h +++ b/dlls/msi/query.h @@ -121,6 +121,8 @@ UINT JOIN_CreateView( MSIDATABASE *db, M LPCWSTR left, LPCWSTR right, struct expr *cond ); +UINT ALTER_CreateView( MSIDATABASE *db, MSIVIEW **view, LPCWSTR name, int hold ); + int sqliteGetToken(const WCHAR *z, int *tokenType); #endif /* __WINE_MSI_QUERY_H */ diff --git a/dlls/msi/sql.y b/dlls/msi/sql.y index 76160ca..a4e0f7e 100644 --- a/dlls/msi/sql.y +++ b/dlls/msi/sql.y @@ -79,15 +79,15 @@ static struct expr * EXPR_wildcard( void int integer; } -%token TK_ABORT TK_AFTER TK_AGG_FUNCTION TK_ALL TK_AND TK_AS TK_ASC +%token TK_ABORT TK_AFTER TK_AGG_FUNCTION TK_ALL TK_ALTER TK_AND TK_AS TK_ASC %token TK_BEFORE TK_BEGIN TK_BETWEEN TK_BITAND TK_BITNOT TK_BITOR TK_BY %token TK_CASCADE TK_CASE TK_CHAR TK_CHECK TK_CLUSTER TK_COLLATE TK_COLUMN -%token TK_COMMA TK_COMMENT TK_COMMIT TK_CONCAT TK_CONFLICT +%token TK_COMMA TK_COMMENT TK_COMMIT TK_CONCAT TK_CONFLICT %token TK_CONSTRAINT TK_COPY TK_CREATE %token TK_DEFAULT TK_DEFERRABLE TK_DEFERRED TK_DELETE TK_DELIMITERS TK_DESC %token TK_DISTINCT TK_DOT TK_DROP TK_EACH %token TK_ELSE TK_END TK_END_OF_FILE TK_EQ TK_EXCEPT TK_EXPLAIN -%token TK_FAIL TK_FLOAT TK_FOR TK_FOREIGN TK_FROM TK_FUNCTION +%token TK_FAIL TK_FLOAT TK_FOR TK_FOREIGN TK_FREE TK_FROM TK_FUNCTION %token TK_GE TK_GLOB TK_GROUP TK_GT %token TK_HAVING TK_HOLD %token TK_IGNORE TK_ILLEGAL TK_IMMEDIATE TK_IN TK_INDEX TK_INITIALLY @@ -127,10 +127,10 @@ static struct expr * EXPR_wildcard( void %type <column_list> selcollist column column_and_type column_def table_def %type <column_list> column_assignment update_assign_list constlist %type <query> query multifrom from fromtable selectfrom unorderedsel -%type <query> oneupdate onedelete oneselect onequery onecreate oneinsert +%type <query> oneupdate onedelete oneselect onequery onecreate oneinsert onealter %type <expr> expr val column_val const_val %type <column_type> column_type data_type data_type_l data_count -%type <integer> number +%type <integer> number alterop /* Reference:
http://mates.ms.mff.cuni.cz/oracle/doc/ora815nt/server.815/a67779/operator.…
*/ %left TK_OR @@ -156,6 +156,7 @@ onequery: | oneinsert | oneupdate | onedelete + | onealter ; oneinsert: @@ -235,6 +236,30 @@ onedelete: } ; +onealter: + TK_ALTER TK_TABLE table alterop + { + SQL_input* sql = (SQL_input*) info; + MSIVIEW *alter = NULL; + + ALTER_CreateView( sql->db, &alter, $3, $4 ); + if( !alter ) + YYABORT; + $$ = alter; + } + ; + +alterop: + TK_HOLD + { + $$ = 1; + } + | TK_FREE + { + $$ = -1; + } + ; + table_def: column_def TK_PRIMARY TK_KEY selcollist { diff --git a/dlls/msi/tokenize.c b/dlls/msi/tokenize.c index c8708c7..fe13983 100644 --- a/dlls/msi/tokenize.c +++ b/dlls/msi/tokenize.c @@ -41,6 +41,7 @@ struct Keyword { static const WCHAR ABORT_W[] = { 'A','B','O','R','T',0 }; static const WCHAR AFTER_W[] = { 'A','F','T','E','R',0 }; +static const WCHAR ALTER_W[] = { 'A','L','T','E','R',0 }; static const WCHAR ALL_W[] = { 'A','L','L',0 }; static const WCHAR AND_W[] = { 'A','N','D',0 }; static const WCHAR AS_W[] = { 'A','S',0 }; @@ -78,6 +79,7 @@ static const WCHAR EXPLAIN_W[] = { 'E',' static const WCHAR FAIL_W[] = { 'F','A','I','L',0 }; static const WCHAR FOR_W[] = { 'F','O','R',0 }; static const WCHAR FOREIGN_W[] = { 'F','O','R','E','I','G','N',0 }; +static const WCHAR FREE_W[] = { 'F','R','E','E',0 }; static const WCHAR FROM_W[] = { 'F','R','O','M',0 }; static const WCHAR FULL_W[] = { 'F','U','L','L',0 }; static const WCHAR GLOB_W[] = { 'G','L','O','B',0 }; @@ -152,6 +154,7 @@ static const WCHAR WHERE_W[] = { 'W','H' static const Keyword aKeywordTable[] = { { ABORT_W, TK_ABORT }, { AFTER_W, TK_AFTER }, + { ALTER_W, TK_ALTER }, { ALL_W, TK_ALL }, { AND_W, TK_AND }, { AS_W, TK_AS },
1
0
0
0
Dan Hipschman : widl: Output format-strings for interface pointers.
by Alexandre Julliard
18 Aug '06
18 Aug '06
Module: wine Branch: master Commit: 3870bf0d9e69924ac98633f5a0b541f77ec8f144 URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=3870bf0d9e69924ac98633f…
Author: Dan Hipschman <dsh(a)linux.ucla.edu> Date: Thu Aug 17 18:09:20 2006 -0700 widl: Output format-strings for interface pointers. --- tools/widl/typegen.c | 30 ++++++++++++++++++++++++++++++ 1 files changed, 30 insertions(+), 0 deletions(-) diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 2d7e07f..523556f 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -1279,6 +1279,31 @@ static size_t write_union_tfs(FILE *file return *typeformat_offset; } +static size_t write_ip_tfs(FILE *file, const attr_t *attrs, const type_t *type, + const char *name, unsigned int *typeformat_offset) +{ + size_t i; + size_t start_offset = *typeformat_offset; + const UUID *uuid = get_attrp(attrs, ATTR_UUID); + + if (! uuid) + error("%s: interface %s missing UUID\n", __FUNCTION__, name); + + print_file(file, 2, "0x2f,\t/* FC_IP */\n"); + print_file(file, 2, "0x5a,\t/* FC_CONSTANT_IID */\n"); + print_file(file, 2, "NdrFcLong(0x%08lx),\n", uuid->Data1); + print_file(file, 2, "NdrFcShort(0x%04x),\n", uuid->Data2); + print_file(file, 2, "NdrFcShort(0x%04x),\n", uuid->Data3); + for (i = 0; i < 8; ++i) + print_file(file, 2, "0x%02x,\n", uuid->Data4[i]); + + if (file) + fprintf(file, "\n"); + + *typeformat_offset += 18; + return start_offset; +} + static size_t write_typeformatstring_var(FILE *file, int indent, const var_t *var, unsigned int *typeformat_offset) { @@ -1339,6 +1364,11 @@ static size_t write_typeformatstring_var int pointer_type = get_attrv(var->attrs, ATTR_POINTERTYPE); if (!pointer_type) pointer_type = RPC_FC_RP; + if (type->type == RPC_FC_IP) + { + return write_ip_tfs(file, type->attrs, type, type->name, typeformat_offset); + } + /* special case for pointers to base types */ switch (type->type) {
1
0
0
0
← Newer
1
...
23
24
25
26
27
28
29
...
75
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Results per page:
10
25
50
100
200