static int tree_qsort_cmp(const void *v1, const void *v2) { struct tree *t1 = *(struct tree **)v1; struct tree *t2 = *(struct tree **)v2; return(sigcmp(t2->name, t1->name)); /* because list must be in rvs */ }
static int tracesignamecompare(const void *s1, const void *s2) { char *str1, *str2; str1=(*((Trptr *)s1))->name; str2=(*((Trptr *)s2))->name; if((!str1) || (!*str1)) /* force blank lines to go to bottom */ { if((!str2) || (!*str2)) { return(0); } else { return(1); } } else if((!str2) || (!*str2)) { return(-1); /* str1==str2==zero case is covered above */ } return(sigcmp(str1, str2)); }