# HG changeset patch # User Jan D. # Date 1262793806 -3600 # Node ID 10b9609fb6b7113e16ef257913aec520eaaf9d08 # Parent fa474321757245fff0480cc170bed3e2e8b742a0 Fixing user-spec for fonts instead of using name. diff -r fa4743217572 -r 10b9609fb6b7 lisp/font-setting.el --- a/lisp/font-setting.el Wed Jan 06 16:55:00 2010 +0100 +++ b/lisp/font-setting.el Wed Jan 06 17:03:26 2010 +0100 @@ -57,7 +57,7 @@ (if (display-graphic-p f) (let* ((frame-font (or (font-get (face-attribute 'default :font f - 'default) :name) + 'default) :user-spec) (frame-parameter f 'font-parameter))) (font-to-set (if set-font new-font diff -r fa4743217572 -r 10b9609fb6b7 src/font.c --- a/src/font.c Wed Jan 06 16:55:00 2010 +0100 +++ b/src/font.c Wed Jan 06 17:03:26 2010 +0100 @@ -143,6 +143,8 @@ characters; used in xfont.c and ftfont.c. */ Lisp_Object Qja, Qko; +Lisp_Object QCuser_spec; + Lisp_Object Vfont_encoding_alist; /* Alist of font registry symbol and the corresponding charsets @@ -3161,6 +3163,7 @@ if (font_parse_name ((char *) SDATA (font_name), spec) == -1) return Qnil; font_put_extra (spec, QCname, font_name); + font_put_extra (spec, QCuser_spec, font_name); return spec; } @@ -3174,14 +3177,13 @@ if (! FONTP (font)) return; -#if 0 + if (! NILP (Ffont_get (font, QCname))) { font = Fcopy_font_spec (font); font_put_extra (font, QCname, Qnil); } -#endif if (NILP (AREF (font, prop)) && prop != FONT_FAMILY_INDEX && prop != FONT_FOUNDRY_INDEX @@ -3539,8 +3541,8 @@ entity = font_open_for_lface (f, entity, attrs, spec); if (!NILP (entity)) { - name = Ffont_get (spec, QCname); - if (STRINGP (name)) font_put_extra (entity, QCname, name); + name = Ffont_get (spec, QCuser_spec); + if (STRINGP (name)) font_put_extra (entity, QCuser_spec, name); } return entity; } @@ -3614,7 +3616,7 @@ ret = font_open_by_spec (f, spec); /* Do not loose name originally put in. */ if (!NILP (ret)) - font_put_extra (ret, QCname, args[1]); + font_put_extra (ret, QCuser_spec, args[1]); return ret; } @@ -5269,6 +5271,8 @@ DEFSYM (Qja, "ja"); DEFSYM (Qko, "ko"); + DEFSYM (QCuser_spec, "user-spec"); + staticpro (&null_vector); null_vector = Fmake_vector (make_number (0), Qnil);