# HG changeset patch # User jwe # Date 792821011 0 # Node ID 2a36b558ab5549228dd5669680eaa69e5d2f3bf3 # Parent 456368d90bc73f1a021c0731b71fb055c04966e2 [project @ 1995-02-15 04:01:38 by jwe] diff -r 456368d90bc7 -r 2a36b558ab55 src/dirfns.cc --- a/src/dirfns.cc Wed Feb 15 03:51:08 1995 +0000 +++ b/src/dirfns.cc Wed Feb 15 04:03:31 1995 +0000 @@ -73,6 +73,7 @@ #include "procstream.h" #include "tree-const.h" #include "oct-obj.h" +#include "sysdep.h" #include "octave.h" #include "dirfns.h" #include "pager.h" @@ -302,7 +303,7 @@ char *directory; the_current_working_directory = new char [MAXPATHLEN]; - directory = getcwd (the_current_working_directory, MAXPATHLEN); + directory = octave_getcwd (the_current_working_directory, MAXPATHLEN); if (! directory) { message (for_whom, the_current_working_directory); @@ -344,7 +345,7 @@ } } - if (chdir (t) < 0) + if (octave_chdir (t) < 0) { delete [] t; return 0; @@ -358,7 +359,7 @@ } else { - if (chdir (newdir) < 0) + if (octave_chdir (newdir) < 0) return 0; else return 1; @@ -470,7 +471,7 @@ if (verbatim_pwd) { char *buffer = new char [MAXPATHLEN]; - directory = getcwd (buffer, MAXPATHLEN); + directory = octave_getcwd (buffer, MAXPATHLEN); if (!directory) { diff -r 456368d90bc7 -r 2a36b558ab55 src/sysdep.cc --- a/src/sysdep.cc Wed Feb 15 03:51:08 1995 +0000 +++ b/src/sysdep.cc Wed Feb 15 04:03:31 1995 +0000 @@ -363,6 +363,38 @@ return c; } +char * +octave_getcwd (const char *buf, int len) +{ +#if defined (EMX) + return _getcwd2 (buf, len); +#else + return getcwd (buf, len); +#endif +} + +int +octave_chdir (const char *path) +{ +#if defined (EMX) + int retval = -1; + + if (strlen (path) == 2 && path[1] == ':') + { + char *upper_case_dir_name = strupr (path); + _chdrive (upper_case_dir_name[0]); + if (_getdrive () == upper_case_dir_name[0]) + retval = _chdir2 ("/"); + } + else + retval = _chdir2 (path); + + return retval; +#else + return chdir (path); +#endif +} + DEFUN ("clc", Fclc, Sclc, 0, 0, "clc (): clear screen") {