winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
November 2017
----- 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
436 discussions
Start a n
N
ew thread
Nikolay Sivov : gdiplus/metafile: Support linear gradient brushes in playback.
by Alexandre Julliard
08 Nov '17
08 Nov '17
Module: wine Branch: master Commit: 394e15e39cda76984849c9582757c375fa06adbe URL:
http://source.winehq.org/git/wine.git/?a=commit;h=394e15e39cda76984849c9582…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Wed Nov 8 13:12:44 2017 +0300 gdiplus/metafile: Support linear gradient brushes in playback. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Vincent Povirk <vincent(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/gdiplus/metafile.c | 110 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 99 insertions(+), 11 deletions(-) diff --git a/dlls/gdiplus/metafile.c b/dlls/gdiplus/metafile.c index d764412..77673a7 100644 --- a/dlls/gdiplus/metafile.c +++ b/dlls/gdiplus/metafile.c @@ -256,6 +256,26 @@ typedef struct EmfPlusTextureBrushData BYTE OptionalData[1]; } EmfPlusTextureBrushData; +typedef struct EmfPlusRectF +{ + float X; + float Y; + float Width; + float Height; +} EmfPlusRectF; + +typedef struct EmfPlusLinearGradientBrushData +{ + DWORD BrushDataFlags; + INT WrapMode; + EmfPlusRectF RectF; + EmfPlusARGB StartColor; + EmfPlusARGB EndColor; + DWORD Reserved1; + DWORD Reserved2; + BYTE OptionalData[1]; +} EmfPlusLinearGradientBrushData; + typedef struct EmfPlusBrush { DWORD Version; @@ -264,6 +284,7 @@ typedef struct EmfPlusBrush EmfPlusSolidBrushData solid; EmfPlusHatchBrushData hatch; EmfPlusTextureBrushData texture; + EmfPlusLinearGradientBrushData lineargradient; } BrushData; } EmfPlusBrush; @@ -372,14 +393,6 @@ typedef struct EmfPlusObject } ObjectData; } EmfPlusObject; -typedef struct EmfPlusRectF -{ - float X; - float Y; - float Width; - float Height; -} EmfPlusRectF; - typedef struct EmfPlusPointR7 { BYTE X; @@ -2011,7 +2024,10 @@ static GpStatus metafile_deserialize_brush(const BYTE *record_data, UINT data_si { static const UINT header_size = FIELD_OFFSET(EmfPlusBrush, BrushData); EmfPlusBrush *data = (EmfPlusBrush *)record_data; + EmfPlusTransformMatrix *transform = NULL; + DWORD brushflags; GpStatus status; + UINT offset; *brush = NULL; @@ -2035,11 +2051,9 @@ static GpStatus metafile_deserialize_brush(const BYTE *record_data, UINT data_si break; case BrushTypeTextureFill: { - UINT offset = header_size + FIELD_OFFSET(EmfPlusTextureBrushData, OptionalData); - EmfPlusTransformMatrix *transform = NULL; - DWORD brushflags; GpImage *image; + offset = header_size + FIELD_OFFSET(EmfPlusTextureBrushData, OptionalData); if (data_size <= offset) return InvalidParameter; @@ -2063,6 +2077,80 @@ static GpStatus metafile_deserialize_brush(const BYTE *record_data, UINT data_si GdipDisposeImage(image); break; } + case BrushTypeLinearGradient: + { + GpLineGradient *gradient = NULL; + GpPointF startpoint, endpoint; + UINT position_count = 0; + + offset = header_size + FIELD_OFFSET(EmfPlusLinearGradientBrushData, OptionalData); + if (data_size <= offset) + return InvalidParameter; + + brushflags = data->BrushData.lineargradient.BrushDataFlags; + if ((brushflags & BrushDataPresetColors) && (brushflags & (BrushDataBlendFactorsH | BrushDataBlendFactorsV))) + return InvalidParameter; + + if (brushflags & BrushDataTransform) + { + if (data_size <= offset + sizeof(EmfPlusTransformMatrix)) + return InvalidParameter; + transform = (EmfPlusTransformMatrix *)(record_data + offset); + offset += sizeof(EmfPlusTransformMatrix); + } + + if (brushflags & (BrushDataPresetColors | BrushDataBlendFactorsH | BrushDataBlendFactorsV)) + { + if (data_size <= offset + sizeof(DWORD)) /* Number of factors/preset colors. */ + return InvalidParameter; + position_count = *(DWORD *)(record_data + offset); + offset += sizeof(DWORD); + } + + if (brushflags & BrushDataPresetColors) + { + if (data_size != offset + position_count * (sizeof(float) + sizeof(EmfPlusARGB))) + return InvalidParameter; + } + else if (brushflags & BrushDataBlendFactorsH) + { + if (data_size != offset + position_count * 2 * sizeof(float)) + return InvalidParameter; + } + + startpoint.X = data->BrushData.lineargradient.RectF.X; + startpoint.Y = data->BrushData.lineargradient.RectF.Y; + endpoint.X = startpoint.X + data->BrushData.lineargradient.RectF.Width; + endpoint.Y = startpoint.Y + data->BrushData.lineargradient.RectF.Height; + + status = GdipCreateLineBrush(&startpoint, &endpoint, data->BrushData.lineargradient.StartColor, + data->BrushData.lineargradient.EndColor, data->BrushData.lineargradient.WrapMode, &gradient); + if (status == Ok) + { + if (transform) + status = GdipSetLineTransform(gradient, (const GpMatrix *)transform); + + if (status == Ok) + { + if (brushflags & BrushDataPresetColors) + status = GdipSetLinePresetBlend(gradient, (ARGB *)(record_data + offset + + position_count * sizeof(REAL)), (REAL *)(record_data + offset), position_count); + else if (brushflags & BrushDataBlendFactorsH) + status = GdipSetLineBlend(gradient, (REAL *)(record_data + offset + position_count * sizeof(REAL)), + (REAL *)(record_data + offset), position_count); + + if (brushflags & BrushDataIsGammaCorrected) + FIXME("BrushDataIsGammaCorrected is not handled.\n"); + } + } + + if (status == Ok) + *brush = (GpBrush *)gradient; + else + GdipDeleteBrush((GpBrush *)gradient); + + break; + } default: FIXME("brush type %u is not supported.\n", data->Type); return NotImplemented;
1
0
0
0
Nikolay Sivov : msvcrt: Implement _memicmp_l().
by Alexandre Julliard
08 Nov '17
08 Nov '17
Module: wine Branch: master Commit: d045a5ea29aada4182689cd80f4b57a694322b42 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=d045a5ea29aada4182689cd80…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Wed Nov 8 10:26:16 2017 +0100 msvcrt: Implement _memicmp_l(). Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- .../api-ms-win-crt-string-l1-1-0.spec | 2 +- dlls/msvcr100/msvcr100.spec | 4 +- dlls/msvcr100/tests/msvcr100.c | 87 +++++++++++++ dlls/msvcr110/msvcr110.spec | 4 +- dlls/msvcr120/msvcr120.spec | 4 +- dlls/msvcr120_app/msvcr120_app.spec | 2 +- dlls/msvcr70/msvcr70.spec | 2 +- dlls/msvcr71/msvcr71.spec | 2 +- dlls/msvcr80/msvcr80.spec | 4 +- dlls/msvcr90/msvcr90.spec | 4 +- dlls/msvcr90/tests/msvcr90.c | 69 +++++++++++ dlls/msvcrt/msvcrt.spec | 4 +- dlls/msvcrt/string.c | 34 ++++++ dlls/msvcrt/tests/string.c | 84 +++++++++++++ dlls/ucrtbase/tests/string.c | 134 ++++++++++++++++++++- dlls/ucrtbase/ucrtbase.spec | 4 +- 16 files changed, 425 insertions(+), 19 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=d045a5ea29aada4182689…
1
0
0
0
Vijay Kiran Kamuju : msvcp100: Add time_get:: get function with format parameters.
by Alexandre Julliard
08 Nov '17
08 Nov '17
Module: wine Branch: master Commit: f94f1695184b8b51a8c5c2e10af03284cceafb13 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=f94f1695184b8b51a8c5c2e10…
Author: Vijay Kiran Kamuju <infyquest(a)gmail.com> Date: Wed Nov 8 10:01:33 2017 +0100 msvcp100: Add time_get::get function with format parameters. Signed-off-by: Vijay Kiran Kamuju <infyquest(a)gmail.com> Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcp100/msvcp100.spec | 4 ++-- dlls/msvcp110/msvcp110.spec | 8 ++++---- dlls/msvcp120/msvcp120.spec | 8 ++++---- dlls/msvcp120_app/msvcp120_app.spec | 8 ++++---- dlls/msvcp140/msvcp140.spec | 8 ++++---- dlls/msvcp90/locale.c | 11 +++++++++++ 6 files changed, 29 insertions(+), 18 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=f94f1695184b8b51a8c5c…
1
0
0
0
Aurimas Fišeras : po: Update Lithuanian translation.
by Alexandre Julliard
08 Nov '17
08 Nov '17
Module: wine Branch: master Commit: babc2951a0f73f5569fd30240ab646d617d8456b URL:
http://source.winehq.org/git/wine.git/?a=commit;h=babc2951a0f73f5569fd30240…
Author: Aurimas Fišeras <aurimas(a)members.fsf.org> Date: Wed Nov 8 09:01:48 2017 +0200 po: Update Lithuanian translation. Signed-off-by: Aurimas Fišeras <aurimas(a)members.fsf.org> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- po/lt.po | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/po/lt.po b/po/lt.po index 4c400ac..583287d 100644 --- a/po/lt.po +++ b/po/lt.po @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: Wine\n" "Report-Msgid-Bugs-To:
http://bugs.winehq.org\n
" "POT-Creation-Date: N/A\n" -"PO-Revision-Date: 2017-08-20 08:43+0300\n" +"PO-Revision-Date: 2017-11-08 09:01+0300\n" "Last-Translator: Aurimas Fišeras <aurimas(a)members.fsf.org>\n" "Language-Team: Lithuanian <komp_lt(a)konf.lt>\n" "Language: lt\n" @@ -14912,10 +14912,8 @@ msgid "Expert" msgstr "Ekspertas" #: winemine.rc:72 -#, fuzzy -#| msgid "Result" msgid "Reset Results" -msgstr "Rezultatas" +msgstr "Išvalyti rezultatus" #: winemine.rc:78 msgid "Congratulations!"
1
0
0
0
Alistair Leslie-Hughes : oledb32: DataConvert support DBTYPE_VARIANT -> DBTYPE_R4.
by Alexandre Julliard
08 Nov '17
08 Nov '17
Module: wine Branch: master Commit: 4a5759dcc21ceff27c94b246c561b3d25f0e7784 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=4a5759dcc21ceff27c94b246c…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Tue Nov 7 23:11:03 2017 +0000 oledb32: DataConvert support DBTYPE_VARIANT -> DBTYPE_R4. Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/oledb32/convert.c | 5 +++++ dlls/oledb32/tests/convert.c | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/dlls/oledb32/convert.c b/dlls/oledb32/convert.c index 7fa4c81..267de1b 100644 --- a/dlls/oledb32/convert.c +++ b/dlls/oledb32/convert.c @@ -343,6 +343,11 @@ static HRESULT WINAPI convert_DataConvert(IDataConvert* iface, case DBTYPE_UI4: hr = VarR4FromUI4(*(DWORD*)src, d); break; case DBTYPE_I8: hr = VarR4FromI8(*(LONGLONG*)src, d); break; case DBTYPE_UI8: hr = VarR4FromUI8(*(ULONGLONG*)src, d); break; + case DBTYPE_VARIANT: + VariantInit(&tmp); + if ((hr = VariantChangeType(&tmp, (VARIANT*)src, 0, VT_R4)) == S_OK) + *d = V_R4(&tmp); + break; default: FIXME("Unimplemented conversion %04x -> R4\n", src_type); return E_NOTIMPL; } break; diff --git a/dlls/oledb32/tests/convert.c b/dlls/oledb32/tests/convert.c index 708471b..b45775f 100644 --- a/dlls/oledb32/tests/convert.c +++ b/dlls/oledb32/tests/convert.c @@ -2580,6 +2580,15 @@ static void test_converttor4(void) ok(hr == S_OK, "got %08x\n", hr); ok(dst_status == DBSTATUS_S_ISNULL, "got %08x\n", dst_status); ok(dst_len == 44, "got %ld\n", dst_len); + + dst_len = dst = 0x1234; + V_VT(&v) = VT_I2; + V_I2(&v) = 0x4321; + hr = IDataConvert_DataConvert(convert, DBTYPE_VARIANT, DBTYPE_R4, 0, &dst_len, &v, &dst, sizeof(dst), 0, &dst_status, 0, 0, 0); + ok(hr == S_OK, "got %08x\n", hr); + ok(dst_status == DBSTATUS_S_OK, "got %08x\n", dst_status); + ok(dst_len == sizeof(dst), "got %ld\n", dst_len); + ok(dst == 0x4321, "got %f\n", dst); } static void test_converttor8(void)
1
0
0
0
Alistair Leslie-Hughes : oledb32: Fix typo.
by Alexandre Julliard
08 Nov '17
08 Nov '17
Module: wine Branch: master Commit: 7563a497214796be079416fad92614ce040ed957 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=7563a497214796be079416fad…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Tue Nov 7 23:11:05 2017 +0000 oledb32: Fix typo. Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/oledb32/tests/convert.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/oledb32/tests/convert.c b/dlls/oledb32/tests/convert.c index b45775f..1d55e7f 100644 --- a/dlls/oledb32/tests/convert.c +++ b/dlls/oledb32/tests/convert.c @@ -2645,7 +2645,7 @@ static void test_converttor8(void) dst_len = 44; V_VT(&var) = VT_NULL; - hr = IDataConvert_DataConvert(convert, DBTYPE_VARIANT, DBTYPE_R4, 0, &dst_len, &var, &dst, sizeof(dst), 0, &dst_status, 0, 0, 0); + hr = IDataConvert_DataConvert(convert, DBTYPE_VARIANT, DBTYPE_R8, 0, &dst_len, &var, &dst, sizeof(dst), 0, &dst_status, 0, 0, 0); ok(hr == S_OK, "got %08x\n", hr); ok(dst_status == DBSTATUS_S_ISNULL, "got %08x\n", dst_status); ok(dst_len == 44, "got %ld\n", dst_len);
1
0
0
0
Alexandre Julliard : patches: Display replies under the main patch.
by Alexandre Julliard
08 Nov '17
08 Nov '17
Module: tools Branch: master Commit: 0d60762f674e42035b8ad788b2a26f49a8b97fe5 URL:
http://source.winehq.org/git/tools.git/?a=commit;h=0d60762f674e42035b8ad788…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Nov 8 10:17:12 2017 +0100 patches: Display replies under the main patch. Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- patches/patches.css | 5 +++- patches/update | 84 ++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 75 insertions(+), 14 deletions(-) diff --git a/patches/patches.css b/patches/patches.css index c1ef34f..f7bb560 100644 --- a/patches/patches.css +++ b/patches/patches.css @@ -132,15 +132,18 @@ div.buglist { border: 1px solid #601919; } table.main, table.legend { width: 100%; } +table.main { border-collapse: collapse; } table.legend ul { margin: 2px 0; } tr.even { background-color: #fff8f8; } tr.odd { background-color: #f8e8e8; } +.indent { padding: 0 2em; } .id, .status, .testbot { text-align: center; } -.id, .status, .author { white-space: nowrap; padding: 0 3px; } +.id, .status, .author { white-space: nowrap; padding: 2px 3px; } .checkmark { text-align: center; color:green; } +.arrow { text-align: center; padding: 0 0; } .failmark { text-align: center; color: red; } .signoffextra { color: #A50D0D; border: 1px solid #601919; } .sha1 { white-space: nowrap; font-family: monospace; padding: 2px 12px; } diff --git a/patches/update b/patches/update index cdc172d..9e12c4b 100755 --- a/patches/update +++ b/patches/update @@ -90,6 +90,7 @@ my @legend = my $dir = $ARGV[0] || "$ENV{HOME}/patches"; my $dest = "/home/winehq/opt/source/patches"; my %patches; +my %messages; sub format_author($) { @@ -126,7 +127,7 @@ print INDEX "<div id=\"logo_blurb\">Wine source repository – Patch status< print INDEX "<div id=\"main_content\"><div id=\"content\"><div class=\"main\">\n"; print INDEX "<table id=\"main_table\" class=\"main\"><thead><tr><th class=\"id\">ID</th>", "<th class=\"status\">Status</th>", - "<th class=\"author\">Author</th>", + "<th colspan=\"2\" class=\"author\">Author</th>", "<th class=\"subject\">Subject</th>", "<th class=\"author\">Reviewer</th>", "<th class=\"status\">Sign</th>", @@ -144,6 +145,8 @@ foreach my $file (readdir DIR) utf8::decode($_); if (/^Subject: (.*)$/) { $patch{"subject"} = $1; } elsif (/^From: (.*)$/) { $patch{"author"} = format_author($1); } + elsif (/^Message-Id: (.*)$/) { $patch{"msgid"} = $1; } + elsif (/^In-Reply-To: (.*)$/) { $patch{"reply"} = $1; } last if (/^$/); } while (<PATCH>) @@ -152,8 +155,14 @@ foreach my $file (readdir DIR) if (/^\s*Signed-off-by: (.*)$/) { push @{$patch{"signoff"}}, format_author($1); } last if (/^---$/); } + while (<PATCH>) + { + utf8::decode($_); + if (/^diff --git a\//) { $patch{"has_patch"} = 1; last; } + } close PATCH; + $patch{"id"} = $file; $patch{"status"} = "nil"; if (open STATUS, "<$dir/$file.status") { @@ -208,19 +217,52 @@ foreach my $file (readdir DIR) { $patch{"testbot"} = "Failed"; } + if (defined $patch{"msgid"}) + { + $messages{$patch{"msgid"}} = \%patch; + } $patches{$file} = \%patch; } closedir DIR; +# build mail threads + +foreach my $file (sort keys %patches) +{ + my $patch = $patches{$file}; + next if defined $patch->{"has_patch"}; + next unless defined $patch->{"reply"}; + next unless defined $messages{$patch->{"reply"}}; + my $parent = $messages{$patch->{"reply"}}; + # find top parent + while (!defined($parent->{"has_patch"}) && defined($parent->{"reply"})) + { + $parent = $messages{$parent->{"reply"}}; + } + next unless defined $parent; + # add it to the parent's children and remove it from the list + $patch->{"parent"} = $parent; + push @{$parent->{"children"}}, $patch; + delete $patches{$file}; +} + my $row = 0; foreach my $file (sort { $patches{$b}->{"order"} <=> $patches{$a}->{"order"} } keys %patches) { my $patch = $patches{$file}; - printf INDEX "<tr class=\"%s %s\"><td class=\"id\">%s</td><td class=\"status\"><a href=\"#legend\">%s</a></td><td class=\"author\">%s</td>", - $row & 1 ? "odd" : "even", $patch->{"status"}, $file, $status_descr{$patch->{"status"}} || $patch->{"status"}, - escapeHTML($patch->{"author"}); - printf INDEX "<td class=\"subject\"><a href=\"data/$file\">%s</a></td>", - escapeHTML($patch->{"subject"}); + + printf INDEX "<tr class=\"%s %s\"><td class=\"id\">%s</td><td class=\"status\"><a href=\"#legend\">%s</a></td>", + $row & 1 ? "odd" : "even", $patch->{"status"}, $file, $status_descr{$patch->{"status"}} || $patch->{"status"}; + if (defined $patch->{"children"}) + { + printf INDEX "<td class=\"author\">%s</td>", escapeHTML($patch->{"author"}); + printf INDEX "<td class=\"arrow\" onclick=\"toggle_display('$file.reply')\">▼</td>"; + } + else + { + printf INDEX "<td colspan=\"2\" class=\"author\">%s</td>", escapeHTML($patch->{"author"}); + } + printf INDEX "<td class=\"subject\"><a href=\"data/$file\">%s</a></td>", escapeHTML($patch->{"subject"}); if ($patch->{"review"}) { printf INDEX "<td class=\"author\">%s</td>", escapeHTML($patch->{"review"}); @@ -259,9 +301,17 @@ foreach my $file (sort { $patches{$b}->{"order"} <=> $patches{$a}->{"order"} } k if (defined($patch->{"signoff"})) { printf INDEX "<tr class=\"%s\" id=\"$file.signoff\" style=\"display: none;\" onclick=\"toggle_display('$file.signoff')\">" . - "<td colspan=\"4\" /><td colspan=\"4\" class=\"signoffextra author\">%s</td></tr>\n", + "<td colspan=\"5\" /><td colspan=\"4\" class=\"signoffextra author\">%s</td></tr>\n", $row & 1 ? "odd" : "even", join("", map { "Signed-off-by: " . escapeHTML($_) . "<br/>"; } @{$patch->{"signoff"}}); } + foreach my $child (@{$patch->{"children"}}) + { + printf INDEX "<tr class=\"%s\" id=\"$file.reply\" style=\"display: none;\" onclick=\"toggle_display('$file.reply')\">" . + "<td colspan=\"2\" /><td colspan=\"2\" class=\"reply author\"><span class=\"indent\" />%s</td> " . + "<td class=\"reply author\"><span class=\"indent\" /><a href=\"data/%s\">%s</a></td> " . + "<td colspan=\"4\" /></tr>\n", + $row & 1 ? "odd" : "even", escapeHTML($child->{"author"}), $child->{"id"}, escapeHTML($child->{"subject"}); + } $row++; } print INDEX "</tbody></table></div>\n"; @@ -284,7 +334,7 @@ my $sorter = <<END; tbody = table.children[1], ths = thead.getElementsByTagName('th'), trs = tbody.getElementsByTagName('tr'), - i, do_reverse, th, sort_func; + i, j, k, id, do_reverse, th, sort_func; for (i = 0; i < ths.length; i++) ths[i].onclick = sort_table; @@ -307,13 +357,20 @@ my $sorter = <<END; do_reverse = 1; th.setAttribute('data-order', do_reverse) - for (j = 0, i = trs.length - 1; i != -1; i--) + for (j = 0, k = 0, i = trs.length - 1; i != -1; i--) { - tr = tbody.removeChild(trs[i]) + tr = tbody.removeChild(trs[0]) if (!tr.getAttribute('id')) + { clone_trs[j++] = tr; - else - sign_trs[text_content(trs[i - 1].children[0])] = tr; /* based on the patch ID */ + id = text_content(tr.children[0]); + k = 0; + } + else if (id) /* based on the patch ID */ + { + if (!k) sign_trs[id] = []; + sign_trs[id][k++] = tr; + } } clone_trs.sort(sorter); @@ -323,7 +380,8 @@ my $sorter = <<END; tbody.appendChild(clone_trs[i]); j = text_content(clone_trs[i].children[0]); if (sign_trs[j]) - tbody.appendChild(sign_trs[j]); + for (k = 0; k < sign_trs[j].length; k++) + tbody.appendChild(sign_trs[j][k]); } }
1
0
0
0
Alexandre Julliard : patches: Determine signoff information automatically from the patch replies.
by Alexandre Julliard
08 Nov '17
08 Nov '17
Module: tools Branch: master Commit: a5ffe4fb09403bb2cb1e1ac9dc12cdc4081b4682 URL:
http://source.winehq.org/git/tools.git/?a=commit;h=a5ffe4fb09403bb2cb1e1ac9…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Nov 8 10:19:30 2017 +0100 patches: Determine signoff information automatically from the patch replies. Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- patches/update | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/patches/update b/patches/update index 9e12c4b..87e640d 100755 --- a/patches/update +++ b/patches/update @@ -99,6 +99,12 @@ sub format_author($) return $str; } +sub uniq +{ + my %seen; + return grep { !$seen{$_}++ } @_; +} + my $js = <<END; function toggle_display(id) { @@ -185,16 +191,6 @@ foreach my $file (readdir DIR) $patch{"review"} = format_author($_); close REVIEW; } - if (open SIGNOFF, "<:raw", "$dir/$file.signoff") - { - while (<SIGNOFF>) - { - chomp; - utf8::decode($_); - push @{$patch{"signoff"}}, format_author($_); - } - close SIGNOFF; - } $patch{"testbot"} = ""; $patch{"testjob"} = ""; $patch{"testurl"} = ""; @@ -243,6 +239,7 @@ foreach my $file (sort keys %patches) # add it to the parent's children and remove it from the list $patch->{"parent"} = $parent; push @{$parent->{"children"}}, $patch; + push @{$parent->{"signoff"}}, @{$patch->{"signoff"}} if $patch->{"signoff"}; delete $patches{$file}; } @@ -271,9 +268,10 @@ foreach my $file (sort { $patches{$b}->{"order"} <=> $patches{$a}->{"order"} } k { printf INDEX "<td></td>"; } - if (defined($patch->{"signoff"})) + my @signoff = defined($patch->{"signoff"}) ? uniq( @{$patch->{"signoff"}} ) : (); + if (@signoff) { - printf INDEX "<td class=\"checkmark\" onclick=\"toggle_display('$file.signoff')\">%s</td>", "✓" x @{$patch->{"signoff"}}; + printf INDEX "<td class=\"checkmark\" onclick=\"toggle_display('$file.signoff')\">%s</td>", "✓" x @signoff; } else { @@ -298,11 +296,11 @@ foreach my $file (sort { $patches{$b}->{"order"} <=> $patches{$a}->{"order"} } k print INDEX "<td></td>"; } print INDEX "</tr>\n"; - if (defined($patch->{"signoff"})) + if (@signoff) { printf INDEX "<tr class=\"%s\" id=\"$file.signoff\" style=\"display: none;\" onclick=\"toggle_display('$file.signoff')\">" . "<td colspan=\"5\" /><td colspan=\"4\" class=\"signoffextra author\">%s</td></tr>\n", - $row & 1 ? "odd" : "even", join("", map { "Signed-off-by: " . escapeHTML($_) . "<br/>"; } @{$patch->{"signoff"}}); + $row & 1 ? "odd" : "even", join("", map { "Signed-off-by: " . escapeHTML($_) . "<br/>"; } @signoff ); } foreach my $child (@{$patch->{"children"}}) {
1
0
0
0
Gerald Pfeifer : configure: Use the -Wno-packed-not-aligned compiler option if available.
by Alexandre Julliard
07 Nov '17
07 Nov '17
Module: wine Branch: master Commit: 6864803f1ab70f9f9e90903b13e67da40973d12a URL:
http://source.winehq.org/git/wine.git/?a=commit;h=6864803f1ab70f9f9e90903b1…
Author: Gerald Pfeifer <gerald(a)pfeifer.com> Date: Sat Nov 4 20:06:07 2017 +0100 configure: Use the -Wno-packed-not-aligned compiler option if available. Signed-off-by: Gerald Pfeifer <gerald(a)pfeifer.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- configure | 25 +++++++++++++++++++++++++ configure.ac | 1 + 2 files changed, 26 insertions(+) diff --git a/configure b/configure index cb21f2a..4a1d0eb 100755 --- a/configure +++ b/configure @@ -14876,6 +14876,31 @@ $as_echo "$ac_cv_cflags__Wignored_qualifiers" >&6; } if test "x$ac_cv_cflags__Wignored_qualifiers" = xyes; then : EXTRACFLAGS="$EXTRACFLAGS -Wignored-qualifiers" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wno-packed-not-aligned" >&5 +$as_echo_n "checking whether the compiler supports -Wno-packed-not-aligned... " >&6; } +if ${ac_cv_cflags__Wno_packed_not_aligned+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_wine_try_cflags_saved=$CFLAGS +CFLAGS="$CFLAGS -Wno-packed-not-aligned" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(int argc, char **argv) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_cflags__Wno_packed_not_aligned=yes +else + ac_cv_cflags__Wno_packed_not_aligned=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +CFLAGS=$ac_wine_try_cflags_saved +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wno_packed_not_aligned" >&5 +$as_echo "$ac_cv_cflags__Wno_packed_not_aligned" >&6; } +if test "x$ac_cv_cflags__Wno_packed_not_aligned" = xyes; then : + EXTRACFLAGS="$EXTRACFLAGS -Wno-packed-not-aligned" +fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wshift-overflow=2" >&5 $as_echo_n "checking whether the compiler supports -Wshift-overflow=2... " >&6; } if ${ac_cv_cflags__Wshift_overflow_2+:} false; then : diff --git a/configure.ac b/configure.ac index 29f4cd1..637979a 100644 --- a/configure.ac +++ b/configure.ac @@ -1824,6 +1824,7 @@ then WINE_TRY_CFLAGS([-Wdeclaration-after-statement]) WINE_TRY_CFLAGS([-Wempty-body]) WINE_TRY_CFLAGS([-Wignored-qualifiers]) + WINE_TRY_CFLAGS([-Wno-packed-not-aligned]) WINE_TRY_CFLAGS([-Wshift-overflow=2]) WINE_TRY_CFLAGS([-Wstrict-prototypes]) WINE_TRY_CFLAGS([-Wtype-limits])
1
0
0
0
Andrey Semakin : winemine: Add Reset Results button.
by Alexandre Julliard
07 Nov '17
07 Nov '17
Module: wine Branch: master Commit: b75b6655ef644fed0353bf0947e3929c2976fcd0 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=b75b6655ef644fed0353bf094…
Author: Andrey Semakin <and-semakin(a)ya.ru> Date: Mon Nov 6 16:13:27 2017 +0500 winemine: Add Reset Results button. Signed-off-by: Andrey Semakin <and-semakin(a)ya.ru> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- po/ar.po | 22 ++++++++++++++-------- po/bg.po | 22 ++++++++++++++-------- po/ca.po | 22 ++++++++++++++-------- po/cs.po | 22 ++++++++++++++-------- po/da.po | 22 ++++++++++++++-------- po/de.po | 22 ++++++++++++++-------- po/el.po | 21 +++++++++++++-------- po/en.po | 20 ++++++++++++-------- po/en_US.po | 20 ++++++++++++-------- po/eo.po | 22 ++++++++++++++-------- po/es.po | 22 ++++++++++++++-------- po/fa.po | 21 +++++++++++++-------- po/fi.po | 22 ++++++++++++++-------- po/fr.po | 22 ++++++++++++++-------- po/he.po | 22 ++++++++++++++-------- po/hi.po | 20 ++++++++++++-------- po/hr.po | 22 ++++++++++++++-------- po/hu.po | 22 ++++++++++++++-------- po/it.po | 22 ++++++++++++++-------- po/ja.po | 22 ++++++++++++++-------- po/ko.po | 22 ++++++++++++++-------- po/lt.po | 22 ++++++++++++++-------- po/ml.po | 20 ++++++++++++-------- po/nb_NO.po | 22 ++++++++++++++-------- po/nl.po | 22 ++++++++++++++-------- po/or.po | 20 ++++++++++++-------- po/pa.po | 20 ++++++++++++-------- po/pl.po | 22 ++++++++++++++-------- po/pt_BR.po | 22 ++++++++++++++-------- po/pt_PT.po | 22 ++++++++++++++-------- po/rm.po | 20 ++++++++++++-------- po/ro.po | 22 ++++++++++++++-------- po/ru.po | 20 ++++++++++++-------- po/sk.po | 22 ++++++++++++++-------- po/sl.po | 22 ++++++++++++++-------- po/sr_RS(a)cyrillic.po | 22 ++++++++++++++-------- po/sr_RS(a)latin.po | 22 ++++++++++++++-------- po/sv.po | 22 ++++++++++++++-------- po/te.po | 20 ++++++++++++-------- po/th.po | 21 +++++++++++++-------- po/tr.po | 22 ++++++++++++++-------- po/uk.po | 22 ++++++++++++++-------- po/wa.po | 20 ++++++++++++-------- po/wine.pot | 20 ++++++++++++-------- po/zh_CN.po | 22 ++++++++++++++-------- po/zh_TW.po | 22 ++++++++++++++-------- programs/winemine/dialog.c | 14 ++++++++++++++ programs/winemine/main.c | 14 ++++++++++++-- programs/winemine/main.h | 2 ++ programs/winemine/resource.h | 1 + programs/winemine/winemine.rc | 23 ++++++++++++----------- 51 files changed, 660 insertions(+), 381 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=b75b6655ef644fed0353b…
1
0
0
0
← Newer
1
...
28
29
30
31
32
33
34
...
44
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Results per page:
10
25
50
100
200