Hi,
I attach a patch which (I think) cures the fontification of (defun foo (x) #+nil #+nil (frob x) (bar x) (1+ x)) in Emacs 21. Without this patch, I think only the second #+nil and (frob x) get commented out; with it, both #+nils and the two succeeding forms do.
My point moving code sucks somewhat; if someone wants to tell me the right way to do (forward-sexp)/(backward-sexp), please do...
Thanks,
Christophe
Index: ChangeLog =================================================================== RCS file: /project/slime/cvsroot/slime/ChangeLog,v retrieving revision 1.1076 diff -u -r1.1076 ChangeLog --- ChangeLog 26 Feb 2007 09:56:06 -0000 1.1076 +++ ChangeLog 8 Mar 2007 14:45:08 -0000 @@ -1,3 +1,8 @@ +2007-03-08 Christophe Rhodes csr21@cantab.net + + * slime.el (slime-search-suppressed-forms): handle multiple + conditionals on the same line. + 2007-02-26 Nikodemus Siivola nikodemus@random-state.net
* swank.lisp (inspect-for-emacs): Add support for inspecting Index: slime.el =================================================================== RCS file: /project/slime/cvsroot/slime/slime.el,v retrieving revision 1.766 diff -u -r1.766 slime.el --- slime.el 25 Feb 2007 15:59:34 -0000 1.766 +++ slime.el 8 Mar 2007 14:45:09 -0000 @@ -9744,7 +9744,7 @@ "Find reader conditionalized forms where the test is false." (when (and slime-highlight-suppressed-forms (slime-connected-p) - (re-search-forward "^\([^;\n]*[ \t(]\)?#[-+]" limit t)) + (re-search-forward "^\([^;\n]*?[ \t(]\)?#[-+]" limit t)) (ignore-errors (let* ((start (- (point) 2)) (char (char-before)) @@ -9754,7 +9754,8 @@ (if (or (and (eq char ?+) (not val)) (and (eq char ?-) val)) (progn - (forward-sexp) + (forward-sexp) (backward-sexp) + (slime-forward-sexp) (assert (<= (point) limit)) (let ((md (match-data))) (fill md nil)