]> git.ipfire.org Git - thirdparty/cups-filters.git/commitdiff
libcupsfilters, universal: Impoert template dir for cfFilterBannerToPDF()
authorTill Kamppeter <till.kamppeter@gmail.com>
Sun, 28 Aug 2022 16:36:10 +0000 (18:36 +0200)
committerTill Kamppeter <till.kamppeter@gmail.com>
Sun, 28 Aug 2022 16:36:10 +0000 (18:36 +0200)
Fixes Issue #471.

The cfFilterUniversal() filter function did not import the template
directory which cfFilterBannerToPDF() needs as parameter.

cupsfilters/filter.h
cupsfilters/universal.c
filter/universal.c

index 2e37801a181d1b4f32768aa659e7f318064fd26f..5ae80b1af7d8a739c5bfe677d34ad5bd88670842 100644 (file)
@@ -117,6 +117,7 @@ typedef struct cf_filter_universal_parameter_s { /* Contains input and output
                                                    cfFilterTextToPDF() */
   char *actual_output_type;
   cf_filter_texttopdf_parameter_t texttopdf_params;
+  const char *bannertopdf_template_dir;
 } cf_filter_universal_parameter_t;
 
 
index d75058778c18f88a6dea1d8dac04285b5c58c457..7b398b7df48cbe1ed46e3eb9b64eb6dc9dd6edf0 100644 (file)
@@ -232,7 +232,8 @@ cfFilterUniversal(int inputfd,         /* I - File descriptor input stream */
     {
       filter = malloc(sizeof(cf_filter_filter_in_chain_t));
       filter->function = cfFilterBannerToPDF;
-      filter->parameters = NULL;
+      filter->parameters =
+       strdup(universal_parameters->bannertopdf_template_dir);
       filter->name = "bannertopdf";
       cupsArrayAdd(filter_chain, filter);
       if (log) log(ld, CF_LOGLEVEL_DEBUG,
index 6dfedd34e9358cf649bd8d860c48adacd22916d3..aaaf98768c7315d7f24676a4137f6fe78e3c2045 100644 (file)
@@ -33,6 +33,8 @@ main(int  argc,                               /* I - Number of command-line args */
   int           ret;
   char          *p;
   cf_filter_universal_parameter_t universal_parameters;
+  char buf[1024];
+  const char *datadir;
 #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
   struct sigaction action;             /* Actions for POSIX signals */
 #endif /* HAVE_SIGACTION && !HAVE_SIGSET */
@@ -75,6 +77,12 @@ main(int  argc,                              /* I - Number of command-line args */
   else
     universal_parameters.texttopdf_params.classification = NULL;
 
+  datadir = getenv("CUPS_DATADIR");
+  if (!datadir)
+    datadir = CUPS_DATADIR;
+  snprintf(buf, sizeof(buf), "%s/data", datadir);
+  universal_parameters.bannertopdf_template_dir = buf;
+
   ret = ppdFilterCUPSWrapper(argc, argv, ppdFilterUniversal,
                             &universal_parameters, &JobCanceled);