int lpc = 0;
node_list_or(GListPtr list1, GListPtr list2, gboolean filter){	node_t *other_node = NULL;	GListPtr result = NULL;	int lpc = 0;	result = node_list_dup(list1, filter);	slist_iter(		node, node_t, list2, lpc,		if(node == NULL) {			continue;		}		other_node = (node_t*)pe_find_node(			result, node->details->uname);				if(other_node != NULL) {			node_merge_weights(other_node, node);			if(filter && node->weight < 0) {				/* TODO: remove and free other_node */			}					} else if(filter && node->weight < 0) {				  		} else {			node_t *new_node = node_copy(node);			result = g_list_append(result, new_node);		}		);	return result;}