[climacs-cvs] CVS climacs

thenriksen thenriksen at common-lisp.net
Sun Apr 30 15:12:05 UTC 2006


Update of /project/climacs/cvsroot/climacs
In directory clnet:/tmp/cvs-serv3929

Modified Files:
	misc-commands.lisp base.lisp 
Log Message:
Fixed `indent-region': Update syntax for each indented line. Alsp
prevent infinite loops in `do-buffer-region-lines'.


--- /project/climacs/cvsroot/climacs/misc-commands.lisp	2006/04/23 12:11:26	1.6
+++ /project/climacs/cvsroot/climacs/misc-commands.lisp	2006/04/30 15:12:05	1.7
@@ -552,7 +552,12 @@
                           line
                           tab-space-count
                           syntax)))
-        (indent-line line indentation tab-width)))))
+        (indent-line line indentation tab-width))
+      ;; We need to update the syntax every time we perform an
+      ;; indentation, so that subsequent indentations will be
+      ;; correctly indented (this matters in list forms). FIXME: This
+      ;; should probably happen automatically.
+      (update-syntax buffer syntax))))
 
 (define-command (com-indent-region :name t :command-table indent-table) ()
   "Indent every line of the current region as specified by the
--- /project/climacs/cvsroot/climacs/base.lisp	2006/03/26 14:14:48	1.46
+++ /project/climacs/cvsroot/climacs/base.lisp	2006/04/30 15:12:05	1.47
@@ -50,12 +50,13 @@
   (let ((mark-sym (gensym))
         (mark2-sym (gensym)))
     `(progn
-       (when (mark< ,mark2 ,mark1)
-         (rotatef ,mark1 ,mark2))
-       (let ((,mark-sym (clone-mark ,mark1))
-             (,mark2-sym (clone-mark ,mark2)))
-         (loop while (mark<= ,mark-sym ,mark2-sym)
-            do
+       (let* ((,mark-sym (clone-mark ,mark1))
+              (,mark2-sym (clone-mark ,mark2)))
+         (when (mark< ,mark2-sym ,mark-sym)
+           (rotatef ,mark-sym ,mark2-sym))
+         (loop while (and (mark<= ,mark-sym ,mark2-sym)
+                          (not (end-of-buffer-p ,mark-sym)))
+            do              
             (let ((,line-var (clone-mark ,mark-sym)))
               , at body)
             (end-of-line ,mark-sym)




More information about the Climacs-cvs mailing list