18:00 on Friday
とか書かれた mail を予定に取り込もうとすると
(wrong-type-argument char-or-string-p nil)
でこける.というのは,mhc-guess.el 内の,
(defun mhc-guess/make-date-from-english-relative-week (now dow rel-word week) ... )
という関数の,
(downcase rel-word)
の箇所でこけているっぽい.これは
mhc-guess-date-regexp-list
を順に処理していく時に呼ばれるっぽいが,その中に,
... mhc-guess/make-date-from-english-relative-week 2 1 nil) ... mhc-guess/make-date-from-english-relative-week 1 2 3) ... mhc-guess/make-date-from-english-relative-week 1 nil nil)
というのがあって,第三引数が nil になっている場合にこけているらしい. なんというか,なんだかなあ...
たぶん,mhc-guess.el に
@@ -472,7 +472,8 @@
("Wednesday" . "水") ("Thursday" . "木")
("Friday" . "金") ("Saturday" . "土")
("Sunday" . "日")))
- (rel (downcase rel-word)))
+ (rel rel-word))
+ (if rel-word (setq (downcase rel-word)))
(mhc-guess/make-date-from-relative-week
now
(if (null rel)
とかいう感じの patch が必要.とりあえず
mhc-guess/make-date-from-english-relative-week
を自前で defun してしのぐことにする.
(require 'mhc)
(defun mhc-guess/make-date-from-english-relative-week (now dow rel-word week)
(unless mhc-guess-ignore-english-date
(let ((dow-alist '(("Monday" . "月") ("Tuesday" . "火")
("Wednesday" . "水") ("Thursday" . "木")
("Friday" . "金") ("Saturday" . "土")
("Sunday" . "日")))
(rel rel-word))
(if rel-word (setq (downcase rel-word)))
(mhc-guess/make-date-from-relative-week
now
(if (null rel)
nil
(cond ((and (string= rel "this") (null week))
"今度")
((and (string= rel "this") week)
"今週")
((and (string= rel "next") (null week))
"今度")
((and (string= rel "next") week)
"来週")
(t
nil)))
(cdr (assoc-ignore-case dow dow-alist))))))
Last-modified: Sat Jun 16 12:01:02 +0900 2007