changeset 5799:9ad09b44beba

[project @ 2006-05-09 17:30:57 by jwe]
author jwe
date Tue, 09 May 2006 17:31:28 +0000
parents 7e7ed81f5566
children e8be7fe586f9
files scripts/miscellaneous/ans.m scripts/path/path.m
diffstat 2 files changed, 95 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/miscellaneous/ans.m	Tue May 09 17:31:28 2006 +0000
@@ -0,0 +1,17 @@
+## -*- texinfo -*-
+## @defvr {Automatic Variable} ans
+## The the most recently computed result that was not
+## explicitly assigned to a variable.  For example, after the expression
+## 
+## @example
+## 3^2 + 4^2
+## @end example
+## 
+## @noindent
+## is evaluated, the value returned by @code{ans} is 25.
+## @end defvr
+
+## FIXME -- we should be able to get formatted help for empty scripts,
+## not just functions.
+function ans ()
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/path/path.m	Tue May 09 17:31:28 2006 +0000
@@ -0,0 +1,78 @@
+## Copyright (C) 1997 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, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+## 02110-1301, USA.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} path (@dots{})
+## Modify or display Octave's @code{LOADPATH}.
+##
+## If @var{nargin} and @var{nargout} are zero, display the elements of
+## Octave's @code{LOADPATH} in an easy to read format.
+##
+## If @var{nargin} is zero and nargout is greater than zero, return the
+## current value of @code{LOADPATH}.
+##
+## If @var{nargin} is greater than zero, concatenate the arguments,
+## separating them with @code{pathsep()}.  Set @code{LOADPATH} to the result
+## and also return it.
+##
+## No checks are made for duplicate elements.
+## @seealso{pathsep}
+## @end deftypefn
+
+## Author: jwe
+
+function retval = path (varargin)
+
+  psep = pathsep ();
+
+  if (nargin > 0)
+    p = varargin{1};
+    for i = 2:nargin
+      p = sprintf ("%s%s%s", p, psep, varargin{i});
+    endfor
+    LOADPATH (p);
+  endif
+
+  lp = LOADPATH ();
+  dlp = DEFAULT_LOADPATH ();
+
+  if (lp(1) == psep)
+    p = strcat (dlp, lp);
+  else
+    t = findstr (lp, [psep,psep]);
+    if (any (t))
+      loc = t(1);
+      lp = lp;
+      p = strcat (lp(1:loc), dlp, lp(loc+1:end));
+    elseif (lp(end) == psep)
+      p = strcat (lp, dlp);
+    else
+      p = lp;
+    endif
+  endif
+
+  if (nargin == 0 && nargout == 0)
+    puts ("\nOctave's search path contains the following directories:\n\n  ");
+    puts (strrep (p, psep, "\n  "));
+    puts ("\n\n");
+  else
+    retval = p;
+  endif
+
+endfunction