# HG changeset patch # User jwe # Date 1041573993 0 # Node ID 48897c78c52b6ce4a8b54675ec152b07fc12c2c5 # Parent 4e2d2516da227824daea650d71b70f5c657d38ef [project @ 2003-01-03 06:04:29 by jwe] diff --git a/scripts/ChangeLog b/scripts/ChangeLog --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,7 @@ +2003-01-03 John W. Eaton + + * miscellaneous/fullfile.m: New file. + 2003-01-02 John W. Eaton * miscellaneous/fileparts.m: New file. diff --git a/scripts/miscellaneous/fileparts.m b/scripts/miscellaneous/fileparts.m --- a/scripts/miscellaneous/fileparts.m +++ b/scripts/miscellaneous/fileparts.m @@ -31,7 +31,7 @@ es = rindex (filename, "."); directory = filename(1:ds-1); name = filename(ds+1:es-1); - extension = filename(es+1:length (filename)); + extension = filename(es+1:end); version = ""; else error ("filesep: expecting filename argument to be a string"); diff --git a/scripts/miscellaneous/fullfile.m b/scripts/miscellaneous/fullfile.m new file mode 100644 --- /dev/null +++ b/scripts/miscellaneous/fullfile.m @@ -0,0 +1,47 @@ +## Copyright (C) 2003 John W. Eaton +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2, or (at your option) +## any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, write to the Free +## Software Foundation, 59 Temple Place - Suite 330, Boston, MA +## 02111-1307, USA. + +## -*- texinfo -*- +## @deftypefn {Built-in Function} {[@var{dir}, @var{name}, @var{ext}, @var{ver}]} fnmatch (@var{filename}) +## Return the directory, name, extension, and version components of +## @var{filename}. +## @end deftypefn + +function filename = fullfile (varargin) + + if (nargin > 0) + filename = varargin{1}; + if (strcmp (filename(end), "/")) + filename(end) = ""; + endif + for i = 2:nargin + tmp = varargin{i}; + if (strcmp (tmp(1), "/")) + tmp(1) = ""; + endif + if (i < nargin && strcmp (tmp(end), "/")) + tmp(end) = ""; + endif + filename = strcat (filename, filesep, tmp); + endfor + else + usage ("fullfile (dir1, dir2, ..., file)"); + endif + +endfunction diff --git a/src/pt-arg-list.cc b/src/pt-arg-list.cc --- a/src/pt-arg-list.cc +++ b/src/pt-arg-list.cc @@ -62,8 +62,14 @@ { octave_base_list::append (s); - if (s && s->is_identifier () && s->name () == "__end__") - list_includes_magic_end = true; + // XXX FIXME XXX -- wait, it's not that simple! The argument list + // may include expressions, so we will have to do some more work + // here. We need a new function for all expression types that can + // tell us whether the expression includes the magic end token! + + // if (s && s->is_identifier () && s->name () == "__end__") + + list_includes_magic_end = true; } int