mirror of https://github.com/rusefi/lua.git
"lua_dobuffer" gets an extra argument, with the chunk name
This commit is contained in:
parent
1917149fdd
commit
d97af0de26
19
ldo.c
19
ldo.c
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: ldo.c,v 1.24 1998/01/29 15:59:35 roberto Exp roberto $
|
||||
** $Id: ldo.c,v 1.25 1998/05/31 22:22:00 roberto Exp roberto $
|
||||
** Stack and Call structure of Lua
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
|
@ -392,30 +392,25 @@ int lua_dofile (char *filename)
|
|||
#define SSIZE_PREF "20"
|
||||
|
||||
|
||||
int lua_dostring (char *str)
|
||||
{
|
||||
int status;
|
||||
int lua_dostring (char *str) {
|
||||
char name[SIZE_PREF+25];
|
||||
char *temp;
|
||||
ZIO z;
|
||||
if (str == NULL) return 1;
|
||||
if (str == NULL || *str == ID_CHUNK) return 1;
|
||||
sprintf(name, "(dostring) >> \"%." SSIZE_PREF "s\"", str);
|
||||
temp = strchr(name, '\n');
|
||||
if (temp) { /* end string after first line */
|
||||
*temp = '"';
|
||||
*(temp+1) = 0;
|
||||
}
|
||||
luaZ_sopen(&z, str, name);
|
||||
status = do_main(&z, 0);
|
||||
return status;
|
||||
return lua_dobuffer(str, strlen(str), name);
|
||||
}
|
||||
|
||||
|
||||
int lua_dobuffer (char *buff, int size) {
|
||||
int lua_dobuffer (char *buff, int size, char *name) {
|
||||
int status;
|
||||
ZIO z;
|
||||
luaZ_mopen(&z, buff, size, "(buffer)");
|
||||
status = do_main(&z, 1);
|
||||
luaZ_mopen(&z, buff, size, (name==NULL) ? "(buffer)" : name);
|
||||
status = do_main(&z, buff[0]==ID_CHUNK);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
4
lua.h
4
lua.h
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: lua.h,v 1.20 1998/06/05 22:17:44 roberto Exp roberto $
|
||||
** $Id: lua.h,v 1.21 1998/06/06 21:05:52 roberto Exp roberto $
|
||||
** Lua - An Extensible Extension Language
|
||||
** TeCGraf: Grupo de Tecnologia em Computacao Grafica, PUC-Rio, Brazil
|
||||
** e-mail: lua@tecgraf.puc-rio.br
|
||||
|
@ -41,7 +41,7 @@ void lua_settag (int tag); /* In: object */
|
|||
void lua_error (char *s);
|
||||
int lua_dofile (char *filename); /* Out: returns */
|
||||
int lua_dostring (char *string); /* Out: returns */
|
||||
int lua_dobuffer (char *buff, int size);
|
||||
int lua_dobuffer (char *buff, int size, char *name);
|
||||
/* Out: returns */
|
||||
int lua_callfunction (lua_Object f);
|
||||
/* In: parameters; Out: returns */
|
||||
|
|
23
manual.tex
23
manual.tex
|
@ -1,4 +1,4 @@
|
|||
% $Id: manual.tex,v 1.12 1998/06/02 20:37:04 roberto Exp roberto $
|
||||
% $Id: manual.tex,v 1.13 1998/06/06 21:05:52 roberto Exp roberto $
|
||||
|
||||
\documentclass[11pt]{article}
|
||||
\usepackage{fullpage,bnf}
|
||||
|
@ -39,7 +39,7 @@ Waldemar Celes
|
|||
\tecgraf\ --- Computer Science Department --- PUC-Rio
|
||||
}
|
||||
|
||||
%\date{\small \verb$Date: 1998/06/02 20:37:04 $}
|
||||
%\date{\small \verb$Date: 1998/06/06 21:05:52 $}
|
||||
|
||||
\maketitle
|
||||
|
||||
|
@ -1575,7 +1575,7 @@ using the following functions:
|
|||
\begin{verbatim}
|
||||
int lua_dofile (char *filename);
|
||||
int lua_dostring (char *string);
|
||||
int lua_dobuffer (char *buff, int size);
|
||||
int lua_dobuffer (char *buff, int size, char *name);
|
||||
\end{verbatim}
|
||||
All these functions return an error code:
|
||||
0, in case of success; non zero, in case of errors.
|
||||
|
@ -1583,11 +1583,18 @@ More specifically, \verb|lua_dofile| returns 2 if for any reason
|
|||
it could not open the file.
|
||||
The function \verb|lua_dofile|, if called with argument \verb|NULL|,
|
||||
executes the \verb|stdin| stream.
|
||||
Function \verb|lua_dofile| is also able to execute pre-compiled chunks.
|
||||
It automatically detects whether the file is text or binary,
|
||||
and loads it accordingly (see program \IndexVerb{luac}).
|
||||
Function \verb|lua_dostring| executes only source code,
|
||||
and function \verb|lua_dobuffer| executes only pre-compiled chunks.
|
||||
Functions \verb|lua_dofile| and \verb|lua_dobuffer|
|
||||
are both able to execute pre-compiled chunks.
|
||||
They automatically detect whether the chunk is text or binary,
|
||||
and load it accordingly (see program \IndexVerb{luac}).
|
||||
Function \verb|lua_dostring| executes only source code.
|
||||
|
||||
The third parameter to \verb|lua_dobuffer| (\verb|name|)
|
||||
is the ``name of the chunk'',
|
||||
used in error messages and debug information.
|
||||
In files this name is the file name,
|
||||
and \verb|lua_dostring| uses a small prefix
|
||||
of the string as the chunk name.
|
||||
|
||||
These functions return, in structure lua2C,
|
||||
any values eventually returned by the chunks.
|
||||
|
|
Loading…
Reference in New Issue