From: SourceForge.net <no...@so...> - 2008-06-30 23:29:52
|
Bugs item #2007198, was opened at 2008-07-01 01:03 Message generated for change (Comment added) made by ferrieux You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=2007198&group_id=10894 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 43. Regexp Group: current: 8.5.3 Status: Open Resolution: None >Priority: 7 Private: No Submitted By: Nobody/Anonymous (nobody) >Assigned to: miguel sofer (msofer) Summary: eval after regexp fails unless followed by a puts Initial Comment: Version tcl8.5-thread-linux-x86_64 downloaded 2008-06-12. OS Fedora 9 Old program suddenly fails on this system. Here is a snippet that when run via wish8.5 fails with an error in the eval command. But when the next line puts is uncommented it performs the eval with no error. ###########################################3 set fong "--EVAL set wrap 490" while { 1 } { catch { if { [regexp {^--EVAL(.*)} $fong waste fong ] } { puts "fong was an EVAL" eval $fong ##### Uncomment the next command and the eval works ##### correctly #puts -nonewline "" continue} puts "Went on past" continue } error if { $error != "" } { puts "There was an error, the catch value is $error" exit } puts "exiting with wrap set to $wrap" exit } ---------------------------------------------------------------------- >Comment By: Alexandre Ferrieux (ferrieux) Date: 2008-07-01 01:30 Message: Logged In: YES user_id=496139 Originator: NO Hmmm, half a red herring there. First, notice that checking the value of the 2nd arg to [catch] without checking its return value is bad practice (possible collisions). Second, the whole report can be simplified to the following: set ev {set x 12} catch {eval $ev;continue} y puts $y ==> 12 catch {eval {set x 13};continue} y puts $y ==> Have to check about the contract of [continue] (is it supposed to reset the interp's result ?) But indeed the impact of a dynamic eval is strange. Possibly an effect of compilation ? Since this is rather linked to basic execution than regexp, reassigning to Miguel. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=2007198&group_id=10894 |