Subject: bug#26242: 25.1; `dired-shrink-to-fit' warning

From: Drew Adams <[email-masked]>
Date: Fri, 24 Mar 2017 11:09:55 -0700 (PDT)

If code uses variable `dired-shrink-to-fit', this is the byte-compiler
warning you get:

Warning: ‘dired-shrink-to-fit’ is an obsolete variable (as of 24.3); use the Customization interface to add a new rule
to ‘display-buffer-alist’ where condition regexp is "^ \*Marked Files\*$",
action argument symbol is ‘window-height’ and its value is nil.

That is a _ridiculous_ warning.

This simple variable was defined this way, for decades:

(defvar dired-shrink-to-fit t
;; I see no reason ever to make this nil -- rms.
;;  (> baud-rate search-slow-speed)
  "Non-nil means Dired shrinks the display buffer to fit the marked files.")

IOW, the value should pretty much always be non-nil.

What on Earth is the point of the convoluted recipe given in that
warning?

`dired-shrink-to-fit' was never a user option.  It is not necessarily
something that someone would set in their init file.  It is just as
likely (if it is likely at all - see RMS's comment) that it would be
bound in some Lisp code.

Why should we tell users to customize `display-buffer-alist', perhaps
the most complex user option, and in such a way as to do the complicated
things the warning suggests?

What we should do is just restore the definition of
`dired-shrink-to-fit' (perhaps even making it a constant with value
`t'), or just replace occurrences of it with `t' and declare it obsolete
but without such a silly warning that tells you to customize
`display-buffer-alist'.

In GNU Emacs 25.1.1 (x86_64-w64-mingw32)
 of 2016-11-15 built on LAPHROAIG
Windowing system distributor 'Microsoft Corp.', version 6.1.7601
Configured using:
 'configure --without-dbus --without-compress-install 'CFLAGS=-O2
 -static -g3''