[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:1712]mw32faces.el - set-face-underline-p
- X-ml-count: 1712
- Subject: [MD:1712]mw32faces.el - set-face-underline-p
- From: Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxxxxxxxxxx>
- Date: Fri, 03 Mar 2000 15:19:24 +0900 (JST)
- X-mailer: xcite1.32> Mew version 1.95b28 on Emacs 20.5 / Mule 4.1 (葵) / Meadow-1.12 Beta1 (指貫:60)
From: Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxxxxxxxxxx> 曰く
Subject: [MD:1699]mw32faces.el - set-face-underline-p
Message-ID: <20000302.114045.63973716.shirai@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 02 Mar 2000 11:40:45 +0900 (JST)
原因がわかりました。(^^)V
白井> だめですね。新しく作る face からみんな italic, bold などの属性が
白井> 消えてしまいます。
白井> dispextern.h の
himi> FACE_PROPERTY_MERGEあたりの処理で引っかかっているのかな。
白井> 周辺が要注意。
ではなくて、mw32faces.el の face-property-put() が悪さをしていま
した。
face-property-put() の最初で、
(defun face-property-put (plist prop val)
(if (null val)
val
(let ((x plist) (y plist))
と val が nil だったら nil を返すために
(face-property-put '(bold t underline t font-explicit-p t) 'underline nil)
=> nil
となってしまい、internal-set-face-property() の
((lambda (x)
(aset x 7 (face-property-put (aref x 7) property value)))
(internal-get-face (if (symbolp face) face (face-name face)) t))
の部分で、他の属性をすべて nil にしてしまいます。本当は、
(face-property-put '(bold t underline t font-explicit-p t) 'underline nil)
=> (bold t font-explicit-p t)
ですよね。
elisp なら何とかなるぞ、と思い直そうと思ったのですが、
face-property-put() 内部の 'string<' の部分の意味が理解できない
ので、パッチは作れませんでした。 > どなたかよろしく ^^;;;
--
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)