From d40bf3a393d968198dc30b7e7cd3f7b926f3a482 Mon Sep 17 00:00:00 2001 From: jussi Date: Thu, 29 Aug 2024 13:01:21 +0300 Subject: GetBufferAsString. --- src/core.c | 23 +++++++++++++++++++++++ src/lua_core.c | 1 + 2 files changed, 24 insertions(+) (limited to 'src') diff --git a/src/core.c b/src/core.c index 4607ef6..0aa8559 100644 --- a/src/core.c +++ b/src/core.c @@ -3736,6 +3736,29 @@ int lcoreGetBufferData( lua_State* L ) { return 1; } +/* +> 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 ) 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 ); -- cgit v1.2.3