# HG changeset patch # User jwe # Date 1189109908 0 # Node ID e2e5425905ac1b667d167fc82150db826ab3c0d5 # Parent f9c893831e681b98c320f0b3f5e864bc1e4ad2d9 [project @ 2007-09-06 20:18:20 by jwe] diff -r f9c893831e68 -r e2e5425905ac ChangeLog --- a/ChangeLog Thu Sep 06 16:38:44 2007 +0000 +++ b/ChangeLog Thu Sep 06 20:18:28 2007 +0000 @@ -1,3 +1,7 @@ +2007-09-06 John W. Eaton + + * configure.in: Avoid broken strptime function on Cygwin systems. + 2007-09-01 David Bateman * configure.in: AC_SUBST and check the variable TEXINFO_QHULL. diff -r f9c893831e68 -r e2e5425905ac configure.in --- a/configure.in Thu Sep 06 16:38:44 2007 +0000 +++ b/configure.in Thu Sep 06 20:18:28 2007 +0000 @@ -29,7 +29,7 @@ EXTERN_CXXFLAGS="$CXXFLAGS" AC_INIT -AC_REVISION($Revision: 1.573 $) +AC_REVISION($Revision: 1.574 $) AC_PREREQ(2.57) AC_CONFIG_SRCDIR([src/octave.cc]) AC_CONFIG_HEADER(config.h) @@ -1453,7 +1453,7 @@ esac case "$canonical_host_type" in - *-apple-darwin*) + *-apple-darwin* | *-*-cygwin*) ## The weekday function, which uses strptime, is broken because ## strptime is apparently not setting wday correctly for formats ## like "%d-%m-%Y", so use our version. We could use an actual diff -r f9c893831e68 -r e2e5425905ac scripts/ChangeLog --- a/scripts/ChangeLog Thu Sep 06 16:38:44 2007 +0000 +++ b/scripts/ChangeLog Thu Sep 06 20:18:28 2007 +0000 @@ -1,3 +1,9 @@ +2007-09-06 John W. Eaton + + * plot/drawnow.m (drawnow): New arg, debug_file. + (init_plot_stream): Split from open_plot_stream. + * plot/print.m: Accept -debug=FILE argument. + 2007-09-06 David Bateman * general/celldisp.m: New function. diff -r f9c893831e68 -r e2e5425905ac scripts/plot/drawnow.m --- a/scripts/plot/drawnow.m Thu Sep 06 16:38:44 2007 +0000 +++ b/scripts/plot/drawnow.m Thu Sep 06 20:18:28 2007 +0000 @@ -24,7 +24,7 @@ ## Author: jwe -function drawnow (term, file) +function drawnow (term, file, debug_file) persistent drawnow_executing = 0; @@ -35,18 +35,27 @@ return; endif - if (nargin == 2) + if (nargin == 2 || nargin == 3) h = get (0, "currentfigure"); if (h) f = get (h); plot_stream = []; + fid = []; unwind_protect plot_stream = open_gnuplot_stream ([], term, file); __go_draw_figure__ (f, plot_stream); + if (nargin == 3) + fid = fopen (debug_file, "wb"); + init_plot_stream (fid, [], term, file); + __go_draw_figure__ (f, fid); + endif unwind_protect_cleanup if (! isempty (plot_stream)) pclose (plot_stream); endif + if (! isempty (fid)) + fclose (fid); + endif end_unwind_protect else error ("drawnow: nothing to draw"); @@ -84,7 +93,7 @@ endfunction -function plot_stream = open_gnuplot_stream (h, term, file) +function plot_stream = open_gnuplot_stream (h, varargin) ## If drawnow is cleared, it is possible to register __go_close_all__ ## more than once, but that is not fatal. @@ -102,47 +111,7 @@ set (h, "__plot_stream__", plot_stream); endif - if (nargin == 3) - fprintf (plot_stream, "set terminal %s;\n", term); - fprintf (plot_stream, "set output \"%s\";\n", file); - else - - ## Guess the terminal type. - term = getenv ("GNUTERM"); - if (isempty (term)) - if (! isempty (getenv ("DISPLAY"))) - term = "x11"; - elseif (! isunix ()) - term = "windows"; - else - ## This should really be checking for os x before setting - ## the terminal type to aqua, but nobody will notice because - ## every other unix will be using x11 and windows will be - ## using windows. Those diehards still running octave from - ## a linux console know how to set the GNUTERM variable. - term = "aqua"; - endif - endif - - ## If no 'h' (why not?) then open the terminal as Figure 0. - if (isempty (h)) - h = 0; - endif - - if (strcmp (term, "x11")) - fprintf (plot_stream, "set terminal x11 title \"Figure %d\"\n", h); - elseif (strcmp (term, "aqua")) - ## Aqua doesn't understand the 'title' option despite what the - ## gnuplot 4.2 documentation says. - fprintf (plot_stream, "set terminal aqua %d\n", h); - elseif (strcmp (term, "wxt")) - fprintf (plot_stream, "set terminal wxt title \"Figure %d\"\n", h); - endif - ## gnuplot will pick up the GNUTERM environment variable itself - ## so no need to set the terminal type if not also setting the - ## figure title. - - endif + init_plot_stream (plot_stream, h, varargin{:}) if (isempty (__go_close_all_registered__)) atexit ("__go_close_all__"); @@ -152,3 +121,53 @@ endif endfunction + +function init_plot_stream (plot_stream, h, term, file) + + if (nargin == 4) + if (! isempty (term)) + fprintf (plot_stream, "set terminal %s;\n", term); + endif + if (! isempty (file)) + fprintf (plot_stream, "set output \"%s\";\n", file); + endif + else + + ## Guess the terminal type. + term = getenv ("GNUTERM"); + if (isempty (term)) + if (! isempty (getenv ("DISPLAY"))) + term = "x11"; + elseif (! isunix ()) + term = "windows"; + else + ## This should really be checking for os x before setting + ## the terminal type to aqua, but nobody will notice because + ## every other unix will be using x11 and windows will be + ## using windows. Those diehards still running octave from + ## a linux console know how to set the GNUTERM variable. + term = "aqua"; + endif + endif + + ## If no 'h' (why not?) then open the terminal as Figure 0. + if (isempty (h)) + h = 0; + endif + + if (strcmp (term, "x11")) + fprintf (plot_stream, "set terminal x11 title \"Figure %d\"\n", h); + elseif (strcmp (term, "aqua")) + ## Aqua doesn't understand the 'title' option despite what the + ## gnuplot 4.2 documentation says. + fprintf (plot_stream, "set terminal aqua %d\n", h); + elseif (strcmp (term, "wxt")) + fprintf (plot_stream, "set terminal wxt title \"Figure %d\"\n", h); + endif + ## gnuplot will pick up the GNUTERM environment variable itself + ## so no need to set the terminal type if not also setting the + ## figure title. + + endif + +endfunction diff -r f9c893831e68 -r e2e5425905ac scripts/plot/print.m --- a/scripts/plot/print.m Thu Sep 06 16:38:44 2007 +0000 +++ b/scripts/plot/print.m Thu Sep 06 20:18:28 2007 +0000 @@ -119,6 +119,8 @@ name = ""; devopt = ""; printer = ""; + debug = false; + debug_file = "octave-print-commands.log" for i = 1:nargin arg = varargin{i}; @@ -135,8 +137,13 @@ orientation = "portrait"; elseif (strcmp (arg, "-landscape")) orientation = "landscape"; + elseif (strncmp (arg, "-debug", 6)) + debug = true; + if (length (arg) > 7) + debug_file = arg(7:end); + endif elseif (length (arg) > 2 && arg(1:2) == "-d") - devopt = arg(3:length(arg)); + devopt = arg(3:end); elseif (length (arg) > 2 && arg(1:2) == "-P") printer = arg; elseif (length (arg) > 2 && arg(1:2) == "-F") @@ -332,7 +339,11 @@ new_terminal = dev; endif - drawnow (new_terminal, name); + if (debug) + drawnow (new_terminal, name, debug_file); + else + drawnow (new_terminal, name); + endif if (! isempty (convertname)) command = sprintf ("convert '%s' '%s'", name, convertname);