changeset 3130:82c29bacb6b3

* faces.el (x-resolve-font-name): If PATTERN is nil, return the frame's face. (set-face-font): Only use x-resolve-font-name if FONT is a string. Copying a faces shouldn't resolve the font.
author Jim Blandy <jimb@redhat.com>
date Wed, 26 May 1993 19:42:36 +0000
parents 1b51f5e18410
children ae1e4c736d80
files lisp/faces.el
diffstat 1 files changed, 14 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/faces.el	Wed May 26 19:27:06 1993 +0000
+++ b/lisp/faces.el	Wed May 26 19:42:36 1993 +0000
@@ -85,8 +85,8 @@
 If the optional FRAME argument is provided, change only
 in that frame; otherwise change each frame."
   (interactive (internal-face-interactive "font"))
-  (internal-set-face-1 face 'font (x-resolve-font-name font face frame)
-		       3 frame))
+  (if (stringp font) (setq font (x-resolve-font-name font face frame)))
+  (internal-set-face-1 face 'font font 3 frame))
 
 (defsubst set-face-foreground (face color &optional frame)
   "Change the foreground color of face FACE to COLOR (a string).
@@ -416,15 +416,19 @@
 (defun x-resolve-font-name (pattern &optional face frame)
   "Return a font name matching PATTERN.
 All wildcards in PATTERN become substantiated.
+If PATTERN is nil, return the name of the frame's base font, which never
+contains wildcards.
 Given optional arguments FACE and FRAME, try to return a font which is
-also the same size as FACE on FRAME,"
-  (let ((fonts (x-list-fonts pattern face frame)))
-    (or fonts
-	(if face
-	    (error "no fonts match `%S'." pattern)
-	  (error "no fonts matching pattern are the same size as `%s'."
-		 pattern face)))
-    (car fonts)))
+also the same size as FACE on FRAME."
+  (if pattern
+      (let ((fonts (x-list-fonts pattern face frame)))
+	(or fonts
+	    (if face
+		(error "no fonts match `%S'." pattern)
+	      (error "no fonts matching pattern are the same size as `%s'."
+		     pattern face)))
+	(car fonts))
+    (cdr (assq 'font (frame-parameters (selected-frame))))))
 
 (defun x-frob-font-weight (font which)
   (if (or (string-match x-font-regexp font)