diff options
Diffstat (limited to 'ask.c')
| -rw-r--r-- | ask.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -46,6 +46,10 @@ static int lcs(const char *str, const char *patt, int slen, int plen, int s, int { if (!patt[p]) return 0; if (!str[s]) return -1; + if (patt[p] == ' ') { + if (str[s] == ' ') return lcs(str, patt, slen, plen, s+1, p+1, cache); + else return lcs(str, patt, slen, plen, s, p+1, cache); + } if (cache[s*plen + p]) return cache[s*plen + p]; if (!EQ(str[s], patt[p])) return lcs(str, patt, slen, plen, s+1, p, cache); // Run starting here @@ -62,6 +66,10 @@ static int lcs(const char *str, const char *patt, int slen, int plen, int s, int static int matches(const char *str, const char *patt) { while (*patt) { + if (*patt == ' ') { + ++patt; + continue; + } while (!EQ(*str, *patt)) { if (!*str) return 0; ++str; @@ -111,6 +119,10 @@ static int draw_line(FILE *out, const char *option, const char *patt, int cursor else to_start += len; ++run; ++p; + } else if (patt[p] == ' ') { + run = 0; + ++p; + --i; } else { run = 0; if (state != dim) { |
