# HG changeset patch # User jwe # Date 1041571834 0 # Node ID 4e2d2516da227824daea650d71b70f5c657d38ef # Parent 34b8cd8e6ef5505557aa6f835db40e745a45aea9 [project @ 2003-01-03 05:30:34 by jwe] diff -r 34b8cd8e6ef5 -r 4e2d2516da22 ChangeLog --- a/ChangeLog Fri Jan 03 03:10:57 2003 +0000 +++ b/ChangeLog Fri Jan 03 05:30:34 2003 +0000 @@ -1,3 +1,7 @@ +2003-01-02 John W. Eaton + + * configure.in: Fail on all gcc 1.x and 2.x versions. + 2002-12-30 John W. Eaton * configure.in (OCTAVE_LOCAL_BUFFER): New macro. diff -r 34b8cd8e6ef5 -r 4e2d2516da22 configure.in --- a/configure.in Fri Jan 03 03:10:57 2003 +0000 +++ b/configure.in Fri Jan 03 05:30:34 2003 +0000 @@ -22,7 +22,7 @@ ### 02111-1307, USA. AC_INIT -AC_REVISION($Revision: 1.401 $) +AC_REVISION($Revision: 1.402 $) AC_PREREQ(2.52) AC_CONFIG_SRCDIR([src/octave.cc]) AC_CONFIG_HEADER(config.h) @@ -180,11 +180,8 @@ cxx_auto_instantiate_templates=yes case "$gxx_version" in - 1.* | 2.[[0123456]].* | 2.7.[01]*) - AC_MSG_ERROR([g++ version $gxx_version will not work to compile Octave]) - ;; - 2.8* | 2.9[[1-6]]*) - cxx_auto_instantiate_templates=no + 1.* | 2.[[0123456789]].*) + AC_MSG_ERROR([g++ version $gxx_version will probably fail to compile Octave]) ;; esac diff -r 34b8cd8e6ef5 -r 4e2d2516da22 scripts/ChangeLog --- a/scripts/ChangeLog Fri Jan 03 03:10:57 2003 +0000 +++ b/scripts/ChangeLog Fri Jan 03 05:30:34 2003 +0000 @@ -1,5 +1,9 @@ 2003-01-02 John W. Eaton + * miscellaneous/fileparts.m: New file. + + * io/beep.m: New file. + * plot/__pltopt1__.m: Call undo_string_escapes for title part of format only. diff -r 34b8cd8e6ef5 -r 4e2d2516da22 scripts/miscellaneous/fileparts.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/miscellaneous/fileparts.m Fri Jan 03 05:30:34 2003 +0000 @@ -0,0 +1,43 @@ +## 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 [directory, name, extension, version] = fileparts (filename) + + if (nargin == 1) + if (isstr (filename)) + ds = rindex (filename, filesep); + es = rindex (filename, "."); + directory = filename(1:ds-1); + name = filename(ds+1:es-1); + extension = filename(es+1:length (filename)); + version = ""; + else + error ("filesep: expecting filename argument to be a string"); + endif + else + usage ("filesep (filename)"); + endif + +endfunction diff -r 34b8cd8e6ef5 -r 4e2d2516da22 scripts/plot/grid.m --- a/scripts/plot/grid.m Fri Jan 03 03:10:57 2003 +0000 +++ b/scripts/plot/grid.m Fri Jan 03 05:30:34 2003 +0000 @@ -28,6 +28,8 @@ ## Author: jwe +## PKG_ADD: mark_as_command grid + function grid (x) usage_msg = "grid (\"on\" | \"off\")"; diff -r 34b8cd8e6ef5 -r 4e2d2516da22 src/ChangeLog --- a/src/ChangeLog Fri Jan 03 03:10:57 2003 +0000 +++ b/src/ChangeLog Fri Jan 03 05:30:34 2003 +0000 @@ -1,5 +1,13 @@ 2003-01-02 John W. Eaton + * dirfns.cc (symbols_of_dirfns): New function. + Install new built-in constant filesep. + + * utils.cc (Fisvaranme): New function. + (valid_identifier): Identifiers can't start with digits! Doh! + + * lex.l (Fiskeyword): New function. + * Makefile.in (INCLUDES): Don't forget base-list.h. * symtab.cc (symbol_record::define): If definition already exists, diff -r 34b8cd8e6ef5 -r 4e2d2516da22 src/defaults.cc --- a/src/defaults.cc Fri Jan 03 03:10:57 2003 +0000 +++ b/src/defaults.cc Fri Jan 03 05:30:34 2003 +0000 @@ -391,6 +391,19 @@ set_site_defaults_file (); } +DEFUN (rehash, , , + "-*- texinfo -*-\n\ +@deftypefn {Built-in Function} {} rehash ()\n\ +Reinitialize Octave's @code{LOADPATH} directory cache.\n\ +@end deftypefn") +{ + octave_value_list retval; + + Vload_path_dir_path.rehash (); + + return retval; +} + static int editor (void) { @@ -629,19 +642,6 @@ } -DEFUN (rehash, , , - "-*- texinfo -*-\n\ -@deftypefn {Built-in Function} {} rehash ()\n\ -Reinitialize Octave's @code{LOADPATH} directory cache.\n\ -@end deftypefn") -{ - octave_value_list retval; - - Vload_path_dir_path.rehash (); - - return retval; -} - /* ;;; Local Variables: *** ;;; mode: C++ *** diff -r 34b8cd8e6ef5 -r 4e2d2516da22 src/dirfns.cc --- a/src/dirfns.cc Fri Jan 03 03:10:57 2003 +0000 +++ b/src/dirfns.cc Fri Jan 03 05:30:34 2003 +0000 @@ -638,6 +638,18 @@ return retval; } +void +symbols_of_dirfns (void) +{ + DEFCONST (filesep, file_ops::dir_sep_str, + "-*- texinfo -*-\n\ +@defvr {Built-in Variable} filesep\n\ +The character used to separate directory names. The value\n\ +of this variable is system dependent.\n\ +@end defvr"); + +} + /* ;;; Local Variables: *** ;;; mode: C++ *** diff -r 34b8cd8e6ef5 -r 4e2d2516da22 src/lex.l --- a/src/lex.l Fri Jan 03 03:10:57 2003 +0000 +++ b/src/lex.l Fri Jan 03 05:30:34 2003 +0000 @@ -54,6 +54,7 @@ // because it may not be protected to allow it to be included multiple // times. +#include "Cell.h" #include "comment-list.h" #include "defun.h" #include "error.h" @@ -2574,6 +2575,44 @@ quote_is_transpose = false; } +DEFCMD (iskeyword, args, , + "-*- texinfo -*-\n\ +@deftypefn {Built-in Function} {} iskeyword (@var{name})\n\ +Return true if @var{name} is an Octave keyword. If @var{name}\n\ +is omitted, return a list of keywords.\n\ +@end deftypefn") +{ + octave_value retval; + + int argc = args.length () + 1; + + string_vector argv = args.make_argv ("help"); + + if (error_state) + return retval; + + if (argc == 1) + { + string_vector lst (TOTAL_KEYWORDS); + + for (int i = 0; i < TOTAL_KEYWORDS; i++) + lst[i] = wordlist[i].name; + + retval = Cell (lst.qsort ()); + } + else if (argc == 2) + { + std::string s = argv[1]; + + retval = (octave_kw_lookup (s.c_str (), s.length ()) != 0); + } + else + print_usage ("iskeyword"); + + return retval; +} + + static void maybe_warn_separator_insert (char sep) { diff -r 34b8cd8e6ef5 -r 4e2d2516da22 src/utils.cc --- a/src/utils.cc Fri Jan 03 03:10:57 2003 +0000 +++ b/src/utils.cc Fri Jan 03 05:30:34 2003 +0000 @@ -80,7 +80,7 @@ bool valid_identifier (const char *s) { - if (! s || ! (isalnum (*s) || *s == '_')) + if (! s || ! (isalpha (*s) || *s == '_')) return false; while (*++s != '\0') @@ -96,6 +96,28 @@ return valid_identifier (s.c_str ()); } +DEFCMD (isvarname, args, , + "@deftypefn {Built-in Function} {} isvarname (@var{name})\n\ +Return true if @var{name} is a valid variable name\n\ +@end deftypefn") +{ + octave_value retval; + + int argc = args.length () + 1; + + string_vector argv = args.make_argv ("help"); + + if (error_state) + return retval; + + if (argc == 2) + retval = valid_identifier (argv[1]); + else + print_usage ("isvarname"); + + return retval; +} + int almost_match (const std::string& std, const std::string& s, int min_match_len, int case_sens)