# HG changeset patch # User John W. Eaton # Date 1263848649 18000 # Node ID 0c3609dd34cf0bdc50d8cb82bbe3c1681e1fc24a # Parent ab80681c44d9cc1c3cb82689260690a9f1a2c48b oct-parse.yy (eval_string): save and set reading_{script,fcn,classdef}_file vars diff -r ab80681c44d9 -r 0c3609dd34cf scripts/ChangeLog --- a/scripts/ChangeLog Mon Jan 18 14:14:08 2010 +0100 +++ b/scripts/ChangeLog Mon Jan 18 16:04:09 2010 -0500 @@ -1,6 +1,10 @@ +2010-01-18 John W. Eaton + + * testfun/test.m: Undo previous change. + 2010-01-18 David Grundberg - * testfun/test.m: Fix !function test blocks. + * testfun/test.m: Append endfunction to function test blocks. 2010-01-17 Thorsten Meyer diff -r ab80681c44d9 -r 0c3609dd34cf scripts/testfun/test.m --- a/scripts/testfun/test.m Mon Jan 18 14:14:08 2010 +0100 +++ b/scripts/testfun/test.m Mon Jan 18 16:04:09 2010 -0500 @@ -348,7 +348,7 @@ __signal_fail); else __name = __block(__name_position(1):__name_position(2)); - __code = [__block "\nendfunction"]; + __code = __block; try eval(__code); ## Define the function __clear = sprintf ("%sclear %s;\n", __clear, __name); diff -r ab80681c44d9 -r 0c3609dd34cf src/ChangeLog --- a/src/ChangeLog Mon Jan 18 14:14:08 2010 +0100 +++ b/src/ChangeLog Mon Jan 18 16:04:09 2010 -0500 @@ -1,3 +1,10 @@ +2010-01-18 John W. Eaton + + * oct-parse.yy (fcn_end): Allow EOF as end of function if + reading from eval string. + (eval_string): Protect and set reading_fcn_file, + reading_script_file, and reading_classdef_file. + 2010-01-18 Jaroslav Hajek * xpow.cc (xpow (const NDArray&, double), xpow (const FloatNDArray&, diff -r ab80681c44d9 -r 0c3609dd34cf src/oct-parse.yy --- a/src/oct-parse.yy Mon Jan 18 14:14:08 2010 +0100 +++ b/src/oct-parse.yy Mon Jan 18 16:04:09 2010 -0500 @@ -1399,7 +1399,8 @@ YYABORT; } - if (! reading_fcn_file && ! reading_script_file) + if (! (reading_fcn_file || reading_script_file + || get_input_from_eval_string)) { yyerror ("function body open at end of input"); YYABORT; @@ -4167,6 +4168,9 @@ frame.protect_var (max_function_depth); frame.protect_var (parsing_subfunctions); frame.protect_var (endfunction_found); + frame.protect_var (reading_fcn_file); + frame.protect_var (reading_script_file); + frame.protect_var (reading_classdef_file); input_line_number = 1; current_input_column = 1; @@ -4178,6 +4182,9 @@ max_function_depth = 0; parsing_subfunctions = false; endfunction_found = false; + reading_fcn_file = false; + reading_script_file = false; + reading_classdef_file = false; current_eval_string = s;