aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-04-19 13:34:35 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-04-19 13:34:35 -0300
commita45945b6d511b00b1c84dc73881474030737e956 (patch)
tree438343a3f53c9a4755f16d7dc66fdcede6a6a504
parent9e1f1b1f6230f71d95eba4457d8ac2719ed9e7c7 (diff)
downloadlua-a45945b6d511b00b1c84dc73881474030737e956.tar.gz
lua-a45945b6d511b00b1c84dc73881474030737e956.tar.bz2
lua-a45945b6d511b00b1c84dc73881474030737e956.zip
new macro 'lua_pointer2str' to encapsulate use of 'l_sprintf' inside
the kernel
-rw-r--r--lobject.c5
-rw-r--r--luaconf.h9
2 files changed, 11 insertions, 3 deletions
diff --git a/lobject.c b/lobject.c
index e234df3d..4a7006b1 100644
--- a/lobject.c
+++ b/lobject.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lobject.c,v 2.112 2016/06/27 13:15:08 roberto Exp roberto $ 2** $Id: lobject.c,v 2.113 2016/12/22 13:08:50 roberto Exp roberto $
3** Some generic functions over Lua objects 3** Some generic functions over Lua objects
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -435,7 +435,8 @@ const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) {
435 } 435 }
436 case 'p': { /* a pointer */ 436 case 'p': { /* a pointer */
437 char buff[4*sizeof(void *) + 8]; /* should be enough space for a '%p' */ 437 char buff[4*sizeof(void *) + 8]; /* should be enough space for a '%p' */
438 int l = l_sprintf(buff, sizeof(buff), "%p", va_arg(argp, void *)); 438 void *p = va_arg(argp, void *);
439 int l = lua_pointer2str(buff, sizeof(buff), p);
439 pushstr(L, buff, l); 440 pushstr(L, buff, l);
440 break; 441 break;
441 } 442 }
diff --git a/luaconf.h b/luaconf.h
index 118f997a..33ff3604 100644
--- a/luaconf.h
+++ b/luaconf.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: luaconf.h,v 1.258 2016/12/20 18:37:00 roberto Exp roberto $ 2** $Id: luaconf.h,v 1.259 2016/12/22 13:08:50 roberto Exp roberto $
3** Configuration file for Lua 3** Configuration file for Lua
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -621,6 +621,13 @@
621 621
622 622
623/* 623/*
624@@ lua_pointer2str converts a pointer to a readable string in a
625** non-specified way.
626*/
627#define lua_pointer2str(buff,sz,p) l_sprintf(buff,sz,"%p",p)
628
629
630/*
624@@ lua_number2strx converts a float to an hexadecimal numeric string. 631@@ lua_number2strx converts a float to an hexadecimal numeric string.
625** In C99, 'sprintf' (with format specifiers '%a'/'%A') does that. 632** In C99, 'sprintf' (with format specifiers '%a'/'%A') does that.
626** Otherwise, you can leave 'lua_number2strx' undefined and Lua will 633** Otherwise, you can leave 'lua_number2strx' undefined and Lua will