Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- modified gnucash/report/report-system/report-utilities.scm
- @@ -506,28 +506,26 @@ flawed. see report-utilities.scm. please update reports.")
- (() (reverse result))
- ((date . rest)
- - (match splits
- -
- - ;; end of splits, but still has dates. pad with last-result
- - ;; until end of dates.
- - (() (lp '() rest (cons last-result result) last-result))
- -
- - ((head . tail)
- - (let ((next (and (pair? tail) (car tail))))
- - (cond
- -
- - ;; the next split is still before date.
- - ((and next (< (split->date next) date))
- - (lp tail dates result (split->elt head)))
- -
- - ;; head split after date, accumulate previous result
- - ((< date (split->date head))
- - (lp splits rest (cons last-result result) last-result))
- -
- - ;; head split before date, next split after date, or end.
- - (else
- - (let ((head-result (split->elt head)))
- - (lp tail rest (cons head-result result) head-result)))))))))))
- + (let ((before-date? (lambda (s) (< (split->date s) date)))
- + (after-date? (lambda (s) (< date (split->date s)))))
- + (match splits
- +
- + ;; end of splits, but still has dates. pad with last-result
- + ;; until end of dates.
- + (() (lp '() rest (cons last-result result) last-result))
- +
- + ;; the next split is still before date. walk to split.
- + ((head (? before-date?) . _)
- + (lp (cdr splits) dates result (split->elt head)))
- +
- + ;; head split after date, accumulate previous result
- + (((? after-date?) . _)
- + (lp splits rest (cons last-result result) last-result))
- +
- + ;; head split before date, next split after date, or end.
- + ((head . tail)
- + (let ((head-result (split->elt head)))
- + (lp tail rest (cons head-result result) head-result)))))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement