octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: missing pdf terminal; was --> [changeset] print.m (matlab compatibil


From: Ben Abbott
Subject: Re: missing pdf terminal; was --> [changeset] print.m (matlab compatibility)
Date: Fri, 13 Mar 2009 08:26:41 +0800


On Mar 12, 2009, at 1:12 AM, John W. Eaton wrote:

On 11-Mar-2009, Michael Goffioul wrote:

| On Wed, Mar 11, 2009 at 4:50 AM, John W. Eaton <address@hidden> wrote:
| > So it won't work on Windows?
|
| Yes, it will. The gnuplot backend uses popen2 to communicate with
| gnuplot, so numel(ostream) == 2. AFAIK, ginput works fine under
| Windows now.

Yes, when there is a plot window on the screen.  But gnuplot_drawnow
begins with

 function gnuplot_drawnow (h, term, file, mono, debug_file)

   if (nargin < 4)
     mono = false;
   endif

   if (nargin >= 3 && nargin <= 5)
## Produce various output formats, or redirect gnuplot stream to a
     ## debug file.
     plot_stream = [];
     fid = [];
     printing = ! output_to_screen (gnuplot_trim_term (term));
     unwind_protect
        plot_stream = open_gnuplot_stream (1, []);
        ...
     unwind_protect_cleanup
        ...
     end_unwind_protect
   elseif (nargin == 1)
     ##  Graphics terminal for display.
     plot_stream = get (h, "__plot_stream__");
     if (isempty (plot_stream))
        plot_stream = open_gnuplot_stream (2, h);
     ...

and open_gnuplot_stream is:

 function plot_stream = open_gnuplot_stream (npipes, h)
   cmd = gnuplot_binary ();
   if (npipes > 1)
     [plot_stream(1), plot_stream(2), pid] = popen2 (cmd);
     if (pid < 0)
        error ("drawnow: failed to open connection to gnuplot");
     endif
   else
     plot_stream = popen (cmd, "w");
     if (plot_stream < 0)
        error ("drawnow: failed to open connection to gnuplot");
     endif
   endif
   if (! isempty (h))
     set (h, "__plot_stream__", plot_stream);
   endif
 endfunction

So we only use popen2 when output is to the screen.  Should we just
always use popen2?  I can't remember the reason for sometimes using
popen.

jwe

I don' t think it matters either way. __gnuplot_get_var__ uses the stream stored in the figure's "__plot_stream__" which is opened by popen2.

Shall I push __gnuplot_get_var__ and then check on the availability of the specified gnuplot terminal before printing?

Ben




reply via email to

[Prev in Thread] Current Thread [Next in Thread]