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) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。