]> code.delx.au - gnu-emacs/blobdiff - lisp/align.el
* appt.el: Restore significant whitespace deleted by "spelling fix".
[gnu-emacs] / lisp / align.el
index 8767b6ff306855bddb9aa3fe9bab7d46e282c294..0d9f351b9dac5fc81b1e6606318da36aafb0468d 100644 (file)
@@ -1246,6 +1246,11 @@ have been aligned.  No changes will be made to the buffer."
                                         (car props) (cdr props)))))))))))
        (setq areas (cdr areas))))))
 
+(defmacro align--set-marker (marker-var pos &optional type)
+  `(if ,marker-var
+       (move-marker ,marker-var ,pos)
+     (setq ,marker-var (copy-marker ,pos ,type))))
+
 (defun align-region (beg end separate rules exclude-rules
                         &optional func)
   "Align a region based on a given set of alignment rules.
@@ -1370,8 +1375,8 @@ aligner would have dealt with are."
                  (if (not here)
                      (goto-char end))
                  (forward-line)
-                 (setq end (point)
-                       end-mark (copy-marker end t))
+                 (setq end (point))
+                  (align--set-marker end-mark end t)
                  (goto-char beg)))
 
              ;; If we have a region to align, and `func' is set and
@@ -1467,10 +1472,9 @@ aligner would have dealt with are."
                        ;; test whether we have found a match on the same
                        ;; line as a previous match
                        (if (> (point) eol)
-                           (setq same nil
-                                 eol (save-excursion
-                                       (end-of-line)
-                                       (point-marker))))
+                           (progn
+                              (setq same nil)
+                              (align--set-marker eol (line-end-position))))
 
                        ;; lookup the `repeat' attribute the first time
                        (or repeat-c
@@ -1504,10 +1508,9 @@ aligner would have dealt with are."
                              (progn
                                (align-regions regions align-props
                                               rule func)
-                               (setq last-point (copy-marker b t)
-                                     regions nil
-                                     align-props nil))
-                           (setq last-point (copy-marker b t)))
+                               (setq regions nil)
+                                (setq align-props nil)))
+                          (align--set-marker last-point b t)
 
                          ;; restore the match data
                          (set-match-data save-match-data)