Lines Matching refs:mlen
226 g->mlen = 0;
249 if (g->mlen > 3) {
1353 * findmust - fill in must and mlen with longest mandatory literal string
1359 * Note that must and mlen got initialized during setup.
1433 if (newlen > g->mlen) { /* ends one */
1435 g->mlen = newlen;
1448 if (newlen > g->mlen) { /* ends one */
1450 g->mlen = newlen;
1466 if (newlen > g->mlen) { /* ends one */
1468 g->mlen = newlen;
1490 if (newlen > g->mlen) { /* ends one */
1492 g->mlen = newlen;
1504 if (g->mlen == 0) { /* there isn't one */
1510 g->must = malloc((size_t)g->mlen + 1);
1512 g->mlen = 0;
1519 while (cp < g->must + g->mlen) {
1526 assert(cp == g->must + g->mlen);
1633 g->charjump[ch] = g->mlen;
1641 for (mindex = 0; mindex < g->mlen; mindex++)
1642 g->charjump[(int)g->must[mindex]] = g->mlen - mindex - 1;
1654 * Notice that all values here are minus (g->mlen-1), because of the way
1666 * such that i+1...mlen is a substring
1667 * of k+1...k+mlen-i-1
1674 pmatches = (int *)malloc(g->mlen * sizeof (unsigned int));
1680 g->matchjump = (int *)malloc(g->mlen * sizeof (unsigned int));
1685 for (mindex = 0; mindex < g->mlen; mindex++)
1686 g->matchjump[mindex] = 2*g->mlen - mindex - 1;
1689 for (mindex = g->mlen - 1, suffix = g->mlen; mindex >= 0;
1700 while (suffix < g->mlen && g->must[mindex] != g->must[suffix]) {
1702 g->mlen - mindex - 1);
1714 g->mlen + suffix - mindex);
1717 while (suffix < g->mlen) {
1718 while (suffix <= ssuffix && suffix < g->mlen) {
1720 g->mlen + ssuffix - suffix);
1723 if (suffix < g->mlen)