From 3b2675c306686b7b132629ce1a6bc7c3bf0923cd Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 21 Apr 2023 01:54:22 +0200 Subject: xfdf.lisp: Print innermost fields of nested fields Making progress printing nested form fields. Now we print the innermost fields, but aren't printing the container fields. --- src/xfdf.lisp | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/xfdf.lisp b/src/xfdf.lisp index db36c80..3aa88d0 100644 --- a/src/xfdf.lisp +++ b/src/xfdf.lisp @@ -23,7 +23,7 @@ list." (loop for (name . value) in fields do - (field-xfdf name value)) + (format output-stream "~A" (field-xfdf name value))) (format output-stream " ") @@ -37,23 +37,28 @@ list." "" (let ((indent (+ 2 nesting-level))) ;; TODO: Add checkbox default values. + (format t "debug1: n'~A' : v'~A' : n'~A'~%" name value nesting-level) (if (listp value) ;; TODO: We need to do something with value - (dolist (field value) - (let ((subname (if (listp field) - (first field) - field)) - (subfield (if (listp field) - (rest field) - field))) - (field-xfdf* subname subfield (1+ nesting-level)))) + ;; TODO: How to concat results from dolist? + (format nil "~{~A~}" + (loop for field in value + collect + (let ((subname (if (listp field) + (first field) + field)) + (subfield (if (listp field) + (rest field) + field))) + (field-xfdf* subname subfield (1+ nesting-level))))) ;; TODO: Put checkbox stuff here. (let ((value (cond ((eq value t) "Yes") ((eq value nil) "Off") (t value)))) + (format t "debug2: n'~A' : v'~A' : n'~A'~%" name value nesting-level) (format nil "~ -~v{~A~:*~} ~v{~A~:*~} ~A ~v{~A~:*~} " -- cgit v1.2.3