コード例 #1
0
ファイル: comp_parse.c プロジェクト: chitranshi/ncurses
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);
}
コード例 #2
0
ファイル: comp_parse.c プロジェクト: 2015520/SequoiaDB
_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);
}