# HG changeset patch # User jwe # Date 1127509836 0 # Node ID e2f85b298a7423fa52ec5a37bc49161aec380d8c # Parent 764a4349e4922ecfb861237c5cff7f93bf1c90d9 [project @ 2005-09-23 21:10:36 by jwe] diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2005-09-23 John W. Eaton + * parse.y (load_fcn_from_file): Don't look in path if file is + absolute and has .oct or .m extension. + * utils.cc (Ferrno_list): New function. * oct-errno.h, oct-errno.cc.in: New files. diff --git a/src/parse.y b/src/parse.y --- a/src/parse.y +++ b/src/parse.y @@ -3362,12 +3362,25 @@ string_vector names (2); - names[0] = nm + ".oct"; - names[1] = nm + ".m"; - - std::string file - = octave_env::make_absolute (Vload_path_dir_path.find_first_of (names), - octave_env::getcwd ()); + int nm_len = nm.length (); + + std::string file; + + if (octave_env::absolute_pathname (nm) + && ((nm_len > 4 && nm.substr (nm_len-4) == ".oct") + || (nm_len > 2 && nm.substr (nm_len-4) == ".m"))) + { + file = nm; + } + else + { + names[0] = nm + ".oct"; + names[1] = nm + ".m"; + + file + = octave_env::make_absolute (Vload_path_dir_path.find_first_of (names), + octave_env::getcwd ()); + } int len = file.length ();