[PC周辺] mhc 0.25.1+20050120-1 (20050215)

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

全インデックス