I have a question about font property handling in --with-mule
configuration.
I am using xemacs "21.0 \"Zhong Wei\" XEmacs Lucid"
in following font configuration in my .emacs file.
(set-face-font
'default
'("-*-courier-medium-r-*--17-*-*-*-m-*-iso8859-1"
"-*-*-medium-r-*--16-*-*-*-*-*-jisx0201.1976-*"
"-*-*-medium-r-*--16-*-*-*-*-*-jisx0208.1983-*")
'global '(mule-fonts))
In this case, I noticed that `make-face-xxxx' changed only the first
element of font property. This behavior is caused by
`frob-face-property-1' in faces.el. In its function, while loop
ends applying func to only first element.
So, I have made following modifications. But it changes result type
of the function from single font to list of font, so I must use
`(setq result (car ...))' in `frob-face-property'. I don't know in
which case `device-list' returns multiple devices, so I cannot
modify more.
Please make proper patch anyone?
---
faces.el.org Fri Jul 10 18:03:22 1998
+++ faces.el Mon Jul 13 16:17:05 1998
@@ -857,6 +857,7 @@
new-result)
;; remove duplicates and nils from the obtained list of
;; instantiators.
+ (setq result (car result))
(mapcar (lambda (arg)
(when (and arg (not (member arg new-result)))
(setq new-result (cons arg new-result))))
@@ -871,18 +872,20 @@
(defun frob-face-property-1 (sp device inst-list func)
(let
(first-valid result)
- (while (and inst-list (not result))
+ (while inst-list ;;(and inst-list (not result))
(let* ((inst-pair (car inst-list))
(tag-set (car inst-pair))
(sp-inst (specifier-instance-from-inst-list
- sp device (list inst-pair))))
+ sp device (list inst-pair)))
+ result-tmp)
(if sp-inst
(progn
(if (not first-valid)
(setq first-valid inst-pair))
- (setq result (funcall func sp-inst device))
- (if result
- (setq result (cons tag-set result))))))
+ (setq result-tmp (funcall func sp-inst device))
+ (if result-tmp
+ (setq result-tmp (cons tag-set result-tmp)))
+ (setq result (cons result-tmp result)))))
(setq inst-list (cdr inst-list)))
(or result first-valid)))
--
Dept. of Information Engineering
Faculty of Engineering
Niigata University
8050 Ikarashi 2-nocho, Niigata 950-2181, Japan
Tel(Fax): +81-25-262-6770
E-mail: hagiwara(a)ie.niigata-u.ac.jp