changeset 22671:5dee1f64801f

Fill weight and slant fields of a fontset generted from the specified ASCII font by values got from the resolved ASCII font name.
author Kenichi Handa <handa@m17n.org>
date Fri, 03 Jul 1998 04:39:22 +0000
parents 160c346d6192
children 9cfa1a788a5a
files lisp/term/x-win.el
diffstat 1 files changed, 19 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/term/x-win.el	Fri Jul 03 04:39:22 1998 +0000
+++ b/lisp/term/x-win.el	Fri Jul 03 04:39:22 1998 +0000
@@ -674,10 +674,10 @@
       (let ((font (or (cdr (assq 'font initial-frame-alist))
 		      (cdr (assq 'font default-frame-alist))
 		      (x-get-resource "font" "Font")))
-	    xlfd-fields)
+	    xlfd-fields resolved-name)
 	(if (and font
 		 (not (query-fontset font))
-		 (x-resolve-font-name font)
+		 (setq resolved-name (x-resolve-font-name font))
 		 (setq xlfd-fields (x-decompose-font-name font)))
 	    (if (string= "fontset"
 			 (aref xlfd-fields xlfd-regexp-registry-subnum))
@@ -703,6 +703,23 @@
 		(aset xlfd-fields xlfd-regexp-family-subnum nil)
 		(aset xlfd-fields xlfd-regexp-registry-subnum "fontset")
 		(aset xlfd-fields xlfd-regexp-encoding-subnum "startup")
+		;; The fontset name should have concrete values in
+		;; weight and slant field.
+		(let ((weight (aref xlfd-fields xlfd-regexp-weight-subnum))
+		      (slant (aref xlfd-fields xlfd-regexp-slant-subnum))
+		      xlfd-temp)
+		  (if (or (not weight) (string-match "[*?]*" weight))
+		      (progn
+			(setq xlfd-temp (x-decompose-font-name resolved-name))
+			(aset xlfd-fields xlfd-regexp-weight-subnum
+			      (aref xlfd-temp xlfd-regexp-weight-subnum))))
+		  (if (or (not slant) (string-match "[*?]*" slant))
+		      (progn
+			(or xlfd-temp
+			    (setq xlfd-temp
+				  (x-decompose-font-name resolved-name)))
+			(aset xlfd-fields xlfd-regexp-slant-subnum
+			      (aref xlfd-temp xlfd-regexp-slant-subnum)))))
 		(setq fontset (x-compose-font-name xlfd-fields))
 		(create-fontset-from-fontset-spec
 		 (concat fontset ", ascii:" font) styles)