From: Benjamin Rutt <rutt+news@cis.ohio-state.edu>
Subject: request feedback on new function gnus-dired-attach
Date: Fri, 14 Dec 2001 19:19:44 -0500 [thread overview]
Message-ID: <wc3wuzp5o7z.fsf@eta.cis.ohio-state.edu> (raw)
After getting inspired today to clean out my TODO list, I defined the
following function, to make it easier to attach (multiple) files in
gnus via dired buffers. (This is in response to a thread with the
subject 'how to attach multiple attachments simultaneously' on
gnu.emacs.gnus during late November of this year...it has since
expired from my news server, otherwise I'd probably followup to it).
I'd love to get the following feedback:
1) reports of failures under setups other than GNU Emacs 21+Oort,
which is the system I've tested it on
2) whether and how to integrate this code into gnus. You'll note that
the last line:
(define-key dired-mode-map [(control c) (control a)] 'gnus-dired-attach)
is somewhat ugly, since we are defining a dired keymap in another
area of code. Paul Jarc, on the above g.e.g thread, suggested that
we define a gnus-dired minor mode which can contain the keymap.
But I'm not sure if that's better, since ultimately we're still
stealing a possible future dired keybinding (C-c C-a currently
isn't defined in dired-mode). Maybe that last line should simply
go in users ~/.gnus so the users control the keybinding override?
3) whether you think this should exist as a separate file that isn't
included in gnus.
4) any other feedback
Here begins the code. It should be enough to place this code in your
~~/.gnus, evaluate it, and then start attaching files from dired
buffers via C-c C-a (with or without starting message compositions
first). Thanks.
----------------------------------------------------------------------
(defun gnus-dired-attach ()
"Attach dired's marked files to a gnus message composition."
(interactive)
(let* ((files-to-attach
;; don't attach directories
(delq nil
(mapcar
(lambda (f) (if (file-directory-p f) nil f))
(nreverse (dired-map-over-marks (dired-get-filename) nil)))))
(destination nil)
(files-str (mapconcat
(lambda (f) (file-name-nondirectory f)) files-to-attach
", "))
(bufs (message-buffers)))
;; set up destination message buffer
(if (and bufs
(y-or-n-p "Attach files to existing message buffer? "))
(setq destination
(if (= (length bufs) 1)
(get-buffer (car bufs))
(completing-read "Attach to which message buffer: "
(mapcar
(lambda (b)
(cons b (get-buffer b)))
bufs)
nil t)))
;; setup a new gnus message buffer
(gnus-setup-message 'message (message-mail))
(setq destination (current-buffer)))
;; set buffer to destination buffer, and attach files
(set-buffer destination)
(goto-char (point-max)) ;attach at end of buffer
(while files-to-attach
(mml-attach-file (car files-to-attach)
(or (mm-default-file-encoding (car files-to-attach))
"application/octet-stream") nil)
(setq files-to-attach (cdr files-to-attach)))
(message "attached files %s" files-str)))
(define-key dired-mode-map [(control c) (control a)] 'gnus-dired-attach)
--
Benjamin
next reply other threads:[~2001-12-15 0:19 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-15 0:19 Benjamin Rutt [this message]
2001-12-15 5:25 ` Benjamin Rutt
2001-12-15 6:12 ` ShengHuo ZHU
2001-12-15 6:39 ` Benjamin Rutt
2001-12-15 8:17 ` Benjamin Rutt
2001-12-15 23:34 ` Benjamin Rutt
2001-12-29 0:40 ` Lars Magne Ingebrigtsen
2001-12-31 7:06 ` Benjamin Rutt
2001-12-31 7:47 ` Paul Jarc
2002-01-19 19:12 ` Lars Magne Ingebrigtsen
2002-01-20 0:39 ` Benjamin Rutt
2002-01-20 0:52 ` Lars Magne Ingebrigtsen
2002-02-02 1:25 ` Benjamin Rutt
2002-02-02 6:38 ` ShengHuo ZHU
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=wc3wuzp5o7z.fsf@eta.cis.ohio-state.edu \
--to=rutt+news@cis.ohio-state.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).