mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Cleanup whitespace noise
This commit is contained in:
parent
506efa392c
commit
dd581d0b2f
@ -1,14 +1,15 @@
|
||||
From 87860f6a1666321684e9dd5e7553a40e1656a9b4 Mon Sep 17 00:00:00 2001
|
||||
From 75add3c0c65775eb3fa825aafbe46373c0bd08f1 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Fri, 24 May 2019 16:16:13 +1000
|
||||
Subject: [PATCH] dinput: Allow mapping of controls based of Genre type.
|
||||
Subject: [PATCH] dinput: Allow mapping of controls based of Genre
|
||||
type.
|
||||
|
||||
---
|
||||
dlls/dinput/device.c | 41 ++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 40 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
|
||||
index 0c9432698ae..00b97bd24bd 100644
|
||||
index c7e585c50f4..84a41996700 100644
|
||||
--- a/dlls/dinput/device.c
|
||||
+++ b/dlls/dinput/device.c
|
||||
@@ -893,8 +893,15 @@ HRESULT _set_action_map(LPDIRECTINPUTDEVICE8W iface, LPDIACTIONFORMATW lpdiaf, L
|
||||
@ -18,7 +19,7 @@ index 0c9432698ae..00b97bd24bd 100644
|
||||
- if (IsEqualGUID(&This->guid, &lpdiaf->rgoAction[i].guidInstance))
|
||||
+ {
|
||||
+ if (IsEqualGUID(&This->guid, &lpdiaf->rgoAction[i].guidInstance) ||
|
||||
+ (IsEqualGUID(&IID_NULL, &lpdiaf->rgoAction[i].guidInstance) &&
|
||||
+ (IsEqualGUID(&IID_NULL, &lpdiaf->rgoAction[i].guidInstance) &&
|
||||
+ ((lpdiaf->rgoAction[i].dwSemantic & lpdiaf->dwGenre) == lpdiaf->dwGenre ||
|
||||
+ (lpdiaf->rgoAction[i].dwSemantic & 0xff000000) == 0xff000000 /* Any Axis */) ))
|
||||
+ {
|
||||
@ -69,5 +70,5 @@ index 0c9432698ae..00b97bd24bd 100644
|
||||
IDirectInputDevice8_SetDataFormat(iface, &data_format);
|
||||
|
||||
--
|
||||
2.17.1
|
||||
2.24.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9ed6b36924bd91b046f3df62512d6b8369b917d0 Mon Sep 17 00:00:00 2001
|
||||
From efa0cbb8de357cf24f6eb4d15c638dd3c26819ba Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 29 Jul 2019 09:09:41 +1000
|
||||
Subject: [PATCH] directmanipulation/tests: Initial tests
|
||||
@ -13,10 +13,10 @@ Subject: [PATCH] directmanipulation/tests: Initial tests
|
||||
create mode 100644 dlls/directmanipulation/tests/manipulation.c
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index bc376a6686..d23b90c6a4 100755
|
||||
index 2ae3710ebb0..da201f4ffef 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -20164,6 +20164,7 @@ wine_fn_config_makefile dlls/dinput/tests enable_tests
|
||||
@@ -20370,6 +20370,7 @@ wine_fn_config_makefile dlls/dinput/tests enable_tests
|
||||
wine_fn_config_makefile dlls/dinput8 enable_dinput8
|
||||
wine_fn_config_makefile dlls/dinput8/tests enable_tests
|
||||
wine_fn_config_makefile dlls/directmanipulation enable_directmanipulation
|
||||
@ -25,10 +25,10 @@ index bc376a6686..d23b90c6a4 100755
|
||||
wine_fn_config_makefile dlls/dispex enable_dispex
|
||||
wine_fn_config_makefile dlls/dispex/tests enable_tests
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 51519fdd9b..6d8562da0d 100644
|
||||
index 7c0044c8872..b2a913132c2 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3149,6 +3149,7 @@ WINE_CONFIG_MAKEFILE(dlls/dinput/tests)
|
||||
@@ -3186,6 +3186,7 @@ WINE_CONFIG_MAKEFILE(dlls/dinput/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dinput8)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dinput8/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/directmanipulation)
|
||||
@ -38,7 +38,7 @@ index 51519fdd9b..6d8562da0d 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/dispex/tests)
|
||||
diff --git a/dlls/directmanipulation/tests/Makefile.in b/dlls/directmanipulation/tests/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000000..29ec0db511
|
||||
index 00000000000..29ec0db511a
|
||||
--- /dev/null
|
||||
+++ b/dlls/directmanipulation/tests/Makefile.in
|
||||
@@ -0,0 +1,5 @@
|
||||
@ -49,11 +49,11 @@ index 0000000000..29ec0db511
|
||||
+ manipulation.c
|
||||
diff --git a/dlls/directmanipulation/tests/manipulation.c b/dlls/directmanipulation/tests/manipulation.c
|
||||
new file mode 100644
|
||||
index 0000000000..9ecc3d54be
|
||||
index 00000000000..93b692729b3
|
||||
--- /dev/null
|
||||
+++ b/dlls/directmanipulation/tests/manipulation.c
|
||||
@@ -0,0 +1,60 @@
|
||||
+/*
|
||||
+/*
|
||||
+ *
|
||||
+ * Copyright 2019 Alistair Leslie-Hughes
|
||||
+ *
|
||||
@ -114,5 +114,5 @@ index 0000000000..9ecc3d54be
|
||||
+ CoUninitialize();
|
||||
+}
|
||||
--
|
||||
2.17.1
|
||||
2.24.1
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
From 7c3b389af5d0e6e7317bff0466815e40a2b498b4 Mon Sep 17 00:00:00 2001
|
||||
From 43adf130316be7307224c730daf9601583af8a0c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 20 Dec 2014 23:10:38 +0100
|
||||
Subject: [PATCH] Add licenses for fonts as separate files.
|
||||
|
||||
---
|
||||
COPYING.arial | 65 ++++++
|
||||
COPYING.cour | 65 ++++++
|
||||
COPYING.msyh | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
COPYING.times | 65 ++++++
|
||||
LICENSE | 25 +++
|
||||
5 files changed, 894 insertions(+)
|
||||
COPYING.arial | 65 +++++
|
||||
COPYING.cour | 65 +++++
|
||||
COPYING.msyh | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
COPYING.times | 65 +++++
|
||||
LICENSE | 24 ++
|
||||
5 files changed, 893 insertions(+)
|
||||
create mode 100644 COPYING.arial
|
||||
create mode 100644 COPYING.cour
|
||||
create mode 100644 COPYING.msyh
|
||||
@ -17,7 +17,7 @@ Subject: [PATCH] Add licenses for fonts as separate files.
|
||||
|
||||
diff --git a/COPYING.arial b/COPYING.arial
|
||||
new file mode 100644
|
||||
index 0000000..b756428
|
||||
index 00000000000..b75642825ba
|
||||
--- /dev/null
|
||||
+++ b/COPYING.arial
|
||||
@@ -0,0 +1,65 @@
|
||||
@ -88,7 +88,7 @@ index 0000000..b756428
|
||||
+trademark of Red Hat, Inc.
|
||||
diff --git a/COPYING.cour b/COPYING.cour
|
||||
new file mode 100644
|
||||
index 0000000..b756428
|
||||
index 00000000000..b75642825ba
|
||||
--- /dev/null
|
||||
+++ b/COPYING.cour
|
||||
@@ -0,0 +1,65 @@
|
||||
@ -159,7 +159,7 @@ index 0000000..b756428
|
||||
+trademark of Red Hat, Inc.
|
||||
diff --git a/COPYING.msyh b/COPYING.msyh
|
||||
new file mode 100644
|
||||
index 0000000..94a9ed0
|
||||
index 00000000000..94a9ed024d3
|
||||
--- /dev/null
|
||||
+++ b/COPYING.msyh
|
||||
@@ -0,0 +1,674 @@
|
||||
@ -839,7 +839,7 @@ index 0000000..94a9ed0
|
||||
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
diff --git a/COPYING.times b/COPYING.times
|
||||
new file mode 100644
|
||||
index 0000000..b756428
|
||||
index 00000000000..b75642825ba
|
||||
--- /dev/null
|
||||
+++ b/COPYING.times
|
||||
@@ -0,0 +1,65 @@
|
||||
@ -909,10 +909,10 @@ index 0000000..b756428
|
||||
+Copyright © 2007-2011 Red Hat, Inc. All rights reserved. LIBERATION is a
|
||||
+trademark of Red Hat, Inc.
|
||||
diff --git a/LICENSE b/LICENSE
|
||||
index 765b9c3..6fdc83c 100644
|
||||
index 34528113709..8c008ec9f78 100644
|
||||
--- a/LICENSE
|
||||
+++ b/LICENSE
|
||||
@@ -15,3 +15,28 @@ A copy of the GNU Lesser General Public License is included in the
|
||||
@@ -15,3 +15,27 @@ A copy of the GNU Lesser General Public License is included in the
|
||||
Wine distribution in the file COPYING.LIB. If you did not receive this
|
||||
copy, write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
@ -940,7 +940,6 @@ index 765b9c3..6fdc83c 100644
|
||||
+ * fonts/msyh.ttf and fonts/msyh.sfd
|
||||
+ The WenQuanYi Micro Hei font is licensed under both the APACHE 2
|
||||
+ license and GPLv3. See COPYING.msyh for GPLv3.
|
||||
+
|
||||
--
|
||||
1.9.1
|
||||
2.24.1
|
||||
|
||||
|
@ -1,214 +1,213 @@
|
||||
From 4fc357d3455dd7c75610eda2bf1751f64d55a816 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Wed, 18 Dec 2019 15:14:05 +0800
|
||||
Subject: [PATCH] gdiplus: Use refcounting for GpFontFamily instead of cloning.
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
To: wine-devel@winehq.org
|
||||
|
||||
.Net 4.7+ depends on this behaviour.
|
||||
|
||||
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
---
|
||||
dlls/gdiplus/font.c | 38 ++++++++++++-----------
|
||||
dlls/gdiplus/gdiplus_private.h | 1 +
|
||||
dlls/gdiplus/tests/font.c | 57 +++++++++++++++++++++++++++++++++-
|
||||
3 files changed, 77 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/dlls/gdiplus/font.c b/dlls/gdiplus/font.c
|
||||
index eee272082f..bc4fd2281f 100644
|
||||
--- a/dlls/gdiplus/font.c
|
||||
+++ b/dlls/gdiplus/font.c
|
||||
@@ -115,8 +115,6 @@ typedef struct
|
||||
#define MS_OS2_TAG MS_MAKE_TAG('O','S','/','2')
|
||||
#define MS_HHEA_TAG MS_MAKE_TAG('h','h','e','a')
|
||||
|
||||
-static GpStatus clone_font_family(const GpFontFamily *, GpFontFamily **);
|
||||
-
|
||||
static GpFontCollection installedFontCollection = {0};
|
||||
|
||||
/*******************************************************************************
|
||||
@@ -183,13 +181,8 @@ GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily *fontFamily,
|
||||
(*font)->unit = unit;
|
||||
(*font)->emSize = emSize;
|
||||
(*font)->otm = otm;
|
||||
-
|
||||
- stat = clone_font_family(fontFamily, &(*font)->family);
|
||||
- if (stat != Ok)
|
||||
- {
|
||||
- heap_free(*font);
|
||||
- return stat;
|
||||
- }
|
||||
+ (*font)->family = (GpFontFamily *)fontFamily;
|
||||
+ InterlockedIncrement(&(*font)->family->ref);
|
||||
|
||||
TRACE("<-- %p\n", *font);
|
||||
|
||||
@@ -322,7 +315,10 @@ GpStatus WINGDIPAPI GdipGetFamily(GpFont *font, GpFontFamily **family)
|
||||
if (!(font && family))
|
||||
return InvalidParameter;
|
||||
|
||||
- return GdipCloneFontFamily(font->family, family);
|
||||
+ InterlockedIncrement(&font->family->ref);
|
||||
+ *family = font->family;
|
||||
+
|
||||
+ return Ok;
|
||||
}
|
||||
|
||||
static REAL get_font_size(const GpFont *font)
|
||||
@@ -518,8 +514,6 @@ GpStatus WINGDIPAPI GdipGetLogFontW(GpFont *font, GpGraphics *graphics, LOGFONTW
|
||||
*/
|
||||
GpStatus WINGDIPAPI GdipCloneFont(GpFont *font, GpFont **cloneFont)
|
||||
{
|
||||
- GpStatus stat;
|
||||
-
|
||||
TRACE("(%p, %p)\n", font, cloneFont);
|
||||
|
||||
if(!font || !cloneFont)
|
||||
@@ -529,10 +523,10 @@ GpStatus WINGDIPAPI GdipCloneFont(GpFont *font, GpFont **cloneFont)
|
||||
if(!*cloneFont) return OutOfMemory;
|
||||
|
||||
**cloneFont = *font;
|
||||
- stat = GdipCloneFontFamily(font->family, &(*cloneFont)->family);
|
||||
- if (stat != Ok) heap_free(*cloneFont);
|
||||
+ InterlockedIncrement(&font->family->ref);
|
||||
+ (*cloneFont)->family = font->family;
|
||||
|
||||
- return stat;
|
||||
+ return Ok;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
@@ -769,6 +763,7 @@ GpStatus WINGDIPAPI GdipCreateFontFamilyFromName(GDIPCONST WCHAR *name,
|
||||
ffamily->descent = fm.descent;
|
||||
ffamily->line_spacing = fm.line_spacing;
|
||||
ffamily->dpi = fm.dpi;
|
||||
+ ffamily->ref = 1;
|
||||
|
||||
*FontFamily = ffamily;
|
||||
|
||||
@@ -783,6 +778,7 @@ static GpStatus clone_font_family(const GpFontFamily *family, GpFontFamily **clo
|
||||
if (!*clone) return OutOfMemory;
|
||||
|
||||
**clone = *family;
|
||||
+ (*clone)->ref = 1;
|
||||
|
||||
return Ok;
|
||||
}
|
||||
@@ -867,11 +863,17 @@ GpStatus WINGDIPAPI GdipGetFamilyName (GDIPCONST GpFontFamily *family,
|
||||
*/
|
||||
GpStatus WINGDIPAPI GdipDeleteFontFamily(GpFontFamily *FontFamily)
|
||||
{
|
||||
- if (!FontFamily)
|
||||
+ LONG ref;
|
||||
+
|
||||
+ if (!FontFamily || !FontFamily->ref)
|
||||
return InvalidParameter;
|
||||
- TRACE("Deleting %p (%s)\n", FontFamily, debugstr_w(FontFamily->FamilyName));
|
||||
|
||||
- heap_free (FontFamily);
|
||||
+ ref = InterlockedDecrement(&FontFamily->ref);
|
||||
+ if (!ref)
|
||||
+ {
|
||||
+ TRACE("Deleting %p (%s)\n", FontFamily, debugstr_w(FontFamily->FamilyName));
|
||||
+ heap_free(FontFamily);
|
||||
+ }
|
||||
|
||||
return Ok;
|
||||
}
|
||||
diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h
|
||||
index 8c4fcceded..6b48c360e6 100644
|
||||
--- a/dlls/gdiplus/gdiplus_private.h
|
||||
+++ b/dlls/gdiplus/gdiplus_private.h
|
||||
@@ -518,6 +518,7 @@ struct GpFontCollection{
|
||||
};
|
||||
|
||||
struct GpFontFamily{
|
||||
+ LONG ref;
|
||||
WCHAR FamilyName[LF_FACESIZE];
|
||||
UINT16 em_height, ascent, descent, line_spacing; /* in font units */
|
||||
int dpi;
|
||||
diff --git a/dlls/gdiplus/tests/font.c b/dlls/gdiplus/tests/font.c
|
||||
index 33b75c5bc5..3cada58e39 100644
|
||||
--- a/dlls/gdiplus/tests/font.c
|
||||
+++ b/dlls/gdiplus/tests/font.c
|
||||
@@ -141,7 +141,6 @@ static void test_createfont(void)
|
||||
expect(Ok, stat);
|
||||
stat = GdipGetFamilyName(fontfamily2, familyname, 0);
|
||||
expect(Ok, stat);
|
||||
-todo_wine
|
||||
ok (fontfamily == fontfamily2, "Unexpected family instance.\n");
|
||||
ok (lstrcmpiW(Tahoma, familyname) == 0, "Expected Tahoma, got %s\n",
|
||||
wine_dbgstr_w(familyname));
|
||||
@@ -1282,6 +1281,61 @@ static void test_GdipGetFontCollectionFamilyCount(void)
|
||||
ok(status == InvalidParameter, "Unexpected status %d.\n", status);
|
||||
}
|
||||
|
||||
+static void test_CloneFont(void)
|
||||
+{
|
||||
+ GpStatus status;
|
||||
+ GpFont *font, *font2;
|
||||
+ GpFontFamily *family, *family2;
|
||||
+ REAL height;
|
||||
+ Unit unit;
|
||||
+ int style;
|
||||
+
|
||||
+ status = GdipCreateFontFamilyFromName(Tahoma, NULL, &family);
|
||||
+ expect(Ok, status);
|
||||
+
|
||||
+ status = GdipCreateFont(family, 30.0f, FontStyleRegular, UnitPixel, &font);
|
||||
+ expect(Ok, status);
|
||||
+
|
||||
+ status = GdipGetFontUnit(font, &unit);
|
||||
+ expect(Ok, status);
|
||||
+ ok(unit == UnitPixel, "got %u\n", unit);
|
||||
+
|
||||
+ status = GdipGetFontSize(font, &height);
|
||||
+ expect(Ok, status);
|
||||
+ ok(height == 30.0f, "got %f\n", height);
|
||||
+
|
||||
+ status = GdipGetFontStyle(font, &style);
|
||||
+ expect(Ok, status);
|
||||
+ ok(style == FontStyleRegular, "got %d\n", style);
|
||||
+
|
||||
+ status = GdipGetFamily(font, &family2);
|
||||
+ expect(Ok, status);
|
||||
+ ok(family == family2, "got %p\n", family2);
|
||||
+
|
||||
+ status = GdipCloneFont(font, &font2);
|
||||
+ expect(Ok, status);
|
||||
+
|
||||
+ status = GdipGetFontUnit(font2, &unit);
|
||||
+ expect(Ok, status);
|
||||
+ ok(unit == UnitPixel, "got %u\n", unit);
|
||||
+
|
||||
+ status = GdipGetFontSize(font2, &height);
|
||||
+ expect(Ok, status);
|
||||
+ ok(height == 30.0f, "got %f\n", height);
|
||||
+
|
||||
+ status = GdipGetFontStyle(font2, &style);
|
||||
+ expect(Ok, status);
|
||||
+ ok(style == FontStyleRegular, "got %d\n", style);
|
||||
+
|
||||
+ status = GdipGetFamily(font2, &family2);
|
||||
+ expect(Ok, status);
|
||||
+ ok(family == family2, "got %p\n", family2);
|
||||
+
|
||||
+ GdipDeleteFont(font2);
|
||||
+ GdipDeleteFont(font);
|
||||
+ GdipDeleteFontFamily(family);
|
||||
+}
|
||||
+
|
||||
START_TEST(font)
|
||||
{
|
||||
struct GdiplusStartupInput gdiplusStartupInput;
|
||||
@@ -1301,6 +1355,7 @@ START_TEST(font)
|
||||
|
||||
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
|
||||
|
||||
+ test_CloneFont();
|
||||
test_long_name();
|
||||
test_font_transform();
|
||||
test_font_substitution();
|
||||
--
|
||||
2.20.1
|
||||
|
||||
From d668ed8e163bb76577bd43727574c3f2a2653c24 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Wed, 18 Dec 2019 15:14:05 +0800
|
||||
Subject: [PATCH] gdiplus: Use refcounting for GpFontFamily instead of
|
||||
cloning.
|
||||
|
||||
.Net 4.7+ depends on this behaviour.
|
||||
|
||||
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
---
|
||||
dlls/gdiplus/font.c | 38 ++++++++++++-----------
|
||||
dlls/gdiplus/gdiplus_private.h | 1 +
|
||||
dlls/gdiplus/tests/font.c | 57 +++++++++++++++++++++++++++++++++-
|
||||
3 files changed, 77 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/dlls/gdiplus/font.c b/dlls/gdiplus/font.c
|
||||
index eee272082f1..bc4fd2281f5 100644
|
||||
--- a/dlls/gdiplus/font.c
|
||||
+++ b/dlls/gdiplus/font.c
|
||||
@@ -115,8 +115,6 @@ typedef struct
|
||||
#define MS_OS2_TAG MS_MAKE_TAG('O','S','/','2')
|
||||
#define MS_HHEA_TAG MS_MAKE_TAG('h','h','e','a')
|
||||
|
||||
-static GpStatus clone_font_family(const GpFontFamily *, GpFontFamily **);
|
||||
-
|
||||
static GpFontCollection installedFontCollection = {0};
|
||||
|
||||
/*******************************************************************************
|
||||
@@ -183,13 +181,8 @@ GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily *fontFamily,
|
||||
(*font)->unit = unit;
|
||||
(*font)->emSize = emSize;
|
||||
(*font)->otm = otm;
|
||||
-
|
||||
- stat = clone_font_family(fontFamily, &(*font)->family);
|
||||
- if (stat != Ok)
|
||||
- {
|
||||
- heap_free(*font);
|
||||
- return stat;
|
||||
- }
|
||||
+ (*font)->family = (GpFontFamily *)fontFamily;
|
||||
+ InterlockedIncrement(&(*font)->family->ref);
|
||||
|
||||
TRACE("<-- %p\n", *font);
|
||||
|
||||
@@ -322,7 +315,10 @@ GpStatus WINGDIPAPI GdipGetFamily(GpFont *font, GpFontFamily **family)
|
||||
if (!(font && family))
|
||||
return InvalidParameter;
|
||||
|
||||
- return GdipCloneFontFamily(font->family, family);
|
||||
+ InterlockedIncrement(&font->family->ref);
|
||||
+ *family = font->family;
|
||||
+
|
||||
+ return Ok;
|
||||
}
|
||||
|
||||
static REAL get_font_size(const GpFont *font)
|
||||
@@ -518,8 +514,6 @@ GpStatus WINGDIPAPI GdipGetLogFontW(GpFont *font, GpGraphics *graphics, LOGFONTW
|
||||
*/
|
||||
GpStatus WINGDIPAPI GdipCloneFont(GpFont *font, GpFont **cloneFont)
|
||||
{
|
||||
- GpStatus stat;
|
||||
-
|
||||
TRACE("(%p, %p)\n", font, cloneFont);
|
||||
|
||||
if(!font || !cloneFont)
|
||||
@@ -529,10 +523,10 @@ GpStatus WINGDIPAPI GdipCloneFont(GpFont *font, GpFont **cloneFont)
|
||||
if(!*cloneFont) return OutOfMemory;
|
||||
|
||||
**cloneFont = *font;
|
||||
- stat = GdipCloneFontFamily(font->family, &(*cloneFont)->family);
|
||||
- if (stat != Ok) heap_free(*cloneFont);
|
||||
+ InterlockedIncrement(&font->family->ref);
|
||||
+ (*cloneFont)->family = font->family;
|
||||
|
||||
- return stat;
|
||||
+ return Ok;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
@@ -769,6 +763,7 @@ GpStatus WINGDIPAPI GdipCreateFontFamilyFromName(GDIPCONST WCHAR *name,
|
||||
ffamily->descent = fm.descent;
|
||||
ffamily->line_spacing = fm.line_spacing;
|
||||
ffamily->dpi = fm.dpi;
|
||||
+ ffamily->ref = 1;
|
||||
|
||||
*FontFamily = ffamily;
|
||||
|
||||
@@ -783,6 +778,7 @@ static GpStatus clone_font_family(const GpFontFamily *family, GpFontFamily **clo
|
||||
if (!*clone) return OutOfMemory;
|
||||
|
||||
**clone = *family;
|
||||
+ (*clone)->ref = 1;
|
||||
|
||||
return Ok;
|
||||
}
|
||||
@@ -867,11 +863,17 @@ GpStatus WINGDIPAPI GdipGetFamilyName (GDIPCONST GpFontFamily *family,
|
||||
*/
|
||||
GpStatus WINGDIPAPI GdipDeleteFontFamily(GpFontFamily *FontFamily)
|
||||
{
|
||||
- if (!FontFamily)
|
||||
+ LONG ref;
|
||||
+
|
||||
+ if (!FontFamily || !FontFamily->ref)
|
||||
return InvalidParameter;
|
||||
- TRACE("Deleting %p (%s)\n", FontFamily, debugstr_w(FontFamily->FamilyName));
|
||||
|
||||
- heap_free (FontFamily);
|
||||
+ ref = InterlockedDecrement(&FontFamily->ref);
|
||||
+ if (!ref)
|
||||
+ {
|
||||
+ TRACE("Deleting %p (%s)\n", FontFamily, debugstr_w(FontFamily->FamilyName));
|
||||
+ heap_free(FontFamily);
|
||||
+ }
|
||||
|
||||
return Ok;
|
||||
}
|
||||
diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h
|
||||
index 8c4fccededa..6b48c360e60 100644
|
||||
--- a/dlls/gdiplus/gdiplus_private.h
|
||||
+++ b/dlls/gdiplus/gdiplus_private.h
|
||||
@@ -518,6 +518,7 @@ struct GpFontCollection{
|
||||
};
|
||||
|
||||
struct GpFontFamily{
|
||||
+ LONG ref;
|
||||
WCHAR FamilyName[LF_FACESIZE];
|
||||
UINT16 em_height, ascent, descent, line_spacing; /* in font units */
|
||||
int dpi;
|
||||
diff --git a/dlls/gdiplus/tests/font.c b/dlls/gdiplus/tests/font.c
|
||||
index 33b75c5bc52..3cada58e394 100644
|
||||
--- a/dlls/gdiplus/tests/font.c
|
||||
+++ b/dlls/gdiplus/tests/font.c
|
||||
@@ -141,7 +141,6 @@ static void test_createfont(void)
|
||||
expect(Ok, stat);
|
||||
stat = GdipGetFamilyName(fontfamily2, familyname, 0);
|
||||
expect(Ok, stat);
|
||||
-todo_wine
|
||||
ok (fontfamily == fontfamily2, "Unexpected family instance.\n");
|
||||
ok (lstrcmpiW(Tahoma, familyname) == 0, "Expected Tahoma, got %s\n",
|
||||
wine_dbgstr_w(familyname));
|
||||
@@ -1282,6 +1281,61 @@ static void test_GdipGetFontCollectionFamilyCount(void)
|
||||
ok(status == InvalidParameter, "Unexpected status %d.\n", status);
|
||||
}
|
||||
|
||||
+static void test_CloneFont(void)
|
||||
+{
|
||||
+ GpStatus status;
|
||||
+ GpFont *font, *font2;
|
||||
+ GpFontFamily *family, *family2;
|
||||
+ REAL height;
|
||||
+ Unit unit;
|
||||
+ int style;
|
||||
+
|
||||
+ status = GdipCreateFontFamilyFromName(Tahoma, NULL, &family);
|
||||
+ expect(Ok, status);
|
||||
+
|
||||
+ status = GdipCreateFont(family, 30.0f, FontStyleRegular, UnitPixel, &font);
|
||||
+ expect(Ok, status);
|
||||
+
|
||||
+ status = GdipGetFontUnit(font, &unit);
|
||||
+ expect(Ok, status);
|
||||
+ ok(unit == UnitPixel, "got %u\n", unit);
|
||||
+
|
||||
+ status = GdipGetFontSize(font, &height);
|
||||
+ expect(Ok, status);
|
||||
+ ok(height == 30.0f, "got %f\n", height);
|
||||
+
|
||||
+ status = GdipGetFontStyle(font, &style);
|
||||
+ expect(Ok, status);
|
||||
+ ok(style == FontStyleRegular, "got %d\n", style);
|
||||
+
|
||||
+ status = GdipGetFamily(font, &family2);
|
||||
+ expect(Ok, status);
|
||||
+ ok(family == family2, "got %p\n", family2);
|
||||
+
|
||||
+ status = GdipCloneFont(font, &font2);
|
||||
+ expect(Ok, status);
|
||||
+
|
||||
+ status = GdipGetFontUnit(font2, &unit);
|
||||
+ expect(Ok, status);
|
||||
+ ok(unit == UnitPixel, "got %u\n", unit);
|
||||
+
|
||||
+ status = GdipGetFontSize(font2, &height);
|
||||
+ expect(Ok, status);
|
||||
+ ok(height == 30.0f, "got %f\n", height);
|
||||
+
|
||||
+ status = GdipGetFontStyle(font2, &style);
|
||||
+ expect(Ok, status);
|
||||
+ ok(style == FontStyleRegular, "got %d\n", style);
|
||||
+
|
||||
+ status = GdipGetFamily(font2, &family2);
|
||||
+ expect(Ok, status);
|
||||
+ ok(family == family2, "got %p\n", family2);
|
||||
+
|
||||
+ GdipDeleteFont(font2);
|
||||
+ GdipDeleteFont(font);
|
||||
+ GdipDeleteFontFamily(family);
|
||||
+}
|
||||
+
|
||||
START_TEST(font)
|
||||
{
|
||||
struct GdiplusStartupInput gdiplusStartupInput;
|
||||
@@ -1301,6 +1355,7 @@ START_TEST(font)
|
||||
|
||||
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
|
||||
|
||||
+ test_CloneFont();
|
||||
test_long_name();
|
||||
test_font_transform();
|
||||
test_font_substitution();
|
||||
--
|
||||
2.24.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 78f4401a1e5d50097be8dd8458273ef1d4a548a7 Mon Sep 17 00:00:00 2001
|
||||
From 77a43be1f24d8fbbdb500b6ee89b20673f9704e7 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Tue, 19 Aug 2014 22:10:49 -0600
|
||||
Subject: [PATCH] ntdll: Implement retrieving DOS attributes in
|
||||
@ -8,16 +8,16 @@ Subject: [PATCH] ntdll: Implement retrieving DOS attributes in
|
||||
configure.ac | 12 ++++++++++++
|
||||
dlls/ntdll/file.c | 16 ++++++++++++++++
|
||||
include/wine/port.h | 8 ++++++++
|
||||
libs/port/Makefile.in | 4 +++-
|
||||
libs/port/Makefile.in | 3 ++-
|
||||
libs/port/xattr.c | 39 +++++++++++++++++++++++++++++++++++++++
|
||||
5 files changed, 78 insertions(+), 1 deletion(-)
|
||||
5 files changed, 77 insertions(+), 1 deletion(-)
|
||||
create mode 100644 libs/port/xattr.c
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 9385d20..60d43d3 100644
|
||||
index f6d520c59ef..19dadd2063c 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -85,6 +85,7 @@ AC_ARG_WITH(udev, AS_HELP_STRING([--without-udev],[do not use udev (plug an
|
||||
@@ -86,6 +86,7 @@ AC_ARG_WITH(unwind, AS_HELP_STRING([--without-unwind],[do not use the libunwi
|
||||
AC_ARG_WITH(v4l2, AS_HELP_STRING([--without-v4l2],[do not use v4l2 (video capture)]))
|
||||
AC_ARG_WITH(vkd3d, AS_HELP_STRING([--without-vkd3d],[do not use vkd3d (Direct3D 12 support)]))
|
||||
AC_ARG_WITH(vulkan, AS_HELP_STRING([--without-vulkan],[do not use Vulkan]))
|
||||
@ -25,7 +25,7 @@ index 9385d20..60d43d3 100644
|
||||
AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]),
|
||||
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi])
|
||||
AC_ARG_WITH(xcursor, AS_HELP_STRING([--without-xcursor],[do not use the Xcursor extension]),
|
||||
@@ -711,6 +712,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
|
||||
@@ -704,6 +705,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
|
||||
#include <sys/socket.h>
|
||||
#endif])
|
||||
|
||||
@ -44,7 +44,7 @@ index 9385d20..60d43d3 100644
|
||||
|
||||
AC_SUBST(DLLFLAGS,"-D_REENTRANT")
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index b70477e..2c99c1d 100644
|
||||
index 8aaf7b982ba..ae8fd77bea8 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
+++ b/dlls/ntdll/file.c
|
||||
@@ -127,6 +127,22 @@ static const WCHAR ntfsW[] = {'N','T','F','S'};
|
||||
@ -71,10 +71,10 @@ index b70477e..2c99c1d 100644
|
||||
static inline ULONG get_file_attributes( const struct stat *st )
|
||||
{
|
||||
diff --git a/include/wine/port.h b/include/wine/port.h
|
||||
index 19c8682..eaa23bc 100644
|
||||
index 92a3a362ddb..8fec3a34591 100644
|
||||
--- a/include/wine/port.h
|
||||
+++ b/include/wine/port.h
|
||||
@@ -344,6 +344,14 @@ int usleep (unsigned int useconds);
|
||||
@@ -356,6 +356,14 @@ int usleep (unsigned int useconds);
|
||||
|
||||
extern int mkstemps(char *template, int suffix_len);
|
||||
|
||||
@ -90,20 +90,19 @@ index 19c8682..eaa23bc 100644
|
||||
|
||||
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
|
||||
diff --git a/libs/port/Makefile.in b/libs/port/Makefile.in
|
||||
index db27249..790fd96 100644
|
||||
index b050686ba0f..447c1939078 100644
|
||||
--- a/libs/port/Makefile.in
|
||||
+++ b/libs/port/Makefile.in
|
||||
@@ -109,4 +109,6 @@ C_SRCS = \
|
||||
@@ -110,4 +110,5 @@ C_SRCS = \
|
||||
usleep.c \
|
||||
utf8.c \
|
||||
wctomb.c \
|
||||
- wctype.c
|
||||
+ wctype.c \
|
||||
+ xattr.c
|
||||
+
|
||||
diff --git a/libs/port/xattr.c b/libs/port/xattr.c
|
||||
new file mode 100644
|
||||
index 0000000..94b7713
|
||||
index 00000000000..94b77132bbf
|
||||
--- /dev/null
|
||||
+++ b/libs/port/xattr.c
|
||||
@@ -0,0 +1,39 @@
|
||||
@ -147,5 +146,5 @@ index 0000000..94b7713
|
||||
+#endif
|
||||
+}
|
||||
--
|
||||
1.9.1
|
||||
2.24.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 37cf48e9f6ef877478a716748fd73b714dc0dc09 Mon Sep 17 00:00:00 2001
|
||||
From 3f238e248fc4fc4415b3ce5e420c798d516d24ee Mon Sep 17 00:00:00 2001
|
||||
From: Hirofumi Katayama <katayama.hirofumi.mz@gmail.com>
|
||||
Date: Mon, 26 Nov 2018 09:09:52 +0900
|
||||
Subject: [PATCH] user32: Implement TileWindows
|
||||
@ -9,11 +9,11 @@ function of window arrangement.
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46197
|
||||
Signed-off-by: Hirofumi Katayama <katayama.hirofumi.mz@gmail.com>
|
||||
---
|
||||
dlls/user32/mdi.c | 181 ++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 176 insertions(+), 5 deletions(-)
|
||||
dlls/user32/mdi.c | 179 ++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 175 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/user32/mdi.c b/dlls/user32/mdi.c
|
||||
index b430ecce623..2569835c5a4 100644
|
||||
index 9679be895ed..c752f967b4d 100644
|
||||
--- a/dlls/user32/mdi.c
|
||||
+++ b/dlls/user32/mdi.c
|
||||
@@ -144,6 +144,10 @@ typedef struct
|
||||
@ -27,7 +27,7 @@ index b430ecce623..2569835c5a4 100644
|
||||
/* ----------------- declarations ----------------- */
|
||||
static void MDI_UpdateFrameText( HWND, HWND, BOOL, LPCWSTR);
|
||||
static BOOL MDI_AugmentFrameMenu( HWND, HWND );
|
||||
@@ -1931,8 +1935,6 @@ WORD WINAPI
|
||||
@@ -1929,8 +1933,6 @@ WORD WINAPI
|
||||
CascadeWindows (HWND hwndParent, UINT wFlags, const RECT *lpRect,
|
||||
UINT cKids, const HWND *lpKids)
|
||||
{
|
||||
@ -36,12 +36,7 @@ index b430ecce623..2569835c5a4 100644
|
||||
CASCADE_INFO info;
|
||||
HWND hwnd, top, prev;
|
||||
HMONITOR monitor;
|
||||
@@ -2082,12 +2084,181 @@ WORD WINAPI CascadeChildWindows( HWND parent, UINT flags )
|
||||
* Success: Number of tiled windows.
|
||||
* Failure: 0
|
||||
*/
|
||||
-WORD WINAPI
|
||||
+WORD WINAPI
|
||||
@@ -2084,8 +2086,177 @@ WORD WINAPI
|
||||
TileWindows (HWND hwndParent, UINT wFlags, const RECT *lpRect,
|
||||
UINT cKids, const HWND *lpKids)
|
||||
{
|
||||
@ -222,5 +217,5 @@ index b430ecce623..2569835c5a4 100644
|
||||
|
||||
|
||||
--
|
||||
2.17.1
|
||||
2.24.1
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user