Mercurial > hg > octave-nkf
changeset 19397:e172186599ca
fileparts.m: Overhaul function.
* fileparts.m: Match variable names in function to those in documentation.
Return empty string ("") for name when it does not exist rather than
char (zeros (1, 0)).
author | Rik <rik@octave.org> |
---|---|
date | Fri, 03 Oct 2014 15:45:59 -0700 |
parents | 6d92d54046f3 |
children | 65cf441abc5e |
files | scripts/miscellaneous/fileparts.m |
diffstat | 1 files changed, 20 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/miscellaneous/fileparts.m +++ b/scripts/miscellaneous/fileparts.m @@ -17,13 +17,15 @@ ## <http://www.gnu.org/licenses/>. ## -*- texinfo -*- -## @deftypefn {Function File} {[@var{dir}, @var{name}, @var{ext}, @var{ver}] =} fileparts (@var{filename}) -## Return the directory, name, extension, and version components of -## @var{filename}. -## @seealso{fullfile} +## @deftypefn {Function File} {[@var{dir}, @var{name}, @var{ext}] =} fileparts (@var{filename}) +## Return the directory, name, and extension components of @var{filename}. +## +## The input @var{filename} is a string which is parsed. There is no attempt +## to check whether the filename or directory specified actually exists. +## @seealso{fullfile, pathsep} ## @end deftypefn -function [directory, name, extension, version] = fileparts (filename) +function [dir, name, ext] = fileparts (filename) if (nargin != 1) print_usage (); @@ -42,20 +44,25 @@ if (es <= ds) es = length (filename)+1; endif + if (ds == 0) - directory = ""; + dir = ""; elseif (ds == 1) - directory = filename(1); + dir = filename(1); else - directory = filename(1:ds-1); + dir = filename(1:ds-1); endif + name = filename(ds+1:es-1); + if (isempty (name)) + name = ""; + endif + if (es > 0 && es <= length (filename)) - extension = filename(es:end); + ext = filename(es:end); else - extension = ""; + ext = ""; endif - version = ""; endfunction @@ -90,11 +97,11 @@ %!test %! [d, n, e] = fileparts ("/.ext"); -%! assert (strcmp (d, "/") && strcmp (n, char (zeros (1, 0))) && strcmp (e, ".ext")); +%! assert (strcmp (d, "/") && strcmp (n, "") && strcmp (e, ".ext")); %!test %! [d, n, e] = fileparts (".ext"); -%! assert (strcmp (d, "") && strcmp (n, char (zeros (1, 0))) && strcmp (e, ".ext")); +%! assert (strcmp (d, "") && strcmp (n, "") && strcmp (e, ".ext")); %% Test input validation %!error fileparts ()