static bool check_collisions(char *n1, char *n2, int counter) { char *pstart, *qstart, *pend, *qend; char nc1[MAX_NAME_SIZE + 2]; char nc2[MAX_NAME_SIZE + 2]; n1 = ForceBar(nc1, n1); n2 = ForceBar(nc2, n2); #if NCURSES_USE_TERMCAP && NCURSES_XNAMES if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) { n1 = skip_index(n1); n2 = skip_index(n2); } #endif for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1) { for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1) { if ((pend - pstart == qend - qstart) && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) { if (counter > 0) (void) fprintf(stderr, "Name collision '%.*s' between\n", (int) (pend - pstart), pstart); return (TRUE); } } } return (FALSE); }
_nc_entry_match(char *n1, char *n2) /* do any of the aliases in a pair of terminal names match? */ { char *pstart, *qstart, *pend, *qend; char nc1[MAX_NAME_SIZE + 2]; char nc2[MAX_NAME_SIZE + 2]; n1 = ForceBar(nc1, n1); n2 = ForceBar(nc2, n2); for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1) for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1) if ((pend - pstart == qend - qstart) && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) return (TRUE); return (FALSE); }