From: Fabian Maurer dark.shadow4@web.de
Fixes a regression introduced by a6cb10bba2d05ceca6ba5b1411c450d38defdbb4 The old logic also used FamilyName, and some applications depend on that
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54993 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54980 Signed-off-by: Fabian Maurer dark.shadow4@web.de --- dlls/wineps.drv/init.c | 6 +++--- dlls/wineps.drv/unixlib.c | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/wineps.drv/init.c b/dlls/wineps.drv/init.c index 7119e9d4f2d..8537ba287d1 100644 --- a/dlls/wineps.drv/init.c +++ b/dlls/wineps.drv/init.c @@ -206,7 +206,7 @@ static BOOL convert_afm_to_ntf(void) off = size;
metrics_size = sizeof(IFIMETRICS) + - (wcslen(afmle->afm->FullName) + 1) * sizeof(WCHAR); + (wcslen(afmle->afm->FamilyName) + 1) * sizeof(WCHAR); list = (void *)(data + header->font_mtx_off + sizeof(*list) * count); list->name_off = off + sizeof(*font_mtx); list->size = sizeof(*font_mtx) + strlen(afmle->afm->FontName) + 1 + @@ -237,7 +237,7 @@ static BOOL convert_afm_to_ntf(void) strcpy(data + off + font_mtx->glyph_set_name_off, glyph_set_name); metrics = (void *)(data + off + font_mtx->metrics_off); metrics->cjThis = metrics_size; - metrics->dpwszFaceName = sizeof(*metrics); + metrics->dpwszFamilyName = sizeof(*metrics); if (afmle->afm->IsFixedPitch) metrics->jWinPitchAndFamily |= FIXED_PITCH; metrics->usWinWeight = afmle->afm->Weight; @@ -256,7 +256,7 @@ static BOOL convert_afm_to_ntf(void) metrics->rclFontBox.top = afmle->afm->FontBBox.ury; metrics->rclFontBox.right = afmle->afm->FontBBox.urx; metrics->rclFontBox.bottom = afmle->afm->FontBBox.lly; - wcscpy((WCHAR *)((char *)metrics + metrics->dpwszFaceName), afmle->afm->FullName); + wcscpy((WCHAR *)((char *)metrics + metrics->dpwszFamilyName), afmle->afm->FamilyName); width_range = (void *)(data + off + font_mtx->width_off); for (i = 0; i < font_mtx->width_count; i++) { diff --git a/dlls/wineps.drv/unixlib.c b/dlls/wineps.drv/unixlib.c index 575ab49c49b..e9b009b0e87 100644 --- a/dlls/wineps.drv/unixlib.c +++ b/dlls/wineps.drv/unixlib.c @@ -1027,7 +1027,7 @@ static struct font_data *find_builtin_font(const PSDRV_DEVMODE *devmode, cur = find_font_data(installed_font[i].name); if (!cur) continue;
- name = (WCHAR *)((char *)cur->metrics + cur->metrics->dpwszFaceName); + name = (WCHAR *)((char *)cur->metrics + cur->metrics->dpwszFamilyName); cur_it = !!(cur->metrics->fsSelection & FM_SEL_ITALIC); cur_bd = !!(cur->metrics->fsSelection & FM_SEL_BOLD);
@@ -1084,7 +1084,7 @@ static BOOL select_builtin_font(PSDRV_PDEVICE *pdev, HFONT hfont, LOGFONTW *plf) font_data = find_builtin_font(pdev->devmode, NULL, it, bd);
TRACE("Got family %s font '%s'\n", debugstr_w((WCHAR *)((char *)font_data->metrics + - font_data->metrics->dpwszFaceName)), font_data->name); + font_data->metrics->dpwszFamilyName)), font_data->name);
pdev->builtin = TRUE; pdev->font = NULL; @@ -1218,7 +1218,7 @@ static UINT get_font_metric(const struct font_data *font,
lf->lfPitchAndFamily = font->metrics->jWinPitchAndFamily & FIXED_PITCH ? FIXED_PITCH : VARIABLE_PITCH;
- lstrcpynW(lf->lfFaceName, (WCHAR *)((char *)font->metrics + font->metrics->dpwszFaceName), LF_FACESIZE); + lstrcpynW(lf->lfFaceName, (WCHAR *)((char *)font->metrics + font->metrics->dpwszFamilyName), LF_FACESIZE); return DEVICE_FONTTYPE; }
@@ -1253,7 +1253,7 @@ static BOOL enum_fonts(PHYSDEV dev, LPLOGFONTW plf, font_enum_proc proc, LPARAM cur = find_font_data(installed_font[i].name); if (!cur) continue;
- name = (WCHAR *)((char *)cur->metrics + cur->metrics->dpwszFaceName); + name = (WCHAR *)((char *)cur->metrics + cur->metrics->dpwszFamilyName); if (wcsncmp(plf->lfFaceName, name, wcslen(name))) continue;
@@ -1272,7 +1272,7 @@ static BOOL enum_fonts(PHYSDEV dev, LPLOGFONTW plf, font_enum_proc proc, LPARAM cur = find_font_data(installed_font[i].name); if (!cur) continue;
- name = (WCHAR *)((char *)cur->metrics + cur->metrics->dpwszFaceName); + name = (WCHAR *)((char *)cur->metrics + cur->metrics->dpwszFamilyName); TRACE("Got '%s'\n", cur->name); fm = get_font_metric(cur, &tm, &lf); if (!(ret = (*proc)(&lf.elfLogFont, (TEXTMETRICW *)&tm, fm, lp)))