Fixed it another way. (There was no problem with DO_CMP since there's no
loop there. It's a little bit better to evaluate it outside the macro,
though, since it can otherwise be evaluated twice.)
Fixed a bug in *_add_after and *_delete_node. Added functions to delete
nodes without moving data between them.