ledger-read-commodity-string now calls ledger-split-commodity-string

This commit is contained in:
Craig Earls 2013-04-01 20:48:00 -07:00
parent 78bedf7c8e
commit eed1d8e53e

View file

@ -127,25 +127,15 @@ longer ones are after the value."
(concat commodity " " val)))) (concat commodity " " val))))
(defun ledger-read-commodity-string (prompt) (defun ledger-read-commodity-string (prompt)
"Return a commoditizd value (val 'comm') from COMM. (let ((str (read-from-minibuffer
Assumes a space between the value and the commodity." (concat prompt " (" ledger-reconcile-default-commodity "): ")))
(let ((parts (split-string (read-from-minibuffer comm)
(concat prompt " (" ledger-reconcile-default-commodity "): "))))) (if (> (length str) 0)
(if parts (progn
(if (/= (length parts) 2) ;;assume a number was entered and (setq comm (ledger-split-commodity-string str))
;;use default commodity (if (cadr comm)
(list (string-to-number (car parts)) comm
ledger-reconcile-default-commodity) (list (car comm) ledger-reconcile-default-commodity))))))
(let ((valp1 (string-to-number (car parts)))
(valp2 (string-to-number (cadr parts))))
(cond ((and (= valp1 valp2) (= 0 valp1)) ;; means neither contained a valid number (both = 0)
(list 0 ""))
((and (/= 0 valp1) (= valp2 0))
(list valp1 (cadr parts)))
((and (/= 0 valp2) (= valp1 0))
(list valp2 (car parts)))
(t
(error "Cannot understand commodity"))))))))
(provide 'ldg-commodities) (provide 'ldg-commodities)