Ticket #760 (new patch) — at Initial Version

Opened 13 years ago

Last modified 11 years ago

Interactive sessions with HLLCompiler (and readline) never end

Reported by: flh Owned by:
Priority: normal Milestone:
Component: none Version: trunk
Severity: medium Keywords:
Cc: Language:
Patch status: new Platform: all

Description

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.

Change History

Changed 13 years ago by flh

Readline sets EOF in FileHandle and HLLCompiler checks EOF

Note: See TracTickets for help on using tickets.