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
March 2013
----- 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
531 discussions
Start a n
N
ew thread
Alexandre Julliard : buildimage: Store large images as raw PNG files in icons.
by Alexandre Julliard
27 Mar '13
27 Mar '13
Module: wine Branch: master Commit: 0aa3ae18f8ef828fe08be6ff182862c3ed1086f1 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=0aa3ae18f8ef828fe08be6ff1…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Mar 27 13:44:18 2013 +0100 buildimage: Store large images as raw PNG files in icons. --- tools/buildimage | 21 ++++++++++++++++----- 1 files changed, 16 insertions(+), 5 deletions(-) diff --git a/tools/buildimage b/tools/buildimage index b307497..442bb3e 100755 --- a/tools/buildimage +++ b/tools/buildimage @@ -38,6 +38,7 @@ die "Only BMP and ICO outputs are supported" unless $ext eq "bmp" or $ext eq "ic my $renderedSVGFileName = "$svgFileName.png"; my @pngFiles; +my @pngFilesRaw; # Get the programs from the environment variables my $convert = $ENV{"CONVERT"} || "convert"; @@ -49,6 +50,7 @@ sub cleanup() { unlink $renderedSVGFileName; unlink $_ foreach(@pngFiles); + unlink $_ foreach(@pngFilesRaw); } $SIG{"INT"} = "cleanup"; @@ -73,6 +75,8 @@ sub svg_element_start my $size = 0; my $depth = 0; + my $width = 0; + my $height = 0; if($ext eq "ico") { return unless $id =~ /icon:(\d*)-(\d*)/; @@ -100,8 +104,8 @@ sub svg_element_start # Extract SVG vector images my $x = $attr{'x'}; my $y = $attr{'y'}; - my $width = $attr{'width'}; - my $height = $attr{'height'}; + $width = $attr{'width'}; + $height = $attr{'height'}; if(defined($x) and defined($x)) { if($x =~ /\d*/ and $y =~ /\d*/) { @@ -126,7 +130,14 @@ sub svg_element_start return; } - push(@pngFiles, $pngFileName); + if ($width >= 128 && $height >= 128) + { + push(@pngFilesRaw, $pngFileName); + } + else + { + push(@pngFiles, $pngFileName); + } } # Render the SVG image @@ -138,7 +149,7 @@ my $parser = new XML::Parser( $parser->parsefile("$svgFileName"); # If no render directives were found, take the full image as-is -unless(@pngFiles) { +unless (@pngFiles || @pngFilesRaw) { my $pngFileName = "bmp$renderedSVGFileName"; copy($renderedSVGFileName, $pngFileName) or die "File could not be copied"; push(@pngFiles, $pngFileName); @@ -148,7 +159,7 @@ unless(@pngFiles) { if($ext eq "ico") { # Place images into the ICO - shell $icotool, "-c", "-o", $outFileName, @pngFiles; + shell $icotool, "-c", "-o", $outFileName, @pngFiles, map { "--raw=$_"; } @pngFilesRaw; } elsif($ext eq "bmp") {
1
0
0
0
Alexandre Julliard : wrc: Add support for PNG icons.
by Alexandre Julliard
27 Mar '13
27 Mar '13
Module: wine Branch: master Commit: c9d806a0d19379ee8f6dd50bb0945e714bfa847d URL:
http://source.winehq.org/git/wine.git/?a=commit;h=c9d806a0d19379ee8f6dd50bb…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Mar 27 13:26:22 2013 +0100 wrc: Add support for PNG icons. --- tools/wrc/newstruc.c | 31 +++++++++++++++++-------------- 1 files changed, 17 insertions(+), 14 deletions(-) diff --git a/tools/wrc/newstruc.c b/tools/wrc/newstruc.c index 4651617..52bafbd 100644 --- a/tools/wrc/newstruc.c +++ b/tools/wrc/newstruc.c @@ -34,6 +34,8 @@ #include "wingdi.h" /* for BITMAPINFOHEADER */ +#define ICO_PNG_MAGIC 0x474e5089 + #include <pshpack2.h> typedef struct { @@ -397,27 +399,28 @@ static int convert_bitmap(char *data, int size) } bmsize = bih->bV5Size; - if (bmsize >> 16) /* assume swapped */ - { -#ifndef WORDS_BIGENDIAN - type |= FL_SIZEBE; -#endif - bmsize = BYTESWAP_DWORD( bmsize ); - } - else - { -#ifdef WORDS_BIGENDIAN - type |= FL_SIZEBE; -#endif - } - switch (bmsize) { case sizeof(BITMAPOS2HEADER): case sizeof(BITMAPINFOHEADER): case sizeof(BITMAPV4HEADER): case sizeof(BITMAPV5HEADER): +#ifdef WORDS_BIGENDIAN + type |= FL_SIZEBE; +#endif + break; + case BYTESWAP_DWORD( sizeof(BITMAPOS2HEADER) ): + case BYTESWAP_DWORD( sizeof(BITMAPINFOHEADER) ): + case BYTESWAP_DWORD( sizeof(BITMAPV4HEADER) ): + case BYTESWAP_DWORD( sizeof(BITMAPV5HEADER) ): +#ifndef WORDS_BIGENDIAN + type |= FL_SIZEBE; +#endif + bmsize = BYTESWAP_DWORD( bmsize ); break; + case ICO_PNG_MAGIC: + case BYTESWAP_DWORD( ICO_PNG_MAGIC ): + return 0; /* nothing to convert */ default: parser_error("Invalid bitmap format, bih->biSize = %d", bih->bV5Size); }
1
0
0
0
Alistair Leslie-Hughes : iads.idl: Add missing interfaces.
by Alexandre Julliard
27 Mar '13
27 Mar '13
Module: wine Branch: master Commit: a4cb7c46fe26e638fd7f4e1bf86dece636c08363 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a4cb7c46fe26e638fd7f4e1bf…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Thu Mar 21 09:20:02 2013 +1100 iads.idl: Add missing interfaces. --- include/iads.idl | 287 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 287 insertions(+), 0 deletions(-) diff --git a/include/iads.idl b/include/iads.idl index 2a1aa13..de5730d 100644 --- a/include/iads.idl +++ b/include/iads.idl @@ -60,6 +60,269 @@ typedef enum ADS_AUTH_RESERVED = 0x80000000 } ADS_AUTHENTICATION_ENUM; +typedef enum +{ + ADS_SEARCHPREF_ASYNCHRONOUS, + ADS_SEARCHPREF_DEREF_ALIASES, + ADS_SEARCHPREF_SIZE_LIMIT, + ADS_SEARCHPREF_TIME_LIMIT, + ADS_SEARCHPREF_ATTRIBTYPES_ONLY, + ADS_SEARCHPREF_SEARCH_SCOPE, + ADS_SEARCHPREF_TIMEOUT, + ADS_SEARCHPREF_PAGESIZE, + ADS_SEARCHPREF_PAGED_TIME_LIMIT, + ADS_SEARCHPREF_CHASE_REFERRALS, + ADS_SEARCHPREF_SORT_ON, + ADS_SEARCHPREF_CACHE_RESULTS, + ADS_SEARCHPREF_DIRSYNC, + ADS_SEARCHPREF_TOMBSTONE, + ADS_SEARCHPREF_VLV, + ADS_SEARCHPREF_ATTRIBUTE_QUERY, + ADS_SEARCHPREF_SECURITY_MASK, + ADS_SEARCHPREF_DIRSYNC_FLAG, + ADS_SEARCHPREF_EXTENDED_DN +} ADS_SEARCHPREF_ENUM; + +typedef ADS_SEARCHPREF_ENUM *PADS_SEARCHPREF_INFO; + +typedef enum +{ + ADS_STATUS_S_OK, + ADS_STATUS_INVALID_SEARCHPREF, + ADS_STATUS_INVALID_SEARCHPREFVALUE +} ADS_STATUSENUM; + +typedef enum +{ + ADSTYPE_INVALID, + ADSTYPE_DN_STRING, + ADSTYPE_CASE_EXACT_STRING, + ADSTYPE_CASE_IGNORE_STRING, + ADSTYPE_PRINTABLE_STRING, + ADSTYPE_NUMERIC_STRING, + ADSTYPE_BOOLEAN, + ADSTYPE_INTEGER, + ADSTYPE_OCTET_STRING, + ADSTYPE_UTC_TIME, + ADSTYPE_LARGE_INTEGER, + ADSTYPE_PROV_SPECIFIC, + ADSTYPE_OBJECT_CLASS, + ADSTYPE_CASEIGNORE_LIST, + ADSTYPE_OCTET_LIST, + ADSTYPE_PATH, + ADSTYPE_POSTALADDRESS, + ADSTYPE_TIMESTAMP, + ADSTYPE_BACKLINK, + ADSTYPE_TYPEDNAME, + ADSTYPE_HOLD, + ADSTYPE_NETADDRESS, + ADSTYPE_REPLICAPOINTER, + ADSTYPE_FAXNUMBER, + ADSTYPE_EMAIL, + ADSTYPE_NT_SECURITY_DESCRIPTOR, + ADSTYPE_UNKNOWN, + ADSTYPE_DN_WITH_BINARY, + ADSTYPE_DN_WITH_STRING +} ADSTYPEENUM; + +typedef enum +{ + ADS_PASSWORD_ENCODE_REQUIRE_SSL, + ADS_PASSWORD_ENCODE_CLEAR +} ADS_PASSWORD_ENCODING_ENUM; + +typedef struct _ADS_CASEIGNORE_LIST +{ + struct _ADS_CASEIGNORE_LIST *Next; + LPWSTR String; +} ADS_CASEIGNORE_LIST; + +typedef struct _ADS_OCTET_LIST +{ + struct _ADS_OCTET_LIST *Next; + DWORD Length; + BYTE *Data; +} ADS_OCTET_LIST; + +typedef struct +{ + DWORD Type; + LPWSTR VolumeName; + LPWSTR Path; +} ADS_PATH, *PADS_PATH; + +typedef struct +{ + DWORD WholeSeconds; + DWORD EventID; +} ADS_TIMESTAMP; + + +typedef ADSTYPEENUM ADSTYPE; +typedef LPWSTR ADS_DN_STRING; +typedef LPWSTR *PADS_DN_STRING; +typedef LPWSTR ADS_CASE_EXACT_STRING; +typedef LPWSTR *PADS_CASE_EXACT_STRING; +typedef LPWSTR ADS_CASE_IGNORE_STRING; +typedef LPWSTR *PADS_CASE_IGNORE_STRING; +typedef LPWSTR ADS_PRINTABLE_STRING; +typedef LPWSTR *PADS_PRINTABLE_STRING; +typedef LPWSTR ADS_NUMERIC_STRING; +typedef LPWSTR *PADS_NUMERIC_STRING; +typedef DWORD ADS_BOOLEAN; +typedef DWORD *LPNDS_BOOLEAN; +typedef DWORD ADS_INTEGER; +typedef DWORD *PADS_INTEGER; +typedef SYSTEMTIME ADS_UTC_TIME; +typedef SYSTEMTIME *PADS_UTC_TIME; +typedef LARGE_INTEGER ADS_LARGE_INTEGER; +typedef LARGE_INTEGER *PADS_LARGE_INTEGER; +typedef LPWSTR ADS_OBJECT_CLASS; +typedef LPWSTR *PADS_OBJECT_CLASS; +typedef struct _ADS_OCTET_LIST *PADS_OCTET_LIST; +typedef struct _ADS_CASEIGNORE_LIST *PADS_CASEIGNORE_LIST; +typedef ADS_STATUSENUM ADS_STATUS; +typedef ADS_SEARCHPREF_ENUM ADS_SEARCHPREF; +typedef HANDLE ADS_SEARCH_HANDLE; +typedef HANDLE *PADS_SEARCH_HANDLE; + + +typedef struct +{ + DWORD dwLength; + BYTE *lpValue; +} ADS_OCTET_STRING; + +typedef struct +{ + DWORD dwLength; + BYTE *lpValue; +} ADS_PROV_SPECIFIC; + +typedef struct +{ + LPWSTR PostalAddress[ 6 ]; +} ADS_POSTALADDRESS, *PADS_POSTALADDRESS; + +typedef struct +{ + LPWSTR ObjectName; + DWORD Level; + DWORD Interval; +} ADS_TYPEDNAME, *PADS_TYPEDNAME; + +typedef struct +{ + DWORD RemoteID; + LPWSTR ObjectName; +} ADS_BACKLINK; + +typedef struct +{ + LPWSTR ObjectName; + DWORD Amount; +} ADS_HOLD; + +typedef struct +{ + DWORD AddressType; + DWORD AddressLength; + BYTE *Address; +} ADS_NETADDRESS, *PADS_NETADDRESS; + +typedef struct +{ + LPWSTR ServerName; + DWORD ReplicaType; + DWORD ReplicaNumber; + DWORD Count; + PADS_NETADDRESS ReplicaAddressHints; +} ADS_REPLICAPOINTER, *PADS_REPLICAPOINTER; + +typedef struct +{ + LPWSTR TelephoneNumber; + DWORD NumberOfBits; + BYTE *Parameters; +} ADS_FAXNUMBER, *PADS_FAXNUMBER; + + +typedef struct +{ + LPWSTR Address; + DWORD Type; +} ADS_EMAIL, *PADS_EMAIL; + +typedef struct +{ + DWORD dwLength; + BYTE *lpValue; +} ADS_NT_SECURITY_DESCRIPTOR; + +typedef struct +{ + DWORD dwLength; + BYTE *lpBinaryValue; + LPWSTR pszDNString; +} ADS_DN_WITH_BINARY, *PADS_DN_WITH_BINARY; + +typedef struct +{ + LPWSTR pszStringValue; + LPWSTR pszDNString; +} ADS_DN_WITH_STRING, *PADS_DN_WITH_STRING; + +typedef struct _adsvalue +{ + ADSTYPE dwType; + union + { + ADS_DN_STRING DNString; + ADS_CASE_EXACT_STRING CaseExactString; + ADS_CASE_IGNORE_STRING CaseIgnoreString; + ADS_PRINTABLE_STRING PrintableString; + ADS_NUMERIC_STRING NumericString; + ADS_BOOLEAN Boolean; + ADS_INTEGER Integer; + ADS_OCTET_STRING OctetString; + ADS_UTC_TIME UTCTime; + ADS_LARGE_INTEGER LargeInteger; + ADS_OBJECT_CLASS ClassName; + ADS_PROV_SPECIFIC ProviderSpecific; + PADS_CASEIGNORE_LIST pCaseIgnoreList; + PADS_OCTET_LIST pOctetList; + PADS_PATH pPath; + PADS_POSTALADDRESS pPostalAddress; + ADS_TIMESTAMP Timestamp; + ADS_BACKLINK BackLink; + PADS_TYPEDNAME pTypedName; + ADS_HOLD Hold; + PADS_NETADDRESS pNetAddress; + PADS_REPLICAPOINTER pReplicaPointer; + PADS_FAXNUMBER pFaxNumber; + ADS_EMAIL Email; + ADS_NT_SECURITY_DESCRIPTOR SecurityDescriptor; + PADS_DN_WITH_BINARY pDNWithBinary; + PADS_DN_WITH_STRING pDNWithString; + }; +} ADSVALUE, *PADSVALUE; + +typedef struct ads_searchpref_info +{ + ADS_SEARCHPREF dwSearchPref; + ADSVALUE vValue; + ADS_STATUS dwStatus; +} ADS_SEARCHPREF_INFO; + +typedef struct ads_search_column +{ + LPWSTR pszAttrName; + ADSTYPE dwADsType; + PADSVALUE pADsValues; + DWORD dwNumValues; + HANDLE hReserved; +} ADS_SEARCH_COLUMN, *PADS_SEARCH_COLUMN; + /***************************************************************************** * IADsContainer interface */ @@ -490,3 +753,27 @@ interface IADsUser : IADs [id(0x00000044)] HRESULT ChangePassword([in] BSTR bstrOldPassword, [in] BSTR bstrNewPassword); }; + +/***************************************************************************** + * IDirectorySearch interface + */ +[ + odl, + local, + uuid(109BA8EC-92F0-11D0-A790-00C04FD8D5A8) +] +interface IDirectorySearch : IUnknown +{ + HRESULT SetSearchPreference([in] PADS_SEARCHPREF_INFO pSearchPrefs, [in] DWORD dwNumPrefs); + HRESULT ExecuteSearch([in] LPWSTR pszSearchFilter, [in] LPWSTR* pAttributeNames, + [in] DWORD dwNumberAttributes, [out] PADS_SEARCH_HANDLE phSearchResult); + HRESULT AbandonSearch([in] ADS_SEARCH_HANDLE phSearchResult); + HRESULT GetFirstRow([in] ADS_SEARCH_HANDLE hSearchResult); + HRESULT GetNextRow([in] ADS_SEARCH_HANDLE hSearchResult); + HRESULT GetPreviousRow([in] ADS_SEARCH_HANDLE hSearchResult); + HRESULT GetNextColumnName([in] ADS_SEARCH_HANDLE hSearchHandle, [out] LPWSTR* ppszColumnName); + HRESULT GetColumn( [in] ADS_SEARCH_HANDLE hSearchResult, [in] LPWSTR szColumnName, + [out] PADS_SEARCH_COLUMN pSearchColumn); + HRESULT FreeColumn([in] PADS_SEARCH_COLUMN pSearchColumn); + HRESULT CloseSearchHandle([in] ADS_SEARCH_HANDLE hSearchResult); +};
1
0
0
0
Austin English : ntdll: Add a stub for RtlConvertToAutoInheritSecurityObject.
by Alexandre Julliard
27 Mar '13
27 Mar '13
Module: wine Branch: master Commit: 56057acdcddd91169c94c996113b9b379ccb58a6 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=56057acdcddd91169c94c9961…
Author: Austin English <austinenglish(a)gmail.com> Date: Tue Mar 26 15:38:08 2013 -0700 ntdll: Add a stub for RtlConvertToAutoInheritSecurityObject. --- dlls/ntdll/ntdll.spec | 2 +- dlls/ntdll/sec.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletions(-) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index b0cb43a..60f70b1 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -463,7 +463,7 @@ # @ stub RtlConvertPropertyToVariant @ stub RtlConvertSharedToExclusive @ stdcall RtlConvertSidToUnicodeString(ptr ptr long) -# @ stub RtlConvertToAutoInheritSecurityObject +@ stdcall RtlConvertToAutoInheritSecurityObject(ptr ptr ptr ptr long ptr) @ stub RtlConvertUiListToApiList @ stdcall -arch=win32 -ret64 RtlConvertUlongToLargeInteger(long) # @ stub RtlConvertVariantToProperty diff --git a/dlls/ntdll/sec.c b/dlls/ntdll/sec.c index 5e27730..b9eeccd 100644 --- a/dlls/ntdll/sec.c +++ b/dlls/ntdll/sec.c @@ -1807,3 +1807,16 @@ NTSTATUS WINAPI RtlQueryInformationAcl( return status; } + +BOOL WINAPI RtlConvertToAutoInheritSecurityObject( + PSECURITY_DESCRIPTOR pdesc, + PSECURITY_DESCRIPTOR cdesc, + PSECURITY_DESCRIPTOR* ndesc, + GUID* objtype, + BOOL isdir, + PGENERIC_MAPPING genmap ) +{ + FIXME("%p %p %p %p %d %p - stub\n", pdesc, cdesc, ndesc, objtype, isdir, genmap); + + return FALSE; +}
1
0
0
0
Jacek Caban : jscript: Use helpers to access string buffer in object.c.
by Alexandre Julliard
27 Mar '13
27 Mar '13
Module: wine Branch: master Commit: b7ffca591d20c839ddc18ba01e352ae4d6fd0774 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=b7ffca591d20c839ddc18ba01…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Mar 27 11:04:09 2013 +0100 jscript: Use helpers to access string buffer in object.c. --- dlls/jscript/object.c | 16 +++++++++++----- 1 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c index 6f597d6..4ad764b 100644 --- a/dlls/jscript/object.c +++ b/dlls/jscript/object.c @@ -130,9 +130,14 @@ static HRESULT Object_hasOwnProperty(script_ctx_t *ctx, vdisp_t *jsthis, WORD fl return hres; if(is_jsdisp(jsthis)) { + const WCHAR *name_str; BOOL result; - hres = jsdisp_is_own_prop(jsthis->u.jsdisp, name->str, &result); + name_str = jsstr_flatten(name); + if(name_str) + hres = jsdisp_is_own_prop(jsthis->u.jsdisp, name_str, &result); + else + hres = E_OUTOFMEMORY; jsstr_release(name); if(FAILED(hres)) return hres; @@ -164,7 +169,8 @@ static HRESULT Object_hasOwnProperty(script_ctx_t *ctx, vdisp_t *jsthis, WORD fl static HRESULT Object_propertyIsEnumerable(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r) { - jsstr_t *name; + const WCHAR *name; + jsstr_t *name_str; BOOL ret; HRESULT hres; @@ -180,12 +186,12 @@ static HRESULT Object_propertyIsEnumerable(script_ctx_t *ctx, vdisp_t *jsthis, W return E_FAIL; } - hres = to_string(ctx, argv[0], &name); + hres = to_flat_string(ctx, argv[0], &name_str, &name); if(FAILED(hres)) return hres; - hres = jsdisp_is_enumerable(jsthis->u.jsdisp, name->str, &ret); - jsstr_release(name); + hres = jsdisp_is_enumerable(jsthis->u.jsdisp, name, &ret); + jsstr_release(name_str); if(FAILED(hres)) return hres;
1
0
0
0
Jacek Caban : jscript: Use helpers to access string buffer in global.c.
by Alexandre Julliard
27 Mar '13
27 Mar '13
Module: wine Branch: master Commit: e67169c114c48c3053798014731541c9746e8cc4 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=e67169c114c48c30537980147…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Mar 27 11:03:44 2013 +0100 jscript: Use helpers to access string buffer in global.c. --- dlls/jscript/global.c | 69 ++++++++++++++++++++++++++---------------------- 1 files changed, 37 insertions(+), 32 deletions(-) diff --git a/dlls/jscript/global.c b/dlls/jscript/global.c index 093b1dd..0c0aa29 100644 --- a/dlls/jscript/global.c +++ b/dlls/jscript/global.c @@ -278,7 +278,7 @@ static HRESULT JSGlobal_escape(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, u jsval_t *r) { jsstr_t *ret_str, *str; - const WCHAR *ptr; + const WCHAR *ptr, *buf; DWORD len = 0; WCHAR *ret; HRESULT hres; @@ -291,11 +291,11 @@ static HRESULT JSGlobal_escape(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, u return S_OK; } - hres = to_string(ctx, argv[0], &str); + hres = to_flat_string(ctx, argv[0], &str, &buf); if(FAILED(hres)) return hres; - for(ptr = str->str; *ptr; ptr++) { + for(ptr = buf; *ptr; ptr++) { if(*ptr > 0xff) len += 6; else if(is_ecma_nonblank(*ptr)) @@ -311,7 +311,7 @@ static HRESULT JSGlobal_escape(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, u } len = 0; - for(ptr = str->str; *ptr; ptr++) { + for(ptr = buf; *ptr; ptr++) { if(*ptr > 0xff) { ret[len++] = '%'; ret[len++] = 'u'; @@ -343,6 +343,7 @@ static HRESULT JSGlobal_eval(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, uns jsval_t *r) { bytecode_t *code; + const WCHAR *src; HRESULT hres; TRACE("\n"); @@ -364,8 +365,12 @@ static HRESULT JSGlobal_eval(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, uns return E_UNEXPECTED; } + src = jsstr_flatten(get_string(argv[0])); + if(!src) + return E_OUTOFMEMORY; + TRACE("parsing %s\n", debugstr_jsval(argv[0])); - hres = compile_script(ctx, get_string(argv[0])->str, NULL, NULL, TRUE, FALSE, &code); + hres = compile_script(ctx, src, NULL, NULL, TRUE, FALSE, &code); if(FAILED(hres)) { WARN("parse (%s) failed: %08x\n", debugstr_jsval(argv[0]), hres); return throw_syntax_error(ctx, hres, NULL); @@ -438,10 +443,10 @@ static HRESULT JSGlobal_parseInt(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, jsval_t *r) { BOOL neg = FALSE, empty = TRUE; + const WCHAR *ptr; DOUBLE ret = 0.0; INT radix=0, i; jsstr_t *str; - WCHAR *ptr; HRESULT hres; if(!argc) { @@ -463,11 +468,12 @@ static HRESULT JSGlobal_parseInt(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, } } - hres = to_string(ctx, argv[0], &str); + hres = to_flat_string(ctx, argv[0], &str, &ptr); if(FAILED(hres)) return hres; - for(ptr = str->str; isspaceW(*ptr); ptr++); + while(isspaceW(*ptr)) + ptr++; switch(*ptr) { case '+': @@ -520,7 +526,7 @@ static HRESULT JSGlobal_parseFloat(script_ctx_t *ctx, vdisp_t *jsthis, WORD flag LONGLONG d = 0, hlp; jsstr_t *val_str; int exp = 0; - WCHAR *str; + const WCHAR *str; BOOL ret_nan = TRUE, positive = TRUE; HRESULT hres; @@ -530,12 +536,10 @@ static HRESULT JSGlobal_parseFloat(script_ctx_t *ctx, vdisp_t *jsthis, WORD flag return S_OK; } - hres = to_string(ctx, argv[0], &val_str); + hres = to_flat_string(ctx, argv[0], &val_str, &str); if(FAILED(hres)) return hres; - str = val_str->str; - while(isspaceW(*str)) str++; if(*str == '+') @@ -625,7 +629,7 @@ static HRESULT JSGlobal_unescape(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, jsval_t *r) { jsstr_t *ret_str, *str; - const WCHAR *ptr; + const WCHAR *ptr, *buf; DWORD len = 0; WCHAR *ret; HRESULT hres; @@ -638,11 +642,11 @@ static HRESULT JSGlobal_unescape(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, return S_OK; } - hres = to_string(ctx, argv[0], &str); + hres = to_flat_string(ctx, argv[0], &str, &buf); if(FAILED(hres)) return hres; - for(ptr = str->str; *ptr; ptr++) { + for(ptr = buf; *ptr; ptr++) { if(*ptr == '%') { if(hex_to_int(*(ptr+1))!=-1 && hex_to_int(*(ptr+2))!=-1) ptr += 2; @@ -661,7 +665,7 @@ static HRESULT JSGlobal_unescape(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, } len = 0; - for(ptr = str->str; *ptr; ptr++) { + for(ptr = buf; *ptr; ptr++) { if(*ptr == '%') { if(hex_to_int(*(ptr+1))!=-1 && hex_to_int(*(ptr+2))!=-1) { ret[len] = (hex_to_int(*(ptr+1))<<4) + hex_to_int(*(ptr+2)); @@ -758,8 +762,8 @@ static HRESULT JSGlobal_CollectGarbage(script_ctx_t *ctx, vdisp_t *jsthis, WORD static HRESULT JSGlobal_encodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r) { + const WCHAR *ptr, *uri; jsstr_t *str, *ret; - const WCHAR *ptr; DWORD len = 0, i; char buf[4]; WCHAR *rptr; @@ -773,11 +777,11 @@ static HRESULT JSGlobal_encodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags return S_OK; } - hres = to_string(ctx, argv[0], &str); + hres = to_flat_string(ctx, argv[0], &str, &uri); if(FAILED(hres)) return hres; - for(ptr = str->str; *ptr; ptr++) { + for(ptr = uri; *ptr; ptr++) { if(is_uri_unescaped(*ptr) || is_uri_reserved(*ptr) || *ptr == '#') { len++; }else { @@ -797,7 +801,7 @@ static HRESULT JSGlobal_encodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags return E_OUTOFMEMORY; } - for(ptr = str->str; *ptr; ptr++) { + for(ptr = uri; *ptr; ptr++) { if(is_uri_unescaped(*ptr) || is_uri_reserved(*ptr) || *ptr == '#') { *rptr++ = *ptr; }else { @@ -823,10 +827,11 @@ static HRESULT JSGlobal_encodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags static HRESULT JSGlobal_decodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r) { + const WCHAR *ptr, *uri; jsstr_t *str, *ret_str; unsigned len = 0; - WCHAR *ptr, *ret; int i, val, res; + WCHAR *ret; char buf[4]; WCHAR out; HRESULT hres; @@ -839,11 +844,11 @@ static HRESULT JSGlobal_decodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags return S_OK; } - hres = to_string(ctx, argv[0], &str); + hres = to_flat_string(ctx, argv[0], &str, &uri); if(FAILED(hres)) return hres; - for(ptr = str->str; *ptr; ptr++) { + for(ptr = uri; *ptr; ptr++) { if(*ptr != '%') { len++; }else { @@ -875,7 +880,7 @@ static HRESULT JSGlobal_decodeURI(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags return E_OUTOFMEMORY; } - for(ptr = str->str; *ptr; ptr++) { + for(ptr = uri; *ptr; ptr++) { if(*ptr != '%') { *ret++ = *ptr; }else { @@ -910,7 +915,7 @@ static HRESULT JSGlobal_encodeURIComponent(script_ctx_t *ctx, vdisp_t *jsthis, W { jsstr_t *str, *ret_str; char buf[4]; - const WCHAR *ptr; + const WCHAR *ptr, *uri; DWORD len = 0, size, i; WCHAR *ret; HRESULT hres; @@ -923,11 +928,11 @@ static HRESULT JSGlobal_encodeURIComponent(script_ctx_t *ctx, vdisp_t *jsthis, W return S_OK; } - hres = to_string(ctx, argv[0], &str); + hres = to_flat_string(ctx, argv[0], &str, &uri); if(FAILED(hres)) return hres; - for(ptr = str->str; *ptr; ptr++) { + for(ptr = uri; *ptr; ptr++) { if(is_uri_unescaped(*ptr)) len++; else { @@ -946,7 +951,7 @@ static HRESULT JSGlobal_encodeURIComponent(script_ctx_t *ctx, vdisp_t *jsthis, W return E_OUTOFMEMORY; } - for(ptr = str->str; *ptr; ptr++) { + for(ptr = uri; *ptr; ptr++) { if(is_uri_unescaped(*ptr)) { *ret++ = *ptr; }else { @@ -972,8 +977,8 @@ static HRESULT JSGlobal_encodeURIComponent(script_ctx_t *ctx, vdisp_t *jsthis, W static HRESULT JSGlobal_decodeURIComponent(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r) { + const WCHAR *ptr, *uri; jsstr_t *str, *ret; - const WCHAR *ptr; WCHAR *out_ptr; DWORD len = 0; HRESULT hres; @@ -986,11 +991,11 @@ static HRESULT JSGlobal_decodeURIComponent(script_ctx_t *ctx, vdisp_t *jsthis, W return S_OK; } - hres = to_string(ctx, argv[0], &str); + hres = to_flat_string(ctx, argv[0], &str, &uri); if(FAILED(hres)) return hres; - ptr = str->str; + ptr = uri; while(*ptr) { if(*ptr == '%') { char octets[4]; @@ -1046,7 +1051,7 @@ static HRESULT JSGlobal_decodeURIComponent(script_ctx_t *ctx, vdisp_t *jsthis, W return E_OUTOFMEMORY; } - ptr = str->str; + ptr = uri; while(*ptr) { if(*ptr == '%') { char octets[4];
1
0
0
0
Jacek Caban : jscript: Use helpers to access string buffer in engine.c.
by Alexandre Julliard
27 Mar '13
27 Mar '13
Module: wine Branch: master Commit: 20530c55b81304523bf9482c300460f339c0e498 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=20530c55b81304523bf9482c3…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Mar 27 11:02:42 2013 +0100 jscript: Use helpers to access string buffer in engine.c. --- dlls/jscript/engine.c | 35 ++++++++++++++++++++--------------- 1 files changed, 20 insertions(+), 15 deletions(-) diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c index a8a9aea..a84faec 100644 --- a/dlls/jscript/engine.c +++ b/dlls/jscript/engine.c @@ -346,7 +346,7 @@ void exec_release(exec_ctx_t *ctx) heap_free(ctx); } -static HRESULT disp_get_id(script_ctx_t *ctx, IDispatch *disp, WCHAR *name, BSTR name_bstr, DWORD flags, DISPID *id) +static HRESULT disp_get_id(script_ctx_t *ctx, IDispatch *disp, const WCHAR *name, BSTR name_bstr, DWORD flags, DISPID *id) { IDispatchEx *dispex; jsdisp_t *jsdisp; @@ -375,7 +375,7 @@ static HRESULT disp_get_id(script_ctx_t *ctx, IDispatch *disp, WCHAR *name, BSTR IDispatchEx_Release(dispex); }else { TRACE("using IDispatch\n"); - hres = IDispatch_GetIDsOfNames(disp, &IID_NULL, &name, 1, 0, id); + hres = IDispatch_GetIDsOfNames(disp, &IID_NULL, &bstr, 1, 0, id); } if(name_bstr != bstr) @@ -729,10 +729,12 @@ static HRESULT interp_throw_type(exec_ctx_t *ctx) { const HRESULT hres = get_op_uint(ctx, 0); jsstr_t *str = get_op_str(ctx, 1); + const WCHAR *ptr; TRACE("%08x %s\n", hres, debugstr_jsstr(str)); - return throw_type_error(ctx->script, hres, str->str); + ptr = jsstr_flatten(str); + return ptr ? throw_type_error(ctx->script, hres, ptr) : E_OUTOFMEMORY; } /* ECMA-262 3rd Edition 12.14 */ @@ -828,9 +830,10 @@ static HRESULT interp_func(exec_ctx_t *ctx) /* ECMA-262 3rd Edition 11.2.1 */ static HRESULT interp_array(exec_ctx_t *ctx) { + jsstr_t *name_str; + const WCHAR *name; jsval_t v, namev; IDispatch *obj; - jsstr_t *name; DISPID id; HRESULT hres; @@ -844,15 +847,15 @@ static HRESULT interp_array(exec_ctx_t *ctx) return hres; } - hres = to_string(ctx->script, namev, &name); + hres = to_flat_string(ctx->script, namev, &name_str, &name); jsval_release(namev); if(FAILED(hres)) { IDispatch_Release(obj); return hres; } - hres = disp_get_id(ctx->script, obj, name->str, NULL, 0, &id); - jsstr_release(name); + hres = disp_get_id(ctx->script, obj, name, NULL, 0, &id); + jsstr_release(name_str); if(SUCCEEDED(hres)) { hres = disp_propget(ctx->script, obj, id, &v); }else if(hres == DISP_E_UNKNOWNNAME) { @@ -900,8 +903,9 @@ static HRESULT interp_memberid(exec_ctx_t *ctx) { const unsigned arg = get_op_uint(ctx, 0); jsval_t objv, namev; + const WCHAR *name; + jsstr_t *name_str; IDispatch *obj; - jsstr_t *name; DISPID id; HRESULT hres; @@ -913,7 +917,7 @@ static HRESULT interp_memberid(exec_ctx_t *ctx) hres = to_object(ctx->script, objv, &obj); jsval_release(objv); if(SUCCEEDED(hres)) { - hres = to_string(ctx->script, namev, &name); + hres = to_flat_string(ctx->script, namev, &name_str, &name); if(FAILED(hres)) IDispatch_Release(obj); } @@ -921,8 +925,8 @@ static HRESULT interp_memberid(exec_ctx_t *ctx) if(FAILED(hres)) return hres; - hres = disp_get_id(ctx->script, obj, name->str, NULL, arg, &id); - jsstr_release(name); + hres = disp_get_id(ctx->script, obj, name, NULL, arg, &id); + jsstr_release(name_str); if(FAILED(hres)) { IDispatch_Release(obj); if(hres == DISP_E_UNKNOWNNAME && !(arg & fdexNameEnsure)) { @@ -1392,10 +1396,11 @@ static HRESULT interp_instanceof(exec_ctx_t *ctx) /* ECMA-262 3rd Edition 11.8.7 */ static HRESULT interp_in(exec_ctx_t *ctx) { + const WCHAR *str; + jsstr_t *jsstr; jsval_t obj, v; DISPID id = 0; BOOL ret; - jsstr_t *str; HRESULT hres; TRACE("\n"); @@ -1407,16 +1412,16 @@ static HRESULT interp_in(exec_ctx_t *ctx) } v = stack_pop(ctx); - hres = to_string(ctx->script, v, &str); + hres = to_flat_string(ctx->script, v, &jsstr, &str); jsval_release(v); if(FAILED(hres)) { IDispatch_Release(get_object(obj)); return hres; } - hres = disp_get_id(ctx->script, get_object(obj), str->str, NULL, 0, &id); + hres = disp_get_id(ctx->script, get_object(obj), str, NULL, 0, &id); IDispatch_Release(get_object(obj)); - jsstr_release(str); + jsstr_release(jsstr); if(SUCCEEDED(hres)) ret = TRUE; else if(hres == DISP_E_UNKNOWNNAME)
1
0
0
0
Jacek Caban : jscript: Use to_flat_string to access string buffer in array. c.
by Alexandre Julliard
27 Mar '13
27 Mar '13
Module: wine Branch: master Commit: ecdf62d3244baf464765ded17565d3ec6409e842 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=ecdf62d3244baf464765ded17…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Mar 27 11:01:59 2013 +0100 jscript: Use to_flat_string to access string buffer in array.c. --- dlls/jscript/array.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/dlls/jscript/array.c b/dlls/jscript/array.c index 49a39dd..c98f4fe 100644 --- a/dlls/jscript/array.c +++ b/dlls/jscript/array.c @@ -337,15 +337,16 @@ static HRESULT Array_join(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsigne return hres; if(argc) { - jsstr_t *sep; + const WCHAR *sep; + jsstr_t *sep_str; - hres = to_string(ctx, argv[0], &sep); + hres = to_flat_string(ctx, argv[0], &sep_str, &sep); if(FAILED(hres)) return hres; - hres = array_join(ctx, jsthis, length, sep->str, r); + hres = array_join(ctx, jsthis, length, sep, r); - jsstr_release(sep); + jsstr_release(sep_str); }else { hres = array_join(ctx, jsthis, length, default_separatorW, r); }
1
0
0
0
Jacek Caban : jscript: Added to_flat_string helper and use it to access string buffer in activex. c.
by Alexandre Julliard
27 Mar '13
27 Mar '13
Module: wine Branch: master Commit: 3bf7255d2335dfe49359a7b17c551149a55c513f URL:
http://source.winehq.org/git/wine.git/?a=commit;h=3bf7255d2335dfe49359a7b17…
Author: Jacek Caban <jacek(a)codeweavers.com> Date: Wed Mar 27 11:01:43 2013 +0100 jscript: Added to_flat_string helper and use it to access string buffer in activex.c. --- dlls/jscript/activex.c | 9 +++++---- dlls/jscript/jscript.h | 1 + dlls/jscript/jsutils.c | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/dlls/jscript/activex.c b/dlls/jscript/activex.c index 58c2574..c7d9a66 100644 --- a/dlls/jscript/activex.c +++ b/dlls/jscript/activex.c @@ -143,7 +143,8 @@ static IUnknown *create_activex_object(script_ctx_t *ctx, const WCHAR *progid) static HRESULT ActiveXObject_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv, jsval_t *r) { - jsstr_t * progid; + jsstr_t * progid_str; + const WCHAR *progid; IDispatch *disp; IUnknown *obj; HRESULT hres; @@ -166,12 +167,12 @@ static HRESULT ActiveXObject_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flag return E_NOTIMPL; } - hres = to_string(ctx, argv[0], &progid); + hres = to_flat_string(ctx, argv[0], &progid_str, &progid); if(FAILED(hres)) return hres; - obj = create_activex_object(ctx, progid->str); - jsstr_release(progid); + obj = create_activex_object(ctx, progid); + jsstr_release(progid_str); if(!obj) return throw_generic_error(ctx, JS_E_CANNOT_CREATE_OBJ, NULL); diff --git a/dlls/jscript/jscript.h b/dlls/jscript/jscript.h index 135b77f..aed2585 100644 --- a/dlls/jscript/jscript.h +++ b/dlls/jscript/jscript.h @@ -322,6 +322,7 @@ HRESULT to_integer(script_ctx_t*,jsval_t,double*) DECLSPEC_HIDDEN; HRESULT to_int32(script_ctx_t*,jsval_t,INT*) DECLSPEC_HIDDEN; HRESULT to_uint32(script_ctx_t*,jsval_t,UINT32*) DECLSPEC_HIDDEN; HRESULT to_string(script_ctx_t*,jsval_t,jsstr_t**) DECLSPEC_HIDDEN; +HRESULT to_flat_string(script_ctx_t*,jsval_t,jsstr_t**,const WCHAR**) DECLSPEC_HIDDEN; HRESULT to_object(script_ctx_t*,jsval_t,IDispatch**) DECLSPEC_HIDDEN; HRESULT variant_change_type(script_ctx_t*,VARIANT*,VARIANT*,VARTYPE) DECLSPEC_HIDDEN; diff --git a/dlls/jscript/jsutils.c b/dlls/jscript/jsutils.c index d141378..60ca474 100644 --- a/dlls/jscript/jsutils.c +++ b/dlls/jscript/jsutils.c @@ -776,6 +776,23 @@ HRESULT to_string(script_ctx_t *ctx, jsval_t val, jsstr_t **str) return *str ? S_OK : E_OUTOFMEMORY; } +HRESULT to_flat_string(script_ctx_t *ctx, jsval_t val, jsstr_t **str, const WCHAR **ret_str) +{ + HRESULT hres; + + hres = to_string(ctx, val, str); + if(FAILED(hres)) + return hres; + + *ret_str = jsstr_flatten(*str); + if(!*ret_str) { + jsstr_release(*str); + return E_OUTOFMEMORY; + } + + return S_OK; +} + /* ECMA-262 3rd Edition 9.9 */ HRESULT to_object(script_ctx_t *ctx, jsval_t val, IDispatch **disp) {
1
0
0
0
Piotr Caban : msvcrt: Added _set_output_format tests.
by Alexandre Julliard
27 Mar '13
27 Mar '13
Module: wine Branch: master Commit: 343122a494b66ad5b58b6f064604a405b36334d3 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=343122a494b66ad5b58b6f064…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Wed Mar 27 10:39:42 2013 +0100 msvcrt: Added _set_output_format tests. --- dlls/msvcrt/tests/printf.c | 25 +++++++++++++++++++++++-- 1 files changed, 23 insertions(+), 2 deletions(-) diff --git a/dlls/msvcrt/tests/printf.c b/dlls/msvcrt/tests/printf.c index 0d4a241..e61ca5f 100644 --- a/dlls/msvcrt/tests/printf.c +++ b/dlls/msvcrt/tests/printf.c @@ -44,6 +44,7 @@ static int (__cdecl *p__ecvt_s)(char *buffer, size_t length, double number, static int (__cdecl *p__fcvt_s)(char *buffer, size_t length, double number, int ndigits, int *decpt, int *sign); static unsigned int (__cdecl *p__get_output_format)(void); +static unsigned int (__cdecl *p__set_output_format)(unsigned int); static int (__cdecl *p__vsprintf_p)(char*, size_t, const char*, __ms_va_list); static int (__cdecl *p_vswprintf)(wchar_t *str, const wchar_t *format, __ms_va_list valist); static int (__cdecl *p__vswprintf)(wchar_t *str, const wchar_t *format, __ms_va_list valist); @@ -66,6 +67,7 @@ static void init( void ) p__ecvt_s = (void *)GetProcAddress(hmod, "_ecvt_s"); p__fcvt_s = (void *)GetProcAddress(hmod, "_fcvt_s"); p__get_output_format = (void *)GetProcAddress(hmod, "_get_output_format"); + p__set_output_format = (void *)GetProcAddress(hmod, "_set_output_format"); p__vsprintf_p = (void*)GetProcAddress(hmod, "_vsprintf_p"); p_vswprintf = (void*)GetProcAddress(hmod, "vswprintf"); p__vswprintf = (void*)GetProcAddress(hmod, "_vswprintf"); @@ -1316,15 +1318,34 @@ static void test_vsprintf_p(void) static void test__get_output_format(void) { unsigned int ret; + char buf[64]; + int c; - if (!p__get_output_format) + if (!p__get_output_format || !p__set_output_format) { - win_skip("_get_output_format not available\n"); + win_skip("_get_output_format or _set_output_format is not available\n"); return; } ret = p__get_output_format(); ok(ret == 0, "got %d\n", ret); + + c = sprintf(buf, "%E", 1.23); + ok(c == 13, "c = %d\n", c); + ok(!strcmp(buf, "1.230000E+000"), "buf = %s\n", buf); + + ret = p__set_output_format(_TWO_DIGIT_EXPONENT); + ok(ret == 0, "got %d\n", ret); + + c = sprintf(buf, "%E", 1.23); + ok(c == 12, "c = %d\n", c); + ok(!strcmp(buf, "1.230000E+00"), "buf = %s\n", buf); + + ret = p__get_output_format(); + ok(ret == _TWO_DIGIT_EXPONENT, "got %d\n", ret); + + ret = p__set_output_format(_TWO_DIGIT_EXPONENT); + ok(ret == _TWO_DIGIT_EXPONENT, "got %d\n", ret); } START_TEST(printf)
1
0
0
0
← Newer
1
...
6
7
8
9
10
11
12
...
54
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
Results per page:
10
25
50
100
200