SSブログ

Mewのメール返信で引用する送信日付のフォーマット変更 [Linux]

[ソフトウェアのバージョン]
Mew 6.8 on Emacs 26.1
Mew 6.3 on Emacs 24.3.1

Mew のメール返信で、mew-cite-fields、mew-cite-format を使用して送信日時を引用する場合、メールヘッダーの Date: 行の値が使用される。
今回は、これを 'YYYY-MM-DD hh:mm:ss tz' のように変更する。

(理由)
・曜日の情報が不要。
・日付のフォーマットが複数存在。
 (曜日の有無、秒の有無)

詳細は、以下の通りである。

1. 変更前後での引用のイメージの違い(例)


(1) 変更前

On Tue, 8 Jun 2021 01:23:34 +0900 :
  From: xxx
  Subject: xxx

> ...


(2) 変更後

On 2021-06-08 01:23:34 +0900 :
  From: xxx
  Subject: xxx

> ...

2. 設定


~/.mew.el の mew-cite-format の設定の後に、下記の設定を追加する。

(setq mew-cite-strings-function 'my-mew-cite-strings)
(defun my-mew-cite-strings ()
  (let ((date (mew-cite-get-value mew-date:))
        (str (mew-cite-strings))
        item tmzn)
    (if (not (string-match mew-time-rfc-regex date))
        str
      (setq item (parse-time-string date))
      (setq date
            (format "%04d-%02d-%02d %02d:%02d:%02d"
                    (nth 5 item)
                    (nth 4 item)
                    (nth 3 item)
                    (nth 2 item)
                    (nth 1 item)
                    (nth 0 item)))
      (when (setq tmzn (nth 8 item))
        (setq tmzn (format "%+03d%02d" (/ tmzn 3600) (/ (% tmzn 3600) 60)))
        (setq date (concat date " " tmzn)))
      (replace-regexp-in-string "^On [^\n]+"
                                (format "On %s :" date)
                                str))))


・mew-time-rfc-regex を使用するチェックは、異常な値を除外するためである。
・mew-time-rfc-regex は、有効なデータを下記のように定義している。
 下記の項目を空白文字で連結した文字列
 日(数字)
 月(文字列)
 時分秒(数字を : で接続。秒は省略可。)
 タイムゾーン(符号付きの数字、または文字列。省略可。)



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。