[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master ba8944b: Fix optional parameter passing in calc-fin
From: |
Lars Ingebrigtsen |
Subject: |
[Emacs-diffs] master ba8944b: Fix optional parameter passing in calc-fin-* functions |
Date: |
Sat, 19 Oct 2019 05:46:27 -0400 (EDT) |
branch: master
commit ba8944bba8aaa58d60af955a8ea676a5260af346
Author: Raimon Grau <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>
Fix optional parameter passing in calc-fin-* functions
* lisp/calc/calc-fin.el (calc-fin-pv, calc-fin-fv, calc-fin-pmt)
(calc-fin-pner, calc-fin-rate): Add support for an optional
parameter standing for an initial lump. The functions already
support it but the extra parameter was not taken into account in
stack mode. This commit it takes into consideration when deciding
if a function takes 3 or 4 parameters (bug#37649).
---
lisp/calc/calc-fin.el | 53 +++++++++++++++++++++++++++++----------------------
1 file changed, 30 insertions(+), 23 deletions(-)
diff --git a/lisp/calc/calc-fin.el b/lisp/calc/calc-fin.el
index 813da28..4302cbc 100644
--- a/lisp/calc/calc-fin.el
+++ b/lisp/calc/calc-fin.el
@@ -35,9 +35,10 @@
(calc-slow-wrapper
(if (calc-is-hyperbolic)
(calc-enter-result 3 "pvl" (cons 'calcFunc-pvl (calc-top-list-n 3)))
- (if (calc-is-inverse)
- (calc-enter-result 3 "pvb" (cons 'calcFunc-pvb (calc-top-list-n 3)))
- (calc-enter-result 3 "pv" (cons 'calcFunc-pv (calc-top-list-n 3)))))))
+ (let ((n (if (calc-is-option) 4 3)))
+ (if (calc-is-inverse)
+ (calc-enter-result n "pvb" (cons 'calcFunc-pvb (calc-top-list-n n)))
+ (calc-enter-result n "pv" (cons 'calcFunc-pv (calc-top-list-n n))))))))
(defun calc-fin-npv (arg)
(interactive "p")
@@ -51,42 +52,48 @@
(calc-slow-wrapper
(if (calc-is-hyperbolic)
(calc-enter-result 3 "fvl" (cons 'calcFunc-fvl (calc-top-list-n 3)))
- (if (calc-is-inverse)
- (calc-enter-result 3 "fvb" (cons 'calcFunc-fvb (calc-top-list-n 3)))
- (calc-enter-result 3 "fv" (cons 'calcFunc-fv (calc-top-list-n 3)))))))
+ (let ((n (if (calc-is-option) 4 3)))
+ (if (calc-is-inverse)
+ (calc-enter-result n "fvb" (cons 'calcFunc-fvb (calc-top-list-n n)))
+ (calc-enter-result n "fv" (cons 'calcFunc-fv (calc-top-list-n
n))))))))
(defun calc-fin-pmt ()
(interactive)
(calc-slow-wrapper
(if (calc-is-hyperbolic)
(calc-enter-result 3 "fvl" (cons 'calcFunc-fvl (calc-top-list-n 3)))
- (if (calc-is-inverse)
- (calc-enter-result 3 "pmtb" (cons 'calcFunc-pmtb (calc-top-list-n 3)))
- (calc-enter-result 3 "pmt" (cons 'calcFunc-pmt (calc-top-list-n 3)))))))
+ (let ((n (if (calc-is-option) 4 3)))
+ (if (calc-is-inverse)
+ (calc-enter-result n "pmtb" (cons 'calcFunc-pmtb
(calc-top-list-n n)))
+ (calc-enter-result n "pmt" (cons 'calcFunc-pmt (calc-top-list-n
n))))))))
(defun calc-fin-nper ()
(interactive)
(calc-slow-wrapper
(if (calc-is-hyperbolic)
(calc-enter-result 3 "nprl" (cons 'calcFunc-nperl (calc-top-list-n 3)))
- (if (calc-is-inverse)
- (calc-enter-result 3 "nprb" (cons 'calcFunc-nperb
- (calc-top-list-n 3)))
- (calc-enter-result 3 "nper" (cons 'calcFunc-nper
- (calc-top-list-n 3)))))))
+ (let ((n (if (calc-is-option) 4 3)))
+ (if (calc-is-inverse)
+ (calc-enter-result n "nprb" (cons 'calcFunc-nperb
+ (calc-top-list-n n)))
+ (calc-enter-result n "nper" (cons 'calcFunc-nper
+ (calc-top-list-n n))))))))
(defun calc-fin-rate ()
(interactive)
(calc-slow-wrapper
- (calc-pop-push-record 3
- (if (calc-is-hyperbolic) "ratl"
- (if (calc-is-inverse) "ratb" "rate"))
- (calc-to-percentage
- (calc-normalize
- (cons (if (calc-is-hyperbolic) 'calcFunc-ratel
- (if (calc-is-hyperbolic) 'calcFunc-rateb
- 'calcFunc-rate))
- (calc-top-list-n 3)))))))
+ (let ((n (if (and (not (calc-is-hyperbolic))
+ (calc-is-option))
+ 4 3)))
+ (calc-pop-push-record n
+ (if (calc-is-hyperbolic) "ratl"
+ (if (calc-is-inverse) "ratb" "rate"))
+ (calc-to-percentage
+ (calc-normalize
+ (cons (if (calc-is-hyperbolic) 'calcFunc-ratel
+ (if (calc-is-hyperbolic) 'calcFunc-rateb
+ 'calcFunc-rate))
+ (calc-top-list-n n))))))))
(defun calc-fin-irr (arg)
(interactive "P")
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master ba8944b: Fix optional parameter passing in calc-fin-* functions,
Lars Ingebrigtsen <=