summaryrefslogtreecommitdiff
path: root/lisp/ldg-commodities.el
diff options
context:
space:
mode:
authorCraig Earls <enderw88@gmail.com>2013-03-04 09:36:34 -0700
committerCraig Earls <enderw88@gmail.com>2013-03-04 09:36:34 -0700
commitefce6c89362abed1276cd060cec8077777a038e4 (patch)
tree79096adb2a9323e154172c23ae12892b9afe4318 /lisp/ldg-commodities.el
parent4810da9398809fc090c7f044d3545050a465d2bb (diff)
downloadfork-ledger-efce6c89362abed1276cd060cec8077777a038e4.tar.gz
fork-ledger-efce6c89362abed1276cd060cec8077777a038e4.tar.bz2
fork-ledger-efce6c89362abed1276cd060cec8077777a038e4.zip
Add acct under point to reconcile prompt. Fix reconcile balance display of empty accounts
Diffstat (limited to 'lisp/ldg-commodities.el')
-rw-r--r--lisp/ldg-commodities.el46
1 files changed, 24 insertions, 22 deletions
diff --git a/lisp/ldg-commodities.el b/lisp/ldg-commodities.el
index a3cc8951..9291136f 100644
--- a/lisp/ldg-commodities.el
+++ b/lisp/ldg-commodities.el
@@ -33,28 +33,30 @@
(defun ledger-split-commodity-string (str)
"Split a commoditized amount into two parts"
- (let (val
- comm)
- (with-temp-buffer
- (insert str)
- (goto-char (point-min))
- (cond ((re-search-forward "-?[1-9][0-9]*[.,][0-9]*" nil t)
- ;; found a decimal number
- (setq val
- (string-to-number
- (ledger-commodity-string-number-decimalize
- (delete-and-extract-region (match-beginning 0) (match-end 0)) :from-user)))
- (goto-char (point-min))
- (re-search-forward "[^[:space:]]" nil t)
- (setq comm
- (delete-and-extract-region (match-beginning 0) (match-end 0)))
- (list val comm))
- ((re-search-forward "0" nil t)
- ;; couldn't find a decimal number, look for a single 0,
- ;; indicating account with zero balance
- (list 0 ledger-reconcile-default-commodity))
- (t
- (error "split-commodity-string: cannot parse commodity string: %S" str))))))
+ (if (> (length str) 0)
+ (let (val
+ comm)
+ (with-temp-buffer
+ (insert str)
+ (goto-char (point-min))
+ (cond ((re-search-forward "-?[1-9][0-9]*[.,][0-9]*" nil t)
+ ;; found a decimal number
+ (setq val
+ (string-to-number
+ (ledger-commodity-string-number-decimalize
+ (delete-and-extract-region (match-beginning 0) (match-end 0)) :from-user)))
+ (goto-char (point-min))
+ (re-search-forward "[^[:space:]]" nil t)
+ (setq comm
+ (delete-and-extract-region (match-beginning 0) (match-end 0)))
+ (list val comm))
+ ((re-search-forward "0" nil t)
+ ;; couldn't find a decimal number, look for a single 0,
+ ;; indicating account with zero balance
+ (list 0 ledger-reconcile-default-commodity))
+ (t
+ (error "split-commodity-string: cannot parse commodity string: %S" str)))))
+ (list 0 ledger-reconcile-default-commodity)))
(defun ledger-string-balance-to-commoditized-amount (str)