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") | 
