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(a)cantab.net>
+
+ * slime.el (slime-search-suppressed-forms): handle multiple
+ conditionals on the same line.
+
2007-02-26 Nikodemus Siivola <nikodemus(a)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)