definitions for 'luai_writestring'/'luai_writeline'/'luai_writestringerror'

moved to 'lauxlib.h' (they do not need to be stable or configurable) +
prefixes changed from 'luai_' to 'lua_' (they are not part of the core)
This commit is contained in:
Roberto Ierusalimschy 2014-10-29 14:12:30 -02:00
parent 351a446ec5
commit 05afee0f50
5 changed files with 46 additions and 21 deletions

View File

@ -1,5 +1,5 @@
/*
** $Id: lauxlib.c,v 1.270 2014/10/22 11:44:20 roberto Exp roberto $
** $Id: lauxlib.c,v 1.271 2014/10/25 11:50:46 roberto Exp roberto $
** Auxiliary functions for building Lua libraries
** See Copyright Notice in lua.h
*/
@ -938,7 +938,7 @@ static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
static int panic (lua_State *L) {
luai_writestringerror("PANIC: unprotected error in call to Lua API (%s)\n",
lua_writestringerror("PANIC: unprotected error in call to Lua API (%s)\n",
lua_tostring(L, -1));
return 0; /* return to Lua to abort */
}

View File

@ -1,5 +1,5 @@
/*
** $Id: lauxlib.h,v 1.126 2014/10/01 11:54:56 roberto Exp roberto $
** $Id: lauxlib.h,v 1.127 2014/10/25 11:50:46 roberto Exp roberto $
** Auxiliary functions for building Lua libraries
** See Copyright Notice in lua.h
*/
@ -204,6 +204,31 @@ LUALIB_API void (luaL_openlib) (lua_State *L, const char *libname,
#endif
/*
** {==================================================================
** "Abstraction Layer" for basic report of messages and errors
** ===================================================================
*/
/* print a string */
#if !defined(lua_writestring)
#define lua_writestring(s,l) fwrite((s), sizeof(char), (l), stdout)
#endif
/* print a newline and flush the output */
#if !defined(lua_writeline)
#define lua_writeline() (lua_writestring("\n", 1), fflush(stdout))
#endif
/* print an error message */
#if !defined(lua_writestringerror)
#define lua_writestringerror(s,p) \
(fprintf(stderr, (s), (p)), fflush(stderr))
#endif
/* }================================================================== */
/*
** {============================================================
** Compatibility with deprecated conversions

View File

@ -1,5 +1,5 @@
/*
** $Id: lbaselib.c,v 1.303 2014/10/17 19:17:55 roberto Exp roberto $
** $Id: lbaselib.c,v 1.304 2014/10/25 11:50:46 roberto Exp roberto $
** Basic library
** See Copyright Notice in lua.h
*/
@ -33,11 +33,11 @@ static int luaB_print (lua_State *L) {
s = lua_tolstring(L, -1, &l); /* get result */
if (s == NULL)
return luaL_error(L, "'tostring' must return a string to 'print'");
if (i>1) luai_writestring("\t", 1);
luai_writestring(s, l);
if (i>1) lua_writestring("\t", 1);
lua_writestring(s, l);
lua_pop(L, 1); /* pop result */
}
luai_writeline();
lua_writeline();
return 0;
}

View File

@ -1,5 +1,5 @@
/*
** $Id: ldblib.c,v 1.142 2014/10/01 11:54:56 roberto Exp roberto $
** $Id: ldblib.c,v 1.143 2014/10/17 11:07:26 roberto Exp roberto $
** Interface from Lua to its debug API
** See Copyright Notice in lua.h
*/
@ -374,13 +374,13 @@ static int db_gethook (lua_State *L) {
static int db_debug (lua_State *L) {
for (;;) {
char buffer[250];
luai_writestringerror("%s", "lua_debug> ");
lua_writestringerror("%s", "lua_debug> ");
if (fgets(buffer, sizeof(buffer), stdin) == 0 ||
strcmp(buffer, "cont\n") == 0)
return 0;
if (luaL_loadbuffer(L, buffer, strlen(buffer), "=(debug command)") ||
lua_pcall(L, 0, 0, 0))
luai_writestringerror("%s\n", lua_tostring(L, -1));
lua_writestringerror("%s\n", lua_tostring(L, -1));
lua_settop(L, 0); /* remove eventual returns */
}
}

20
lua.c
View File

@ -1,5 +1,5 @@
/*
** $Id: lua.c,v 1.216 2014/10/20 18:19:26 roberto Exp roberto $
** $Id: lua.c,v 1.217 2014/10/20 22:21:05 roberto Exp roberto $
** Lua stand-alone interpreter
** See Copyright Notice in lua.h
*/
@ -126,12 +126,12 @@ static void laction (int i) {
static void print_usage (const char *badoption) {
luai_writestringerror("%s: ", progname);
lua_writestringerror("%s: ", progname);
if (badoption[1] == 'e' || badoption[1] == 'l')
luai_writestringerror("'%s' needs argument\n", badoption);
lua_writestringerror("'%s' needs argument\n", badoption);
else
luai_writestringerror("unrecognized option '%s'\n", badoption);
luai_writestringerror(
lua_writestringerror("unrecognized option '%s'\n", badoption);
lua_writestringerror(
"usage: %s [options] [script [args]]\n"
"Available options are:\n"
" -e stat execute string 'stat'\n"
@ -151,8 +151,8 @@ static void print_usage (const char *badoption) {
** (if present)
*/
static void l_message (const char *pname, const char *msg) {
if (pname) luai_writestringerror("%s: ", pname);
luai_writestringerror("%s\n", msg);
if (pname) lua_writestringerror("%s: ", pname);
lua_writestringerror("%s\n", msg);
}
@ -208,8 +208,8 @@ static int docall (lua_State *L, int narg, int nres) {
static void print_version (void) {
luai_writestring(LUA_COPYRIGHT, strlen(LUA_COPYRIGHT));
luai_writeline();
lua_writestring(LUA_COPYRIGHT, strlen(LUA_COPYRIGHT));
lua_writeline();
}
@ -410,7 +410,7 @@ static void doREPL (lua_State *L) {
else report(L, status);
}
lua_settop(L, 0); /* clear stack */
luai_writeline();
lua_writeline();
progname = oldprogname;
}