Mercurial > hg > octave-nkf
changeset 10975:2d14817353a6
allow exist to work correctly for special files; recognize directories when searching for files
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 14 Sep 2010 13:51:23 -0400 |
parents | c6dc5f666695 |
children | 80653e42a551 |
files | src/ChangeLog src/variables.cc |
diffstat | 2 files changed, 25 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2010-09-14 John W. Eaton <jwe@octave.org> + + * variables.cc (symbol_exist): If looking for any type of file + or "file", return 7 for directories and 2 for all other types of + files. + 2010-09-14 John W. Eaton <jwe@octave.org> * graphics.h.in (base_graphics_backend::initialize): Rename
--- a/src/variables.cc +++ b/src/variables.cc @@ -493,16 +493,10 @@ if (fs) { - if ((type == "any" || type == "file") - && fs.is_reg ()) - { - retval = 2; - } - else if ((type == "any" || type == "dir") - && fs.is_dir ()) - { - retval = 7; - } + if (type == "any" || type == "file") + retval = fs.is_dir () ? 7 : 2; + else if (type == "dir" && fs.is_dir ()) + retval = 7; } } } @@ -597,6 +591,21 @@ return retval; } +/* +%!test +%! if (isunix ()) +%! assert (exist ("/tmp") == 7); +%! assert (exist ("/tmp", "file") == 7); +%! assert (exist ("/tmp", "dir") == 7); +%! assert (exist ("/bin/sh") == 2); +%! assert (exist ("/bin/sh", "file") == 2); +%! assert (exist ("/bin/sh", "dir") == 0); +%! assert (exist ("/dev/null") == 2); +%! assert (exist ("/dev/null", "file") == 2); +%! assert (exist ("/dev/null", "dir") == 0); +%! endif +*/ + octave_value lookup_function_handle (const std::string& nm) {