mhc 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -4
- data/README.org +2 -3
- data/bin/mhc +1 -1
- data/emacs/mhc-calendar.el +33 -28
- data/emacs/mhc-draft.el +93 -33
- data/emacs/mhc-face.el +45 -0
- data/emacs/mhc-header.el +22 -18
- data/emacs/mhc-message.el +1 -1
- data/emacs/mhc-misc.el +4 -0
- data/emacs/mhc-parse.el +5 -4
- data/emacs/mhc-summary.el +88 -93
- data/emacs/mhc-vars.el +0 -7
- data/emacs/mhc.el +49 -16
- data/lib/mhc.rb +59 -0
- data/lib/mhc/formatter.rb +28 -0
- data/lib/mhc/version.rb +1 -1
- data/mhc.gemspec +5 -0
- metadata +58 -3
- data/emacs/mhc-mua.el +0 -260
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 402d897f119ad032a3b79fe4a80c052e1a8c2c8b
|
4
|
+
data.tar.gz: 4dc290bec03d71233ef479963506b33b999661c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba669c599f75b7841a00629a3f5fa16d9833ec251a335bc9c8f147499fdcac02638d5e5f728d03adeac5e1f877e16c4bfb86c0bfc6e218b2f7d7a6139c699fe3
|
7
|
+
data.tar.gz: cdc5ddbbe58cdf8b81105b2f25218be682be480faa7dafe3143529d6dd35672aee37baffd403da52cb70b401b9e1ab74ce26db9fbba4e78565d52b7bdfe3f3f6
|
data/Gemfile
CHANGED
data/README.org
CHANGED
@@ -134,10 +134,9 @@
|
|
134
134
|
#+BEGIN_SRC emacs-lisp
|
135
135
|
(setq load-path
|
136
136
|
(cons "~/src/mhc/emacs" load-path))
|
137
|
-
(autoload 'mhc
|
138
|
-
(mhc-mua-setup)
|
137
|
+
(autoload 'mhc "mhc" "Message Harmonized Calendar system." t)
|
139
138
|
|
140
|
-
;; M-x mhc
|
139
|
+
;; M-x mhc
|
141
140
|
#+END_SRC
|
142
141
|
|
143
142
|
9) Check if TODAY is good.
|
data/bin/mhc
CHANGED
@@ -69,7 +69,7 @@ class MhcCLI < Thor
|
|
69
69
|
register_option :repository, :desc => "Set MHC top directory", :banner => "DIRECTORY"
|
70
70
|
register_option :calendar, :desc => "Set source CALENDAR"
|
71
71
|
register_option :category, :desc => "Pick items only in CATEGORY"
|
72
|
-
register_option :format, :desc => "Set printing format", :enum => %w(text mail orgtable emacs icalendar calfw howm)
|
72
|
+
register_option :format, :desc => "Set printing format", :enum => %w(text mail orgtable emacs icalendar calfw howm json)
|
73
73
|
register_option :search, :desc => "Search items by complex expression"
|
74
74
|
register_option :dry_run, :desc => "Perform a trial run with no changes made", :type => :boolean
|
75
75
|
|
data/emacs/mhc-calendar.el
CHANGED
@@ -11,6 +11,9 @@
|
|
11
11
|
|
12
12
|
;;; Configration Variables:
|
13
13
|
|
14
|
+
(require 'mhc-date)
|
15
|
+
(require 'mhc-day)
|
16
|
+
(require 'mhc-schedule)
|
14
17
|
(require 'mhc-vars)
|
15
18
|
(require 'mhc-face)
|
16
19
|
(require 'mhc-e21)
|
@@ -227,10 +230,10 @@ ww-japanese-long => \"土曜日\"
|
|
227
230
|
|
228
231
|
;; Avoid warning of byte-compiler.
|
229
232
|
(eval-when-compile
|
230
|
-
(defvar
|
231
|
-
(defvar
|
232
|
-
(defvar
|
233
|
-
(defvar
|
233
|
+
(defvar yy)
|
234
|
+
(defvar mm)
|
235
|
+
(defvar dd)
|
236
|
+
(defvar ww)
|
234
237
|
(defvar hnf-diary-dir)
|
235
238
|
(defvar hnf-diary-year-directory-flag)
|
236
239
|
(defvar view-exit-action)
|
@@ -465,7 +468,7 @@ ww-japanese-long => \"土曜日\"
|
|
465
468
|
(i 0)
|
466
469
|
(from (mhc-date-mm-first date))
|
467
470
|
(to (mhc-date-mm-last date))
|
468
|
-
(start (mhc-date-ww
|
471
|
+
(start (mhc-date-ww from))
|
469
472
|
(cdate from)
|
470
473
|
week color cw day map dayinfo)
|
471
474
|
(when (mhc-calendar/cw-week)
|
@@ -556,7 +559,7 @@ ww-japanese-long => \"土曜日\"
|
|
556
559
|
(setq pos cpos)
|
557
560
|
(throw 'detect t))))
|
558
561
|
(goto-char pos)
|
559
|
-
(
|
562
|
+
(when view (mhc-summary-display)))
|
560
563
|
(t
|
561
564
|
(unless (mhc-calendar-mouse-icon-function event)
|
562
565
|
(setq func (or (lookup-key (current-local-map) (this-command-keys))
|
@@ -728,7 +731,8 @@ The keys that are defined for mhc-calendar-mode are:
|
|
728
731
|
(caldate (mhc-date-mm+ date -1))
|
729
732
|
(col mhc-calendar-start-column)
|
730
733
|
(prefix " +|")
|
731
|
-
(i 3)
|
734
|
+
(i 3)
|
735
|
+
(string))
|
732
736
|
(mhc-calendar/delete-overlay)
|
733
737
|
(set-text-properties (point-min) (point-max) nil)
|
734
738
|
(erase-buffer)
|
@@ -743,8 +747,9 @@ The keys that are defined for mhc-calendar-mode are:
|
|
743
747
|
(setq i (1- i)))
|
744
748
|
(goto-char (point-min))
|
745
749
|
(while (re-search-forward prefix nil t)
|
750
|
+
(setq string (match-string 0))
|
746
751
|
(delete-region (match-end 0) (match-beginning 0))
|
747
|
-
(insert (make-string (
|
752
|
+
(insert (make-string (length string) ?\ )))
|
748
753
|
(setq mhc-calendar-date date)
|
749
754
|
;; (mhc-calendar/put-property-date)
|
750
755
|
(and mhc-calendar-link-hnf (mhc-calendar/hnf-mark-diary-entries))
|
@@ -850,7 +855,7 @@ The keys that are defined for mhc-calendar-mode are:
|
|
850
855
|
(defun mhc-calendar/view-file-decode-header ()
|
851
856
|
(let ((buffer-read-only nil))
|
852
857
|
(goto-char (point-min))
|
853
|
-
(mhc-decode-
|
858
|
+
(mhc-header-decode-ewords)
|
854
859
|
(mhc-highlight-message)))
|
855
860
|
|
856
861
|
;; insert function
|
@@ -1062,53 +1067,53 @@ The keys that are defined for mhc-calendar-mode are:
|
|
1062
1067
|
(and func (funcall func))))))
|
1063
1068
|
|
1064
1069
|
(defun mhc-calendar/inserter-yy ()
|
1065
|
-
(format "%4d"
|
1070
|
+
(format "%4d" yy))
|
1066
1071
|
|
1067
1072
|
(defun mhc-calendar/inserter-nengo ()
|
1068
|
-
(if (>
|
1069
|
-
(format "平成%2d年" (-
|
1070
|
-
(if (>
|
1071
|
-
(format "昭和%2d年" (-
|
1073
|
+
(if (> yy 1987)
|
1074
|
+
(format "平成%2d年" (- yy 1988))
|
1075
|
+
(if (> yy 1924)
|
1076
|
+
(format "昭和%2d年" (- yy 1925))
|
1072
1077
|
"昔々")))
|
1073
1078
|
|
1074
1079
|
(defun mhc-calendar/inserter-mm ()
|
1075
|
-
(format "%d"
|
1080
|
+
(format "%d" mm))
|
1076
1081
|
|
1077
1082
|
(defun mhc-calendar/inserter-mm02 ()
|
1078
|
-
(format "%02d"
|
1083
|
+
(format "%02d" mm))
|
1079
1084
|
|
1080
1085
|
(defun mhc-calendar/inserter-mm2 ()
|
1081
|
-
(format "%2d"
|
1086
|
+
(format "%2d" mm))
|
1082
1087
|
|
1083
1088
|
(defun mhc-calendar/inserter-mm-string ()
|
1084
|
-
(mhc-date-digit-to-mm-string
|
1089
|
+
(mhc-date-digit-to-mm-string mm))
|
1085
1090
|
|
1086
1091
|
(defun mhc-calendar/inserter-mm-string-long ()
|
1087
|
-
(mhc-date-digit-to-mm-string
|
1092
|
+
(mhc-date-digit-to-mm-string mm t))
|
1088
1093
|
|
1089
1094
|
(defun mhc-calendar/inserter-dd ()
|
1090
|
-
(format "%d"
|
1095
|
+
(format "%d" dd))
|
1091
1096
|
|
1092
1097
|
(defun mhc-calendar/inserter-dd02 ()
|
1093
|
-
(format "%02d"
|
1098
|
+
(format "%02d" dd))
|
1094
1099
|
|
1095
1100
|
(defun mhc-calendar/inserter-dd2 ()
|
1096
|
-
(format "%2d"
|
1101
|
+
(format "%2d" dd))
|
1097
1102
|
|
1098
1103
|
(defun mhc-calendar/inserter-ww ()
|
1099
|
-
(format "%d"
|
1104
|
+
(format "%d" ww))
|
1100
1105
|
|
1101
1106
|
(defun mhc-calendar/inserter-ww-string ()
|
1102
|
-
(mhc-date-digit-to-ww-string
|
1107
|
+
(mhc-date-digit-to-ww-string ww))
|
1103
1108
|
|
1104
1109
|
(defun mhc-calendar/inserter-ww-string-long ()
|
1105
|
-
(mhc-date-digit-to-ww-string
|
1110
|
+
(mhc-date-digit-to-ww-string ww t))
|
1106
1111
|
|
1107
1112
|
(defun mhc-calendar/inserter-ww-japanese ()
|
1108
|
-
(mhc-date-digit-to-ww-japanese-string
|
1113
|
+
(mhc-date-digit-to-ww-japanese-string ww))
|
1109
1114
|
|
1110
1115
|
(defun mhc-calendar/inserter-ww-japanese-long ()
|
1111
|
-
(mhc-date-digit-to-ww-japanese-string
|
1116
|
+
(mhc-date-digit-to-ww-japanese-string ww t))
|
1112
1117
|
|
1113
1118
|
(defun mhc-calendar/get-day-list (date &optional datelst dateend)
|
1114
1119
|
(let (lst-org formlst retlst retlst2 ret con)
|
@@ -1526,7 +1531,7 @@ The keys that are defined for mhc-calendar-mode are:
|
|
1526
1531
|
(setq lst (cdr lst))))
|
1527
1532
|
(with-temp-buffer
|
1528
1533
|
(insert-file-contents mhcfile)
|
1529
|
-
(mhc-decode-
|
1534
|
+
(mhc-header-decode-ewords)
|
1530
1535
|
(mhc-header-narrowing
|
1531
1536
|
(setq cats (mhc-header-get-value "x-sc-category"))
|
1532
1537
|
(setq subj (mhc-header-get-value "x-sc-subject"))
|
data/emacs/mhc-draft.el
CHANGED
@@ -9,31 +9,6 @@
|
|
9
9
|
|
10
10
|
;; This file is a part of MHC, includes functions for draft.
|
11
11
|
|
12
|
-
;;; About MUA Backend:
|
13
|
-
|
14
|
-
;; In order to define new MUA backend, it is required to define these
|
15
|
-
;; methods.
|
16
|
-
;;
|
17
|
-
;; (mhc-foo-draft-setup-new)
|
18
|
-
;; Setup new draft (Insert header separator).
|
19
|
-
;;
|
20
|
-
;; (mhc-foo-draft-reedit-buffer BUFFER ORIGINAL)
|
21
|
-
;; Restore content of BUFFER as draft in the current buffer.
|
22
|
-
;; If ORIGINAL is non-nil, use BUFFER as raw buffer.
|
23
|
-
;;
|
24
|
-
;; (mhc-foo-draft-reedit-file FILENAME)
|
25
|
-
;; Restore contents of file FILENAME as draft in the current buffer.
|
26
|
-
;;
|
27
|
-
;; (mhc-foo-draft-translate)
|
28
|
-
;; Translate current buffer to raw buffer.
|
29
|
-
;;
|
30
|
-
;; Define these methods appropriately, and put definitions as follows:
|
31
|
-
;;
|
32
|
-
;; (put 'mhc-foo 'draft-setup-new 'mhc-foo-draft-setup-new)
|
33
|
-
;; (put 'mhc-foo 'draft-reedit-buffer 'mhc-foo-draft-reedit-buffer)
|
34
|
-
;; (put 'mhc-foo 'draft-reedit-file 'mhc-foo-draft-reedit-file)
|
35
|
-
;; (put 'mhc-foo 'draft-translate 'mhc-foo-draft-translate)
|
36
|
-
|
37
12
|
;;; Code:
|
38
13
|
|
39
14
|
(require 'mhc-summary)
|
@@ -63,25 +38,80 @@
|
|
63
38
|
|
64
39
|
(defvar mhc-draft-mode-map)
|
65
40
|
|
66
|
-
(
|
41
|
+
(defun mhc-draft-setup-new ()
|
67
42
|
"Setup new draft (Insert header separator, etc)."
|
68
|
-
(
|
69
|
-
|
43
|
+
(let ((sep-regexp (format "\n\\(%s\\)?\n" (regexp-quote mail-header-separator)))
|
44
|
+
(sep (concat "\n" mail-header-separator "\n")))
|
45
|
+
(save-excursion
|
46
|
+
(goto-char (point-min))
|
47
|
+
(if (re-search-forward sep-regexp nil t)
|
48
|
+
(replace-match sep)
|
49
|
+
(goto-char (point-max))
|
50
|
+
(unless (bolp) (insert "\n"))
|
51
|
+
(insert mail-header-separator "\n")))))
|
52
|
+
|
53
|
+
(defun mhc-draft-new (&optional template preset-fields)
|
54
|
+
"Prepare new mhc-draft buffer.
|
55
|
+
If TEMPLATE is a string or buffer, it is used for a new draft.
|
56
|
+
If PRESET-FIELDS is a list of cons-cell like: ((header-name . value) ...),
|
57
|
+
these fields are set to the draft after import TEMPLATE."
|
58
|
+
(interactive)
|
59
|
+
(let ((draft-buffer (generate-new-buffer mhc-draft-buffer-name)))
|
60
|
+
(with-current-buffer draft-buffer
|
61
|
+
;; insert template
|
62
|
+
(cond
|
63
|
+
((bufferp template)
|
64
|
+
(insert-buffer-substring-no-properties template))
|
65
|
+
((stringp template)
|
66
|
+
(insert template)))
|
67
|
+
;; insert header separator
|
68
|
+
(mhc-draft-setup-new)
|
69
|
+
(mhc-draft-delete-garbage-headers)
|
70
|
+
(mhc-draft-setup-headers preset-fields)
|
71
|
+
;; remove end of message marker
|
72
|
+
(mhc-draft-remove-tailers)
|
73
|
+
(mhc-draft-mode)
|
74
|
+
(switch-to-buffer draft-buffer t)
|
75
|
+
(goto-char (point-min)))))
|
76
|
+
|
77
|
+
(defvar mhc-draft-template)
|
78
|
+
|
79
|
+
(defun mhc-draft-store-template (template)
|
80
|
+
"Store common draft template to TEMPLATE."
|
81
|
+
(setq mhc-draft-template template))
|
82
|
+
|
83
|
+
(defun mhc-draft-template ()
|
84
|
+
"Get common draft template."
|
85
|
+
mhc-draft-template)
|
70
86
|
|
71
87
|
(defsubst mhc-draft-reedit-buffer (buffer &optional original)
|
72
88
|
"Restore contents of BUFFER as draft in the current buffer.
|
73
89
|
If optional argument ORIGINAL is non-nil, BUFFER is raw buffer."
|
74
|
-
(
|
75
|
-
|
90
|
+
(unless (eq (current-buffer) buffer)
|
91
|
+
(erase-buffer)
|
92
|
+
(insert-buffer-substring buffer))
|
93
|
+
(mhc-header-narrowing
|
94
|
+
(mhc-header-delete-header
|
95
|
+
"^\\(Content-.*\\|Mime-Version\\|User-Agent\\):" 'regexp))
|
96
|
+
(mhc-header-decode-ewords)
|
97
|
+
(goto-char (point-min))
|
98
|
+
(when (re-search-forward "^\r?$" nil t)
|
99
|
+
(insert mail-header-separator)))
|
76
100
|
|
77
101
|
(defsubst mhc-draft-reedit-file (filename)
|
78
102
|
"Restore contents of file FILENAME as draft in the current buffer."
|
79
|
-
(
|
103
|
+
(erase-buffer)
|
104
|
+
(insert-file-contents filename)
|
105
|
+
(mhc-draft-reedit-buffer (current-buffer) 'original))
|
80
106
|
|
81
107
|
|
82
108
|
(defsubst mhc-draft-translate ()
|
83
|
-
"
|
84
|
-
|
109
|
+
"Convert an article in the current buffer to an ENCODED one.
|
110
|
+
ENCODED article should be valid for storeing to a mhc file."
|
111
|
+
(save-excursion
|
112
|
+
(goto-char (point-min))
|
113
|
+
(when (search-forward (concat "\n" mail-header-separator "\n") nil t)
|
114
|
+
(replace-match "\n\n"))))
|
85
115
|
|
86
116
|
|
87
117
|
(define-derived-mode mhc-draft-mode
|
@@ -158,6 +188,36 @@ If optional argument NO-CONFIRM is non-nil, kill without confirmation."
|
|
158
188
|
(mhc-header-put-value "x-sc-sequence"
|
159
189
|
(1+ (string-to-number sequence))))))
|
160
190
|
|
191
|
+
(defun mhc-draft-remove-tailers ()
|
192
|
+
(save-excursion
|
193
|
+
(goto-char (point-max))
|
194
|
+
(if (re-search-backward
|
195
|
+
(regexp-quote mhc-message-end-of-messge-marker)
|
196
|
+
(- (point) (length mhc-message-end-of-messge-marker)) t)
|
197
|
+
(replace-match ""))
|
198
|
+
(unless (bolp) (insert "\n"))))
|
199
|
+
|
200
|
+
(defun mhc-draft-delete-garbage-headers ()
|
201
|
+
(mhc-header-narrowing
|
202
|
+
(mhc-header-delete-header
|
203
|
+
(concat "^\\(" (mhc-regexp-opt mhc-draft-unuse-hdr-list) "\\)")
|
204
|
+
'regexp)))
|
205
|
+
|
206
|
+
(defun mhc-draft-setup-headers (&optional headers-values)
|
207
|
+
"Put X-SC-* headers to draft.
|
208
|
+
HEADERS-VALUES is a list of cons-cell like: ((header-name . value) ...)."
|
209
|
+
(let ((xsc-headers (mapcar (lambda (v) (downcase (substring v 0 -1)))
|
210
|
+
(mhc-header-list)))
|
211
|
+
(item))
|
212
|
+
(mhc-header-narrowing
|
213
|
+
(mapc
|
214
|
+
(lambda (xsc)
|
215
|
+
(if (setq item (assoc xsc headers-values))
|
216
|
+
(mhc-header-put-value xsc (or (cdr item) ""))
|
217
|
+
(unless (mhc-header-get-value xsc)
|
218
|
+
(mhc-header-put-value xsc ""))))
|
219
|
+
xsc-headers))))
|
220
|
+
|
161
221
|
(defun mhc-draft-finish ()
|
162
222
|
"Add current draft as a schedule."
|
163
223
|
(interactive)
|
data/emacs/mhc-face.el
CHANGED
@@ -33,6 +33,51 @@ in setup time.")
|
|
33
33
|
(FACE-SYMBOL . (PARENT FG BG UNDERLINED FONT STIPPLE)).
|
34
34
|
refer to mhc-calendar-hnf-face-alist-internal.")
|
35
35
|
|
36
|
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
37
|
+
;; Message faces.
|
38
|
+
|
39
|
+
(defvar mhc-message-face-eof-marker 'mhc-message-face-eof-marker)
|
40
|
+
(defvar mhc-message-face-subject 'mhc-message-face-subject)
|
41
|
+
|
42
|
+
(defface mhc-message-face-eof-marker
|
43
|
+
'((((class color)
|
44
|
+
(background dark))
|
45
|
+
(:background "aquamarine2"))
|
46
|
+
(((class color)
|
47
|
+
(background light))
|
48
|
+
(:background "aquamarine2"))
|
49
|
+
(t
|
50
|
+
()))
|
51
|
+
"*Face used by mhc-message-eof-marker."
|
52
|
+
:group 'mhc-faces)
|
53
|
+
|
54
|
+
(defface mhc-message-face-subject
|
55
|
+
'((((class color)
|
56
|
+
(background dark))
|
57
|
+
(:foreground "OrangeRed" :bold t))
|
58
|
+
(((class color)
|
59
|
+
(background light))
|
60
|
+
(:foreground "Firebrick" :bold t))
|
61
|
+
(t
|
62
|
+
()))
|
63
|
+
"*Face used by mhc-message-subject."
|
64
|
+
:group 'mhc-faces)
|
65
|
+
|
66
|
+
(defvar mhc-message-font-lock-keywords
|
67
|
+
'(("\\([12][0-9][0-9][0-9]\\)\\([0-1][0-9]\\)\\([0-3][0-9]\\)"
|
68
|
+
(1 font-lock-type-face)
|
69
|
+
(2 font-lock-comment-face)
|
70
|
+
(3 font-lock-builtin-face))
|
71
|
+
("\\(X-SC-\\(Subject\\|Location\\|Day\\|Time\\|Category\\|Priority\\|Recurrence-Tag\\|Mission-Tag:\\|Cond\\|Duration\\|Alarm\\|Record-Id\\|Sequence\\):\\)"
|
72
|
+
(1 font-lock-keyword-face))
|
73
|
+
("\\(\\[End of message\\]\\)"
|
74
|
+
(1 mhc-message-face-eof-marker))
|
75
|
+
("\\(X-SC-Subject:\\) *\\(.*\\)"
|
76
|
+
(1 font-lock-keyword-face)
|
77
|
+
(2 mhc-message-face-subject))
|
78
|
+
))
|
79
|
+
|
80
|
+
|
36
81
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
37
82
|
;; for necessary faces.
|
38
83
|
|
data/emacs/mhc-header.el
CHANGED
@@ -17,24 +17,20 @@
|
|
17
17
|
;; Global Variable:
|
18
18
|
|
19
19
|
(defconst mhc-header-table
|
20
|
-
'(
|
21
|
-
("x-sc-
|
22
|
-
("x-sc-
|
23
|
-
("x-sc-
|
24
|
-
("x-sc-
|
25
|
-
("x-sc-
|
26
|
-
("x-sc-
|
27
|
-
("x-sc-
|
28
|
-
("x-sc-
|
29
|
-
("x-sc-
|
30
|
-
("x-sc-
|
31
|
-
("x-sc-
|
32
|
-
("x-sc-sequence"
|
33
|
-
|
34
|
-
("x-sc-date" "X-SC-Date:" mhc-parse/old-style-date)
|
35
|
-
;; FIXME: 要削除
|
36
|
-
("x-sc-next" "X-SC-Next:" mhc-parse/next)))
|
37
|
-
|
20
|
+
'(
|
21
|
+
("x-sc-subject" "X-SC-Subject:" mhc-parse/subject)
|
22
|
+
("x-sc-location" "X-SC-Location:" mhc-parse/location)
|
23
|
+
("x-sc-day" "X-SC-Day:" mhc-parse/day)
|
24
|
+
("x-sc-time" "X-SC-Time:" mhc-parse/time)
|
25
|
+
("x-sc-category" "X-SC-Category:" mhc-parse/category)
|
26
|
+
("x-sc-priority" "X-SC-Priority:" mhc-parse/priority)
|
27
|
+
("x-sc-recurrence-tag" "X-SC-Recurrence-Tag:" mhc-parse/recurrence-tag)
|
28
|
+
("x-sc-cond" "X-SC-Cond:" mhc-parse/cond)
|
29
|
+
("x-sc-duration" "X-SC-Duration:" mhc-parse/duration)
|
30
|
+
("x-sc-alarm" "X-SC-Alarm:" mhc-parse/alarm)
|
31
|
+
("x-sc-record-id" "X-SC-Record-Id:" mhc-parse/record-id)
|
32
|
+
("x-sc-sequence" "X-SC-Sequence:" mhc-parse/sequence)
|
33
|
+
))
|
38
34
|
|
39
35
|
(defmacro mhc-header-list ()
|
40
36
|
"Return headers which are referenced by MHC."
|
@@ -139,6 +135,14 @@ If REGEXP, HEADER is a regular expression."
|
|
139
135
|
(delete-region (match-beginning 0) (match-end 0)))))
|
140
136
|
|
141
137
|
|
138
|
+
(eval-and-compile
|
139
|
+
(autoload 'rfc2047-decode-region "rfc2047"))
|
140
|
+
|
141
|
+
(defsubst mhc-header-decode-ewords ()
|
142
|
+
"Decode rfc2047 encoded header."
|
143
|
+
(save-restriction
|
144
|
+
(mhc-header-narrowing
|
145
|
+
(rfc2047-decode-region (point-min) (point-max)))))
|
142
146
|
|
143
147
|
(provide 'mhc-header)
|
144
148
|
|