diff options
-rw-r--r-- | src/xfdf.lisp | 32 | ||||
-rw-r--r-- | test/xfdf.lisp | 5 |
2 files changed, 26 insertions, 11 deletions
diff --git a/src/xfdf.lisp b/src/xfdf.lisp index 3aa88d0..2dfb493 100644 --- a/src/xfdf.lisp +++ b/src/xfdf.lisp @@ -38,19 +38,29 @@ 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) + (if (consp value) ;; TODO: We need to do something with value ;; 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))))) + (let ((inner-fields + (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)))))) + (format nil "~ +~v{~A~:*~}<field name=\"~A\"> +~{~A~}~v{~A~:*~}</field> +" +indent +'(" ") +name +inner-fields +indent +'(" "))) ;; TODO: Put checkbox stuff here. (let ((value (cond ((eq value t) "Yes") diff --git a/test/xfdf.lisp b/test/xfdf.lisp index 63416ea..9095076 100644 --- a/test/xfdf.lisp +++ b/test/xfdf.lisp @@ -63,6 +63,11 @@ <value>Simpson</value> </field> </field> + <field name=\"Page2[0]\"> + <field name=\"f2_02[0]\"> + <value>1234</value> + </field> + </field> </field> <field name=\"bottommostSubform[0]\"> <field name=\"Page1[0]\"> |