changeset 4265:48897c78c52b

[project @ 2003-01-03 06:04:29 by jwe]
author jwe
date Fri, 03 Jan 2003 06:06:33 +0000
parents 4e2d2516da22
children 1086ac09a411
files scripts/ChangeLog scripts/miscellaneous/fileparts.m scripts/miscellaneous/fullfile.m src/pt-arg-list.cc
diffstat 4 files changed, 60 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/ChangeLog	Fri Jan 03 05:30:34 2003 +0000
+++ b/scripts/ChangeLog	Fri Jan 03 06:06:33 2003 +0000
@@ -1,3 +1,7 @@
+2003-01-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* miscellaneous/fullfile.m: New file.
+
 2003-01-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* miscellaneous/fileparts.m: New file.
--- a/scripts/miscellaneous/fileparts.m	Fri Jan 03 05:30:34 2003 +0000
+++ b/scripts/miscellaneous/fileparts.m	Fri Jan 03 06:06:33 2003 +0000
@@ -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");
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/miscellaneous/fullfile.m	Fri Jan 03 06:06:33 2003 +0000
@@ -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
--- a/src/pt-arg-list.cc	Fri Jan 03 05:30:34 2003 +0000
+++ b/src/pt-arg-list.cc	Fri Jan 03 06:06:33 2003 +0000
@@ -62,8 +62,14 @@
 {
   octave_base_list<tree_expression *>::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