Lynn Quam quam@ai.sri.com writes:
Thanks for the info. Yes, indeed the file date for cl-indent.el /usr/share/emacs/21.2/lisp/emacs-lisp is Aug 15 2001. That explains why I haven't seen the change. I find it curious that Emacs 21.2 in the RedHat 9 distribution that I am running does not contain the March 2002 Gerd Moellman version of cl-indent.el.
CVS Emacs and the Emacs 21.X series are different branches. I think only bug fixes are backported. New features only appear in the CVS version.
;;; old cl-indent (loop with (lines package-decl property-list) for line-num from 1 for line = (read-line in-stream nil nil) while line when (search "(in-package" line :test #'char-equal) do (setq package-decl (read-from-string line) package-decl-line line-num *package* (eval package-decl)) else when (search "(FILE-PROPERTY-LIST" line :test #'char-equal) do (file-position in-stream file-pos) (setq property-list (read in-stream)) else collect line into lines
when (and (>= (length line) 2) (string-equal line "|#" :end1 2))
do (setq comment-lines lines) finally (return (values lines package-decl property-list)))
Hmm.. are you sure the indentation here wasn't manually tuned or written with some other indentation package?
With Emacs 21.3 (non-CVS version) I get the same "bad" indentation as with the CVS version and my custom settings.
I also don't see any code in the 21.3 cl-indent that would be able to recognize "else" clauses and the like. If your version can actually do that, please post it.
[It should also be noted that a suboptimal LOOP indentation function is actually a feature because it stops people from writing monster loops as the one above.]
Helmut.