[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: print() and the interactive prompt
- From: HyperHacker <hyperhacker@...>
- Date: Wed, 13 Jul 2011 18:51:30 -0600
On Wed, Jul 13, 2011 at 18:43, Patrick Donnelly <batrick@batbytes.com> wrote:
> On Wed, Jul 13, 2011 at 8:32 PM, HyperHacker <hyperhacker@gmail.com> wrote:
>> On Wed, Jul 13, 2011 at 18:27, Patrick Donnelly <batrick@batbytes.com> wrote:
>>> On Wed, Jul 13, 2011 at 8:22 PM, HyperHacker <hyperhacker@gmail.com> wrote:
>>>> On Wed, Jul 13, 2011 at 16:42, Patrick Donnelly <batrick@batbytes.com> wrote:
>>>>> Use debug.getinfo to see if your replacement print function is being called
>>>>> from the first function on the call stack (the interpreter). It would look
>>>>> like:
>>>>>
>>>>> if debug.getinfo(3) == nil then
>>>>> -- interpreter
>>>>> else
>>>>> -- normal
>>>>> end
>>>>
>>>> You might also play with the LUA_INIT environment variable. This is
>>>> used by both the interpreter and the interactive prompt, but from
>>>> there you can do things like define your own prettyprint() in a
>>>> startup script, and just do print=prettyprint whenever you start the
>>>> prompt. There are also command-line options you can use to similar
>>>> effect.
>>>
>>> Um, you just described what the OP is already doing. He wants his
>>> print replacement function to distinguish between the interpreter
>>> calling print and a script calling print. My response gave him a
>>> solution...
>>>
>>> --
>>> - Patrick Donnelly
>>>
>>>
>>
>> Ah yes, I didn't read the original message close enough...
>> Your method seems like it could fail if you did print() from the
>> outermost scope of a script. Are there really three stack levels at
>> that point?
>
> If you tested it you would see it in fact works.
>
> --
> - Patrick Donnelly
>
>
Alright, I'll shut up then :)
--
Sent from my toaster.