Subject: bug#21090: 25.0.50; `condition-case-no-debug': Please fix indentation & highlighting

From: Drew Adams <[email-masked]>
Date: Mon, 20 Jul 2015 08:01:13 -0700 (PDT)

> do you have a recipe to reproduce this..., starting from "emacs -Q"?

Dunno whether you want to consider this a bug, as it involves
`common-lisp-indent-function'.  Perhaps you will consider it a
feature.

Anyway, the behavior changed to the current behavior in Emacs 24.1.
Before that, there was no such problem with indentation.

1. emacs -Q

2. Put this in a file foo.el, then kill the foo.el buffer or restart Emacs:

----------------8<-----------------
(defun foo ()
  ""
  (interactive)
  (condition-case-no-debug foo
      (save-excursion (goto-char 44))
    (error (error "%s" (error-message-string foo)))))
----------------8<-----------------

3. Evaluate this, then visit file foo.el.

(defun lisp-indentation-hack ()
  (unless (load-history-filename-element (load-history-regexp "cl-indent"))
    (load "cl-indent" nil t))
  (set (make-local-variable 'lisp-indent-function)
       'common-lisp-indent-function))

(add-hook 'emacs-lisp-mode-hook 'lisp-indentation-hack)

4. Put point at beginning of the `(defun....)' in foo.el, and hit `C-M-q'.

Result:

(defun foo ()
  ""
  (interactive)
  (condition-case-no-debug foo
                           (save-excursion (goto-char 44))
                           (error (error "%s" (error-message-string foo)))))

Prior to Emacs 24.1, there is no change in indentation.  Starting with
24.1, the `save-excursion' and `error' sexps are aligned with `foo'.