aboutsummaryrefslogtreecommitdiffstats
path: root/src/font.c
diff options
context:
space:
mode:
authorStefan Monnier2008-02-18 18:38:49 +0000
committerStefan Monnier2008-02-18 18:38:49 +0000
commit81aefea4661fd1a8a0766ca354be4578ee817287 (patch)
tree1cb29bbffdbb982b8b6c37feab9257c603ea450f /src/font.c
parent5137f982740d90774cb889395161058ede89bd85 (diff)
downloademacs-81aefea4661fd1a8a0766ca354be4578ee817287.tar.gz
emacs-81aefea4661fd1a8a0766ca354be4578ee817287.zip
(font_unparse_xlfd): Don't ignore integer pixel size specs.
Diffstat (limited to 'src/font.c')
-rw-r--r--src/font.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/font.c b/src/font.c
index 70b239694c0..b8da3de5ac7 100644
--- a/src/font.c
+++ b/src/font.c
@@ -75,7 +75,7 @@ Lisp_Object Qiso8859_1, Qiso10646_1, Qunicode_bmp, Qunicode_sip;
75 75
76#define CHECK_VALIDATE_FONT_SPEC(x) \ 76#define CHECK_VALIDATE_FONT_SPEC(x) \
77 do { \ 77 do { \
78 if (! FONT_SPEC_P (x)) x = wrong_type_argument (Qfont, x); \ 78 if (! FONT_SPEC_P (x)) wrong_type_argument (Qfont, x); \
79 x = font_prop_validate (x); \ 79 x = font_prop_validate (x); \
80 } while (0) 80 } while (0)
81 81
@@ -1161,18 +1161,21 @@ font_unparse_xlfd (font, pixel_size, name, nbytes)
1161 xassert (NUMBERP (val) || NILP (val)); 1161 xassert (NUMBERP (val) || NILP (val));
1162 if (INTEGERP (val)) 1162 if (INTEGERP (val))
1163 { 1163 {
1164 f[XLFD_PIXEL_INDEX] = alloca (22); 1164 int i = XINT (val);
1165 i = XINT (val); 1165 if (i <= 0)
1166 i = pixel_size;
1166 if (i > 0) 1167 if (i > 0)
1167 len += sprintf (f[XLFD_PIXEL_INDEX], "%d-*", i) + 1; 1168 {
1168 else if (pixel_size > 0) 1169 f[XLFD_PIXEL_INDEX] = alloca (22);
1169 len += sprintf (f[XLFD_PIXEL_INDEX], "%d-*", pixel_size) + 1; 1170 len += sprintf (f[XLFD_PIXEL_INDEX], "%d-*", i) + 1;
1170 f[XLFD_PIXEL_INDEX] = "*-*", len += 4; 1171 }
1172 else
1173 f[XLFD_PIXEL_INDEX] = "*-*", len += 4;
1171 } 1174 }
1172 else if (FLOATP (val)) 1175 else if (FLOATP (val))
1173 { 1176 {
1177 int i = XFLOAT_DATA (val) * 10;
1174 f[XLFD_PIXEL_INDEX] = alloca (12); 1178 f[XLFD_PIXEL_INDEX] = alloca (12);
1175 i = XFLOAT_DATA (val) * 10;
1176 len += sprintf (f[XLFD_PIXEL_INDEX], "*-%d", i) + 1; 1179 len += sprintf (f[XLFD_PIXEL_INDEX], "*-%d", i) + 1;
1177 } 1180 }
1178 else 1181 else