aboutsummaryrefslogtreecommitdiffstats
path: root/src/xfdf.lisp
diff options
context:
space:
mode:
authorTeddy Wing2023-04-16 20:30:36 +0200
committerTeddy Wing2023-04-16 20:46:59 +0200
commitf40ea60f4d767c2ce84a41ca6989750534dee3f7 (patch)
tree2609cfa15fcabc0317d3ada8d8f3b98d1fd8483a /src/xfdf.lisp
parent0fdcbf0a159c9ee4df69bad2c617de01dcb0fd3c (diff)
downloadxfdf-f40ea60f4d767c2ce84a41ca6989750534dee3f7.tar.bz2
Output XFDF fields into XML
Write `<field>` elements to the XFDF XML based on the cons cells in the `fields` input list. Change true and nil values to the FDF/XFDF checkbox value format of "Yes" and "Off". Also decided to use lowercase `t` to match the case of `nil`. Not sure if that makes sense.
Diffstat (limited to 'src/xfdf.lisp')
-rw-r--r--src/xfdf.lisp21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/xfdf.lisp b/src/xfdf.lisp
index a61fcdd..fd8c8b7 100644
--- a/src/xfdf.lisp
+++ b/src/xfdf.lisp
@@ -7,18 +7,17 @@
<fields>
")
- ;; TODO
- ; (loop do)
- (format output-stream " <field name=\"checkbox-on\">
- <value>Yes</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>
- <field name=\"checkbox-off\">
- <value>Off</value>
- </field>
- <field name=\"text\">
- <value>123 Fake Street, Springfield</value>
- </field>
-")
+"
+name
+value)))
(format output-stream " </fields>
</xfdf>")