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 2019
----- 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
1 participants
895 discussions
Start a n
N
ew thread
Akihiro Sagawa : usp10/tests: Add advance width tests with CJK bitmap font.
by Alexandre Julliard
25 Nov '19
25 Nov '19
Module: wine Branch: stable Commit: 5b810ec3bd26d76543291e662f6d3cc9c036edae URL:
https://source.winehq.org/git/wine.git/?a=commit;h=5b810ec3bd26d76543291e66…
Author: Akihiro Sagawa <sagawa.aki(a)gmail.com> Date: Thu Jun 13 23:50:23 2019 +0900 usp10/tests: Add advance width tests with CJK bitmap font. We should use associated glyph's advance width instead of the default one. Because, when using CJK bitmap system font, full-width character (e.g. Hiragana) is rendered with associated font. The glyph is different from the default glyph. Signed-off-by: Akihiro Sagawa <sagawa.aki(a)gmail.com> Signed-off-by: Aric Stewart <aric(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 9dabf7b013ea7c12a93d665d514ce15560c2f991) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/usp10/tests/usp10.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/dlls/usp10/tests/usp10.c b/dlls/usp10/tests/usp10.c index e907c8c40a..cfd481937a 100644 --- a/dlls/usp10/tests/usp10.c +++ b/dlls/usp10/tests/usp10.c @@ -2091,6 +2091,7 @@ static void test_ScriptShape(HDC hdc) static void test_ScriptPlace(HDC hdc) { static const WCHAR test1[] = {'t', 'e', 's', 't',0}; + static const WCHAR test2[] = {0x3044, 0x308d, 0x306f,0}; /* Hiragana, Iroha */ BOOL ret; HRESULT hr; SCRIPT_CACHE sc = NULL; @@ -2101,6 +2102,9 @@ static void test_ScriptPlace(HDC hdc) int nb, widths[4]; GOFFSET offset[4]; ABC abc[4]; + HFONT hfont, prev_hfont; + LOGFONTA lf; + TEXTMETRICW tm; hr = ScriptItemize(test1, 4, 2, NULL, NULL, items, NULL); ok(hr == S_OK, "ScriptItemize should return S_OK not %08x\n", hr); @@ -2154,6 +2158,62 @@ static void test_ScriptPlace(HDC hdc) ok(ret, "ExtTextOutW should return TRUE\n"); ScriptFreeCache(&sc); + + /* test CJK bitmap font which has associated font */ + memset(&lf, 0, sizeof(lf)); + strcpy(lf.lfFaceName, "Fixedsys"); + lf.lfCharSet = DEFAULT_CHARSET; + hfont = CreateFontIndirectA(&lf); + prev_hfont = SelectObject(hdc, hfont); + ret = GetTextMetricsW(hdc, &tm); + ok(ret, "GetTextMetrics failed\n"); + + switch(tm.tmCharSet) { + case SHIFTJIS_CHARSET: + case HANGUL_CHARSET: + case GB2312_CHARSET: + case CHINESEBIG5_CHARSET: + { + SIZE sz; + DWORD len = lstrlenW(test2), i, total; + ret = GetTextExtentExPointW(hdc, test2, len, 0, NULL, NULL, &sz); + ok(ret, "GetTextExtentExPoint failed\n"); + + if (sz.cx > len * tm.tmAveCharWidth) + { + hr = ScriptItemize(test2, len, 2, NULL, NULL, items, NULL); + ok(hr == S_OK, "ScriptItemize should return S_OK not %08x\n", hr); + ok(items[0].a.fNoGlyphIndex == FALSE, "fNoGlyphIndex TRUE\n"); + + items[0].a.fNoGlyphIndex = TRUE; + memset(glyphs, 'a', sizeof(glyphs)); + hr = ScriptShape(hdc, &sc, test2, len, ARRAY_SIZE(glyphs), &items[0].a, glyphs, logclust, attrs, &nb); + ok(hr == S_OK, "ScriptShape should return S_OK not %08x\n", hr); + + memset(offset, 'a', sizeof(offset)); + memset(widths, 'a', sizeof(widths)); + hr = ScriptPlace(hdc, &sc, glyphs, ARRAY_SIZE(widths), attrs, &items[0].a, widths, offset, NULL); + ok(hr == S_OK, "ScriptPlace should return S_OK not %08x\n", hr); + + for (total = 0, i = 0; i < nb; i++) + { + ok(offset[i].du == 0, "[%d] expected 0, got %d\n", i, offset[i].du); + ok(offset[i].dv == 0, "[%d] expected 0, got %d\n", i, offset[i].dv); + todo_wine ok(widths[i] > tm.tmAveCharWidth, "[%d] expected greater than %d, got %d\n", + i, tm.tmAveCharWidth, widths[i]); + total += widths[i]; + } + todo_wine ok(total == sz.cx, "expected %d, got %d\n", sz.cx, total); + } + else + skip("Associated font is unavailable\n"); + + break; + } + default: + skip("Non-CJK locale\n"); + } + SelectObject(hdc, prev_hfont); } static void test_ScriptItemIzeShapePlace(HDC hdc, unsigned short pwOutGlyphs[256])
1
0
0
0
Andrew Eikum : ntdll: Fix memory region check in NtQueryVirtualMemory.
by Alexandre Julliard
25 Nov '19
25 Nov '19
Module: wine Branch: stable Commit: 318a41030e0c3759878e4ddb471f0c49b9a189de URL:
https://source.winehq.org/git/wine.git/?a=commit;h=318a41030e0c3759878e4ddb…
Author: Andrew Eikum <aeikum(a)codeweavers.com> Date: Wed Mar 27 11:33:25 2019 -0500 ntdll: Fix memory region check in NtQueryVirtualMemory. Patch by buggy(a)ifel.se. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=45218
Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 12be24af8cab0e5f78795b164ec8847bafc30852) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/ntdll/virtual.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c index da2dad1b53..90f5773787 100644 --- a/dlls/ntdll/virtual.c +++ b/dlls/ntdll/virtual.c @@ -2756,7 +2756,7 @@ static int get_free_mem_state_callback( void *start, size_t size, void *arg ) MEMORY_BASIC_INFORMATION *info = arg; void *end = (char *)start + size; - if ((char *)info->BaseAddress + info->RegionSize < (char *)start) return 0; + if ((char *)info->BaseAddress + info->RegionSize <= (char *)start) return 0; if (info->BaseAddress >= end) {
1
0
0
0
Gabriel Ivăncescu : user32/listbox: Fix mouse wheel scrolling for multi-column listboxes.
by Alexandre Julliard
25 Nov '19
25 Nov '19
Module: wine Branch: stable Commit: e049888541b29c06b10992e8c6c3a8c24fc00d0d URL:
https://source.winehq.org/git/wine.git/?a=commit;h=e049888541b29c06b10992e8…
Author: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Date: Wed Jun 5 14:38:58 2019 +0300 user32/listbox: Fix mouse wheel scrolling for multi-column listboxes. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=22253
Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit b95bc8427322d1fdcb79937aa16ef7e31f95f556) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/user32/listbox.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/dlls/user32/listbox.c b/dlls/user32/listbox.c index 594c956b94..e5b5059284 100644 --- a/dlls/user32/listbox.c +++ b/dlls/user32/listbox.c @@ -2025,7 +2025,7 @@ static LRESULT LISTBOX_HandleHScroll( LB_DESCR *descr, WORD scrollReq, WORD pos static LRESULT LISTBOX_HandleMouseWheel(LB_DESCR *descr, SHORT delta ) { - UINT pulScrollLines = 3; + INT pulScrollLines = 3; SystemParametersInfoW(SPI_GETWHEELSCROLLLINES,0, &pulScrollLines, 0); @@ -2039,9 +2039,20 @@ static LRESULT LISTBOX_HandleMouseWheel(LB_DESCR *descr, SHORT delta ) if (descr->wheel_remain && pulScrollLines) { int cLineScroll; - pulScrollLines = min((UINT) descr->page_size, pulScrollLines); - cLineScroll = pulScrollLines * (float)descr->wheel_remain / WHEEL_DELTA; - descr->wheel_remain -= WHEEL_DELTA * cLineScroll / (int)pulScrollLines; + if (descr->style & LBS_MULTICOLUMN) + { + pulScrollLines = min(descr->width / descr->column_width, pulScrollLines); + pulScrollLines = max(1, pulScrollLines); + cLineScroll = pulScrollLines * descr->wheel_remain / WHEEL_DELTA; + descr->wheel_remain -= WHEEL_DELTA * cLineScroll / pulScrollLines; + cLineScroll *= descr->page_size; + } + else + { + pulScrollLines = min(descr->page_size, pulScrollLines); + cLineScroll = pulScrollLines * descr->wheel_remain / WHEEL_DELTA; + descr->wheel_remain -= WHEEL_DELTA * cLineScroll / pulScrollLines; + } LISTBOX_SetTopItem( descr, descr->top_item - cLineScroll, TRUE ); } return 0;
1
0
0
0
Gabriel Ivăncescu : comctl32/listbox: Fix mouse wheel scrolling for multi-column listboxes.
by Alexandre Julliard
25 Nov '19
25 Nov '19
Module: wine Branch: stable Commit: 786a246aa6c67a3e907e3df9ba439a0354bd141d URL:
https://source.winehq.org/git/wine.git/?a=commit;h=786a246aa6c67a3e907e3df9…
Author: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Date: Wed Jun 5 14:38:57 2019 +0300 comctl32/listbox: Fix mouse wheel scrolling for multi-column listboxes. Multi-column listboxes scroll horizontally, so each wheel tick must go an entire page at a time instead of an item at a time. But we have to limit the amount of scrolling in this case to avoid "jumping over" columns, if the window is too small. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=22253
Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 1f3787519463bd99994a34a8648b7b9797bca985) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/comctl32/listbox.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/dlls/comctl32/listbox.c b/dlls/comctl32/listbox.c index cb645b4467..545707dc04 100644 --- a/dlls/comctl32/listbox.c +++ b/dlls/comctl32/listbox.c @@ -2012,7 +2012,7 @@ static LRESULT LISTBOX_HandleHScroll( LB_DESCR *descr, WORD scrollReq, WORD pos static LRESULT LISTBOX_HandleMouseWheel(LB_DESCR *descr, SHORT delta ) { - UINT pulScrollLines = 3; + INT pulScrollLines = 3; SystemParametersInfoW(SPI_GETWHEELSCROLLLINES,0, &pulScrollLines, 0); @@ -2026,9 +2026,20 @@ static LRESULT LISTBOX_HandleMouseWheel(LB_DESCR *descr, SHORT delta ) if (descr->wheel_remain && pulScrollLines) { int cLineScroll; - pulScrollLines = min((UINT) descr->page_size, pulScrollLines); - cLineScroll = pulScrollLines * (float)descr->wheel_remain / WHEEL_DELTA; - descr->wheel_remain -= WHEEL_DELTA * cLineScroll / (int)pulScrollLines; + if (descr->style & LBS_MULTICOLUMN) + { + pulScrollLines = min(descr->width / descr->column_width, pulScrollLines); + pulScrollLines = max(1, pulScrollLines); + cLineScroll = pulScrollLines * descr->wheel_remain / WHEEL_DELTA; + descr->wheel_remain -= WHEEL_DELTA * cLineScroll / pulScrollLines; + cLineScroll *= descr->page_size; + } + else + { + pulScrollLines = min(descr->page_size, pulScrollLines); + cLineScroll = pulScrollLines * descr->wheel_remain / WHEEL_DELTA; + descr->wheel_remain -= WHEEL_DELTA * cLineScroll / pulScrollLines; + } LISTBOX_SetTopItem( descr, descr->top_item - cLineScroll, TRUE ); } return 0;
1
0
0
0
Paul Gofman : wined3d: Use 3 component norm for 'nrm' opcode in GLSL backend.
by Alexandre Julliard
25 Nov '19
25 Nov '19
Module: wine Branch: stable Commit: dc3cb001afca2afff8df517b0168dfad467579aa URL:
https://source.winehq.org/git/wine.git/?a=commit;h=dc3cb001afca2afff8df517b…
Author: Paul Gofman <gofmanp(a)gmail.com> Date: Thu Jun 13 16:56:59 2019 +0300 wined3d: Use 3 component norm for 'nrm' opcode in GLSL backend. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=8848
Signed-off-by: Paul Gofman <gofmanp(a)gmail.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 447c9523f84f8bc973a1080bb29d3b60e6d190f8) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/wined3d/glsl_shader.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 6f3826f8d6..dccc9ad389 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -4390,8 +4390,12 @@ static void shader_glsl_nrm(const struct wined3d_shader_instruction *ins) mask_size = shader_glsl_get_write_mask_size(write_mask); shader_glsl_add_src_param(ins, &ins->src[0], write_mask, &src_param); - shader_addline(buffer, "tmp0.x = dot(%s, %s);\n", - src_param.param_str, src_param.param_str); + if (mask_size > 3) + shader_addline(buffer, "tmp0.x = dot(vec3(%s), vec3(%s));\n", + src_param.param_str, src_param.param_str); + else + shader_addline(buffer, "tmp0.x = dot(%s, %s);\n", + src_param.param_str, src_param.param_str); shader_glsl_append_dst(buffer, ins); if (mask_size > 1)
1
0
0
0
Zebediah Figura : widl: Mark unions, user types, and ranges as IsSimpleRef.
by Alexandre Julliard
25 Nov '19
25 Nov '19
Module: wine Branch: stable Commit: f46d69c9bbcce48556ba62a92a10856b12132b25 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=f46d69c9bbcce48556ba62a9…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Thu Jun 13 17:49:34 2019 -0500 widl: Mark unions, user types, and ranges as IsSimpleRef. This fixes a regression introduced by 02976b655a5d9ad8ee25dbfb2051acb5b7431381. That patch should only have affected arrays. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 0afbcee924d0a9a7461291ea389c5a78d3ed2227) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- tools/widl/typegen.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 62638f8caf..a0de448193 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -1059,7 +1059,8 @@ static unsigned char get_parameter_fc( const var_t *var, int is_return, unsigned case TGT_UNION: case TGT_USER_TYPE: case TGT_RANGE: - *flags |= MustFree; + *flags |= MustFree | IsSimpleRef; + *typestring_offset = ref->typestring_offset; if (!is_in && is_out) server_size = type_memsize( ref ); break; case TGT_ARRAY:
1
0
0
0
Zebediah Figura : widl: Also allocate top-level pointers to arrays as on-stack in -Oicf mode.
by Alexandre Julliard
25 Nov '19
25 Nov '19
Module: wine Branch: stable Commit: dff0bc91cdbf9cb1dd56c0084791342540b37c29 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=dff0bc91cdbf9cb1dd56c008…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Wed May 29 00:24:06 2019 -0500 widl: Also allocate top-level pointers to arrays as on-stack in -Oicf mode. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=47285
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 3c4d0bf4e3102c6fcff7acab189f874d6bd45003) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- tools/widl/typegen.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 4b956448a8..62638f8caf 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -2127,6 +2127,7 @@ static unsigned int write_nonsimple_pointer(FILE *file, const attr_list_t *attrs case TGT_POINTER: case TGT_CTXT_HANDLE: case TGT_CTXT_HANDLE_POINTER: + case TGT_ARRAY: flags |= FC_ALLOCED_ON_STACK; break; case TGT_IFACE_POINTER:
1
0
0
0
Zebediah Figura : widl: Use IsSimpleRef only for explicitly declared arrays.
by Alexandre Julliard
25 Nov '19
25 Nov '19
Module: wine Branch: stable Commit: 22b6b13efbc11c2264ffc0d7c21fbc1050272ceb URL:
https://source.winehq.org/git/wine.git/?a=commit;h=22b6b13efbc11c2264ffc0d7…
Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Wed May 29 00:24:05 2019 -0500 widl: Use IsSimpleRef only for explicitly declared arrays. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=47285
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 02976b655a5d9ad8ee25dbfb2051acb5b7431381) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- tools/widl/typegen.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 27ba60fcf4..4b956448a8 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -1059,9 +1059,16 @@ static unsigned char get_parameter_fc( const var_t *var, int is_return, unsigned case TGT_UNION: case TGT_USER_TYPE: case TGT_RANGE: + *flags |= MustFree; + if (!is_in && is_out) server_size = type_memsize( ref ); + break; case TGT_ARRAY: - *flags |= IsSimpleRef | MustFree; - *typestring_offset = ref->typestring_offset; + *flags |= MustFree; + if (!type_array_is_decl_as_ptr(ref)) + { + *flags |= IsSimpleRef; + *typestring_offset = ref->typestring_offset; + } if (!is_in && is_out) server_size = type_memsize( ref ); break; case TGT_STRING:
1
0
0
0
Piotr Caban : msvcp: Add _Strxfrm implementation.
by Alexandre Julliard
25 Nov '19
25 Nov '19
Module: wine Branch: stable Commit: 1b925afd249a69ea1f02ded9ac8c318e80790ca3 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=1b925afd249a69ea1f02ded9…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Tue Jun 4 21:51:57 2019 +0200 msvcp: Add _Strxfrm implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 1ad48d1b3c94e41fe24dd0d82bd252f5e6b3d380) Conflicts: dlls/msvcp90/locale.c Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/msvcp100/msvcp100.spec | 2 +- dlls/msvcp110/msvcp110.spec | 2 +- dlls/msvcp120/msvcp120.spec | 2 +- dlls/msvcp120_app/msvcp120_app.spec | 2 +- dlls/msvcp140/msvcp140.spec | 2 +- dlls/msvcp60/msvcp60.spec | 2 +- dlls/msvcp70/msvcp70.spec | 2 +- dlls/msvcp71/msvcp71.spec | 2 +- dlls/msvcp80/msvcp80.spec | 2 +- dlls/msvcp90/locale.c | 39 +++++++++++++++++++++++++++++++++++++ dlls/msvcp90/msvcp90.spec | 2 +- dlls/msvcp90/tests/misc.c | 23 ++++++++++++++++++++++ 12 files changed, 72 insertions(+), 10 deletions(-) diff --git a/dlls/msvcp100/msvcp100.spec b/dlls/msvcp100/msvcp100.spec index 55217a6d66..0d6f4420d1 100644 --- a/dlls/msvcp100/msvcp100.spec +++ b/dlls/msvcp100/msvcp100.spec @@ -2958,7 +2958,7 @@ @ cdecl -ret64 _Stoullx(ptr ptr long ptr) @ cdecl _Stoulx(ptr ptr long ptr) @ cdecl _Strcoll(ptr ptr ptr ptr ptr) -@ stub _Strxfrm +@ cdecl _Strxfrm(ptr ptr ptr ptr ptr) @ cdecl _Tolower(long ptr) @ cdecl _Toupper(long ptr) @ cdecl _Towlower(long ptr) diff --git a/dlls/msvcp110/msvcp110.spec b/dlls/msvcp110/msvcp110.spec index 882dbbe12f..5477ada853 100644 --- a/dlls/msvcp110/msvcp110.spec +++ b/dlls/msvcp110/msvcp110.spec @@ -3854,7 +3854,7 @@ @ cdecl _Stoulx(ptr ptr long ptr) @ stub _Stoxflt @ cdecl _Strcoll(ptr ptr ptr ptr ptr) -@ stub _Strxfrm +@ cdecl _Strxfrm(ptr ptr ptr ptr ptr) @ stub _Thrd_abort @ cdecl _Thrd_create(ptr ptr ptr) @ cdecl -norelay _Thrd_current() diff --git a/dlls/msvcp120/msvcp120.spec b/dlls/msvcp120/msvcp120.spec index 73024a0d9d..a399b7ee12 100644 --- a/dlls/msvcp120/msvcp120.spec +++ b/dlls/msvcp120/msvcp120.spec @@ -3801,7 +3801,7 @@ @ cdecl _Stoulx(ptr ptr long ptr) @ stub _Stoxflt @ cdecl _Strcoll(ptr ptr ptr ptr ptr) -@ stub _Strxfrm +@ cdecl _Strxfrm(ptr ptr ptr ptr ptr) @ stub _Thrd_abort @ cdecl _Thrd_create(ptr ptr ptr) @ cdecl -norelay _Thrd_current() diff --git a/dlls/msvcp120_app/msvcp120_app.spec b/dlls/msvcp120_app/msvcp120_app.spec index cece375f7f..99c7a57ee0 100644 --- a/dlls/msvcp120_app/msvcp120_app.spec +++ b/dlls/msvcp120_app/msvcp120_app.spec @@ -3801,7 +3801,7 @@ @ cdecl _Stoulx(ptr ptr long ptr) msvcp120._Stoulx @ stub _Stoxflt @ cdecl _Strcoll(ptr ptr ptr ptr ptr) msvcp120._Strcoll -@ stub _Strxfrm +@ cdecl _Strxfrm(ptr ptr ptr ptr ptr) msvcp120._Strxfrm @ stub _Thrd_abort @ cdecl _Thrd_create(ptr ptr ptr) msvcp120._Thrd_create @ cdecl -norelay _Thrd_current() msvcp120._Thrd_current diff --git a/dlls/msvcp140/msvcp140.spec b/dlls/msvcp140/msvcp140.spec index 96dff341d3..770cb0ef9d 100644 --- a/dlls/msvcp140/msvcp140.spec +++ b/dlls/msvcp140/msvcp140.spec @@ -3715,7 +3715,7 @@ @ cdecl -ret64 _Stoullx(ptr ptr long ptr) _Stoullx @ cdecl _Stoulx(ptr ptr long ptr) _Stoulx @ cdecl _Strcoll(ptr ptr ptr ptr ptr) _Strcoll -@ stub _Strxfrm +@ cdecl _Strxfrm(ptr ptr ptr ptr ptr) @ cdecl _Symlink(wstr wstr) tr2_sys__Symlink_wchar @ stub _Symlink_get @ cdecl _Temp_get(ptr) diff --git a/dlls/msvcp60/msvcp60.spec b/dlls/msvcp60/msvcp60.spec index f49643072c..b0e43e0c4b 100644 --- a/dlls/msvcp60/msvcp60.spec +++ b/dlls/msvcp60/msvcp60.spec @@ -4302,7 +4302,7 @@ @ cdecl _Stof(ptr ptr long) @ cdecl _Stold(ptr ptr long) _Stod @ cdecl _Strcoll(ptr ptr ptr ptr ptr) -@ stub _Strxfrm +@ cdecl _Strxfrm(ptr ptr ptr ptr ptr) @ cdecl _Tolower(long ptr) @ cdecl _Toupper(long ptr) @ cdecl _Wcrtomb(ptr long ptr ptr) diff --git a/dlls/msvcp70/msvcp70.spec b/dlls/msvcp70/msvcp70.spec index 4e75c20618..04f45a3f03 100644 --- a/dlls/msvcp70/msvcp70.spec +++ b/dlls/msvcp70/msvcp70.spec @@ -5090,7 +5090,7 @@ @ cdecl _Stof(ptr ptr long) @ cdecl _Stold(ptr ptr long) _Stod @ cdecl _Strcoll(ptr ptr ptr ptr ptr) -@ stub _Strxfrm +@ cdecl _Strxfrm(ptr ptr ptr ptr ptr) @ cdecl _Tolower(long ptr) @ cdecl _Toupper(long ptr) @ cdecl _Wcrtomb(ptr long ptr ptr) diff --git a/dlls/msvcp71/msvcp71.spec b/dlls/msvcp71/msvcp71.spec index 6d3e931aa3..a9d1cc2562 100644 --- a/dlls/msvcp71/msvcp71.spec +++ b/dlls/msvcp71/msvcp71.spec @@ -5146,7 +5146,7 @@ @ cdecl _Stof(ptr ptr long) @ cdecl _Stold(ptr ptr long) _Stod @ cdecl _Strcoll(ptr ptr ptr ptr ptr) -@ stub _Strxfrm +@ cdecl _Strxfrm(ptr ptr ptr ptr ptr) @ cdecl _Tolower(long ptr) @ cdecl _Toupper(long ptr) @ cdecl _Towlower(long ptr) diff --git a/dlls/msvcp80/msvcp80.spec b/dlls/msvcp80/msvcp80.spec index 8cf9e5489c..6073b996cc 100644 --- a/dlls/msvcp80/msvcp80.spec +++ b/dlls/msvcp80/msvcp80.spec @@ -5772,7 +5772,7 @@ @ cdecl _Stoulx(ptr ptr long ptr) @ stub _Stoxflt @ cdecl _Strcoll(ptr ptr ptr ptr ptr) -@ stub _Strxfrm +@ cdecl _Strxfrm(ptr ptr ptr ptr ptr) @ cdecl _Tolower(long ptr) @ cdecl _Toupper(long ptr) @ cdecl _Towlower(long ptr) diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c index 068e81e2df..1c577cda13 100644 --- a/dlls/msvcp90/locale.c +++ b/dlls/msvcp90/locale.c @@ -35,6 +35,7 @@ #include "winnls.h" #include "msvcp90.h" #include "wine/unicode.h" +#include "wine/heap.h" #include "wine/list.h" #include "wine/debug.h" @@ -12667,6 +12668,44 @@ int __cdecl _To_wide(const char *src, wchar_t *dst) return MultiByteToWideChar(CP_ACP, 0, src, -1, dst, MAX_PATH); } +MSVCP_size_t __cdecl _Strxfrm(char *dest, char *dest_end, const char *src, const char *src_end, _Collvec *coll) +{ + MSVCP_size_t dest_len = dest_end - dest; + MSVCP_size_t src_len = src_end - src; + _Collvec cv; + WCHAR *buf; + LCID lcid; + int len; + + TRACE("(%p %p %p %p %p)\n", dest, dest_end, src, src_end, coll); + + if (coll) cv = *coll; + else getcoll(&cv); + +#if _MSVCP_VER < 110 + lcid = cv.handle; +#else + lcid = LocaleNameToLCID(cv.lc_name, 0); +#endif + + if (!lcid && !cv.page) + { + if (src_len > dest_len) return src_len; + memcpy(dest, src, src_len); + return src_len; + } + + len = MultiByteToWideChar(cv.page, MB_ERR_INVALID_CHARS, src, src_len, NULL, 0); + if (!len) return 0; + buf = heap_alloc(len * sizeof(WCHAR)); + if (!buf) return 0; + MultiByteToWideChar(cv.page, MB_ERR_INVALID_CHARS, src, src_len, buf, len); + + len = LCMapStringW(lcid, LCMAP_SORTKEY, buf, len, (WCHAR*)dest, dest_len); + heap_free(buf); + return len; +} + DEFINE_RTTI_DATA0(_Facet_base, 0, ".?AV_Facet_base@std@@") DEFINE_RTTI_DATA0(locale_facet, 0, ".?AVfacet@locale@std@@") DEFINE_RTTI_DATA1(locale__Locimp, 0, &locale_facet_rtti_base_descriptor, ".?AV_Locimp@locale@std@@") diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec index 1df283ab22..b0b8665d24 100644 --- a/dlls/msvcp90/msvcp90.spec +++ b/dlls/msvcp90/msvcp90.spec @@ -6547,7 +6547,7 @@ @ cdecl -ret64 _Stoullx(ptr ptr long ptr) @ cdecl _Stoulx(ptr ptr long ptr) @ cdecl _Strcoll(ptr ptr ptr ptr ptr) -@ stub _Strxfrm +@ cdecl _Strxfrm(ptr ptr ptr ptr ptr) @ cdecl _Tolower(long ptr) @ cdecl _Toupper(long ptr) @ cdecl _Towlower(long ptr) diff --git a/dlls/msvcp90/tests/misc.c b/dlls/msvcp90/tests/misc.c index e9fd1e06be..260695af97 100644 --- a/dlls/msvcp90/tests/misc.c +++ b/dlls/msvcp90/tests/misc.c @@ -119,6 +119,7 @@ static /*MSVCP__Collvec*/ULONGLONG (__cdecl *p__Getcoll)(void); static wctrans_t (__cdecl *p_wctrans)(const char*); static wint_t (__cdecl *p_towctrans)(wint_t, wctrans_t); static void (__cdecl *p_locale__Locimp__Locimp_Addfac)(locale__Locimp*,locale_facet*,size_t); +static size_t (__cdecl *p__Strxfrm)(char*, char*, const char*, const char*, const MSVCP__Collvec*); #undef __thiscall #ifdef __i386__ @@ -262,6 +263,7 @@ static BOOL init(void) SET(p__Getcoll, "_Getcoll"); SET(p_wctrans, "wctrans"); SET(p_towctrans, "towctrans"); + SET(p__Strxfrm, "_Strxfrm"); SET(basic_ostringstream_char_vbtable, "??_8?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@"); SET(p_std_Ctraits_float__Isnan, "?_Isnan@?$_Ctraits@M@std@@SA_NM@Z"); @@ -1102,6 +1104,26 @@ static void test_raise_handler(void) *p_Raise_handler = NULL; } +static void test__Strxfrm(void) +{ + const char in[] = "abc"; + + MSVCP__Collvec coll; + char out[64]; + size_t ret; + + memset(&coll, 0, sizeof(coll)); + + out[0] = 'z'; + ret = p__Strxfrm(out, out + 1, in, in + 2, &coll); + ok(ret == 2, "ret = %d\n", (int)ret); + ok(out[0] == 'z', "out[0] = %x\n", out[0]); + + ret = p__Strxfrm(out, out + sizeof(out), in, in + 4, &coll); + ok(ret == 4, "ret = %d\n", (int)ret); + ok(!strcmp(in, out), "out = %s\n", out); +} + START_TEST(misc) { if(!init()) @@ -1122,6 +1144,7 @@ START_TEST(misc) test_vbtable_size_exports(); test_locale__Locimp__Locimp_Addfac(); test_raise_handler(); + test__Strxfrm(); ok(!invalid_parameter, "invalid_parameter_handler was invoked too many times\n");
1
0
0
0
Nikolay Sivov : comctl32/trackbar: Do not consider window size when initializing fixed length thumb.
by Alexandre Julliard
25 Nov '19
25 Nov '19
Module: wine Branch: stable Commit: d049e4965d071e2fe38a3ae14665b307a7dfa296 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=d049e4965d071e2fe38a3ae1…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Mon Jun 3 13:10:04 2019 +0300 comctl32/trackbar: Do not consider window size when initializing fixed length thumb. Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=47143
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit d5f8eb333c5c000a3ea986ea532c0ba030ebad88) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/comctl32/tests/trackbar.c | 18 +++++++++++++++++- dlls/comctl32/trackbar.c | 19 +++++++++++-------- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/dlls/comctl32/tests/trackbar.c b/dlls/comctl32/tests/trackbar.c index 7f17e9e4b6..eb5464483d 100644 --- a/dlls/comctl32/tests/trackbar.c +++ b/dlls/comctl32/tests/trackbar.c @@ -931,7 +931,7 @@ static void test_selection(void) static void test_thumb_length(void) { HWND hWndTrackbar; - int r; + int r, r2; hWndTrackbar = create_trackbar(defaultstyle, hWndParent); ok(hWndTrackbar != NULL, "Expected non NULL value\n"); @@ -963,6 +963,22 @@ static void test_thumb_length(void) ok_sequence(sequences, PARENT_SEQ_INDEX, parent_thumb_length_test_seq, "parent thumb length test sequence", TRUE); DestroyWindow(hWndTrackbar); + + /* Fixed thumb length does not depend on window size. */ + hWndTrackbar = CreateWindowA(TRACKBAR_CLASSA, "Trackbar Control", WS_VISIBLE | TBS_ENABLESELRANGE + | TBS_FIXEDLENGTH, 0, 0, 0, 0, hWndParent, NULL, GetModuleHandleA(NULL), NULL); + + r = SendMessageA(hWndTrackbar, TBM_GETTHUMBLENGTH, 0, 0); + + DestroyWindow(hWndTrackbar); + + hWndTrackbar = CreateWindowA(TRACKBAR_CLASSA, "Trackbar Control", WS_VISIBLE | TBS_ENABLESELRANGE + | TBS_FIXEDLENGTH, 0, 0, 200, 200, hWndParent, NULL, GetModuleHandleA(NULL), NULL); + + r2 = SendMessageA(hWndTrackbar, TBM_GETTHUMBLENGTH, 0, 0); + ok(r2 == r, "Unexpected thumb length %d.\n", r); + + DestroyWindow(hWndTrackbar); } static void test_tic_settings(void) diff --git a/dlls/comctl32/trackbar.c b/dlls/comctl32/trackbar.c index 7cb73ca682..f4d2d3458a 100644 --- a/dlls/comctl32/trackbar.c +++ b/dlls/comctl32/trackbar.c @@ -1481,15 +1481,18 @@ TRACKBAR_InitializeThumb (TRACKBAR_INFO *infoPtr) infoPtr->uThumbLen = get_scaled_metric(infoPtr, infoPtr->dwStyle & TBS_ENABLESELRANGE ? 23 : 21); - GetClientRect(infoPtr->hwndSelf,&rect); - if (infoPtr->dwStyle & TBS_VERT) - client_size = rect.right - rect.left; - else - client_size = rect.bottom - rect.top; + if (!(infoPtr->dwStyle & TBS_FIXEDLENGTH)) + { + GetClientRect(infoPtr->hwndSelf, &rect); + if (infoPtr->dwStyle & TBS_VERT) + client_size = rect.right - rect.left; + else + client_size = rect.bottom - rect.top; - if (client_size < infoPtr->uThumbLen) - infoPtr->uThumbLen = client_size > get_scaled_metric(infoPtr, 9) ? - client_size - get_scaled_metric(infoPtr, 5) : get_scaled_metric(infoPtr, 4); + if (client_size < infoPtr->uThumbLen) + infoPtr->uThumbLen = client_size > get_scaled_metric(infoPtr, 9) ? + client_size - get_scaled_metric(infoPtr, 5) : get_scaled_metric(infoPtr, 4); + } TRACKBAR_CalcChannel (infoPtr); TRACKBAR_UpdateThumb (infoPtr);
1
0
0
0
← Newer
1
...
25
26
27
28
29
30
31
...
90
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Results per page:
10
25
50
100
200