Mercurial > hg > octave-lyh
changeset 3681:df54d394acc0
[project @ 2000-06-26 17:46:58 by jwe]
author | jwe |
---|---|
date | Mon, 26 Jun 2000 17:47:00 +0000 |
parents | b8b0f5ff28e2 |
children | 19e1ac7359fb |
files | ChangeLog examples/oregonator.cc octave-bug.in src/ChangeLog src/variables.cc |
diffstat | 5 files changed, 115 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2000-06-26 John W. Eaton <jwe@bevo.che.wisc.edu> + + * octave-bug.in: Substitute correct values for config_opts, + MACHINE, and CXXFLAGS. + 2000-06-07 John W. Eaton <jwe@bevo.che.wisc.edu> * Makeconf.in (GPERF): Allow substitution.
--- a/examples/oregonator.cc +++ b/examples/oregonator.cc @@ -12,7 +12,7 @@ { ColumnVector dx (3); - ColumnVector x = args(0).column_vector_value (); + ColumnVector x (args(0).vector_value ()); dx(0) = 77.27 * (x(1) - x(0)*x(1) + x(0) - 8.375e-06*pow (x(0), 2)); dx(1) = (x(2) - x(0)*x(1) - x(1)) / 77.27;
--- a/octave-bug.in +++ b/octave-bug.in @@ -13,9 +13,9 @@ # Configuration: these variables are filled in when running make to # compile Octave. -config_opts=%config_opts% +config_opts=%OCTAVE_CONF_config_opts% VERSION=%OCTAVE_CONF_VERSION% -MACHINE=%OCTAVE_CONF_CANONICAL_HOST_TYPE% +MACHINE=%OCTAVE_CANONICAL_HOST_TYPE% F77=%OCTAVE_CONF_F77% FFLAGS=%OCTAVE_CONF_FFLAGS% FPICFLAG=%OCTAVE_CONF_FPICFLAG% @@ -30,7 +30,7 @@ CPICFLAG=%OCTAVE_CONF_CPICFLAG% CXX=%OCTAVE_CONF_CXX% CXX_VERSION=%OCTAVE_CONF_CXX_VERSION% -CXXFLAGS=%OCTAVE_CONF_BUG_CXXFLAGS% +CXXFLAGS=%OCTAVE_CONF_CXXFLAGS% CXXPICFLAG=%OCTAVE_CONF_CXXPICFLAG% LDFLAGS=%OCTAVE_CONF_LDFLAGS% LIBFLAGS=%OCTAVE_CONF_LIBFLAGS%
--- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2000-06-26 John W. Eaton <jwe@bevo.che.wisc.edu> + + * variables.cc (var_matches_any_pattern): New function. + (Fclear): Use it to make exclusive clear work correctly. + 2000-06-08 John W. Eaton <jwe@bevo.che.wisc.edu> * ov-range.h (octave_range::is_numeric_type): New function.
--- a/src/variables.cc +++ b/src/variables.cc @@ -1078,6 +1078,31 @@ // Deleting names from the symbol tables. +static inline bool +var_matches_any_pattern (const std::string& nm, + const string_vector& argv, int argc, int idx) +{ + bool retval = false; + + for (int k = idx; k < argc; k++) + { + std::string patstr = argv[k]; + + if (! patstr.empty ()) + { + glob_match pattern (patstr); + + if (pattern.match (nm)) + { + retval = true; + break; + } + } + } + + return retval; +} + DEFUN_TEXT (clear, args, , "-*- texinfo -*-\n\ @deffn {Command} clear [-x] pattern @dots{}\n\ @@ -1181,46 +1206,94 @@ // pattern matching code if the string doesn't contain any // globbing patterns. - for (int k = idx; k < argc; k++) + if (exclusive) { - std::string patstr = argv[k]; + int lcount = lvars.length (); + + for (int i = 0; i < lcount; i++) + { + std::string nm = lvars[i]; - if (! patstr.empty ()) + if (! var_matches_any_pattern (nm, argv, argc, idx)) + curr_sym_tab->clear (nm); + } + + int gcount = gvars.length (); + + for (int i = 0; i < gcount; i++) { - glob_match pattern (patstr); + std::string nm = gvars[i]; - int lcount = lvars.length (); - - for (int i = 0; i < lcount; i++) + if (! var_matches_any_pattern (nm, argv, argc, idx)) { - std::string nm = lvars[i]; - int match = pattern.match (nm); - if ((exclusive && ! match) || (! exclusive && match)) - curr_sym_tab->clear (nm); + int count = curr_sym_tab->clear (nm); + + if (count > 0) + global_sym_tab->clear (nm, clear_user_functions); } + } + + int fcount = fcns.length (); + + for (int i = 0; i < fcount; i++) + { + std::string nm = fcns[i]; + + if (! var_matches_any_pattern (nm, argv, argc, idx)) + { + curr_sym_tab->clear (nm); - int gcount = gvars.length (); - for (int i = 0; i < gcount; i++) + global_sym_tab->clear (nm, clear_user_functions); + } + } + } + else + { + for (int k = idx; k < argc; k++) + { + std::string patstr = argv[k]; + + if (! patstr.empty ()) { - std::string nm = gvars[i]; - int match = pattern.match (nm); - if ((exclusive && ! match) || (! exclusive && match)) + glob_match pattern (patstr); + + int lcount = lvars.length (); + + for (int i = 0; i < lcount; i++) { - int count = curr_sym_tab->clear (nm); - if (count > 0) - global_sym_tab->clear (nm, clear_user_functions); + std::string nm = lvars[i]; + + if (pattern.match (nm)) + curr_sym_tab->clear (nm); } - } + + int gcount = gvars.length (); + + for (int i = 0; i < gcount; i++) + { + std::string nm = gvars[i]; + + if (pattern.match (nm)) + { + int count = curr_sym_tab->clear (nm); - int fcount = fcns.length (); - for (int i = 0; i < fcount; i++) - { - std::string nm = fcns[i]; - int match = pattern.match (nm); - if ((exclusive && ! match) || (! exclusive && match)) + if (count > 0) + global_sym_tab->clear (nm, clear_user_functions); + } + } + + int fcount = fcns.length (); + + for (int i = 0; i < fcount; i++) { - curr_sym_tab->clear (nm); - global_sym_tab->clear (nm, clear_user_functions); + std::string nm = fcns[i]; + + if (pattern.match (nm)) + { + curr_sym_tab->clear (nm); + + global_sym_tab->clear (nm, clear_user_functions); + } } } }