aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2008-02-18 18:38:49 +0000
committerStefan Monnier2008-02-18 18:38:49 +0000
commit81aefea4661fd1a8a0766ca354be4578ee817287 (patch)
tree1cb29bbffdbb982b8b6c37feab9257c603ea450f
parent5137f982740d90774cb889395161058ede89bd85 (diff)
downloademacs-81aefea4661fd1a8a0766ca354be4578ee817287.tar.gz
emacs-81aefea4661fd1a8a0766ca354be4578ee817287.zip
(font_unparse_xlfd): Don't ignore integer pixel size specs.
-rw-r--r--src/ChangeLog4
-rw-r--r--src/font.c19
2 files changed, 15 insertions, 8 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 8f89ffede5f..89d76226486 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
12008-02-18 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * font.c (font_unparse_xlfd): Don't ignore integer pixel size specs.
4
12008-02-18 Jan Dj$(Q)Z(Brv <jan.h.d@swipnet.se> 52008-02-18 Jan Dj$(Q)Z(Brv <jan.h.d@swipnet.se>
2 6
3 * xfns.c (Fx_show_tip): Set string to " " if empty. 7 * xfns.c (Fx_show_tip): Set string to " " if empty.
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