diff options
Diffstat (limited to 'src')
-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") |