;;; align.el --- align text to a specific column, by regexp -*- lexical-binding:t -*-
-;; Copyright (C) 1999-2014 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
;; Maintainer: emacs-devel@gnu.org
(let ((sec-first end)
(sec-last beg))
(align-region beg end
- (or exclude-rules
- align-mode-exclude-rules-list
- align-exclude-rules-list) nil
separator
- (function
- (lambda (b e mode)
- (when (and mode (listp mode))
- (setq sec-first (min sec-first b)
- sec-last (max sec-last e))))))
+ nil ; rules
+ (or exclude-rules
+ align-mode-exclude-rules-list
+ align-exclude-rules-list)
+ (lambda (b e mode)
+ (when (consp mode)
+ (setq sec-first (min sec-first b)
+ sec-last (max sec-last e)))))
(if (< sec-first sec-last)
(align-region sec-first sec-last 'entire
(or rules align-mode-rules-list align-rules-list)
;;;###autoload
(defun align-newline-and-indent ()
- "A replacement function for `newline-and-indent', aligning as it goes."
+ "A replacement function for `newline-and-indent', aligning as it goes.
+The alignment is done by calling `align' on the region that was
+indented."
(interactive)
(let ((separate (or (if (and (symbolp align-region-separate)
(boundp align-region-separate))
(if real-beg
(goto-char beg)
(if (or (not thissep) (eq thissep 'entire))
- (error "Cannot determine alignment region for '%s'"
+ (error "Cannot determine alignment region for `%s'"
(symbol-name (cdr (assq 'title rule)))))
(beginning-of-line)
(while (and (not (eobp))
(message
"Aligning `%s' (rule %d of %d) %d%%..."
(symbol-name symbol) rule-index rule-count
- (/ (* (- (point) real-beg) 100)
- (- end-mark real-beg)))
+ (floor (* (- (point) real-beg) 100.0)
+ (- end-mark real-beg)))
(message
"Aligning %d%%..."
- (/ (* (- (point) real-beg) 100)
- (- end-mark real-beg))))))
+ (floor (* (- (point) real-beg) 100.0)
+ (- end-mark real-beg))))))
;; if the search ended us on the beginning of
;; the next line, move back to the end of the