[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:1715]mw32faces.el - set-face-underline-p
- X-ml-count: 1715
- Subject: [MD:1715]mw32faces.el - set-face-underline-p
- From: Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxxxxxxxxxx>
- Date: Fri, 03 Mar 2000 16:44:59 +0900 (JST)
- X-mailer: Mew version 1.95b28 on Emacs 20.5 / Mule 4.1 (葵) / Meadow-1.12 Beta1 (指貫:60)
From: Miyashita Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxxxxxxxxxxxxxxxx> さん曰く
Subject: [MD:1713]mw32faces.el - set-face-underline-p
Message-ID: <uitz4sgiq.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: 03 Mar 2000 15:40:29 +0900
himi> Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxxxxxxxxxx> writes:
himi>
himi> > 白井> dispextern.h の
himi> > himi> FACE_PROPERTY_MERGEあたりの処理で引っかかっているのかな。
himi> > 白井> 周辺が要注意。
himi> >
himi> > ではなくて、mw32faces.el の face-property-put() が悪さをしていま
himi> > した。
himi>
himi> わわわ。そういえば、これ、set-face-property関連で
himi> 仕様変更したからかしら。
ビンゴ :-)
属性を t にするならいっつもするけど、nil にするのはめったにやら
ないから気づきませんね。
himi> > elisp なら何とかなるぞ、と思い直そうと思ったのですが、
himi> > face-property-put() 内部の 'string<' の部分の意味が理解できない
himi> > ので、パッチは作れませんでした。 > どなたかよろしく ^^;;;
himi>
himi> これは、sortされたplistでなくてはいけないので(equalできるようにするため)
himi> 順番どおりに挿入することになっているためです。今回の場合は、
himi> ただ単に、 (if (null val) block をとってしまえばよいんじゃないかしら。
納得です。
(face-property-put '(bold t font-explicit-p t underline t) 'underline nil)
=> (bold t font-explicit-p t underline nil)
(face-property-put '(bold t font-explicit-p t) 'underline nil)
=> (bold t font-explicit-p t underline nil)
(face-property-put '(bold t font-explicit-p t underline t) 'italic nil)
=> (bold t font-explicit-p t italic nil underline t)
となりました。
# nil な P は取らなきゃいけないのかな? と思って、最初躊躇してし
# まった。
--
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)
とりあえず。(himi さんてば ispell4 直している)
## 英語は直してね ^^;;;
2000-03-03 Hideyuki SHIRAI <shirai@xxxxxxxxxxxxxxxxxxx>
* mw32faces.el (face-property-put):
Set property value to nil, called with 'val' equal 'nil'.
--- mw32faces.el.orig Tue Feb 17 01:44:06 1998
+++ mw32faces.el Fri Mar 03 16:00:33 2000
@@ -84,29 +84,27 @@
(not y)))
(defun face-property-put (plist prop val)
- (if (null val)
- val
- (let ((x plist) (y plist))
- (while
- (cond
- ((null x)
- (if (null y)
- (setq plist (list prop val))
- (setcdr (cdr y) (list prop val)))
- nil)
- ((string< (symbol-name prop)
- (symbol-name (car x)))
- (if (eq x y)
- (setq plist (cons prop (cons val x)))
- (setcdr (cdr y) (cons prop (cons val x))))
- nil)
- ((eq (car x) prop)
- (setcar (cdr x) val)
- nil)
- (t t))
- (setq y x)
- (setq x (cdr (cdr x))))
- plist)))
+ (let ((x plist) (y plist))
+ (while
+ (cond
+ ((null x)
+ (if (null y)
+ (setq plist (list prop val))
+ (setcdr (cdr y) (list prop val)))
+ nil)
+ ((string< (symbol-name prop)
+ (symbol-name (car x)))
+ (if (eq x y)
+ (setq plist (cons prop (cons val x)))
+ (setcdr (cdr y) (cons prop (cons val x))))
+ nil)
+ ((eq (car x) prop)
+ (setcar (cdr x) val)
+ nil)
+ (t t))
+ (setq y x)
+ (setq x (cdr (cdr x))))
+ plist))
;;; Accessors.
(defun face-name (face)