diff options
-rw-r--r-- | lisp/ledger-post.el | 32 | ||||
-rw-r--r-- | lisp/ledger-regex.el | 4 |
2 files changed, 17 insertions, 19 deletions
diff --git a/lisp/ledger-post.el b/lisp/ledger-post.el index 09c31044..87e998cf 100644 --- a/lisp/ledger-post.el +++ b/lisp/ledger-post.el @@ -109,37 +109,35 @@ region align the posting on the current line." (not (use-region-p))) (set-mark (point))) - (let* ((inhibit-modification-hooks t) + (let ((inhibit-modification-hooks t) (mark-first (< (mark) (point))) - (begin-region (if beg - beg - (if mark-first (mark) (point)))) - (end-region (if end - end - (if mark-first (point) (mark)))) acct-start-column acct-end-column acct-adjust amt-width amt-adjust (lines-left 1)) + + (unless beg (setq beg (if mark-first (mark) (point)))) + (unless end (setq end (if mark-first (mark) (point)))) ;; Condition point and mark to the beginning and end of lines - (goto-char end-region) - (setq end-region (line-end-position)) - (goto-char begin-region) + (goto-char end) + (setq end (line-end-position)) + (goto-char beg) (goto-char - (setq begin-region + (setq beg (line-beginning-position))) - (untabify begin-region end-region) + (untabify beg end) - (goto-char end-region) - (setq end-region (line-end-position)) - (goto-char begin-region) + ;; if untabify actually changed anything, then our begin and end are not correct. + (goto-char end) + (setq end (line-end-position)) + (goto-char beg) (goto-char - (setq begin-region + (setq beg (line-beginning-position))) ;; This is the guts of the alignment loop (while (and (or (setq acct-start-column (ledger-next-account (line-end-position))) lines-left) - (< (point) end-region)) + (< (point) end)) (when acct-start-column (setq acct-end-column (save-excursion (goto-char (match-end 2)) diff --git a/lisp/ledger-regex.el b/lisp/ledger-regex.el index aa76dd67..e80289f0 100644 --- a/lisp/ledger-regex.el +++ b/lisp/ledger-regex.el @@ -26,9 +26,9 @@ (defconst ledger-amount-regex (concat "\\( \\|\t\\| \t\\)[ \t]*-?" - "\\([A-Z$€£_]+ *\\)?" + "\\([A-Z$€£_(]+ *\\)?" "\\(-?[0-9,\\.]+?\\)" - "\\(.[0-9]+\\)?" + "\\(.[0-9)]+\\)?" "\\( *[[:word:]€£_\"]+\\)?" "\\([ \t]*[@={]@?[^\n;]+?\\)?" "\\([ \t]+;.+?\\|[ \t]*\\)?$")) |