[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