# HG changeset patch # User Ben Abbott # Date 1284425761 14400 # Node ID 2470b1bf191aefc07268b9f9fd76d1bc8e983744 # Parent 07b4cd7957426c8b4f32169c2f1c6eb8a219f635 __gnuplot_has_terminal__.m: New function. diff --git a/scripts/ChangeLog b/scripts/ChangeLog --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,7 @@ +2010-09-13 Ben Abbott + + * plot/private/__gnuplot_has_terminal__.m: New function. + 2010-09-13 Jaroslav Hajek * general/common_size.m: Partially rewrite using cellindexmat. diff --git a/scripts/plot/module.mk b/scripts/plot/module.mk --- a/scripts/plot/module.mk +++ b/scripts/plot/module.mk @@ -19,6 +19,7 @@ plot/private/__errplot__.m \ plot/private/__ezplot__.m \ plot/private/__ghostscript__.m \ + plot/private/__gnuplot_has_terminal__.m\ plot/private/__interp_cube__.m \ plot/private/__line__.m \ plot/private/__patch__.m \ diff --git a/scripts/plot/private/__gnuplot_has_terminal__.m b/scripts/plot/private/__gnuplot_has_terminal__.m new file mode 100644 --- /dev/null +++ b/scripts/plot/private/__gnuplot_has_terminal__.m @@ -0,0 +1,62 @@ +## Copyright (C) 2010 Ben Abbott +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Function File} {@var{has_terminal} =} __gnuplot_has_terminal__ (@var{terminal}) +## Undocumented internal function. +## @end deftypefn + +## Author: Ben Abbott +## Created: 2010-09-13 + +function gnuplot_supports_term = __gnuplot_has_terminal__ (term, plot_stream) + term = deblank (term); + n = find (term == " ", 1); + if (! isempty (n)) + term = term(1:n-1); + endif + if (__gnuplot_has_feature__ ("variable_GPVAL_TERMINALS")) + if (nargin < 2) + plot_stream = __gnuplot_open_stream__ (2); + endif + available_terminals = __gnuplot_get_var__ (plot_stream, "GPVAL_TERMINALS"); + available_terminals = regexp (available_terminals, "\\b\\w+\\b", "match"); + if (nargin < 2 && ! isempty (plot_stream)) + pclose (plot_stream(1)); + if (numel (plot_stream) > 1) + pclose (plot_stream(2)); + endif + if (numel (plot_stream) > 2) + waitpid (plot_stream(3)); + endif + endif + else + ## Gnuplot 4.0 terminals. No new terminals were added until 4.4 which + ## allows the list of terminals to be obtained from GPVAL_TERMINALS. + available_terminals = {"aifm", "aqua", "canvas", "cgm", "corel", ... + "dumb", "dxf", "eepic", "emf", "epslatex", ... + "epson_180dpi", "fig", "gif", "gnugraph", ... + "gpic", "hp2623A", "hp2648", "hp500c", ... + "hpgl", "hpljii", "hppj", "imagen", "jpeg", ... + "latex", "mf", "mif", "mp", "pbm", "pdf", ... + "pm", "png", "postscript", "pslatex", ... + "pstex", "pstricks", "qms", "regis", "rgip", ... + "svg", "texdraw", "tgif", "tkcanvas", ... + "tpic", "windows", "x11", "xlib", "xterm"}; + endif + gnuplot_supports_term = any (strcmpi (available_terminals, term)); +endfunction +