Mercurial > hg > octave-nkf
diff src/variables.cc @ 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 | a4f482e66b65 |
children | 4ab04ea74b08 |
line wrap: on
line diff
--- 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) {