.emacs-my
changeset 893 0e1febcbddb6
parent 892 cdf8003f3abb
child 894 d993e3e910ef
equal deleted inserted replaced
892:cdf8003f3abb 893:0e1febcbddb6
  1268 (add-hook 'message-setup-hook 'my-message-setup-routine)
  1268 (add-hook 'message-setup-hook 'my-message-setup-routine)
  1269 
  1269 
  1270 ;; Kill message buffer after mail send. You always can use C-c C-s to preserve it.
  1270 ;; Kill message buffer after mail send. You always can use C-c C-s to preserve it.
  1271 (setq message-kill-buffer-on-exit t)
  1271 (setq message-kill-buffer-on-exit t)
  1272 
  1272 
       
  1273 (defconst my-safe-filename-char-regex "[[:alnum:]-_!.@]"
       
  1274   "Safe file names.")
       
  1275 
       
  1276 (defun my-clean-filename (filename)
       
  1277   (mapconcat
       
  1278    (lambda (ch) (or (when (string-match my-safe-filename-char-regex (char-to-string ch)) (char-to-string ch)) "-"))
       
  1279    filename "") )
       
  1280 
  1273 (defun my-message-save ()
  1281 (defun my-message-save ()
  1274   "Store message in `gnus-article-save-directory' after
  1282   "Store message in `gnus-article-save-directory' after
  1275 successful sending. It is possible that mail rejected and I lost
  1283 successful sending. It is possible that mail rejected and I lost
  1276 it completely, this func save it for me."
  1284 it completely, this func save it for me."
  1277   (unless (eq major-mode 'message-mode)
  1285   (unless (eq major-mode 'message-mode)
  1278     (error "Attempt to call my-message-save in non message-mode buffer"))
  1286     (error "Attempt to call my-message-save in non message-mode buffer"))
  1279   (make-directory gnus-article-save-directory t)
  1287   (make-directory gnus-article-save-directory t)
  1280   (let ( (buf (current-buffer))
  1288   (let ( (buf (current-buffer))
  1281          (field-to (or (message-fetch-field "Newsgroups") (message-fetch-field "To")))
  1289          (field-to (my-clean-filename (or (message-fetch-field "Newsgroups") (message-fetch-field "To"))))
  1282          (field-subject (message-fetch-field "Subject"))
  1290          (field-subject (my-clean-filename (message-fetch-field "Subject")))
  1283          file )
  1291          file )
  1284     (setq file (concat gnus-article-save-directory "/" (format-time-string "%F_%T") "_" field-to "_" field-subject))
  1292     (setq file (concat gnus-article-save-directory "/" (format-time-string "%F_%T") "_" field-to "_" field-subject))
  1285     (with-temp-file file
  1293     (with-temp-file file
  1286       (insert-buffer buf)
  1294       (insert-buffer buf)
  1287       )) )
  1295       )) )