summaryrefslogtreecommitdiff
path: root/lisp/ldg-commodities.el
diff options
context:
space:
mode:
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)