[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:02278] mhc-guess/search-in-boundaryでエラー
mhc-goto-date()でエラーがまれに起こるので
ちょっと調べてみました。
直接の原因は
(search-backward-regexp REGEXP &optional BOUND NOERROR COUNT)
でNOERRORが指定してあっても
BOUNDがpointからみてあさっての方向に設定されていると
エラー "Invalid search bound (wrong side of point)"
が返ってくるということでした。
とりあえずガードするコードを入れてみましたが
単にmhc-goto-date()の作りがよくないのかもしれません。
(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)))))
--
KOIE Hidetaka <hide@xxxxxxxx>