Subject: bug#20419: 25.0.50; doc string of `recenter-last-op`

From: Drew Adams <[email-masked]>
Date: Sat, 25 Apr 2015 09:12:07 -0700 (PDT)

> > > > The doc string says that these are the possible values:
> > > > "`top', `middle', `bottom', integer or float numbers."
> > > > It should also mention `nil', say what `nil' means, and
> > > > perhaps even say that `nil' is the default value.
> > >
> > > How do you see that nil has any meaning whatsoever?
> >
> > `nil' means that the next `recenter-top-bottom' starts with
> > the first element of `recenter-positions'.
> 
> Yuck!  Why not set it to the first member of recenter-positions to
> begin with?
> 
> FWIW, I consider this, including the exposure of this variable as
> some kind of knob for other Lisp packages, bad style.  You should be
> demanding cleaning this up instead of documenting it.
> 
> Fixed under protest.

Point taken.  A better design (for its use in `perform-replace')
might bind `recenter-last-op' to the car of `recenter-positions'.
(The code also resets it later in `perform-replace'.  That setq
would also need to be changed, the same way.)

Or get rid of `recenter-last-op' and just have code bind and
set option `recenter-positions'...  But Emacs dev generally
doesn't like to do that, even locally.

As long as we have something like `recenter-last-op', it is
like `kill-ring-yank-pointer': it will be used by other code
and needs to be documented.

Please consider filing that bug report/enhancement request (or
consider fixing it in the context of this one), if you like.

But the behavior of nil remains unchanged.  It still needs to
be mentioned in the doc string, as long as it has the effect
it has.  Thanks for having fixed that.