[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Overwrite a built in Lua function with an application specific version
- From: "Thomas Harning Jr." <harningt@...>
- Date: Wed, 13 Jun 2007 08:49:22 -0400
On 6/13/07, RJP Computing <rjpcomputing@gmail.com> wrote:
I am new to Lua so I apologize if this question is easy. I have a GUI
application that does not have a terminal and I wanted script writers to be
able to see there print() statements in the GUI. Now I am sure I could catch
the standard in and out, but that is a real pain. I was hoping I could
overwrite the print function in Lua to call my applications version of it
and then display it in my user interface. Can this be done?
Any function can be overwritten by reassigning its global... (you can
setup environment tables+metatables to prevent such overwriting.. but
thats another story.
Basically what you'd want to do is:
function print(...)
local args = {...}
for i = 1, select('#', ...) do
doSomeIO(args[i])
end
end
or more optimally
function print(...)
local args = {...}
for i = 1, select('#', ...) do if args[i] == nil then args[i] =
(somethingElse) end
doSomeIO(table.concat(args, separator))
end
Hopefully that helps out
--
Thomas Harning Jr.