#760: Interactive sessions with HLLCompiler (and readline) never end
-------------------+--------------------------------------------------------
Reporter: flh | Type: patch
Status: new | Priority: normal
Milestone: | Component: none
Version: trunk | Severity: medium
Keywords: | Lang:
Patch: new | Platform: all
-------------------+--------------------------------------------------------
Sending EOF to the standard input (typically: hitting Control-G) does not
make HLLCompiler end interactive sessions when readline is used.
To reproduce: take your favorite HLL written with HLLCompiler, and a
Parrot with readline, and run it without any argument. This should start
an interactive session (i.e., you get a prompt for the language), but
hitting ^G makes HLLCompiler display a new prompt instead of exiting.
This bug has two origins:
* the "readline_interactive" method of FileHandle always returns a string
(that's because of its type: when it seems to return NULL, it is actually
converted to the empty string). On the other hand, HLLCompiler tests if
the value returned by "readline_interactive" is null to detect EOF: this
test is always false... The fix is to test EOF using the "get_bool" vtable
of FileHandle; and
* the method "readline_interactive" never sets the EOF flag when readline
is activated.
The attached patch fixes this.
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/760>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets