Mercurial > emacs
comparison src/font.c @ 112434:9de5a68b57e1
Promote SSDATA macro from gtkutil.c and xsmfns.c to lisp.h.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Sat, 22 Jan 2011 18:56:06 -0800 |
parents | 42e22c4f06b7 |
children |
comparison
equal
deleted
inserted
replaced
112433:7b649f6eac4f | 112434:9de5a68b57e1 |
---|---|
1188 else | 1188 else |
1189 { | 1189 { |
1190 if (SYMBOLP (val)) | 1190 if (SYMBOLP (val)) |
1191 val = SYMBOL_NAME (val); | 1191 val = SYMBOL_NAME (val); |
1192 if (j == XLFD_REGISTRY_INDEX | 1192 if (j == XLFD_REGISTRY_INDEX |
1193 && ! strchr ((char *) SDATA (val), '-')) | 1193 && ! strchr (SSDATA (val), '-')) |
1194 { | 1194 { |
1195 /* Change "jisx0208*" and "jisx0208" to "jisx0208*-*". */ | 1195 /* Change "jisx0208*" and "jisx0208" to "jisx0208*-*". */ |
1196 if (SDATA (val)[SBYTES (val) - 1] == '*') | 1196 if (SDATA (val)[SBYTES (val) - 1] == '*') |
1197 { | 1197 { |
1198 f[j] = alloca (SBYTES (val) + 3); | 1198 f[j] = alloca (SBYTES (val) + 3); |
1205 sprintf (f[j], "%s*-*", SDATA (val)); | 1205 sprintf (f[j], "%s*-*", SDATA (val)); |
1206 len += SBYTES (val) + 4; | 1206 len += SBYTES (val) + 4; |
1207 } | 1207 } |
1208 } | 1208 } |
1209 else | 1209 else |
1210 f[j] = (char *) SDATA (val), len += SBYTES (val) + 1; | 1210 f[j] = SSDATA (val), len += SBYTES (val) + 1; |
1211 } | 1211 } |
1212 } | 1212 } |
1213 | 1213 |
1214 for (i = FONT_WEIGHT_INDEX, j = XLFD_WEIGHT_INDEX; i <= FONT_WIDTH_INDEX; | 1214 for (i = FONT_WEIGHT_INDEX, j = XLFD_WEIGHT_INDEX; i <= FONT_WIDTH_INDEX; |
1215 i++, j++) | 1215 i++, j++) |
1218 if (NILP (val)) | 1218 if (NILP (val)) |
1219 f[j] = "*", len += 2; | 1219 f[j] = "*", len += 2; |
1220 else | 1220 else |
1221 { | 1221 { |
1222 val = SYMBOL_NAME (val); | 1222 val = SYMBOL_NAME (val); |
1223 f[j] = (char *) SDATA (val), len += SBYTES (val) + 1; | 1223 f[j] = SSDATA (val), len += SBYTES (val) + 1; |
1224 } | 1224 } |
1225 } | 1225 } |
1226 | 1226 |
1227 val = AREF (font, FONT_SIZE_INDEX); | 1227 val = AREF (font, FONT_SIZE_INDEX); |
1228 font_assert (NUMBERP (val) || NILP (val)); | 1228 font_assert (NUMBERP (val) || NILP (val)); |
1701 if (! NILP (family) | 1701 if (! NILP (family) |
1702 && NILP (AREF (font_spec, FONT_FAMILY_INDEX))) | 1702 && NILP (AREF (font_spec, FONT_FAMILY_INDEX))) |
1703 { | 1703 { |
1704 CHECK_STRING (family); | 1704 CHECK_STRING (family); |
1705 len = SBYTES (family); | 1705 len = SBYTES (family); |
1706 p0 = (char *) SDATA (family); | 1706 p0 = SSDATA (family); |
1707 p1 = strchr (p0, '-'); | 1707 p1 = strchr (p0, '-'); |
1708 if (p1) | 1708 if (p1) |
1709 { | 1709 { |
1710 if ((*p0 != '*' && p1 - p0 > 0) | 1710 if ((*p0 != '*' && p1 - p0 > 0) |
1711 && NILP (AREF (font_spec, FONT_FOUNDRY_INDEX))) | 1711 && NILP (AREF (font_spec, FONT_FOUNDRY_INDEX))) |
1720 if (! NILP (registry)) | 1720 if (! NILP (registry)) |
1721 { | 1721 { |
1722 /* Convert "XXX" and "XXX*" to "XXX*-*". */ | 1722 /* Convert "XXX" and "XXX*" to "XXX*-*". */ |
1723 CHECK_STRING (registry); | 1723 CHECK_STRING (registry); |
1724 len = SBYTES (registry); | 1724 len = SBYTES (registry); |
1725 p0 = (char *) SDATA (registry); | 1725 p0 = SSDATA (registry); |
1726 p1 = strchr (p0, '-'); | 1726 p1 = strchr (p0, '-'); |
1727 if (! p1) | 1727 if (! p1) |
1728 { | 1728 { |
1729 if (SDATA (registry)[len - 1] == '*') | 1729 if (SDATA (registry)[len - 1] == '*') |
1730 registry = concat2 (registry, build_string ("-*")); | 1730 registry = concat2 (registry, build_string ("-*")); |
1853 | 1853 |
1854 if (! NILP (val)) | 1854 if (! NILP (val)) |
1855 otf = XSAVE_VALUE (XCDR (val))->pointer; | 1855 otf = XSAVE_VALUE (XCDR (val))->pointer; |
1856 else | 1856 else |
1857 { | 1857 { |
1858 otf = STRINGP (file) ? OTF_open ((char *) SDATA (file)) : NULL; | 1858 otf = STRINGP (file) ? OTF_open (SSDATA (file)) : NULL; |
1859 val = make_save_value (otf, 0); | 1859 val = make_save_value (otf, 0); |
1860 otf_list = Fcons (Fcons (file, val), otf_list); | 1860 otf_list = Fcons (Fcons (file, val), otf_list); |
1861 } | 1861 } |
1862 return otf; | 1862 return otf; |
1863 } | 1863 } |
2998 font_spec_from_name (Lisp_Object font_name) | 2998 font_spec_from_name (Lisp_Object font_name) |
2999 { | 2999 { |
3000 Lisp_Object spec = Ffont_spec (0, NULL); | 3000 Lisp_Object spec = Ffont_spec (0, NULL); |
3001 | 3001 |
3002 CHECK_STRING (font_name); | 3002 CHECK_STRING (font_name); |
3003 if (font_parse_name ((char *) SDATA (font_name), spec) == -1) | 3003 if (font_parse_name (SSDATA (font_name), spec) == -1) |
3004 return Qnil; | 3004 return Qnil; |
3005 font_put_extra (spec, QCname, font_name); | 3005 font_put_extra (spec, QCname, font_name); |
3006 font_put_extra (spec, QCuser_spec, font_name); | 3006 font_put_extra (spec, QCuser_spec, font_name); |
3007 return spec; | 3007 return spec; |
3008 } | 3008 } |
3156 if (! NILP (foundry[0])) | 3156 if (! NILP (foundry[0])) |
3157 foundry[1] = null_vector; | 3157 foundry[1] = null_vector; |
3158 else if (STRINGP (attrs[LFACE_FOUNDRY_INDEX])) | 3158 else if (STRINGP (attrs[LFACE_FOUNDRY_INDEX])) |
3159 { | 3159 { |
3160 val = attrs[LFACE_FOUNDRY_INDEX]; | 3160 val = attrs[LFACE_FOUNDRY_INDEX]; |
3161 foundry[0] = font_intern_prop ((char *) SDATA (val), SBYTES (val), 1); | 3161 foundry[0] = font_intern_prop (SSDATA (val), SBYTES (val), 1); |
3162 foundry[1] = Qnil; | 3162 foundry[1] = Qnil; |
3163 foundry[2] = null_vector; | 3163 foundry[2] = null_vector; |
3164 } | 3164 } |
3165 else | 3165 else |
3166 foundry[0] = Qnil, foundry[1] = null_vector; | 3166 foundry[0] = Qnil, foundry[1] = null_vector; |
3187 | 3187 |
3188 val = AREF (work, FONT_FAMILY_INDEX); | 3188 val = AREF (work, FONT_FAMILY_INDEX); |
3189 if (NILP (val) && STRINGP (attrs[LFACE_FAMILY_INDEX])) | 3189 if (NILP (val) && STRINGP (attrs[LFACE_FAMILY_INDEX])) |
3190 { | 3190 { |
3191 val = attrs[LFACE_FAMILY_INDEX]; | 3191 val = attrs[LFACE_FAMILY_INDEX]; |
3192 val = font_intern_prop ((char *) SDATA (val), SBYTES (val), 1); | 3192 val = font_intern_prop (SSDATA (val), SBYTES (val), 1); |
3193 } | 3193 } |
3194 if (NILP (val)) | 3194 if (NILP (val)) |
3195 { | 3195 { |
3196 family = alloca ((sizeof family[0]) * 2); | 3196 family = alloca ((sizeof family[0]) * 2); |
3197 family[0] = Qnil; | 3197 family[0] = Qnil; |
3618 char *keystr = SDATA (SYMBOL_NAME (key)); | 3618 char *keystr = SDATA (SYMBOL_NAME (key)); |
3619 | 3619 |
3620 if (strcmp (boolean_properties[i], keystr) == 0) | 3620 if (strcmp (boolean_properties[i], keystr) == 0) |
3621 { | 3621 { |
3622 const char *str = INTEGERP (val) ? (XINT (val) ? "true" : "false") | 3622 const char *str = INTEGERP (val) ? (XINT (val) ? "true" : "false") |
3623 : SYMBOLP (val) ? (const char *) SDATA (SYMBOL_NAME (val)) | 3623 : SYMBOLP (val) ? SSDATA (SYMBOL_NAME (val)) |
3624 : "true"; | 3624 : "true"; |
3625 | 3625 |
3626 if (strcmp ("false", str) == 0 || strcmp ("False", str) == 0 | 3626 if (strcmp ("false", str) == 0 || strcmp ("False", str) == 0 |
3627 || strcmp ("FALSE", str) == 0 || strcmp ("FcFalse", str) == 0 | 3627 || strcmp ("FALSE", str) == 0 || strcmp ("FcFalse", str) == 0 |
3628 || strcmp ("off", str) == 0 || strcmp ("OFF", str) == 0 | 3628 || strcmp ("off", str) == 0 || strcmp ("OFF", str) == 0 |
3888 val = args[i + 1]; | 3888 val = args[i + 1]; |
3889 | 3889 |
3890 if (EQ (key, QCname)) | 3890 if (EQ (key, QCname)) |
3891 { | 3891 { |
3892 CHECK_STRING (val); | 3892 CHECK_STRING (val); |
3893 font_parse_name ((char *) SDATA (val), spec); | 3893 font_parse_name (SSDATA (val), spec); |
3894 font_put_extra (spec, key, val); | 3894 font_put_extra (spec, key, val); |
3895 } | 3895 } |
3896 else | 3896 else |
3897 { | 3897 { |
3898 int idx = get_font_prop_index (key); | 3898 int idx = get_font_prop_index (key); |
4248 if (STRINGP (font_name) | 4248 if (STRINGP (font_name) |
4249 && SDATA (font_name)[0] == '-') | 4249 && SDATA (font_name)[0] == '-') |
4250 { | 4250 { |
4251 if (NILP (fold_wildcards)) | 4251 if (NILP (fold_wildcards)) |
4252 return font_name; | 4252 return font_name; |
4253 strcpy (name, (char *) SDATA (font_name)); | 4253 strcpy (name, SSDATA (font_name)); |
4254 goto done; | 4254 goto done; |
4255 } | 4255 } |
4256 pixel_size = XFONT_OBJECT (font)->pixel_size; | 4256 pixel_size = XFONT_OBJECT (font)->pixel_size; |
4257 } | 4257 } |
4258 if (font_unparse_xlfd (font, pixel_size, name, 256) < 0) | 4258 if (font_unparse_xlfd (font, pixel_size, name, 256) < 0) |
4911 { | 4911 { |
4912 int fontset = fs_query_fontset (name, 0); | 4912 int fontset = fs_query_fontset (name, 0); |
4913 | 4913 |
4914 if (fontset >= 0) | 4914 if (fontset >= 0) |
4915 name = fontset_ascii (fontset); | 4915 name = fontset_ascii (fontset); |
4916 font_object = font_open_by_name (f, (char *) SDATA (name)); | 4916 font_object = font_open_by_name (f, SSDATA (name)); |
4917 } | 4917 } |
4918 else if (FONT_OBJECT_P (name)) | 4918 else if (FONT_OBJECT_P (name)) |
4919 font_object = name; | 4919 font_object = name; |
4920 else if (FONT_ENTITY_P (name)) | 4920 else if (FONT_ENTITY_P (name)) |
4921 font_object = font_open_entity (f, name, 0); | 4921 font_object = font_open_entity (f, name, 0); |
4989 | 4989 |
4990 if (EQ (Vfont_log, Qt)) | 4990 if (EQ (Vfont_log, Qt)) |
4991 return; | 4991 return; |
4992 if (STRINGP (AREF (Vfont_log_deferred, 0))) | 4992 if (STRINGP (AREF (Vfont_log_deferred, 0))) |
4993 { | 4993 { |
4994 char *str = (char *) SDATA (AREF (Vfont_log_deferred, 0)); | 4994 char *str = SSDATA (AREF (Vfont_log_deferred, 0)); |
4995 | 4995 |
4996 ASET (Vfont_log_deferred, 0, Qnil); | 4996 ASET (Vfont_log_deferred, 0, Qnil); |
4997 font_add_log (str, AREF (Vfont_log_deferred, 1), | 4997 font_add_log (str, AREF (Vfont_log_deferred, 1), |
4998 AREF (Vfont_log_deferred, 2)); | 4998 AREF (Vfont_log_deferred, 2)); |
4999 } | 4999 } |
5267 void | 5267 void |
5268 init_font (void) | 5268 init_font (void) |
5269 { | 5269 { |
5270 Vfont_log = egetenv ("EMACS_FONT_LOG") ? Qnil : Qt; | 5270 Vfont_log = egetenv ("EMACS_FONT_LOG") ? Qnil : Qt; |
5271 } | 5271 } |
5272 |