Huw Davies : riched20: Add a helper to find a font in the font table.
Alexandre Julliard
julliard at winehq.org
Wed Oct 12 16:06:15 CDT 2016
Module: wine
Branch: master
Commit: 48c0c6648bc1657da3ac2b565b1efa313275bb60
URL: http://source.winehq.org/git/wine.git/?a=commit;h=48c0c6648bc1657da3ac2b565b1efa313275bb60
Author: Huw Davies <huw at codeweavers.com>
Date: Wed Oct 12 12:58:50 2016 +0100
riched20: Add a helper to find a font in the font table.
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/riched20/writer.c | 43 ++++++++++++++++++++++++++++---------------
1 file changed, 28 insertions(+), 15 deletions(-)
diff --git a/dlls/riched20/writer.c b/dlls/riched20/writer.c
index c3359c1..838168e 100644
--- a/dlls/riched20/writer.c
+++ b/dlls/riched20/writer.c
@@ -237,6 +237,31 @@ static void add_font_to_fonttbl( ME_OutStream *stream, ME_Style *style )
}
}
+static BOOL find_font_in_fonttbl( ME_OutStream *stream, CHARFORMAT2W *fmt, unsigned int *idx )
+{
+ WCHAR *facename;
+ int i;
+
+ *idx = 0;
+ if (fmt->dwMask & CFM_FACE)
+ facename = fmt->szFaceName;
+ else
+ facename = stream->fonttbl[0].szFaceName;
+ for (i = 0; i < stream->nFontTblLen; i++)
+ {
+ if (facename == stream->fonttbl[i].szFaceName
+ || !lstrcmpW(facename, stream->fonttbl[i].szFaceName))
+ if (!(fmt->dwMask & CFM_CHARSET)
+ || fmt->bCharSet == stream->fonttbl[i].bCharSet)
+ {
+ *idx = i;
+ break;
+ }
+ }
+
+ return i < stream->nFontTblLen;
+}
+
static void add_color_to_colortbl( ME_OutStream *stream, COLORREF color )
{
int i;
@@ -713,21 +738,9 @@ ME_StreamOutRTFCharProps(ME_OutStream *pStream, CHARFORMAT2W *fmt)
}
/* FIXME: How to emit CFM_WEIGHT? */
- if (fmt->dwMask & CFM_FACE || fmt->dwMask & CFM_CHARSET) {
- WCHAR *szFaceName;
-
- if (fmt->dwMask & CFM_FACE)
- szFaceName = fmt->szFaceName;
- else
- szFaceName = pStream->fonttbl[0].szFaceName;
- for (i = 0; i < pStream->nFontTblLen; i++) {
- if (szFaceName == pStream->fonttbl[i].szFaceName
- || !lstrcmpW(szFaceName, pStream->fonttbl[i].szFaceName))
- if (!(fmt->dwMask & CFM_CHARSET)
- || fmt->bCharSet == pStream->fonttbl[i].bCharSet)
- break;
- }
- if (i < pStream->nFontTblLen)
+ if (fmt->dwMask & CFM_FACE || fmt->dwMask & CFM_CHARSET)
+ {
+ if (find_font_in_fonttbl( pStream, fmt, &i ))
{
if (i != pStream->nDefaultFont)
sprintf(props + strlen(props), "\\f%u", i);
More information about the wine-cvs
mailing list