diff src/toplev.cc @ 9990:2b008f1d3794

octave_call_stack::do_goto_frame_relative: stop searching at top frame
author John W. Eaton <jwe@octave.org>
date Tue, 15 Dec 2009 16:02:48 -0500
parents 692ab4eaf965
children 2cd940306a06
line wrap: on
line diff
--- a/src/toplev.cc	Tue Dec 15 14:27:18 2009 -0500
+++ b/src/toplev.cc	Tue Dec 15 16:02:48 2009 -0500
@@ -387,7 +387,7 @@
 
       octave_function *f = elt.fcn;
 
-      if (f && f->is_user_code ())
+      if (frame == 0 || (f && f->is_user_code ()))
 	{
 	  if (nskip > 0)
 	    nskip--;
@@ -403,18 +403,20 @@
 
 	      if (verbose)
 		{
-		  tree_statement *s = elt.stmt;
-		  int l = -1;
-		  int c = -1;
-		  if (s)
-		    {
-		      l = s->line ();
-		      c = s->column ();
-		    }
+                  std::ostringstream buf;
+
+                  if (f)
+                    {
+                      tree_statement *s = elt.stmt;
 
-		  std::ostringstream buf;
-		  buf << f->name () << ": " << " line " << l
-		      << ", column " << c << std::endl;
+                      int l = s ? s->line () : -1;
+                      int c = s ? s->column () : -1;
+
+                      buf << f->name () << ": " << " line " << l
+                          << ", column " << c << std::endl;
+                    }
+                  else
+                    buf << "at top level" << std::endl;
 
 		  octave_stdout << buf.str ();
 		}