Document title (completely missing)
2022-08-12
This title seems to be missing
Hello code …
How it works
// test.cpp:
halfword tex_copy_node(halfword p)
{
/*tex
We really need a stub for copying because mem might move in the meantime due to resizing!
*/
if (p < 0 || p >= lmt_node_memory_state.nodes_data.allocated) {
return tex_formatted_error("nodes", "attempt to copy an impossible node %d", (int) p);
} else if (p > lmt_node_memory_state.reserved && lmt_node_memory_state.nodesizes[p] == 0) {
return tex_formatted_error("nodes", "attempt to copy a free %s node %d", get_node_name(node_type(p)), (int) p);
} else {
/*tex type of node */
halfword t = node_type(p);
int i = get_node_size(t);
/*tex current node being fabricated for new list */
halfword r = tex_get_node(i);
/*tex this saves work */
memcpy((void *) (lmt_node_memory_state.nodes + r), (void *) (lmt_node_memory_state.nodes + p), (sizeof(memoryword) * (unsigned) i));
if (tex_nodetype_is_complex(i)) {
// halfword copy_stub;
if (tex_nodetype_has_attributes(t)) {
add_attribute_reference(node_attr(p));
node_prev(r) = null;
lmt_properties_copy(lmt_lua_state.lua_instance, r, p);
}
node_next(r) = null;
switch (t) {
case glue_node:
copy_sub_list(glue_leader_ptr(r), glue_leader_ptr(p));
break;