[Mew-dist 05571] Re: marker

SAKAI Kiyotaka ksakai at example.com
1998年 7月 17日 (金) 11:21:30 JST


>> In article <19980716222135C.shigeya at example.com>, Shigeya Suzuki <shigeya at example.com> writes:

> なんでじゃろう。。みてのとおり 19.28 だけれど。

> で、C-aC-o すると書きましたが、エラーが出るタイミングでは、カーソルは

> 	----☆
> 	もじをかいた

simple.el のコードを見てみましたが、Emacs-19.28 の open-line のコード
のバグと言い切ってしまっていいと思います。

19.34 と 20.2 では "\n" を挿入した後に元の位置に戻るコードになっていま
したが、19.28 では行頭にカーソルがあると 1文字戻って "\n" を挿入するコー
ドになっていて、これがこの問題を引き起こす原因になっていました。

対応するには 19.34 以降のコードを利用して、「19.28 では .emacs に以下
のコードを入れろ」とするぐらいしかないと思います。

# あるいは、mew-draft-open-line という関数名で定義して、draft-mode で
# C-o に bind してもらうか。

(defun open-line (arg)
  "Insert a newline and leave point before it.
If there is a fill prefix and/or a left-margin, insert them on the new line
if the line would have been blank.
With arg N, insert N newlines."
  (interactive "*p")
  (let* ((do-fill-prefix (and fill-prefix (bolp)))
         (loc (point)))
    (newline arg)
    (goto-char loc)
    (while (> arg 0)
      (if (and do-fill-prefix (bolp))
	  (insert-and-inherit fill-prefix))
      (forward-line 1)
      (setq arg (1- arg)))
    (goto-char loc)
    (end-of-line)))
-- 
酒井 清隆 (E-mail: ksakai at example.com)



Mew-dist メーリングリストの案内