changeset 19239: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	Fri Oct 03 14:38:51 2014 -0700
+++ b/scripts/miscellaneous/fileparts.m	Fri Oct 03 15:45:59 2014 -0700
@@ -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 ()