summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ledger-post.el32
-rw-r--r--lisp/ledger-regex.el4
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]*\\)?$"))