Mercurial > octave
changeset 23268:efb139519388
dir.m: Do not include trailing filesep in "folder". Fix BIST. (bug #50504).
* dir.m: Change regexp to exclude trailing filesep in "folder".
Use canonicalize_file_name rather than make_absolute_filename.
Fix BIST tests.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sun, 12 Mar 2017 14:21:52 +0000 |
parents | a470f7fee1cf |
children | a921b6b772f3 |
files | scripts/miscellaneous/dir.m |
diffstat | 1 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/miscellaneous/dir.m Sat Mar 11 22:10:27 2017 -0800 +++ b/scripts/miscellaneous/dir.m Sun Mar 12 14:21:52 2017 +0000 @@ -114,7 +114,7 @@ if (numel (flst) > 0) fs = regexptranslate ("escape", filesep ("all")); - re = sprintf ('(^.+[%s])([^%s.]*)([.][^%s]*)?$', fs, fs, fs); + re = sprintf ('(^.+)[%s]([^%s.]*)([.][^%s]*)?$', fs, fs, fs); last_dir = last_absdir = ""; info(nf,1).name = ""; # pre-declare size of struct array @@ -140,7 +140,7 @@ if (! strcmp (last_dir, tmpdir)) ## Caching mechanism to speed up function last_dir = tmpdir; - last_absdir = make_absolute_filename (last_dir); + last_absdir = canonicalize_file_name (last_dir); endif info(i).folder = last_absdir; lt = localtime (st.mtime); @@ -178,17 +178,18 @@ %! list = dir (); %! assert (isstruct (list) && ! isempty (list)); %! assert (fieldnames (list), -%! {"name"; "date"; "bytes"; "isdir"; "datenum"; "statinfo"}); +%! {"name"; "folder"; "date"; "bytes"; "isdir"; "datenum"; "statinfo"}); %! %! if (isunix ()) -%! assert ({list(1:2).name}, {".", ".."}); -%! assert ([list(1:2).isdir], [true true]); +%! idx = find (strcmp ({list.name}, "."), 1); +%! assert ({list(idx:idx+1).name}, {".", ".."}); +%! assert ([list(idx:idx+1).isdir], [true true]); %! endif %! %! ## test that specifying a filename works the same as using a directory. %! found = find (! [list.isdir], 1); %! if (! isempty (found)) -%! list2 = dir (list(found).name); +%! list2 = dir (fullfile (list(found).folder, list(found).name)); %! assert (list(found), list2); %! endif