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 compatibi


From: John W. Eaton
Subject: Re: missing pdf terminal; was --> [changeset] print.m (matlab compatibility)
Date: Wed, 11 Mar 2009 13:12:00 -0400

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


reply via email to

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