# HG changeset patch # User John W. Eaton # Date 1499711469 14400 # Node ID 60b45297db4a3f04d45f880f8f9bae11dec32840 # Parent eb8b37422e16bf5c1f8684adf557366c04702b92 allow of-general to build with current octave sources * src/of-general-1-symtab-fixes.patch: New file. * dist-files.mk: Update. diff -r eb8b37422e16 -r 60b45297db4a dist-files.mk --- a/dist-files.mk Mon Jul 10 13:26:33 2017 -0400 +++ b/dist-files.mk Mon Jul 10 14:31:09 2017 -0400 @@ -459,6 +459,7 @@ of-fl-core.mk \ of-fuzzy-logic-toolkit.mk \ of-ga.mk \ + of-general-1-symtab-fixes.patch \ of-general.mk \ of-generate_html.mk \ of-geometry.mk \ diff -r eb8b37422e16 -r 60b45297db4a src/of-general-1-symtab-fixes.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/of-general-1-symtab-fixes.patch Mon Jul 10 14:31:09 2017 -0400 @@ -0,0 +1,97 @@ +diff -uNr a/src/packfields.cc b/src/packfields.cc +--- a/src/packfields.cc 2015-05-27 11:43:57.000000000 -0400 ++++ b/src/packfields.cc 2017-07-10 14:21:37.229291149 -0400 +@@ -15,10 +15,11 @@ + + #include + #include ++#include + #include + #include + +-DEFUN_DLD (packfields, args, , ++DEFMETHOD_DLD (packfields, interp, args, , + "-*- texinfo -*-\n\ + @deftypefn {Loadable Function} {} packfields (@var{s_name}, @var{var1}, @var{var2}, @dots{})\n\ + Create struct from variables.\n\ +@@ -44,6 +45,9 @@ + + if (nargin > 0) + { ++ octave::symbol_table::scope *curr_scope ++ = interp.require_current_scope ("packfields"); ++ + std::string struct_name = args (0).string_value (); + string_vector fld_names(nargin-1); + octave_value_list fld_vals(nargin-1); +@@ -64,7 +68,7 @@ + if (valid_identifier (fld_name)) + { + fld_names(i) = fld_name; +- octave_value fld_val = symbol_table::varval (fld_name); ++ octave_value fld_val = curr_scope->varval (fld_name); + if (fld_val.is_defined ()) + fld_vals(i) = fld_val; + else +@@ -77,7 +81,7 @@ + if (! error_state) + { + // Force the symbol to be inserted in caller's scope. +- symbol_table::symbol_record& rec = symbol_table::insert (struct_name); ++ octave::symbol_table::symbol_record& rec = curr_scope->insert (struct_name); + + octave_value& struct_ref = rec.varref (); + +diff -uNr a/src/unpackfields.cc b/src/unpackfields.cc +--- a/src/unpackfields.cc 2015-05-27 11:43:57.000000000 -0400 ++++ b/src/unpackfields.cc 2017-07-10 14:21:30.893590654 -0400 +@@ -15,10 +15,11 @@ + + #include + #include ++#include + #include + #include + +-DEFUN_DLD (unpackfields, args, , ++DEFMETHOD_DLD (unpackfields, interp, args, , + "-*- texinfo -*-\n\ + @deftypefn {Loadable Function} {} unpackfields (@var{s_name}, @var{fld1}, @var{fld2}, @dots{})\n\ + Create variables from fields of a struct.\n\ +@@ -50,6 +51,9 @@ + + if (nargin > 0) + { ++ octave::symbol_table::scope *curr_scope ++ = interp.require_current_scope ("unpackfields"); ++ + std::string struct_name = args (0).string_value (); + string_vector fld_names(nargin-1); + +@@ -75,7 +79,7 @@ + if (! error_state) + { + // Force the symbol to be inserted in caller's scope. +- octave_value struct_val = symbol_table::varval (struct_name); ++ octave_value struct_val = curr_scope->varval (struct_name); + + if (struct_val.is_map ()) + { +@@ -89,7 +93,7 @@ + { + octave_scalar_map::const_iterator iter = map.seek (fld_names(i)); + if (iter != map.end ()) +- symbol_table::assign (fld_names(i), map.contents (iter)); ++ curr_scope->assign (fld_names(i), map.contents (iter)); + else + { + error ("unpackfields: field %s does not exist", fld_names(i).c_str ()); +@@ -114,7 +118,7 @@ + break; + + if (val.is_defined ()) +- symbol_table::assign (fld_names(i), val); ++ curr_scope->assign (fld_names(i), val); + } + } + }