# HG changeset patch # User Kenichi Handa # Date 1240450413 0 # Node ID c98dbbb65bad8c5720a116efd3639ee95206b8c2 # Parent 384db4f6fc8ab7d8be6260cd133ebccd51db17b9 (Fx_list_fonts): If a font size is specified in PATTERN, set it in returned scalable fonts. diff -r 384db4f6fc8a -r c98dbbb65bad src/xfaces.c --- a/src/xfaces.c Wed Apr 22 07:34:17 2009 +0000 +++ b/src/xfaces.c Thu Apr 23 01:33:33 2009 +0000 @@ -1904,7 +1904,22 @@ } args[0] = Flist_fonts (font_spec, frame, maximum, font_spec); for (tail = args[0]; CONSP (tail); tail = XCDR (tail)) - XSETCAR (tail, Ffont_xlfd_name (XCAR (tail), Qnil)); + { + Lisp_Object font_entity; + + font_entity = XCAR (tail); + if ((NILP (AREF (font_entity, FONT_SIZE_INDEX)) + || XINT (AREF (font_entity, FONT_SIZE_INDEX)) == 0) + && ! NILP (AREF (font_spec, FONT_SIZE_INDEX))) + { + /* This is a scalable font. For backward compatibility, + we set the specified size. */ + font_entity = Fcopy_font_spec (font_entity); + ASET (font_entity, FONT_SIZE_INDEX, + AREF (font_spec, FONT_SIZE_INDEX)); + } + XSETCAR (tail, Ffont_xlfd_name (font_entity, Qnil)); + } if (NILP (frame)) /* We don't have to check fontsets. */ return args[0];