Subject: bug#69141: [PATCH] Allow attaching files at point using 'gnus-dired-attach'

From: Philip Kaludercic <[email-masked]>
Date: Mon, 19 Feb 2024 15:54:22 +0000

Eric Abrahamsen <[email-masked]> writes:

> Philip Kaludercic <[email-masked]> writes:
>
>> I use this command frequently, and am just as frequently mildly annoyed
>> that attachments are always added at the bottom of the message buffer,
>> instead of at point as is the case with 'mml-attach-file' (usually this
>> is mild enough that I'd immediately forget about it).  This patch allows
>> disabling the behaviour:
>
> This looks fine to me, thank you. Would you add a :version to the
> defcustom, and also a mention (with index entry) in the Gnus manual,
> "Interaction with other modes -> Dired"?
>
> I guess 'mail is a fine group for the defcustom, kind of hard to say.

How does this look like:

>From a61cf2688bc952864a5c394a4f06b64c48a906e2 Mon Sep 17 00:00:00 2001
From: Philip Kaludercic <[email-masked]>
Date: Thu, 15 Feb 2024 12:10:12 +0100
Subject: [PATCH] Allow attaching files at point using 'gnus-dired-attach'

* lisp/gnus/gnus-dired.el (gnus-dired-attach-at-end): Add option.
(gnus-dired-attach): Respect it.
* doc/misc/gnus.texi (Other modes): Document it.  (Bug#69141)
---
 doc/misc/gnus.texi      | 5 ++++-
 lisp/gnus/gnus-dired.el | 9 ++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 2f8f97e5845..98196310b5c 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -26695,9 +26695,12 @@ Other modes
 @table @kbd
 @item C-c C-m C-a
 @findex gnus-dired-attach
+@vindex gnus-dired-attach-at-end
 @cindex attachments, selection via dired
 Send dired's marked files as an attachment (@code{gnus-dired-attach}).
-You will be prompted for a message buffer.
+You will be prompted for a message buffer.  By default it will attach
+files to the end of the message buffer, but you can modify that
+behaviour by customising @code{gnus-dired-attach-at-end}.
 
 @item C-c C-m C-l
 @findex gnus-dired-find-file-mailcap
diff --git a/lisp/gnus/gnus-dired.el b/lisp/gnus/gnus-dired.el
index 48c1aef968b..f33c5f7f2e5 100644
--- a/lisp/gnus/gnus-dired.el
+++ b/lisp/gnus/gnus-dired.el
@@ -111,6 +111,12 @@ gnus-dired-mail-buffers
 
 (autoload 'gnus-completing-read "gnus-util")
 
+(defcustom gnus-dired-attach-at-end t
+  "Non-nil means that files should be attached at the end of a buffer."
+  :group 'mail ;; dired?
+  :version "30.1"
+  :type 'boolean)
+
 ;; Method to attach files to a mail composition.
 (defun gnus-dired-attach (files-to-attach)
   "Attach dired's marked files to a gnus message composition.
@@ -161,7 +167,8 @@ gnus-dired-attach
 
       ;; set buffer to destination buffer, and attach files
       (set-buffer destination)
-      (goto-char (point-max))		;attach at end of buffer
+      (when gnus-dired-attach-at-end
+        (goto-char (point-max)))		;attach at end of buffer
       (while files-to-attach
 	(mml-attach-file (car files-to-attach)
 			 (or (mm-default-file-type (car files-to-attach))
-- 
2.43.0