Mercurial > octave
changeset 32232:7d29c24117ae
maint: Merge stable to default.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Fri, 04 Aug 2023 20:21:09 +0200 |
parents | 9fddcbde0329 (current diff) b609c7ecd59b (diff) |
children | 4b57dca6bfdb |
files | |
diffstat | 1 files changed, 64 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/miscellaneous/fileparts.m Fri Aug 04 19:41:01 2023 +0200 +++ b/scripts/miscellaneous/fileparts.m Fri Aug 04 20:21:09 2023 +0200 @@ -53,7 +53,13 @@ endif if (ds == 0) - dir = ""; + if (ispc () && length (filename) >= 2 && strcmp (filename(2), ":")) + ## Relative path on Windows drive. At least, fix file name. + ds = 2; + dir = filename(1:2); + else + dir = ""; + endif elseif (ds == 1) dir = filename(1); else @@ -76,39 +82,87 @@ %!test %! [d, n, e] = fileparts ("file"); -%! assert (strcmp (d, "") && strcmp (n, "file") && strcmp (e, "")); +%! assert (d, ""); +%! assert (n, "file"); +%! assert (e, ""); %!test %! [d, n, e] = fileparts ("file.ext"); -%! assert (strcmp (d, "") && strcmp (n, "file") && strcmp (e, ".ext")); +%! assert (d, ""); +%! assert (n, "file"); +%! assert (e, ".ext"); %!test %! [d, n, e] = fileparts ("/file.ext"); -%! assert (strcmp (d, "/") && strcmp (n, "file") && strcmp (e, ".ext")); +%! assert (d, "/"); +%! assert (n, "file"); +%! assert (e, ".ext"); %!test %! [d, n, e] = fileparts ("dir/file.ext"); -%! assert (strcmp (d, "dir") && strcmp (n, "file") && strcmp (e, ".ext")); +%! assert (d, "dir"); +%! assert (n, "file"); +%! assert (e, ".ext"); %!test %! [d, n, e] = fileparts ("./file.ext"); -%! assert (strcmp (d, ".") && strcmp (n, "file") && strcmp (e, ".ext")); +%! assert (d, "."); +%! assert (n, "file"); +%! assert (e, ".ext"); %!test %! [d, n, e] = fileparts ("d1/d2/file.ext"); -%! assert (strcmp (d, "d1/d2") && strcmp (n, "file") && strcmp (e, ".ext")); +%! assert (d, "d1/d2"); +%! assert (n, "file"); +%! assert (e, ".ext"); %!test %! [d, n, e] = fileparts ("/d1/d2/file.ext"); -%! assert (strcmp (d, "/d1/d2") && strcmp (n, "file") && strcmp (e, ".ext")); +%! assert (d, "/d1/d2"); +%! assert (n, "file"); +%! assert (e, ".ext"); %!test %! [d, n, e] = fileparts ("/.ext"); -%! assert (strcmp (d, "/") && strcmp (n, "") && strcmp (e, ".ext")); +%! assert (d, "/"); +%! assert (n, ""); +%! assert (e, ".ext"); %!test %! [d, n, e] = fileparts (".ext"); -%! assert (strcmp (d, "") && strcmp (n, "") && strcmp (e, ".ext")); +%! assert (d, ""); +%! assert (n, ""); +%! assert (e, ".ext"); + +%!test +%! [d, n, e] = fileparts ("a"); +%! assert (d, ""); +%! assert (n, "a"); +%! assert (e, ""); + +%!test +%! [d, n, e] = fileparts (""); +%! assert (d, ""); +%! assert (n, ""); +%! assert (e, ""); + +%!testif ; ispc () <*64462> +%! [d, n, e] = fileparts ("c:file.ext"); +%! assert (d, "c:"); +%! assert (n, "file"); +%! assert (e, ".ext"); + +%!testif ; ispc () <*64462> +%! [d, n, e] = fileparts ("c:d1/../d2/file.ext"); +%! assert (d, "c:d1/../d2"); +%! assert (n, "file"); +%! assert (e, ".ext"); + +%!testif ; ispc () +%! [d, n, e] = fileparts ('c:\dir\file.ext'); +%! assert (d, 'c:\dir'); +%! assert (n, "file"); +%! assert (e, ".ext"); ## Test input validation %!error <Invalid call> fileparts ()