diff options
author | Teddy Wing | 2023-04-21 00:58:24 +0200 |
---|---|---|
committer | Teddy Wing | 2023-04-21 00:58:24 +0200 |
commit | c318ae56561019484190de8b31dabc1c2f89bb74 (patch) | |
tree | e2fa6bb1b9fd3e69d420e1b8cde8fe4989d19f04 /src/xfdf.lisp | |
parent | 2dd22dd3e49e29eedc9e5794cdfc0f851a9db6be (diff) | |
download | xfdf-c318ae56561019484190de8b31dabc1c2f89bb74.tar.bz2 |
xfdf.lisp: Try to recurse over nested fields (WIP)
This isn't working yet. I'm working out how to set up the recursion to
print fields hierarchically.
Diffstat (limited to 'src/xfdf.lisp')
-rw-r--r-- | src/xfdf.lisp | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/src/xfdf.lisp b/src/xfdf.lisp index 5ddd23a..db36c80 100644 --- a/src/xfdf.lisp +++ b/src/xfdf.lisp @@ -9,17 +9,21 @@ list." <fields> ") +; (loop for (name . value) in fields +; do +; (let ((value (cond ((eq value t) "Yes") +; ((eq value nil) "Off") +; (t value)))) +; (format output-stream " <field name=\"~A\"> +; <value>~A</value> +; </field> +; " +; name +; value))) + (loop for (name . value) in fields do - (let ((value (cond ((eq value t) "Yes") - ((eq value nil) "Off") - (t value)))) - (format output-stream " <field name=\"~A\"> - <value>~A</value> - </field> -" -name -value))) + (field-xfdf name value)) (format output-stream " </fields> </xfdf>") @@ -34,17 +38,31 @@ value))) (let ((indent (+ 2 nesting-level))) ;; TODO: Add checkbox default values. (if (listp value) - (field-xfdf* name value (1+ nesting-level)) + ;; 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: Put checkbox stuff here. - (format nil "~ + (let ((value (cond ((eq value t) "Yes") + ((eq value nil) "Off") + (t value)))) + (format nil "~ ~v{~A~:*~}<field name=\"~A\" ~v{~A~:*~} <value>~A</value> ~v{~A~:*~}</field> " indent +'(" ") name indent +'(" ") value -indent)))) +indent +'(" ")))))) ;; * (format t "~v{~A~:*~}<>~A" 5 '("Hello") "Next") |