Subject: Re: bug#38993: 26.3; EBDB saves the database on Emacs exit even when told not to

From: Jorge P. de Morais Neto <[email-masked]>
Date: Mon, 06 Jan 2020 18:04:48 -0300

Em [2020-01-06 seg 11:51:48-0800], Eric Abrahamsen escreveu:

> Probably you've also got `ebdb-save-on-exit' set to t -- that adds a
> save hook to `kill-emacs-hook'.

Yes, it was t (the default).  I actually had read about it on the EBDB
manual, but, since Emacs was asking whether to save, I interpreted that
variable as whether Emacs would ask at all.  That is, I thought that if
the variable was t then Emacs would ask whether to save, and if it was
nil then Emacs would exit without saving and without any question.

> What you're seeing is the `buffer-offer-save' mechanism, which kicks
> in both when you run `save-some-buffers' and before you kill Emacs.
> So there's sort of two potential save mechanisms when you exit Emacs.
> If that's annoying I could also provide an option for not offering to
> save the database.

The current behavior is a bit counter-intuitive.  Not only for the
reason I provided above, but because, when I answer the question
positively (that I do want to save the buffer), Emacs asks for a file to
save the *EBDB* buffer.  It then saves _that_ buffer (with its human
readable contents) to the just-specified file, and also appears to save
the actual database to its file, even though for my test I had
previously set `ebdb-save-on-exit' to nil.  Apparently, answering
positively the buffer-offer-save question causes two saves.
Counter-intuitive.  And what if the user is confused -- thinking that
Emacs was asking whether to save the _actual database_ -- and then
provides the path of the database file?  Would not EBDB then save the
*EBDB* buffer there, overwriting the actual database, causing data loss?

Isn't it peculiar to EBDB that Emacs offers to save the
computer-generated contents of the *EBDB* buffer on exit?  IIRC, when I
exit Emacs it does not offer to save my Org Agenda (only the actual Org
files from which it generated the agenda), nor Dired buffers, nor any
other computer-generated buffer.

Regards
-- 
- <https://jorgemorais.gitlab.io/justice-for-rms/>
- I am Brazilian.  I hope my English is correct and I welcome feedback.
- Please adopt free formats like PDF, ODF, Org, LaTeX, Opus, WebM and 7z.
- Free/libre software for Replicant, LineageOS and Android: https://f-droid.org
- [[https://www.gnu.org/philosophy/free-sw.html][What is free software?]]