From 6fc3d6bdd6e7881b9a0b6afbd232e2ad46fbdb0e Mon Sep 17 00:00:00 2001 From: Robby Zambito Date: Sun, 12 Feb 2023 23:50:30 -0500 Subject: Fix error where false values may act like a key was missing. Tried to be too clever. Was not clever. --- lib/zambyte/meta/180.scm | 7 ++++--- lib/zambyte/meta/chibi.scm | 7 ++++--- lib/zambyte/meta/gauche.scm | 6 ++++-- lib/zambyte/meta/gerbil.scm | 4 ++-- lib/zambyte/meta/macduffie.scm | 4 ++-- lib/zambyte/meta/sagittarius.scm | 7 ++++--- 6 files changed, 20 insertions(+), 15 deletions(-) (limited to 'lib/zambyte/meta') diff --git a/lib/zambyte/meta/180.scm b/lib/zambyte/meta/180.scm index 71ee1a8..de9e2dd 100644 --- a/lib/zambyte/meta/180.scm +++ b/lib/zambyte/meta/180.scm @@ -29,9 +29,10 @@ (get-output-string port)))) (define (json-object-ref json key) - (or (and-let* ((pair (assoc (string->symbol key) json))) - (cdr pair)) - ((json-key-not-found)))) + (let ((pair (assoc (string->symbol key) json))) + (if pair + (cdr pair) + ((json-key-not-found))))) (define json-list-ref vector-ref) (define json-list-length vector-length) diff --git a/lib/zambyte/meta/chibi.scm b/lib/zambyte/meta/chibi.scm index fc8e942..286240d 100644 --- a/lib/zambyte/meta/chibi.scm +++ b/lib/zambyte/meta/chibi.scm @@ -23,9 +23,10 @@ ;; string->json already defined in chibi json (define (json-object-ref json key) - (or (and-let* ((pair (assoc (string->symbol key) json))) - (cdr pair)) - ((json-key-not-found)))) + (let ((pair (assoc (string->symbol key) json))) + (if pair + (cdr pair) + ((json-key-not-found))))) (define json-list-ref vector-ref) (define json-list-length vector-length) diff --git a/lib/zambyte/meta/gauche.scm b/lib/zambyte/meta/gauche.scm index 3ab2062..34a755a 100644 --- a/lib/zambyte/meta/gauche.scm +++ b/lib/zambyte/meta/gauche.scm @@ -31,8 +31,10 @@ (define json->string construct-json-string) (define (json-object-ref json key) - (or (assoc-ref json key) - ((json-key-not-found)))) + (let ((pair (assoc (string->symbol key) json))) + (if pair + (cdr pair) + ((json-key-not-found))))) (define json-list-ref vector-ref) (define json-list-length vector-length) diff --git a/lib/zambyte/meta/gerbil.scm b/lib/zambyte/meta/gerbil.scm index 8d545ef..173ef71 100644 --- a/lib/zambyte/meta/gerbil.scm +++ b/lib/zambyte/meta/gerbil.scm @@ -19,8 +19,8 @@ (define json->string json-object->string) (define (json-object-ref json key) - (or (and (json-object-contains-key? json key) - (hash-table-ref json key)) + (if (json-object-contains-key? json key) + (hash-table-ref json key) ((json-key-not-found)))) (define json-list-ref list-ref) diff --git a/lib/zambyte/meta/macduffie.scm b/lib/zambyte/meta/macduffie.scm index 8a42183..288192b 100644 --- a/lib/zambyte/meta/macduffie.scm +++ b/lib/zambyte/meta/macduffie.scm @@ -15,8 +15,8 @@ (define json->string json-write-string) (define (json-object-ref json key) - (or (and (hash-table-exists? json key) - (hash-table-ref json key)) + (if (hash-table-exists? json key) + (hash-table-ref json key) ((json-key-not-found)))) (define json-list-ref list-ref) diff --git a/lib/zambyte/meta/sagittarius.scm b/lib/zambyte/meta/sagittarius.scm index 97deb0b..e8d82ae 100644 --- a/lib/zambyte/meta/sagittarius.scm +++ b/lib/zambyte/meta/sagittarius.scm @@ -42,9 +42,10 @@ (get-output-string port)))) (define (json-object-ref json key) - (or (and-let* ((pair (assoc key (json-object->alist json)))) - (cdr pair)) - ((json-key-not-found)))) + (let ((pair (assoc key (json-object->alist json)))) + (if pair + (cdr pair) + ((json-key-not-found))))) (define (json-list-ref json index) (list-ref (json-list->list json) index)) -- cgit