changeset 28700:7d63f42e94be stable

allow keboard to work in functions defined in script files (bug #54789) * oct-parse.yy (base_parser::start_function): Store info about function file name, parse time, directory name, and package name for all functions.
author John W. Eaton <jwe@octave.org>
date Wed, 09 Sep 2020 15:15:47 -0400
parents d45d1b4bb919
children 712666d48b23 c4cf47906bd2
files libinterp/parse-tree/oct-parse.yy
diffstat 1 files changed, 9 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/parse-tree/oct-parse.yy	Wed Sep 09 13:41:46 2020 -0400
+++ b/libinterp/parse-tree/oct-parse.yy	Wed Sep 09 15:15:47 2020 -0400
@@ -3639,16 +3639,17 @@
           }
       }
 
+    sys::time now;
+
+    fcn->stash_fcn_file_name (m_lexer.m_fcn_file_full_name);
+    fcn->stash_fcn_file_time (now);
+    fcn->stash_dir_name (m_lexer.m_dir_name);
+    fcn->stash_package_name (m_lexer.m_package_name);
+    fcn->mark_as_system_fcn_file ();
+    fcn->stash_function_name (id_name);
+
     if (m_lexer.m_reading_fcn_file || m_lexer.m_reading_classdef_file || m_autoloading)
       {
-        sys::time now;
-
-        fcn->stash_fcn_file_name (m_lexer.m_fcn_file_full_name);
-        fcn->stash_fcn_file_time (now);
-        fcn->stash_dir_name (m_lexer.m_dir_name);
-        fcn->stash_package_name (m_lexer.m_package_name);
-        fcn->mark_as_system_fcn_file ();
-
         if (m_fcn_file_from_relative_lookup)
           fcn->mark_relative ();
 
@@ -3689,8 +3690,6 @@
                  id_name.c_str (), m_lexer.m_fcn_file_full_name.c_str ());
       }
 
-    fcn->stash_function_name (id_name);
-
     // Record help text for functions other than nested functions.
     // We cannot currently record help for nested functions (bug #46008)
     // because the doc_string of the outermost function is read first,