Subject: Re: bug#74027: [PATCH] ; Insert "Stealing lock" at the beginning of a message

From: Eli Zaretskii <[email-masked]>
Date: Sat, 02 Nov 2024 13:27:42 +0200

> From: Philip Kaludercic <[email-masked]>
> Date: Sat, 26 Oct 2024 07:41:49 +0000
> 
> It appears "vc-steal-lock" is not compatible with automatic signatures,
> as the "I stole the lock on ..." is inserted at the end of the message,
> which can appear behind the signature.  This should fix it:
> 
> >From b5539a1924bbcbb1ee68fcbb21310856fcd437a9 Mon Sep 17 00:00:00 2001
> From: Philip Kaludercic <[email-masked]>
> Date: Sat, 26 Oct 2024 09:39:00 +0200
> Subject: [PATCH] ; Insert "Stealing lock" at the beginning of a message
> 
> * lisp/vc/vc.el (vc-steal-lock): Use 'mail-text' instead of
> jumping to 'point-max', to avoid inserting the message after
> signatures.
> ---
>  lisp/vc/vc.el | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
> index a30ba06aec3..0d72b169e41 100644
> --- a/lisp/vc/vc.el
> +++ b/lisp/vc/vc.el
> @@ -1661,6 +1661,7 @@ vc-mark-resolved
>  	 (format "%d files" (length files))
>         "this file"))))
>  
> +(declare-function mail-text "sendmail" ())
>  (defun vc-steal-lock (file rev owner)
>    "Steal the lock on FILE."
>    (let (file-description)
> @@ -1681,7 +1682,7 @@ vc-steal-lock
>      ;; goes wrong, we don't want to send any mail.
>      (compose-mail owner (format "Stolen lock on %s" file-description))
>      (setq default-directory (expand-file-name "~/"))
> -    (goto-char (point-max))
> +    (mail-text)

I guess you are using sendmail.el as your mail-user-agent?  But the
default is message.el, so I think we should either use
message-goto-body here, or perhaps dispatch to either to message.el or
sendmail.el based on the value of mail-user-agent.