From 20b928e0874fc8da727e5b9e635b03719e91e8c8 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 21 Apr 2023 20:02:21 +0200 Subject: xfdf.lisp: Extract wrapper field printing code to function --- src/xfdf.lisp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/xfdf.lisp b/src/xfdf.lisp index 98516a3..726b578 100644 --- a/src/xfdf.lisp +++ b/src/xfdf.lisp @@ -52,16 +52,7 @@ list." (rest field) field))) (field-xfdf* subname subfield (1+ nesting-level)))))) - (format nil "~ -~v{~A~:*~} -~{~A~}~v{~A~:*~} -" -indent -'(" ") -name -inner-fields -indent -'(" "))) + (build-xfdf-outer-field name inner-fields indent)) ;; TODO: Put checkbox stuff here. (let ((value (pdf-checkbox-value value))) @@ -78,6 +69,19 @@ If `value` is anything else, return its identity." ((eq value nil) "Off") (t value))) +(defun build-xfdf-outer-field (name inner-fields-str indent) + "Build the XFDF XML for a field containing other fields." + (format nil "~ +~v{~A~:*~} +~{~A~}~v{~A~:*~} +" +indent +'(" ") +name +inner-fields-str +indent +'(" "))) + (defun build-xfdf-field (name value indent) (format nil "~ ~v{~A~:*~} -- cgit v1.2.3