luaur_vm/functions/
lua_l_addlstring.rs1use crate::functions::extendstrbuf::extendstrbuf;
2use crate::type_aliases::lua_l_strbuf::LuaLStrbuf;
3use core::ffi::c_char;
4use core::ptr::copy_nonoverlapping;
5
6pub fn lua_l_addlstring(B: *mut LuaLStrbuf, s: *const c_char, len: usize) {
7 unsafe {
8 let current_buffer_size = (*B).end.offset_from((*B).p) as usize;
9 if current_buffer_size < len as usize {
10 extendstrbuf(B, len - current_buffer_size, -1);
11 }
12
13 copy_nonoverlapping(s as *const u8, (*B).p as *mut u8, len);
14 (*B).p = (*B).p.offset(len as isize);
15 }
16}