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