From 6c075036d71d3a40417e9661c655240a9b2f9fa3 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sun, 22 Sep 2019 13:50:39 -0700 Subject: [PATCH] Added support for space as a sort of wildcard so "foo bar" matches "FooBar" and "foo.bar" --- ask.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ask.c b/ask.c index 76c3966..3d58db6 100644 --- a/ask.c +++ b/ask.c @@ -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) {