aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2023-04-21 01:54:22 +0200
committerTeddy Wing2023-04-21 01:54:22 +0200
commit3b2675c306686b7b132629ce1a6bc7c3bf0923cd (patch)
tree87c5a49a429b92e582693b2134170ad34fb0272f
parentc318ae56561019484190de8b31dabc1c2f89bb74 (diff)
downloadxfdf-3b2675c306686b7b132629ce1a6bc7c3bf0923cd.tar.bz2
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.
-rw-r--r--scratch.lisp2
-rw-r--r--src/xfdf.lisp25
2 files changed, 17 insertions, 10 deletions
diff --git a/scratch.lisp b/scratch.lisp
index 7723a80..48d8dc2 100644
--- a/scratch.lisp
+++ b/scratch.lisp
@@ -1,3 +1,5 @@
(ql:quickload "xfdf-test")
(1am:run)
(consp '(1 2 3 4))
+
+(xfdf::field-xfdf* "name" '(("value" . "1") ("v2" . "2")) 0)
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 " </fields>
</xfdf>")
@@ -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~:*~}<field name=\"~A\"
+~v{~A~:*~}<field name=\"~A\">
~v{~A~:*~} <value>~A</value>
~v{~A~:*~}</field>
"