# HG changeset patch # User John W. Eaton # Date 1260910968 18000 # Node ID 2b008f1d3794ad126c3112d545faeb9f57530de2 # Parent d36f8c473dff043c9f3bcb8f2b8075ab6d63246c octave_call_stack::do_goto_frame_relative: stop searching at top frame diff -r d36f8c473dff -r 2b008f1d3794 src/ChangeLog --- a/src/ChangeLog Tue Dec 15 14:27:18 2009 -0500 +++ b/src/ChangeLog Tue Dec 15 16:02:48 2009 -0500 @@ -1,3 +1,8 @@ +2009-12-15 John W. Eaton + + * toplev.cc (do_goto_frame_relative): Stop searching at top + stack frame even though it is not a function. + 2009-12-15 Jaroslav Hajek * DLD-FUNCTIONS/cellfun.cc (Fcellfun): Preserve original nargout. Call diff -r d36f8c473dff -r 2b008f1d3794 src/toplev.cc --- 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 (); }