Subject: bug#19008: 25.0.50; (wrong-type-argument stringp (require . fit-frame))

From: Drew Adams <[email-masked]>
Date: Sun, 9 Nov 2014 18:51:03 -0800 (PST)

For some reason, `load-history-filename-element' was passed a cons cell
instead of a string.  That cons cell was apparently returned by
(load-history-regexp "cl-indent"), but I don't understand how that was
possible.

The relevant part of `lisp-indentation-hack', which is on
`emacs-lisp-mode-hook', is this:

(unless (if (fboundp 'load-history-regexp) ; Emacs 22+
            (load-history-filename-element (load-history-regexp "cl-indent"))
          (assoc "cl-indent" load-history))
    (load "cl-indent" nil t))

I don't understand why this happened, but here is a backtrace:

Debugger entered--Lisp error: (wrong-type-argument stringp (require . fit-frame))
  string-match("\\(\\`\\|/\\)cl-indent\\(\\.elc\\|\\.el\\)?\\(\\.gz\\)?\\'"
               (require . fit-frame))
  load-history-filename-element("\\(\\`\\|/\\)cl-indent\\(\\.elc\\|\\.el\\)?\\(\\.gz\\)?\\'")
  lisp-indentation-hack()
  run-hooks(change-major-mode-after-body-hook prog-mode-hook emacs-lisp-mode-hook)
  ...

I have never seen this happen before.  But I just checked the definition
of `load-history-filename-element' in Emacs 23, and it has not changed.

In GNU Emacs 25.0.50.1 (i686-pc-mingw32)
 of 2014-10-20 on LEG570
Bzr revision: 118168 [email-masked]
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --enable-checking=yes,glyphs CPPFLAGS=-DGLYPH_DEBUG=1'