changeset 3986:7cb85d5c7aad

[project @ 2002-07-11 15:37:02 by jwe]
author jwe
date Thu, 11 Jul 2002 15:37:02 +0000
parents fa0ae9105656
children 258c1d15ad78
files src/ChangeLog src/defun.cc src/error.cc
diffstat 3 files changed, 16 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2002-07-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defun.cc (check_version): Improve error message.
+	* error.cc (warning): Only print backtrace once per warning series.
+	Print backtrace before warning messages.
+
 2002-07-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* lex.l (maybe_unput_comma): Also handle '{' as an indexing op.
--- a/src/defun.cc
+++ b/src/defun.cc
@@ -69,8 +69,13 @@
 check_version (const std::string& version, const std::string& fcn)
 {
   if (version != OCTAVE_VERSION)
-    warning ("incompatible version %s found in function `%s'",
-	     version.c_str (), fcn.c_str ());
+    {
+      warning ("incompatible version %s found in function `%s'",
+	       version.c_str (), fcn.c_str ());
+      warning ("this can lead to incorrect results or other failures");
+      warning ("you can fix this problem by recmpiling this .oct file");
+
+    }
 }
 
 // Install variables and functions in the symbol tables.
--- a/src/error.cc
+++ b/src/error.cc
@@ -352,6 +352,9 @@
 {
   if (Vwarning_option != "off")
     {
+      if (Vwarning_option == "backtrace" && ! warning_state)
+	pr_where ("warning");
+
       va_list args;
       va_start (args, fmt);
       vwarning ("warning", fmt, args);
@@ -359,9 +362,6 @@
 
       warning_state = 1;
 
-      if (Vwarning_option == "backtrace")
-	pr_where ("warning");
-
       if ((interactive || forced_interactive)
 	  && Vdebug_on_warning && curr_function)
 	{