aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa2003-11-08 00:54:53 +0000
committerKenichi Handa2003-11-08 00:54:53 +0000
commit2449d4d0a96fa4d9d399417f3f7b7328f6041107 (patch)
tree1e07d1e4c06b97ae1af543b7356d53ff0e314dd0 /src
parentd26a46894458708354bf948b0ff25b351e401e52 (diff)
downloademacs-2449d4d0a96fa4d9d399417f3f7b7328f6041107.tar.gz
emacs-2449d4d0a96fa4d9d399417f3f7b7328f6041107.zip
(set_fontset_font): New function.
(Fset_fontset_font): If a font is specified for a charset, use map_charset_chars to store the font spec in a fontset.
Diffstat (limited to 'src')
-rw-r--r--src/fontset.c30
1 files changed, 25 insertions, 5 deletions
diff --git a/src/fontset.c b/src/fontset.c
index 55a07303bbb..777e0aaca9b 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -244,6 +244,8 @@ static void accumulate_script_ranges P_ ((Lisp_Object, Lisp_Object,
244 Lisp_Object)); 244 Lisp_Object));
245static Lisp_Object find_font_encoding P_ ((char *)); 245static Lisp_Object find_font_encoding P_ ((char *));
246 246
247static void set_fontset_font P_ ((Lisp_Object, Lisp_Object));
248
247#ifdef FONTSET_DEBUG 249#ifdef FONTSET_DEBUG
248 250
249/* Return 1 if ID is a valid fontset id, else return 0. */ 251/* Return 1 if ID is a valid fontset id, else return 0. */
@@ -1191,6 +1193,19 @@ generate_ascii_font_name (name, ascii_spec)
1191 return build_font_name_from_vector (vec); 1193 return build_font_name_from_vector (vec);
1192} 1194}
1193 1195
1196static void
1197set_fontset_font (range, arg)
1198 Lisp_Object range, arg;
1199{
1200 Lisp_Object fontset, font_def, add;
1201
1202 fontset = XCAR (arg);
1203 font_def = XCAR (XCDR (arg));
1204 add = XCAR (XCDR (XCDR (arg)));
1205 FONTSET_ADD (fontset, range, font_def, add);
1206 free_realized_fontsets (fontset);
1207}
1208
1194 1209
1195DEFUN ("set-fontset-font", Fset_fontset_font, Sset_fontset_font, 3, 5, 0, 1210DEFUN ("set-fontset-font", Fset_fontset_font, Sset_fontset_font, 3, 5, 0,
1196 doc: /* 1211 doc: /*
@@ -1338,17 +1353,22 @@ appended. By default, FONT-SPEC overrides the previous settings. */)
1338 struct charset *charset; 1353 struct charset *charset;
1339 1354
1340 CHECK_CHARSET_GET_CHARSET (character, charset); 1355 CHECK_CHARSET_GET_CHARSET (character, charset);
1341 if (CHARSET_METHOD (charset) == CHARSET_METHOD_OFFSET)
1342 range_list
1343 = Fcons (Fcons (make_number (CHARSET_MIN_CHAR (charset)),
1344 make_number (CHARSET_MAX_CHAR (charset))),
1345 range_list);
1346 if (EQ (character, Qascii)) 1356 if (EQ (character, Qascii))
1347 { 1357 {
1348 if (VECTORP (font_spec)) 1358 if (VECTORP (font_spec))
1349 font_spec = generate_ascii_font_name (FONTSET_NAME (fontset), 1359 font_spec = generate_ascii_font_name (FONTSET_NAME (fontset),
1350 font_spec); 1360 font_spec);
1351 FONTSET_ASCII (fontset) = font_spec; 1361 FONTSET_ASCII (fontset) = font_spec;
1362 range_list = Fcons (Fcons (make_number (0), make_number (127)),
1363 Qnil);
1364 }
1365 else
1366 {
1367 map_charset_chars (set_fontset_font, Qnil,
1368 list3 (fontset, font_def, add), charset,
1369 CHARSET_MIN_CODE (charset),
1370 CHARSET_MAX_CODE (charset));
1371 return Qnil;
1352 } 1372 }
1353 } 1373 }
1354 1374