Author: fperrad
Date: Fri Jan 9 10:16:51 2009
New Revision: 35316
Modified:
trunk/languages/lua/CREDITS
trunk/languages/lua/lua.pir
Log:
[Lua]
- refactor dotty() with FileHandler.readline_interactive()
- increment Copyright millesime
Modified: trunk/languages/lua/CREDITS
==============================================================================
--- trunk/languages/lua/CREDITS (original)
+++ trunk/languages/lua/CREDITS Fri Jan 9 10:16:51 2009
@@ -54,7 +54,7 @@
D: in ppd25cx branch
D: in ppd17pmc branch
-N: James E Keenan
+N: James E Keenan (kid51)
U: jkeenan
D: fix coding standard
Modified: trunk/languages/lua/lua.pir
==============================================================================
--- trunk/languages/lua/lua.pir (original)
+++ trunk/languages/lua/lua.pir Fri Jan 9 10:16:51 2009
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2008, The Perl Foundation.
+# Copyright (C) 2006-2009, The Perl Foundation.
# $Id$
=head1 NAME
@@ -375,25 +375,23 @@
.local pmc env
env = get_hll_global '_G'
.const 'LuaString' k_print = 'print'
- .local int has_readline
.local pmc stdin
stdin = getstdin
- has_readline = stdin.'set_readline_interactive'(1)
+ .local string code
L1:
- .local pmc code
- code = get_line (stdin, has_readline, 1)
- if null code goto L2 # no input
- unless code goto L2 # empty
+ code = get_line(stdin, 1)
+ if code == '' goto L1 # no input
+ if code == '\04' goto L2
($P0, $S0) = lua_loadbuffer(code, '=stdin')
unless null $P0 goto L3
L4:
$I0 = index $S0, "'eof' expected"
if $I0 < 0 goto L5
- .local pmc code2
- code2 = get_line (stdin, has_readline, 0)
- if null code2 goto L5 # no input
- unless code2 goto L5 # empty
- code = concat code2
+ .local string code2
+ code2 = get_line(stdin, 0)
+ if code2 == '' goto L5 # no input
+ if code2 == '\04' goto L2
+ code .= code2
($P0, $S0) = lua_loadbuffer(code, '=stdin')
if null $P0 goto L4
L3:
@@ -415,31 +413,24 @@
.sub 'get_line' :anon
.param pmc stdin
- .param int has_readline
.param int firstline
.local string prmt
prmt = get_prompt(firstline)
- printerr prmt
- .local pmc code
- if has_readline < 0 goto L1
- code = stdin.'readline'('')
- if null code goto L2 # no input
+ .local string code
+ push_eh _handler
+ code = stdin.'readline_interactive'(prmt)
+ pop_eh
+ if code == '' goto L2 # no input
code .= "\n"
- goto L3
- L1:
- $S0 = readline stdin
- new code, 'String'
- code = $S0
- L3:
unless firstline goto L2
- $S0 = code
- $S1 = substr $S0, 0, 1
+ $S1 = substr code, 0, 1
unless $S1 == '=' goto L2
- $S0 = substr $S0, 1 # first line starts with `='
- $S0 = 'return ' . $S0
- set code, $S0 # change it to `return'
+ $S0 = substr code, 1 # first line starts with `='
+ code = 'return ' . $S0 # change it to `return'
L2:
.return (code)
+ _handler:
+ .return ('\04') # Ctrl-D
.end
@@ -475,7 +466,7 @@
.sub 'print_version' :anon
- l_message('', "Lua 5.1 on Parrot Copyright (C) 2005-2008, The Perl
Foundation.")
+ l_message('', "Lua 5.1 on Parrot Copyright (C) 2005-2009, The Perl
Foundation.")
.end