Subject: bug#15543: 24.3; Common Lisp simple loop differentiation

From: [email-masked]
Date: Sat, 27 May 2017 16:11:25 -0400

tags 15543 fixed
close 15543 26.1
quit

Svante Carl v. Erichsen <[email-masked]> writes:

> When common-lisp-indent-function is active, the indentation of loop
> forms is not correct when keywords are used as loop keyword
> designators (e.g. ":for" instead of "for").  This is caused by
> extended-loop-p not recognizing a \: as starting an extended loop
> keyword.  Extended loops thus get incorrectly treated as simple loops
> in this case.
>
> Common-lisp-loop-part-indentation (which is the next toplevel form in
> cl-indent.el) treats \: correctly.
>
> A simple patch could be like this:
> --------------------------------------------------
> --- /usr/share/emacs/24.3/lisp/emacs-lisp/cl-indent.el	2013-01-01 21:37:17.000000000 +0100
> +++ cl-indent.el	2013-10-06 20:18:15.591013753 +0200
> @@ -151,7 +151,7 @@
>  	(forward-char 1)
>  	(forward-sexp 2)
>  	(backward-sexp 1)
> -	(looking-at "\\sw"))
> +	(looking-at "\\(:\\|\\sw\\)"))
>      (error t)))

Thanks, pushed to master [1: 527a7cc942].

[1: 527a7cc942]: 2017-05-27 16:08:35 -0400
  Fix cl-indent for `loop' with :keywords (Bug#15543)
  http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=527a7cc9425370f7217a4d2b6914b96dff6f5ec1