Subject: Re: bug#32214: [PATCH] 'message-kill-buffer': fix backup delete question

From: Noam Postavsky <[email-masked]>
Date: Fri, 20 Jul 2018 19:26:40 -0400

Sven Willner <[email-masked]> writes:

> also, the 'when' part should only include the actual deletion of the
> backup file
>>  	(ignore-errors
>>  	  (delete-file auto-save-file-name))
> rather than also draft diassociation
>>  	(let ((message-draft-article draft-article))
>>  	  (message-disassociate-draft)))
> also fixed in the updated patch.

> Subject: [PATCH] 'message-kill-buffer': fix backup delete question
>
> Before 'message-kill-buffer' would ask to delete backup file if draft has been
> saved regardless if a backup file has actually been created. Now only ask if
> a backup file exists.

> +      (when (and auto-save-file-name
> +                 (file-exists-p auto-save-file-name)
> +                 file-name
> +                 (file-exists-p file-name)

Does it still make sense to check for file-name here?  If we're just
deleting the auto save file, we should probably check for that only (but
see below, I'm not sure if this is actually correct).

> +                 (progn
> +                   ;; If the message buffer has lived in a dedicated window,
> +                   ;; `kill-buffer' has killed the frame.  Thus the
> +                   ;; `yes-or-no-p' may show up in a lowered frame.  Make sure
> +                   ;; that the user can see the question by raising the
> +                   ;; current frame:
> +                   (raise-frame)
> +                   (yes-or-no-p (format "Remove the backup file%s? "
> +                                        (if modified " too" "")))))

I wonder if "backup" is meant to refer to the draft copy (as far as I
can tell (through the many layers of indirection), the draft
"dissociation" is also some kind of deletion).  If so, then I think this
change isn't a "fix" at all.

> +	    (ignore-errors
> +	      (delete-file auto-save-file-name)))
> +	  (let ((message-draft-article draft-article))
> +	    (message-disassociate-draft))
>        (message-do-actions actions))))