lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Thanks - I did actually read this but did not twig that it would have this
effect - the @ prefix is documented as making this a filename (actually due
to the font used in the Reference Manual it is almost impossible to see what
the symbol is!).

Using this seems like a fudge - some third party debugging tool might
reasonably then try to use your name as a filename and fall over. 

I think this is a case were the documentation is good, the implemented
behaviour is at fault. There are three distinct cases (filename, source
code, user-supplied name) and there should be an explicit marker for each.

-----Original Message-----
From: lua-bounces@bazar2.conectiva.com.br
[mailto:lua-bounces@bazar2.conectiva.com.br] On Behalf Of Matthew Wild
Sent: 19 November 2009 22:03
To: Lua list
Subject: Re: Error reporting: the chunk name

2009/11/19 John Hind <john.hind@zen.co.uk>:
> I have been trying to improve the error reporting in some of my code and
> came across another slightly rough area of Lua. I have been using
> luaL_loadstring to load text from a Windows EXE named resource. Errors get
> reported something like:
>
>
>
> [string: "x = x + 1"]:1: attempt to perform arithmetic on global 'x' (a
nil
> value)
>
>
>
> I tried using luaL_loadbuffer, specifying the name of the resource as the
> last parameter (chunk name). But it still insists on adding the
> inappropriate 'string' prefix and enclosing my supplied name in quotes:
>
>
>
> [string: "myres"]:1: attempt to perform arithmetic on global 'x' (a nil
> value)
>
>
>
> Even using lua_load with a custom lua_Reader function, the unwanted
> prefixing is still done, so it seems to be impossible to get "under" this
> unwanted processing with the published API.
>

Try prefixing the chunk name you pass with '@', e.g. '@myres'. Worked
that one out the hard way :)

Matthew