From b26f61e038995c24bbbb61d79435f464d81e77e8 Mon Sep 17 00:00:00 2001
From: Paul Nelson <ultrono@gmail.com>
Date: Sat, 27 Apr 2024 15:03:45 +0200
Subject: [PATCH] Allow multiple preview preprocessors

* preview.el.in (preview-preprocessor-functions): New variable,
replacing `preview-preprocessor-function'.
(preview-region): Use it.
---
 preview.el.in | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/preview.el.in b/preview.el.in
index 7b59a3de..c29e546e 100644
--- a/preview.el.in
+++ b/preview.el.in
@@ -4111,9 +4111,9 @@ stored in `preview-dumped-alist'."
   (preview-format-kill old-format)
   (setcdr old-format nil))
 
-(defvar preview-preprocess-function nil
-  "Function used to preprocess region before previewing.
-The function bound to this variable will be called inside
+(defvar preview-preprocess-functions nil
+  "List of functions used to preprocess region before previewing.
+The functions in this variable will each be called inside
 `preview-region' with one argument which is a string.")
 
 (defun preview-region (begin end)
@@ -4125,9 +4125,9 @@ The function bound to this variable will be called inside
                  TeX-region-extra)))
     (TeX-region-create (TeX-region-file TeX-default-extension)
                        (let ((str (buffer-substring-no-properties begin end)))
-                         (if preview-preprocess-function
-                             (funcall preview-preprocess-function str)
-                           str))
+                         (dolist (fun preview-preprocess-functions)
+                           (setq str (funcall fun str)))
+                         str)
                        (if (TeX-buffer-file-name)
                            (file-name-nondirectory (TeX-buffer-file-name))
                          "<none>")
-- 
2.39.3 (Apple Git-145)

