/* Returns the new list of CRAdditionalSel or NULL if an error arises.  */
CRAdditionalSel* cr_additional_sel_append(CRAdditionalSel *a_this, CRAdditionalSel *a_sel)
/* Returns the new list of CRAdditionalSel or NULL if an error arises.  */
CRAdditionalSel* cr_additional_sel_append(CRAdditionalSel *a_this, CRAdditionalSel *a_sel)
{
        CRAdditionalSel *cur_sel = NULL;
        g_return_val_if_fail (a_sel, NULL);
        if (a_this == NULL) {
                return a_sel;
        }
        if (a_sel == NULL)
                return NULL;
        for (cur_sel = a_this;
             cur_sel && cur_sel->next; cur_sel = cur_sel->next) ;
        g_return_val_if_fail (cur_sel != NULL, NULL);
        cur_sel->next = a_sel;
        a_sel->prev = cur_sel;
        return a_this;
}