#############################################################  -*- c -*-
## generic include for XXX. Do not use directly.
##
## $Id$
########################################################################
@if $m2c_mark_boundary == 1@
/** START code generated by $RCSfile$ $Revision$ */
@end@
########################################################################
##
    /*
@if $m2c_node_needlength == 1@
     * copy $node and ${node}_len data
@else@
     * copy $node data
@end@
     * set ${m2c_ctx_lh} from ${m2c_ctx_rh}
     */
@if ($m2c_include_examples != 0) || ("$m2c_data_context" eq "generated")@
@   if $m2c_node_needlength == 0@
    ${m2c_ctx_lh} = ${m2c_ctx_rh};
@   else@
    memcpy( ${m2c_ctx_lh}, ${m2c_ctx_rh},
            (${m2c_ctx_rhs} * sizeof(${m2c_ctx_lh}[0])));
    ${m2c_ctx_lhs} = ${m2c_ctx_rhs};
@   end@ # need length
@end@

##
########################################################################
@if $m2c_mark_boundary == 1@
/** END code generated by $RCSfile$ $Revision$ */
@end@
