gnucash maint: Multiple changes pushed
Christopher Lam
clam at code.gnucash.org
Wed Feb 20 06:37:39 EST 2019
Updated via https://github.com/Gnucash/gnucash/commit/12d6ace9 (commit)
via https://github.com/Gnucash/gnucash/commit/c045e7c5 (commit)
via https://github.com/Gnucash/gnucash/commit/eab4eeca (commit)
via https://github.com/Gnucash/gnucash/commit/058ef288 (commit)
from https://github.com/Gnucash/gnucash/commit/e3160af4 (commit)
commit 12d6ace967647ecc6f13d637e6d312ab737beefc
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Tue Feb 12 18:01:37 2019 +0800
[commodity-utilities] first/second/third -> car/cadr/caddr
diff --git a/gnucash/report/report-system/commodity-utilities.scm b/gnucash/report/report-system/commodity-utilities.scm
index 1e938ebd9..ddc56546f 100644
--- a/gnucash/report/report-system/commodity-utilities.scm
+++ b/gnucash/report/report-system/commodity-utilities.scm
@@ -92,8 +92,8 @@ construct with gnc:make-gnc-monetary and gnc:monetary->string instead.")
;; Returns true if the given pricealist element is a non-zero price.
(define (gnc:price-is-not-zero? elem)
- (and (second elem)
- (not (zero? (second elem)))))
+ (and (cadr elem)
+ (not (zero? (cadr elem)))))
;; Create a list of all prices of 'price-commodity' measured in the currency
;; 'report-currency'. The prices are taken from all splits in
@@ -153,32 +153,32 @@ construct with gnc:make-gnc-monetary and gnc:monetary->string instead.")
;; Try EURO exchange if necessary
(if (and foreignlist
- (not (gnc-commodity-equiv (first foreignlist)
+ (not (gnc-commodity-equiv (car foreignlist)
report-currency)))
(let ((exchanged (gnc:exchange-by-euro-numeric
- (first foreignlist) (second foreignlist)
+ (car foreignlist) (cadr foreignlist)
report-currency transaction-date)))
(if exchanged
(set! foreignlist
(list report-currency
(gnc:gnc-monetary-amount exchanged)
- (third foreignlist))))))
+ (caddr foreignlist))))))
(list
transaction-date
(if foreignlist
- (if (not (gnc-commodity-equiv (first foreignlist)
+ (if (not (gnc-commodity-equiv (car foreignlist)
report-currency))
(begin
(warn "gnc:get-commodity-totalavg-prices: "
"Sorry, currency exchange not yet implemented:"
(gnc:monetary->string
(gnc:make-gnc-monetary
- (first foreignlist) (second foreignlist)))
+ (car foreignlist) (cadr foreignlist)))
" (buying "
(gnc:monetary->string
(gnc:make-gnc-monetary
- price-commodity (third foreignlist)))
+ price-commodity (caddr foreignlist)))
") =? "
(gnc:monetary->string
(gnc:make-gnc-monetary
@@ -186,11 +186,11 @@ construct with gnc:make-gnc-monetary and gnc:monetary->string instead.")
0)
(begin
(set! total-foreign (gnc-numeric-add total-foreign
- (third foreignlist)
+ (caddr foreignlist)
GNC-DENOM-AUTO
GNC-DENOM-LCD))
(set! total-domestic (gnc-numeric-add total-domestic
- (second foreignlist)
+ (cadr foreignlist)
GNC-DENOM-AUTO
GNC-DENOM-LCD))
(if (not (zero? total-foreign))
@@ -270,40 +270,40 @@ construct with gnc:make-gnc-monetary and gnc:monetary->string instead.")
value-amount share-amount))))
;; Try EURO exchange if necessary
- (if (not (gnc-commodity-equiv (first foreignlist)
+ (if (not (gnc-commodity-equiv (car foreignlist)
report-currency))
(let ((exchanged (gnc:exchange-by-euro-numeric
- (first foreignlist) (second foreignlist)
+ (car foreignlist) (cadr foreignlist)
report-currency transaction-date)))
(if exchanged
(set! foreignlist
(list report-currency
(gnc:gnc-monetary-amount exchanged)
- (third foreignlist))))))
+ (caddr foreignlist))))))
(list
transaction-date
- (if (not (gnc-commodity-equiv (first foreignlist)
+ (if (not (gnc-commodity-equiv (car foreignlist)
report-currency))
(begin
(warn "get-commodity-inst-prices: "
"Sorry, currency exchange not yet implemented:"
(gnc:monetary->string
(gnc:make-gnc-monetary
- (first foreignlist) (second foreignlist)))
+ (car foreignlist) (cadr foreignlist)))
" (buying "
(gnc:monetary->string
(gnc:make-gnc-monetary
- price-commodity (third foreignlist)))
+ price-commodity (caddr foreignlist)))
") =? "
(gnc:monetary->string
(gnc:make-gnc-monetary
report-currency 0)))
0)
- (if (not (zero? (third foreignlist)))
+ (if (not (zero? (caddr foreignlist)))
(gnc-numeric-div
- (second foreignlist)
- (third foreignlist)
+ (cadr foreignlist)
+ (caddr foreignlist)
GNC-DENOM-AUTO
(logior (GNC-DENOM-SIGFIGS 8) GNC-RND-ROUND)) 0)))))
;; Get all the interesting splits, sorted by date.
@@ -343,31 +343,31 @@ construct with gnc:make-gnc-monetary and gnc:monetary->string instead.")
(define (gnc:pricelist-price-find-nearest
pricelist date)
(let* ((later (find (lambda (p)
- (< date (first p)))
+ (< date (car p)))
pricelist))
(earlierlist (take-while
(lambda (p)
- (>= date (first p)))
+ (>= date (car p)))
pricelist))
(earlier (and (not (null? earlierlist))
(last earlierlist))))
;; (if earlier
;; (warn "earlier"
- ;; (qof-print-date (first earlier))
- ;; (gnc-numeric-to-double (second earlier))))
+ ;; (qof-print-date (car earlier))
+ ;; (gnc-numeric-to-double (cadr earlier))))
;; (if later
;; (warn "later"
- ;; (qof-print-date (first later))
- ;; (gnc-numeric-to-double (second later))))
+ ;; (qof-print-date (car later))
+ ;; (gnc-numeric-to-double (cadr later))))
(if (and earlier later)
- (if (< (abs (- date (first earlier)))
- (abs (- date (first later))))
- (second earlier)
- (second later))
+ (if (< (abs (- date (car earlier)))
+ (abs (- date (car later))))
+ (cadr earlier)
+ (cadr later))
(or
- (and earlier (second earlier))
- (and later (second later))))))
+ (and earlier (cadr earlier))
+ (and later (cadr later))))))
;; Find the price of the 'commodity' in the 'pricealist' that is
commit c045e7c5ecb10ab051332693ab6bb9ef5901a452
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Jan 9 08:55:47 2019 +0800
[commodity-utilities] simplify gnc:uniform-commodity?
old code was confusing; returns non-#f if either of following is true:
- elts is null list
- elts is 1-element list
and report-commodity is a member of this 1-element list
change to much more intelligible code
diff --git a/gnucash/report/report-system/commodity-utilities.scm b/gnucash/report/report-system/commodity-utilities.scm
index 5737bfdad..1e938ebd9 100644
--- a/gnucash/report/report-system/commodity-utilities.scm
+++ b/gnucash/report/report-system/commodity-utilities.scm
@@ -1032,9 +1032,7 @@ construct with gnc:make-gnc-monetary and gnc:monetary->string instead.")
(define (gnc:uniform-commodity? amt report-commodity)
;; function to see if the commodity-collector amt
;; contains any foreign commodities
- (let ((elts (amt 'format (lambda (comm amt) comm) #f)))
- (or (null? elts)
- (and (null? (cdr elts))
- (member report-commodity
- elts
- gnc-commodity-equiv)))))
+ (let ((list-of-commodities (amt 'format (lambda (comm amt) comm) #f)))
+ (or (null? list-of-commodities)
+ (and (null? (cdr list-of-commodities))
+ (gnc-commodity-equiv report-commodity (car list-of-commodities))))))
commit eab4eecac85836abff26b4d699f9fd6af1bc8f9b
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Jan 9 08:48:06 2019 +0800
[commodity-utilities] deprecate gnc-commodity-collector-commodity-count
this function is only used twice in exported functions. inline and
refactor to be simpler.
diff --git a/gnucash/report/report-system/commodity-utilities.scm b/gnucash/report/report-system/commodity-utilities.scm
index 2cf855140..5737bfdad 100644
--- a/gnucash/report/report-system/commodity-utilities.scm
+++ b/gnucash/report/report-system/commodity-utilities.scm
@@ -1018,6 +1018,8 @@ construct with gnc:make-gnc-monetary and gnc:monetary->string instead.")
balance)))
(define (gnc-commodity-collector-commodity-count collector)
+ (issue-deprecation-warning
+ "gnc-commodity-collector-commodity-count is deprecated. please inline.")
(length (collector 'format (lambda (comm amt) comm) #f)))
(define (gnc-commodity-collector-contains-commodity? collector commodity)
@@ -1030,9 +1032,9 @@ construct with gnc:make-gnc-monetary and gnc:monetary->string instead.")
(define (gnc:uniform-commodity? amt report-commodity)
;; function to see if the commodity-collector amt
;; contains any foreign commodities
- (let ((elts (gnc-commodity-collector-commodity-count amt)))
- (or (zero? elts)
- (and (= elts 1)
+ (let ((elts (amt 'format (lambda (comm amt) comm) #f)))
+ (or (null? elts)
+ (and (null? (cdr elts))
(member report-commodity
- (amt 'format (lambda (comm amt) comm) #f)
+ elts
gnc-commodity-equiv)))))
diff --git a/gnucash/report/report-system/report-utilities.scm b/gnucash/report/report-system/report-utilities.scm
index 355c42174..3bacd3a28 100644
--- a/gnucash/report/report-system/report-utilities.scm
+++ b/gnucash/report/report-system/report-utilities.scm
@@ -395,9 +395,10 @@ construct gnc:make-gnc-monetary and use gnc:monetary->string instead.")
;; usage: (gnc:monetaries-add monetary1 monetary2 ...)
;; output: a monetary object
(define (gnc:monetary+ . monetaries)
- (let ((coll (apply gnc:monetaries-add monetaries)))
- (if (= 1 (gnc-commodity-collector-commodity-count coll))
- (car (coll 'format gnc:make-gnc-monetary #f))
+ (let* ((coll (apply gnc:monetaries-add monetaries))
+ (list-of-monetaries (coll 'format gnc:make-gnc-monetary #f)))
+ (if (null? (cdr list-of-monetaries))
+ (car list-of-monetaries)
(throw "gnc:monetary+ expects 1 currency " (gnc:strify monetaries)))))
;; get the account balance at the specified date. if include-children?
commit 058ef28849400111a5e11a6496c12b27ca97ea3c
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Jan 9 08:42:20 2019 +0800
[commodity-utilities] deprecate gnc-commodity-collector-contains-commodity?
this function is only used once. inline it.
diff --git a/gnucash/report/report-system/commodity-utilities.scm b/gnucash/report/report-system/commodity-utilities.scm
index b8568b9df..2cf855140 100644
--- a/gnucash/report/report-system/commodity-utilities.scm
+++ b/gnucash/report/report-system/commodity-utilities.scm
@@ -1021,6 +1021,8 @@ construct with gnc:make-gnc-monetary and gnc:monetary->string instead.")
(length (collector 'format (lambda (comm amt) comm) #f)))
(define (gnc-commodity-collector-contains-commodity? collector commodity)
+ (issue-deprecation-warning
+ "gnc-commodity-collector-contains-commodity? is deprecated. please inline.")
(member commodity
(collector 'format (lambda (comm amt) comm) #f)
gnc-commodity-equiv))
@@ -1031,5 +1033,6 @@ construct with gnc:make-gnc-monetary and gnc:monetary->string instead.")
(let ((elts (gnc-commodity-collector-commodity-count amt)))
(or (zero? elts)
(and (= elts 1)
- (gnc-commodity-collector-contains-commodity?
- amt report-commodity)))))
+ (member report-commodity
+ (amt 'format (lambda (comm amt) comm) #f)
+ gnc-commodity-equiv)))))
diff --git a/gnucash/report/report-system/report-system.scm b/gnucash/report/report-system/report-system.scm
index e7cd393af..7045a9861 100644
--- a/gnucash/report/report-system/report-system.scm
+++ b/gnucash/report/report-system/report-system.scm
@@ -66,7 +66,7 @@
(export gnc:case-exchange-time-fn)
(export gnc:sum-collector-commodity)
(export gnc:sum-collector-stocks)
-(export gnc-commodity-collector-contains-commodity?)
+(export gnc-commodity-collector-contains-commodity?) ;deprecated
;; options-utilities.scm
Summary of changes:
.../report/report-system/commodity-utilities.scm | 75 +++++++++++-----------
gnucash/report/report-system/report-system.scm | 2 +-
gnucash/report/report-system/report-utilities.scm | 7 +-
3 files changed, 44 insertions(+), 40 deletions(-)
More information about the gnucash-changes
mailing list