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

Re[2]: Running Mew



渡辺@湘南工科大です。

On Thu, 03 Aug 2000 18:41:11 +0900 (JST), KIRIAKE Masanori wrote:
> ここは井上さんにお任せして、あっしらはMewとWanderlustを調査しましょう(笑)

オリジナルのスピーチサーバーを使った全バージョンのVoice MeadowでMew-mode
を作ったので、そのときの経験からアドバイスします。
# EmacspeakとELispの世界をたっぷり楽しめますよ。

・emacspeak-rmail.elが参考になると思います。
Emacspeakのパターンを盗んでEmacspeak流にやるのがよいと思います。

・Mewのドキュメントだったかソースだったかに、Mewが提供するhookのリストが
あります。このフックを使ってたとえば以下のようなことができます。

注;このソースは前バージョンのソースなので、コマンドvoice-speak-string()な
どは前バージョンのコマンドであって今はつかえません。

(defun voice-mew-start()
"announce the start of mew"
(voice-speak-string "\\X=S1\\Mew スタート"))
(add-hook 'mew-init-hook 'voice-mew-start)


(defun voice-mew-summary-mode()
"announce the entrance of mew summary mode"
(voice-speak-string "\\X=S3\\Summary mode"))
(add-hook 'mew-summary-mode-hook 'voice-mew-summary-mode)


(defun voice-mew-read-message()
"Read message of mew"
(interactive)
(let (beg end original eol-point flag_h string_flag point-c)
  (setq original (point))

  (save-excursion 
    (setq string-header "")
    (setq string-tmp "")
    (sit-for 0 10)  ; reflesh screen

; search "Subject" header
    (goto-char (point-min))
    (if (re-search-forward "^Subject:" nil t)
	(progn (end-of-line) 
	       (setq eol-point (point))
	       (setq string-header (buffer-substring (match-end 0) eol-point))
	       (voice-speak-string "\\X=S3\\ Subject " 20)
	       (setq flag_h t)
	       (voice-speak-string string-header 20)))

; search "From" header (略)
; search "To" header    (略)
; search "Date" header   (略)

; skip repeated patterns in the body of the message
    (mapcar
     (function (lambda (str)
                 (dtk-replace-duplicates str "all" )))
     voice-cleanup-patterns)

; Now reading the body
    (voice-speak-string  "\\X=S1\\ 本文" 20)
; find the 1st line
    (if flag_h
	 (re-search-forward "^$" nil t))

    (voice-read-region (point) (point-max) nil "line")
    (setq string-tmp (buffer-substring (point) (point-max)))

    (voice-speak-string "\\X=S1\\終了" 20)
    (push-mark original))))
(add-hook 'mew-message-hook 'voice-mew-read-message)