MewのSummaryモードでのローカルタイムへの変換 [Linux]
尚、これまでは変換せず、日時とタイムゾーンを表示していた。
編集するファイルは ~/.mew.el であり、手順は、以下の通りである。
(ソースの詳細は、備考を参照。)
1. 変数 mew-summary-ctz の追加
(defvar mew-summary-ctz t "*If mew-summary-ctz is t, use local time zone in Summary mode.")
変数 mew-summary-ctz が t の場合、ローカルタイムゾーンでの日時を表示する。
それ以外の場合、メールヘッダーの日時をそのまま表示する。
2. mew-summary-form-year2 関数の作成
mew-summary-form-year 関数をコピーし、下記の変更を行う。
(1) 変更箇所
下記の when を if に変更し、else 部分を追加する。
(when (or (string= s "") (not (string-match mew-time-rfc-regex s))) ...)
(2) 変更内容
下記のコードを追加する。
(when mew-summary-ctz (setq s (timezone-make-date-arpa-standard s)))
(補足)
mew-summary-form-year は、mew-scan.el で定義されている。
3. mew-summary-form-date2 関数の作成
mew-summary-form-date 関数をコピーし、下記の変更を行う。
(1) 変更箇所
mew-summary-form-year2 関数と同様。
(2) 変更内容
mew-summary-form-year2 関数と同様。
(補足)
mew-summary-form-date は、mew-scan.el で定義されている。
4. mew-summary-form-time2 関数の作成
mew-summary-form-time 関数をコピーし、下記の変更を行う。
(1) 変更箇所
mew-summary-form-year2 関数と同様。
(ただし、元々 when ではなく、if が使用されている。)
(2) 変更内容
mew-summary-form-year2 関数と同様。
(補足)
mew-summary-form-time は、mew-scan.el で定義されている。
5. mew-summary-form-tmzn 関数の作成
(defun mew-summary-form-tmzn () "A function to return the time zone of message time, [+-]HHMM." (let ((s (MEW-DATE))) (if (or (string= s "") (not (string-match mew-time-rfc-regex s))) (setq s (mew-time-ctz-to-rfc (mew-file-get-time (mew-expand-msg (MEW-FLD) (MEW-NUM))))) (when mew-summary-ctz (setq s (timezone-make-date-arpa-standard s)))) (if (not (string-match mew-time-rfc-regex s)) "" (setq s (mew-time-rfc-tmzn)) (format "%+03d%02d" (/ s 3600) (/ (% s 3600) 60)))))
6. 変数 mew-summary-form の設定変更
year2、date2、time2、tmzn を表示するように変更する。
(defun mew-summary-form-num () "A function to return a message number." (MEW-NUM)) (defvar mew-summary-message-number t "*If mew-summary-message-number is t, display message number in Summary mode.") (setq mew-summary-form (if mew-summary-message-number ;; display message number '((-4 num) " " type (4 year2) "-" (5 date2) " " (8 time2) " " (5 tmzn) " " (16 from) " " t (0 subj)) ;; display no message number '(type (4 year2) "-" (5 date2) " " (8 time2) " " (5 tmzn) " " (16 from) " " t (0 subj))))
7. ローカルタイムへの変換以外の変更点
今回行った変更以外に、下記の変更を行っている。
・日付フォーマットの変更 (YYYY/MM/DD から YYYY-MM-DD へ変更)
・時刻フォーマットの変更 (HH:MM から HH:MM:SS へ変更)
・タイムゾーンの表示
・メッセージ番号の表示 (変数 mew-summary-message-number で表示の有無を制御)