Catch value expression in amount alignment code

This commit is contained in:
Craig Earls 2014-09-10 21:38:21 -07:00
parent ec457f0ad7
commit 03bace82bd
2 changed files with 17 additions and 19 deletions

View file

@ -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))

View file

@ -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]*\\)?$"))