[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:02159] 形式エラーのチェックについて質問
野口です。
C-c . e 等でヘッダに直接スケジュールを記述する際、X-SC-Day: フィールドでは
X-SC-Day: 2005930
と不正な形式で記述してしまった場合(本来は 20050930 するつもりだった)でも、
C-cC-c の所で
---
Parse Error!!
---
と警告してくれるのですが、X-SC-Time: フィールドでは
X-SC-Time: 1000-12:00
のような不正形式(":"の入力忘れ)としてしまった場合でも、警告せずにその
まま登録してしまうようです。
mhc-header.el には
----------------------------------------------------------
19 (defconst mhc-header-table
20 '(("x-sc-day" "X-SC-Day:" mhc-parse/day)
:
25 ("x-sc-time" "X-SC-Time:" mhc-parse/time)
----------------------------------------------------------
とありますので、X-SC-Time: に対しても形式チェックをする意図はあると理
解しているのですが、これはバグでしょうか?
また、"Parse ERROR" の場合、「どのフィールドでのことなのか」も指摘して
くれた方が分りやすいようにおもいましたので、添付のような修正をしてみま
した。
以上、ご検討いただければ幸いです。
--
NOGUCHI Yusuke <nogunogu@xxxxxxxxxxxxxxxxx>
*** mhc-logic.el.0 Fri May 7 01:35:12 2004
--- mhc-logic.el Fri Sep 30 13:39:09 2005
***************
*** 197,203 ****
(goto-char (match-end 0)))
(while (not (eobp))
(or (mhc-logic/looking-at mhc-logic/not-regexp mhc-logic/day-regexp)
! (error "Parse ERROR !!!"))
(setq d (mhc-date-new (string-to-number (match-string 2))
(string-to-number (match-string 3))
(string-to-number (match-string 4)))
--- 197,203 ----
(goto-char (match-end 0)))
(while (not (eobp))
(or (mhc-logic/looking-at mhc-logic/not-regexp mhc-logic/day-regexp)
! (error "Parse ERROR !!! (at X-SC-Day:)"))
(setq d (mhc-date-new (string-to-number (match-string 2))
(string-to-number (match-string 3))
(string-to-number (match-string 4)))
***************
*** 226,232 ****
(string-to-number (match-string 1)))
(mhc-logic/day logicinfo)))
(goto-char (match-end 0)))
! (error "Parse ERROR !!!"))))
(defun mhc-logic-parse-cond (logicinfo)
--- 226,232 ----
(string-to-number (match-string 1)))
(mhc-logic/day logicinfo)))
(goto-char (match-end 0)))
! (error "Parse ERROR !!!(at X-SC-Date:)"))))
(defun mhc-logic-parse-cond (logicinfo)
***************
*** 262,268 ****
mhc-logic/month-alist)))
month)))
(t ;; 解釈できない要素の場合
! (error "Parse ERROR !!!")))
(goto-char (match-end 0)))
(mapcar (lambda (s)
(set s (if (symbol-value s)
--- 262,268 ----
mhc-logic/month-alist)))
month)))
(t ;; 解釈できない要素の場合
! (error "Parse ERROR !!!(at X-SC-Cond:)")))
(goto-char (match-end 0)))
(mapcar (lambda (s)
(set s (if (symbol-value s)
***************
*** 307,313 ****
(string-to-number (match-string 2))
(string-to-number (match-string 3)))))
(t ; それ以外の場合
! (error "Parse ERROR !!!")))
sexp))
(goto-char (match-end 0)))
(if sexp
--- 307,313 ----
(string-to-number (match-string 2))
(string-to-number (match-string 3)))))
(t ; それ以外の場合
! (error "Parse ERROR !!!(at X-SC-Duration:)")))
sexp))
(goto-char (match-end 0)))
(if sexp
***************
*** 326,332 ****
(goto-char (match-end 0)))
(if (eobp)
(mhc-logic/set-todo logicinfo (string-to-number content))
! (error "Parse ERROR !!!"))))
(defun mhc-logic-compile-file (record)
--- 326,332 ----
(goto-char (match-end 0)))
(if (eobp)
(mhc-logic/set-todo logicinfo (string-to-number content))
! (error "Parse ERROR !!!(at X-SC-Todo:)"))))
(defun mhc-logic-compile-file (record)
*** mhc-parse.el.0 Fri May 7 01:35:12 2004
--- mhc-parse.el Fri Sep 30 13:37:06 2005
***************
*** 63,69 ****
(if (eq (length content) 0)
nil
(string-to-number content)))
! (error "Parse ERROR !!!")))
schedule)
(defun mhc-parse/subject (record schedule)
--- 63,69 ----
(if (eq (length content) 0)
nil
(string-to-number content)))
! (error "Parse ERROR !!!(at X-SC-Priority:)")))
schedule)
(defun mhc-parse/subject (record schedule)