mirror of
https://github.com/go-vikunja/vikunja.git
synced 2026-08-24 19:50:09 -05:00
The filter preprocessing replaced " in ", " not in " and " like " with their fexpr sigils using blind whole-string replacements, corrupting any value that happened to contain those words: `title like 'stuff in progress'` became `title ~ 'stuff ?= progress'`, so the filter matched the wrong tasks or failed to parse with no hint as to why. Walk the filter instead and skip over quoted runs, matching fexpr's own scanner: both ' and " open a string and a backslash escapes the next character. An unclosed quote is treated as an ordinary character so bare values with an apostrophe keep working. " not in " is still matched before " in " so the longer operator wins.