From d64fb74b9ebfc981dbeb89e895325943abb2cfeb Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Fri, 29 Mar 2019 23:36:33 +0800 Subject: [PATCH] [utilities] add supporting functions for guile-json use converts nested-list to nested-vector, and vice-versa --- libgnucash/scm/utilities.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libgnucash/scm/utilities.scm b/libgnucash/scm/utilities.scm index 8035c8a47a..93565600e3 100644 --- a/libgnucash/scm/utilities.scm +++ b/libgnucash/scm/utilities.scm @@ -84,6 +84,19 @@ ((addto! alist element) (set! alist (cons element alist))))) +;; pair of utility functions for use with guile-json which requires +;; lists converted vectors to save as json arrays. traverse list +;; converting into vectors, and vice versa. +(define-public (traverse-list->vec lst) + (cond + ((list? lst) (list->vector (map traverse-list->vec lst))) + (else lst))) + +(define-public (traverse-vec->list vec) + (cond + ((vector? vec) (map traverse-vec->list (vector->list vec))) + (else vec))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; gnc:substring-replace ;;