[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:00512] Re: mhc-cvs.el
From: Yoshinari NOMURA <nom@xxxxxxxxxxxxxxxxxxx> さん曰く
Subject: [mhc:00510] Re: mhc-cvs.el
Message-ID: <20000420090428W.nom@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 20 Apr 2000 09:04:31 +0900
nom> おはようございます。ごめんなさい。
nom> もうちょっとしたら戦線復帰できると思います。
お仕事がんばってくださいませ。
nom> > 三好> しかし、ソースを汚さないほうが良いと思います。
nom> > 三好> .emacs に次の設定を加えることで回避できる問題ですので。
## この argument-editing は初耳でした。^^;;;
nom> mhc まるごと全部 .emacs に書けば、ソースは一番汚れないわけだし。^^;
とってもすてきですね、それって。
nom> mhc のために .emacs に書いていることがあれば、
nom> みんなのために吐き出して下さい > elisper な方々 :-)
僕のだと Mew 限定になっちゃうので、いまいちなのですが、とりあえ
ずこういうのやっていますよ、ということで。
## あまりにめちゃくちゃなので目が潰れたらごめんなさい。
--
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)
;; いつでもどこでも mhc
;; tool bar をごまかす 19.28 〜 20.6 では大丈夫。
(if (not (and (boundp 'window-system)
window-system))
()
(defvar menu-bar-file-menu nil)
(defvar menu-bar-tools-menu nil)
(cond
(menu-bar-tools-menu
(substitute-key-definition 'rmail 'mew menu-bar-tools-menu)
(substitute-key-definition 'calendar 'mew-mhc menu-bar-tools-menu))
(menu-bar-file-menu
(substitute-key-definition 'rmail 'mew menu-bar-file-menu)
(substitute-key-definition 'mail 'mew-send menu-bar-file-menu)
(substitute-key-definition 'calendar 'mew-mhc menu-bar-file-menu))))
(defun mew-mhc ()
(interactive)
(if (and (eq mhc-mailer-package 'mew)
(not (or (and (boundp 'mew-init-p)
mew-init-p)
(and (boundp 'mew-mail-path)
mew-mail-path))))
(progn
(cd "~/")
(mew)
(if (get-buffer mew-buffer-hello)
(kill-buffer mew-buffer-hello))))
(mhc-goto-this-month))
(define-key global-map "\C-c." 'mew-mhc)
;; これは default で入れてもらえるとうれしい。
(eval-after-load "mhc"
'(setq mhc-draft-unuse-hdr-list
(append (list "From " ">From ")
mhc-draft-unuse-hdr-list)))
(add-hook 'mhc-mode-hook
'(lambda ()
(and (featurep 'mew-nmz)
;; ここは一般的じゃないですね。元の filename
;; がわかるので便利なのです。
(define-key mhc-mode-map "zj" 'mew-virtual-original-message))
(if (not (eq mhc-mailer-package 'mew))
()
;; Mew の message buffer を消す
(and (mew-buffer-message)
(get-buffer-window (mew-buffer-message))
(window-live-p (get-buffer-window (mew-buffer-message)))
(delete-window (get-buffer-window (mew-buffer-message))))
;; message の表示解除
(and mew-summary-buffer-disp-msg
(mew-summary-toggle-disp-msg)))))
;; 上の hook で message buffer を消すと、mhc の見ためが悪い。
(add-hook 'mhc-mode-hook
'(lambda ()
(let ((pos (point)))
(goto-char (point-min))
(sit-for 0)
(goto-char pos)))
t)
;; 後藤さんの mew-message-decode-header を改造して、
;; mhc と思われるときだけ "生JIS" を decode する
;; mhc-message-decode-header
(add-hook 'mew-message-hook 'mhc-message-decode-header)
(defun mhc-message-decode-header ()
"mhc-message-hook function to decode RAW JIS subject in header"
(condition-case e
(if (mew-current-get 'cache)
(let* ((cache (mew-current-get 'cache))
(part (mew-current-get 'part))
(syntax (mew-cache-decode-syntax cache))
(ent (mew-syntax-get-entry syntax part))
(ct (mew-syntax-get-ct ent))
(buffer-read-only nil))
(if (not (equal "Message/Rfc822" (car ct)))
() ; nothing to do
;; do only Message/Rfc822 contents
(save-excursion
(save-restriction
(widen)
(goto-char 1)
(if (not (re-search-forward "\r?\n\r?\n" nil t))
() ; no header
(narrow-to-region (point-min) (point))
(goto-char (point-min))
(if (not (re-search-forward "^X-SC-Subject:" nil t))
()
(goto-char (point-min))
;; decode raw JIS string
(while (< (point) (point-max))
(if (looking-at "[^:]+:? *")
(goto-char (match-end 0)))
(if (and (not (looking-at "[\t\x20-\x7e]+$"))
(equal (mew-find-cs-region
(point)
(save-excursion (end-of-line) (point)))
(list mew-lc-ascii)))
;; decode!
(mew-cs-decode-region (point)
(save-excursion
(end-of-line)
(point))
mew-cs-scan))
(beginning-of-line)
(forward-line 1))
;; re-highlight
(mew-highlight-header)
(save-excursion
(mew-highlight-x-face (point-min) (point-max))))))))))
(error
(ding t)
(message "mhc-message-decode-header: %s" (or (cdr e) "some error!")))))