[Mew-dist 08737] end-of-message
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
1999年 5月 7日 (金) 18:31:20 JST
忘れていましたが、思い出しました。XEmacs や Emacs 19.28 ベースの Mule
2.3 では、そのバッファにカーソルがないと overlay-arrow-string が表示さ
れないというバグ(あるいは仕様)があります。
よって、いくら mew-end-of-{message,part}-string を定義しても、上記の
Emacsen では嬉しくありませんでした。そこで、overlay-arrow-string を捨
てて、自前でまじめに作りましたので、パッチを送ります。b25 に当てて下さ
い。Message バッファの最後に文字列が出るようになると成功です。
いろんな Emacs で試していただけると幸いです。とりあえず、.emacs に以下
のような設定を入れましょう。(これ、デフォルトにしようかな。)
(setq mew-end-of-message-string "[End of message]")
(setq mew-end-of-part-string "[Message is continued]")
--かず
-------------- next part --------------
Index: mew-summary.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-summary.el,v
retrieving revision 1.145
diff -c -r1.145 mew-summary.el
*** mew-summary.el 1999/04/26 09:21:30 1.145
--- mew-summary.el 1999/05/07 09:09:58
***************
*** 91,97 ****
(define-key mew-summary-mode-map "," 'mew-summary-display-asis)
(define-key mew-summary-mode-map "<" 'mew-summary-display-top)
(define-key mew-summary-mode-map ">" 'mew-summary-display-bottom)
! (define-key mew-summary-mode-map "\177" 'mew-summary-prev-page)
(define-key mew-summary-mode-map "\r" 'mew-summary-scroll-up)
(define-key mew-summary-mode-map "-" 'mew-summary-scroll-down)
(define-key mew-summary-mode-map "\e\r" 'mew-summary-scroll-down)
--- 91,99 ----
(define-key mew-summary-mode-map "," 'mew-summary-display-asis)
(define-key mew-summary-mode-map "<" 'mew-summary-display-top)
(define-key mew-summary-mode-map ">" 'mew-summary-display-bottom)
! (if mew-xemacs-p
! (define-key mew-summary-mode-map 'backspace 'mew-summary-prev-page)
! (define-key mew-summary-mode-map "\177" 'mew-summary-prev-page))
(define-key mew-summary-mode-map "\r" 'mew-summary-scroll-up)
(define-key mew-summary-mode-map "-" 'mew-summary-scroll-down)
(define-key mew-summary-mode-map "\e\r" 'mew-summary-scroll-down)
***************
*** 722,727 ****
--- 724,731 ----
;; summary buffer
(mew-summary-show-postscript (not non-prefetch)))))))
+ (defvar mew-message-overlay nil)
+
(defun mew-message-set-end-of ()
(let ((buffer-read-only nil))
(save-restriction
***************
*** 732,758 ****
(if (and mew-xemacs-p (extent-at (point) nil nil nil 'at))
;; to skip graphics
(insert "\n"))
! (if (not (mew-local-variable-p 'overlay-arrow-string))
! (make-local-variable 'overlay-arrow-string))
! (setq overlay-arrow-string nil)
(if (or mew-end-of-message-string mew-end-of-part-string)
(progn
! (if (mew-local-variable-p 'overlay-arrow-position)
! ()
! (make-local-variable 'overlay-arrow-position)
! (setq overlay-arrow-position (make-marker)))
! (set-marker overlay-arrow-position (point))
(if (mew-decode-syntax-p)
(if (mew-summary-end-of-message-p)
! (setq overlay-arrow-string mew-end-of-message-string)
! (setq overlay-arrow-string mew-end-of-part-string))
! (setq overlay-arrow-string mew-end-of-message-string))))))))
(defmacro mew-message-clear-end-of ()
(` (progn
! (if (not (mew-local-variable-p 'overlay-arrow-string))
! (make-local-variable 'overlay-arrow-string))
! (setq overlay-arrow-string nil))))
(defmacro mew-summary-display-preamble ()
(` (progn
--- 736,759 ----
(if (and mew-xemacs-p (extent-at (point) nil nil nil 'at))
;; to skip graphics
(insert "\n"))
! (mew-message-clear-end-of)
(if (or mew-end-of-message-string mew-end-of-part-string)
(progn
! (mew-overlay-move mew-message-overlay (point-max) (point-max))
(if (mew-decode-syntax-p)
(if (mew-summary-end-of-message-p)
! (mew-message-set-end-of-message)
! (mew-message-set-end-of-part))
! (mew-message-set-end-of-message))))))))
(defmacro mew-message-clear-end-of ()
(` (progn
! (if (not (mew-local-variable-p 'mew-message-overlay))
! (make-local-variable 'mew-message-overlay))
! (if (not (mew-overlay-p mew-message-overlay))
! (setq mew-message-overlay
! (mew-overlay-make (point-max) (point-max))))
! (mew-message-set-end-of-nil))))
(defmacro mew-summary-display-preamble ()
(` (progn
Index: mew-temacs.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-temacs.el,v
retrieving revision 1.5
diff -c -r1.5 mew-temacs.el
*** mew-temacs.el 1998/08/24 14:45:40 1.5
--- mew-temacs.el 1999/05/07 09:09:58
***************
*** 27,32 ****
--- 27,45 ----
(defmacro mew-draft-toolbar-update ()
(` ()))
+ (defmacro mew-message-set-end-of-message ()
+ (` (mew-overlay-put mew-message-overlay
+ 'before-string
+ mew-end-of-message-string)))
+
+ (defmacro mew-message-set-end-of-part ()
+ (` (mew-overlay-put mew-message-overlay
+ 'before-string
+ mew-end-of-part-string)))
+
+ (defmacro mew-message-set-end-of-nil ()
+ (` (mew-overlay-put mew-message-overlay 'before-string nil)))
+
(provide 'mew-temacs)
;;; Copyright Notice:
Index: mew-xemacs.el
===================================================================
RCS file: /usr/home/kazu/cvsroot/Mew/mew/mew-xemacs.el,v
retrieving revision 1.22
diff -c -r1.22 mew-xemacs.el
*** mew-xemacs.el 1999/03/29 01:10:38 1.22
--- mew-xemacs.el 1999/05/07 09:09:58
***************
*** 350,355 ****
--- 350,381 ----
(setq toolbar-active t)
(set-toolbar-button-down-flag button t)))))
+ (defvar mew-x-emacs-end-of-message nil)
+ (defvar mew-x-emacs-end-of-part nil)
+
+ (defmacro mew-message-set-end-of-message ()
+ (` (progn
+ (if (not (glyphp mew-x-emacs-end-of-message))
+ (setq mew-x-emacs-end-of-message
+ (make-glyph
+ (vector 'string :data mew-end-of-message-string))))
+ (mew-overlay-put mew-message-overlay
+ 'begin-glyph
+ mew-x-emacs-end-of-message))))
+
+ (defmacro mew-message-set-end-of-part ()
+ (` (progn
+ (if (not (glyphp mew-x-emacs-end-of-part))
+ (setq mew-x-emacs-end-of-part
+ (make-glyph
+ (vector 'string :data mew-end-of-part-string))))
+ (mew-overlay-put mew-message-overlay
+ 'begin-glyph
+ mew-x-emacs-end-of-part))))
+
+ (defmacro mew-message-set-end-of-nil ()
+ (` (mew-overlay-put mew-message-overlay 'begin-glyph nil)))
+
(provide 'mew-xemacs)
;;; Copyright Notice:
Mew-dist メーリングリストの案内