diff options
author | Teddy Wing | 2023-04-20 19:11:11 +0200 |
---|---|---|
committer | Teddy Wing | 2023-04-20 19:11:11 +0200 |
commit | 2dd22dd3e49e29eedc9e5794cdfc0f851a9db6be (patch) | |
tree | 3384a86fef91885f78d0a6c1f08905966d3099bc /src/xfdf.lisp | |
parent | 8ac9d4176e8f82285427f698b824fb69df601df8 (diff) | |
download | xfdf-2dd22dd3e49e29eedc9e5794cdfc0f851a9db6be.tar.bz2 |
xfdf.lisp: Ideas for hierarchical fields
Ideas for an implementation change to allow writing XFDFs with nested
fields.
Diffstat (limited to 'src/xfdf.lisp')
-rw-r--r-- | src/xfdf.lisp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/xfdf.lisp b/src/xfdf.lisp index d64aa29..5ddd23a 100644 --- a/src/xfdf.lisp +++ b/src/xfdf.lisp @@ -25,3 +25,26 @@ value))) </xfdf>") output-stream) + +(defun field-xfdf (name value) + (field-xfdf* name value 0)) + +(defun field-xfdf* (name value nesting-level) + "" + (let ((indent (+ 2 nesting-level))) + ;; TODO: Add checkbox default values. + (if (listp value) + (field-xfdf* name value (1+ nesting-level)) + + ;; TODO: Put checkbox stuff here. + (format nil "~ +~v{~A~:*~}<field name=\"~A\" +~v{~A~:*~} <value>~A</value> +~v{~A~:*~}</field> +" +indent +name +indent +value +indent)))) +;; * (format t "~v{~A~:*~}<>~A" 5 '("Hello") "Next") |