# HG changeset patch # User jwe # Date 809130793 0 # Node ID ec2ab864e8eb088ae1e1fcb97879aba54af3da12 # Parent 019ab630c727c8f30dbe392f650768d7a2095abd [project @ 1995-08-22 22:32:34 by jwe] diff -r 019ab630c727 -r ec2ab864e8eb src/dirfns.cc --- a/src/dirfns.cc Tue Aug 22 07:00:14 1995 +0000 +++ b/src/dirfns.cc Tue Aug 22 22:33:13 1995 +0000 @@ -72,6 +72,7 @@ #include "statdefs.h" #include "procstream.h" #include "tree-const.h" +#include "tree-plot.h" #include "oct-obj.h" #include "sysdep.h" #include "octave.h" @@ -366,6 +367,19 @@ } } +static int +octave_change_to_directory (const char *newdir) +{ + int cd_ok = change_to_directory (newdir); + + if (cd_ok) + do_external_plotter_cd (newdir); + else + error ("%s: %s", newdir, strerror (errno)); + + return cd_ok; +} + DEFUN_TEXT ("cd", Fcd, Scd, 2, 1, "cd [dir]\n\ \n\ @@ -386,30 +400,21 @@ dirname = tilde_expand (argv[1]); - if (dirname && ! change_to_directory (dirname)) + if (dirname && ! octave_change_to_directory (dirname)) { - error ("%s: %s", dirname, strerror (errno)); DELETE_ARGV; return retval; } } else { - if (!home_directory) + if (! home_directory || ! octave_change_to_directory (home_directory)) { DELETE_ARGV; return retval; } - - if (!change_to_directory (home_directory)) - { - error ("%s: %s", home_directory, strerror (errno)); - DELETE_ARGV; - return retval; - } } - char *directory = get_working_directory ("cd"); tree_constant *dir = new tree_constant (directory); bind_builtin_variable ("PWD", dir, 1); diff -r 019ab630c727 -r ec2ab864e8eb src/pr-output.cc --- a/src/pr-output.cc Tue Aug 22 07:00:14 1995 +0000 +++ b/src/pr-output.cc Tue Aug 22 22:33:13 1995 +0000 @@ -929,7 +929,7 @@ } else { - for (size_t i = sizeof (double) - 1; i >= 0; i--) + for (int i = sizeof (double) - 1; i >= 0; i--) os.form ("%02x", (int) tmp.i[i]); } } @@ -955,7 +955,7 @@ { if (bit_format > 1) { - for (int i = 0; i < sizeof (double); i++) + for (size_t i = 0; i < sizeof (double); i++) PRINT_CHAR_BITS_SWAPPED (os, tmp.i[i]); } else diff -r 019ab630c727 -r ec2ab864e8eb src/pt-plot.cc --- a/src/pt-plot.cc Tue Aug 22 07:00:14 1995 +0000 +++ b/src/pt-plot.cc Tue Aug 22 22:33:13 1995 +0000 @@ -1071,6 +1071,19 @@ plot_line_count = 0; } +void +do_external_plotter_cd (const char *newdir) +{ + if (plot_stream.is_open ()) + { + ostrstream plot_buf; + plot_buf << "cd \"" << newdir << "\"\n" << ends; + char *message = plot_buf.str (); + send_to_plot_stream (message); + delete [] message; + } +} + DEFUN ("clearplot", Fclearplot, Sclearplot, 0, 0, "clearplot (): clear the plot window") { diff -r 019ab630c727 -r ec2ab864e8eb src/pt-plot.h --- a/src/pt-plot.h Tue Aug 22 07:00:14 1995 +0000 +++ b/src/pt-plot.h Tue Aug 22 22:33:13 1995 +0000 @@ -217,6 +217,8 @@ extern void close_plot_stream (void); +extern void do_external_plotter_cd (const char *newdir); + #endif /*