[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[mhc:00422] Re: mhc-snap20000229



From: Yoshinari NOMURA <nom@xxxxxxxxxxxxxxxxxxx> さん曰く
Subject: [mhc:00421] mhc-snap20000229
Message-ID: <20000229185803F.nom@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 29 Feb 2000 18:58:08 +0900

nom> 乃村です。忙しさも一山越えました。とりあえず、これまで頂いたパッ
nom> チを整理して snap を作りました。

お疲れ様です。

nom> ほとんど頂いたパッチを当てただけの物で、自分では十分にチェックで
nom> きていません。19.28 対応の確認もできていません。

これって、

nom>     + 19.28 の macro 書式に戻す。

のことですか? 今のところ問題はないです。

nom>     + 3ヶ月表示で、予定のある日に下線を引いてみた (うるさい?)

## 派手なの好きです。:-)

以下、本題。

nom>     + face の設定 mhc-category-face-alist, mhc-symbol-face-alist 書式を変更

face 回りなのですが、

● XEmacs だと (facep 'italic) って
・(facep 'italic) => nil
・(find-face 'italic) => #<face italic "Italic text.">
 となります。実は最初から XEmacs だけユーザ定義が効きました。

● う〜〜ん、ユーザ定義が効かない。
 1. mhc.el が load されたときに実行される (mhc-face-setup) は
  interactive ではないから overwrite されない。
  (call-interactively 'mhc-face-setup) でもいいけどなんか気持悪い。
  
 2. 'M-x mhc-face-setup' としたときは (interactive-p) => t だけど
  let 式の () が足らないから overwrite されない。

 3. (setq mhc-category-face-alist '(("holiday"  . (italic "Red"))))
  として 2. を直して M-x mhc-face-setup するとエラーになる。

のパッチです

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)
--- mhc-face.el.orig	Tue Feb 22 19:21:19 2000
+++ mhc-face.el	Tue Feb 29 20:45:37 2000
@@ -67,7 +67,8 @@
       'default))
 
 (defun mhc-face-make-face-from-string (string prop &optional prefix overwrite)
-  (let ((symbol-name (concat prefix (if prefix "-") string)))
+  (let ((symbol-name 
+	 (if (stringp prefix) (concat prefix "-" string) string)))
     (mhc-face-make-face-from-symbol (intern symbol-name) prop overwrite)))
 
 (defun mhc-face-make-face-from-symbol (symbol prop &optional overwrite)
@@ -78,7 +79,7 @@
 	(font    (nth 4 prop))
 	(stipple (nth 5 prop))
 	(face    nil))
-    (if (and (facep symbol) (not overwrite))
+    (if (and (mhc-facep symbol) (not overwrite))
 	symbol
       (setq face (if parent (copy-face parent symbol) (make-face symbol)))
       (if fg      (set-face-foreground  face fg))
@@ -93,7 +94,7 @@
 
 (defun mhc-face-get-gray-face (face)
   (let ((gray-symbol (intern (concat (symbol-name face) "-gray"))))
-    (if (facep gray-symbol)
+    (if (mhc-facep gray-symbol)
 	()
       (copy-face face gray-symbol)
       (set-face-background gray-symbol "gray"))
@@ -101,7 +102,7 @@
 
 (defun mhc-face-get-busy-face (face)
   (let ((busy-symbol (intern (concat (symbol-name face) "-busy"))))
-    (if (facep busy-symbol)
+    (if (mhc-facep busy-symbol)
 	()
       (copy-face face busy-symbol)
       (or (make-face-bold busy-symbol nil t)
@@ -111,7 +112,7 @@
 
 (defun mhc-face-get-underline-face (face)
   (let ((busy-symbol (intern (concat (symbol-name face) "-uline"))))
-    (if (facep busy-symbol)
+    (if (mhc-facep busy-symbol)
 	()
       (copy-face face busy-symbol)
       (set-face-underline-p busy-symbol t))
@@ -120,9 +121,9 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; setup faces.
 
-(defun mhc-face-setup ()
+(defun mhc-face-setup (&optional overwrite)
   (interactive)
-  (let (ow (interactive-p))
+  (let ((ow (or (interactive-p) overwrite)))
     ;;
     (mhc-face-setup-internal mhc-symbol-face-alist-internal ow)
     (mhc-face-setup-internal mhc-symbol-face-alist          ow)
@@ -141,6 +142,7 @@
 	(mhc-face-make-face-from-string 
 	 (format "mhc-category-face-%s" (downcase (car lst)))
 	 (cdr lst)
+	 nil
 	 overwrite))
        ((symbolp (car lst))
 	(mhc-face-make-face-from-symbol
@@ -152,15 +154,20 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; facep for emacs 19.28
 
-(or (fboundp 'facep)
-    ;; Introduced in Emacs 19.29.
-    (defun facep (x)
-      "Return t if X is a face name or an internal face vector."
-      (and (or (and (fboundp 'internal-facep) (internal-facep x))
-	       (and 
-		(symbolp x) 
-		(assq x (and (boundp 'global-face-data) global-face-data))))
-	   t)))
+(cond
+ ((fboundp 'find-face)
+  (defalias 'mhc-facep 'find-face))
+ ((fboundp 'facep)
+  (defalias 'mhc-facep 'facep))
+ (t
+  ;; Introduced in Emacs 19.29.
+  (defun mhc-facep (x)
+    "Return t if X is a face name or an internal face vector."
+    (and (or (and (fboundp 'internal-facep) (internal-facep x))
+	     (and 
+	      (symbolp x) 
+	      (assq x (and (boundp 'global-face-data) global-face-data))))
+	 t))))
 
 (provide 'mhc-face)
 
--- mhc.el.orig	Tue Feb 29 19:52:24 2000
+++ mhc.el	Tue Feb 29 20:47:34 2000
@@ -1026,7 +1026,7 @@
     (view-file-other-window path)))
 
 (mhc-db-setup mhc-schedule-file (mhc-summary-folder-to-path mhc-base-folder))
-(mhc-face-setup)
+(mhc-face-setup 'overwrite)
 (put-text-property 2 4 'face 'mhc-calendar-face-sunday  mhc-cal-week-header)
 (put-text-property 20 22 'face 'mhc-calendar-face-saturday mhc-cal-week-header)