[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:02279] Re: mhc-guess/search-in-boundaryでエラー
乃村です.どうもありがとうございます.
On Mon, 03 Dec 2007 13:23:33 +0900 (JST),
KOIE Hidetaka (鯉江英隆) <hide@xxxxxxxx> said:
> mhc-goto-date()でエラーがまれに起こるので
> ちょっと調べてみました。
>
> 直接の原因は
> (search-backward-regexp REGEXP &optional BOUND NOERROR COUNT)
> でNOERRORが指定してあっても
> BOUNDがpointからみてあさっての方向に設定されていると
> エラー "Invalid search bound (wrong side of point)"
> が返ってくるということでした。
>
> とりあえずガードするコードを入れてみましたが
> 単にmhc-goto-date()の作りがよくないのかもしれません。
boundary check を厳しくしても他に影響はないと思うので,
commit しておきました.
> (defun mhc-guess/search-in-boundary (regexp ptr rel-boundary sameline)
> (let ((pmin (+ ptr rel-boundary)) (pmax (+ ptr rel-boundary)))
> (save-excursion
> (goto-char ptr)
> (if sameline
> (setq pmax (min pmax (save-excursion (end-of-line) (point)))
> pmin (max pmin (save-excursion (beginning-of-line) (point)))))
> (if (< 0 rel-boundary)
> - (search-forward-regexp regexp pmax t)
> - (search-backward-regexp regexp pmin t)))))
> + (and (< (point) pmax)
> + (search-forward-regexp regexp pmax t))
> + (and (< pmin (point))
> + (search-backward-regexp regexp pmin t)))))
カッコが1つ足りない気が.
--
nom