Subject: 24.2.50; `bookmark-rename' and `bookmark-maybe-historicize-string'

From: "Drew Adams" <[email-masked]>
Date: Mon, 24 Sep 2012 10:04:46 -0700

Should `bookmark-rename' call `bookmark-maybe-historicize-string', as it
does now?  I am not sure this is a bug, but I would like to raise the
question.
 
What is the reason for that macro call by `bookmark-rename'?  The macro
pushes the STRING arg to `bookmark-history' for non-interactive use.
 
Why would we do that for the old bookmark name, when you rename a
bookmark?  Is it because we want to let you access that old name later,
so you can rename other bookmarks that might have the old name as a
prefix?
 
That's about all I can think of.  But with such a rationale, why don't
we do that only when `bookmark-rename' is called interactively?
Instead, we do it only when the function is NOT called interactively.
 
It seems to me that Lisp code should be able to use `bookmark-rename'
without adding the old name to the history.  Renaming a bookmark should
do only that, I think.
 
Is there a bug here?  If not, what is the rationale?
 
The doc string for `bookmark-rename' offers this rationale:
 
 Put STRING into the bookmark prompt history, if caller non-interactive.
 We need this because sometimes bookmark functions are invoked from
 menus, so `completing-read' never gets a chance to set `bookmark-history'.
 
(Such a rationale really should be a comment, not part of the doc
string, BTW.)
 
OK, it is true that `bookmark-rename' is used in a menu.  But what's
done does not seem the best way to handle the problem cited.  If it were,
then presumably we would be doing that kind of thing all over the place,
not just in bookmark.el.
 
And the implementation is overkill for that rationale.  It presumes that
every non-interactive call to `bookmark-rename' should update the
history.
 
I think there is a bug here, but if not I'd like to understand this
better.  Thx.

In GNU Emacs 24.2.50.1 (i386-mingw-nt5.1.2600)
 of 2012-09-17 on MARVIN
Bzr revision: 110062 [email-masked]
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.7) --no-opt --enable-checking --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include
 -ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include
 -ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'