From 81aefea4661fd1a8a0766ca354be4578ee817287 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 18 Feb 2008 18:38:49 +0000 Subject: [PATCH] (font_unparse_xlfd): Don't ignore integer pixel size specs. --- src/ChangeLog | 4 ++++ src/font.c | 19 +++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 8f89ffede5..89d7622648 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2008-02-18 Stefan Monnier + + * font.c (font_unparse_xlfd): Don't ignore integer pixel size specs. + 2008-02-18 Jan Dj$(Q)Z(Brv * xfns.c (Fx_show_tip): Set string to " " if empty. diff --git a/src/font.c b/src/font.c index 70b239694c..b8da3de5ac 100644 --- a/src/font.c +++ b/src/font.c @@ -75,7 +75,7 @@ Lisp_Object Qiso8859_1, Qiso10646_1, Qunicode_bmp, Qunicode_sip; #define CHECK_VALIDATE_FONT_SPEC(x) \ do { \ - if (! FONT_SPEC_P (x)) x = wrong_type_argument (Qfont, x); \ + if (! FONT_SPEC_P (x)) wrong_type_argument (Qfont, x); \ x = font_prop_validate (x); \ } while (0) @@ -1161,18 +1161,21 @@ font_unparse_xlfd (font, pixel_size, name, nbytes) xassert (NUMBERP (val) || NILP (val)); if (INTEGERP (val)) { - f[XLFD_PIXEL_INDEX] = alloca (22); - i = XINT (val); + int i = XINT (val); + if (i <= 0) + i = pixel_size; if (i > 0) - len += sprintf (f[XLFD_PIXEL_INDEX], "%d-*", i) + 1; - else if (pixel_size > 0) - len += sprintf (f[XLFD_PIXEL_INDEX], "%d-*", pixel_size) + 1; - f[XLFD_PIXEL_INDEX] = "*-*", len += 4; + { + f[XLFD_PIXEL_INDEX] = alloca (22); + len += sprintf (f[XLFD_PIXEL_INDEX], "%d-*", i) + 1; + } + else + f[XLFD_PIXEL_INDEX] = "*-*", len += 4; } else if (FLOATP (val)) { + int i = XFLOAT_DATA (val) * 10; f[XLFD_PIXEL_INDEX] = alloca (12); - i = XFLOAT_DATA (val) * 10; len += sprintf (f[XLFD_PIXEL_INDEX], "*-%d", i) + 1; } else -- 2.20.1