diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core.c | 23 | ||||
| -rw-r--r-- | src/lua_core.c | 1 |
2 files changed, 24 insertions, 0 deletions
@@ -3737,6 +3737,29 @@ int lcoreGetBufferData( lua_State* L ) { } /* +> string = RL.GetBufferAsString( Buffer buffer ) + +Get buffer as string + +- Success return string +*/ +int lcoreGetBufferAsString( lua_State* L ) { + Buffer* buffer = uluaGetBuffer( L, 1 ); + + size_t size = buffer->size * getBufferElementSize( buffer ) + 1; + char* str = malloc( size ); + + memset( str, 0, size ); + memcpy( str, buffer->data, size - 1 ); + + lua_pushstring( L, buffer->data ); + + free( str ); + + return 1; +} + +/* > type = RL.GetBufferType( Buffer buffer ) Get buffer type diff --git a/src/lua_core.c b/src/lua_core.c index 50fdfda..7250cfc 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -1519,6 +1519,7 @@ void luaRegister() { assingGlobalFunction( "CopyBufferData", lcoreCopyBufferData ); assingGlobalFunction( "SetBufferData", lcoreSetBufferData ); assingGlobalFunction( "GetBufferData", lcoreGetBufferData ); + assingGlobalFunction( "GetBufferAsString", lcoreGetBufferAsString ); assingGlobalFunction( "GetBufferType", lcoreGetBufferType ); assingGlobalFunction( "GetBufferSize", lcoreGetBufferSize ); assingGlobalFunction( "GetBufferElementSize", lcoreGetBufferElementSize ); |
