/* Check validity of NAME as a fontset name and return the
corresponding fontset. If not valid, signal an error.
- If NAME is t, return Vdefault_fontset. */
+ If NAME is nil, return Vdefault_fontset. */
static Lisp_Object
check_fontset_name (name)
{
int id;
- if (EQ (name, Qt))
+ if (EQ (name, Qnil))
return Vdefault_fontset;
CHECK_STRING (name);
DEFUN ("set-fontset-font", Fset_fontset_font, Sset_fontset_font, 3, 4, 0,
doc: /* Modify fontset NAME to use FONTNAME for CHARACTER.
+If NAME is nil, modify the default fontset.
CHARACTER may be a cons; (FROM . TO), where FROM and TO are
non-generic characters. In that case, use FONTNAME
for all characters in the range FROM and TO (inclusive).
}
+/* Called from Ffontset_info via map_char_table on each leaf of
+ fontset. ARG is a copy of the default fontset. The current leaf
+ is indexed by CHARACTER and has value ELT. This function override
+ the copy by ELT if ELT is not nil. */
+
+static void
+override_font_info (fontset, character, elt)
+ Lisp_Object fontset, character, elt;
+{
+ if (! NILP (elt))
+ Faset (fontset, character, elt);
+}
+
/* Called from Ffontset_info via map_char_table on each leaf of
fontset. ARG is a list (LAST FONT-INFO ...), where LAST is `(last
ARG)' and FONT-INFOs have this form:
(CHAR FONT-SPEC) or ((FROM . TO) FONT-SPEC)
The current leaf is indexed by CHARACTER and has value ELT. This
function add the information of the current leaf to ARG by
- appending a new element or modifying the last element.. */
+ appending a new element or modifying the last element. */
static void
accumulate_font_info (arg, character, elt)
DEFUN ("fontset-info", Ffontset_info, Sfontset_info, 1, 2, 0,
doc: /* Return information about a fontset named NAME on frame FRAME.
+If NAME is nil, return information about the default fontset.
The value is a vector:
[ SIZE HEIGHT ((CHARSET-OR-RANGE FONT-SPEC OPENED ...) ...) ],
where,
realized[n_realized++] = elt;
}
+ if (! EQ (fontset, Vdefault_fontset))
+ {
+ /* Merge FONTSET onto the default fontset. */
+ val = Fcopy_sequence (Vdefault_fontset);
+ map_char_table (override_font_info, Qnil, fontset, val, 0, indices);
+ fontset = val;
+ }
+
/* Accumulate information of the fontset in VAL. The format is
(LAST FONT-INFO FONT-INFO ...), where FONT-INFO is (CHAR-OR-RANGE
FONT-SPEC). See the comment for accumulate_font_info for the
DEFUN ("fontset-font", Ffontset_font, Sfontset_font, 2, 2, 0,
doc: /* Return a font name pattern for character CH in fontset NAME.
-If NAME is t, find a font name pattern in the default fontset. */)
+If NAME is nil, find a font name pattern in the default fontset. */)
(name, ch)
Lisp_Object name, ch;
{