changeset 30295:1830a8f85476

print: Avoid using pipes or redirecting stdout (bug #58702). * scripts/plot/util/private/__opengl_print__.m: Avoid using pipes or redirecting stdout when printing to .emf files. Use temporary files instead.
author Markus Mützel <markus.muetzel@gmx.de>
date Fri, 12 Nov 2021 15:24:01 +0100
parents 488548c762de
children d6415c931759
files scripts/plot/util/private/__opengl_print__.m
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/plot/util/private/__opengl_print__.m	Mon Nov 15 17:41:07 2021 +0900
+++ b/scripts/plot/util/private/__opengl_print__.m	Fri Nov 12 15:24:01 2021 +0100
@@ -116,7 +116,13 @@
         opts.unlink = [opts.unlink tmp];
         cmd_pstoedit = sprintf (opts.pstoedit_cmd (opts, "fig"), ...
                                 "pdf", tmp, tmp);
-        cmd = sprintf ('%s | %s > "%s"', cmd_pstoedit, cmd_fig2dev, opts.name);
+        tmp = [tempname(), ".fig"];
+        opts.unlink = [opts.unlink tmp];
+        if (ispc () && ! isunix ())
+          cmd = sprintf ('%s "%s" & %s "%s" "%s"', cmd_pstoedit, tmp, cmd_fig2dev, tmp, opts.name);
+        else
+          cmd = sprintf ('%s "%s" ; %s "%s" "%s"', cmd_pstoedit, tmp, cmd_fig2dev, tmp, opts.name);
+        endif
         gl2ps_device = {"svg"};
         pipeline = {cmd};
       endif
@@ -131,7 +137,7 @@
       opts.unlink = [opts.unlink tmp];
       cmd = sprintf (opts.pstoedit_cmd (opts), "pdf", tmp, tmp);
       gl2ps_device = {"svg"};
-      pipeline = {sprintf('%s > "%s"', cmd, opts.name)};
+      pipeline = {sprintf('%s "%s"', cmd, opts.name)};
     case opts.ghostscript.device
       svgcmd = "";
       if (opts.svgconvert)