kolaente
82a29d4c93
fix(filter): don't rewrite in/not in/like inside quoted values
...
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.
2026-07-28 23:41:49 +02:00
..
2026-07-03 16:56:03 +00:00
2026-04-20 18:55:06 +00:00
2026-04-20 18:55:06 +00:00
2026-07-07 11:38:33 +02:00
2026-07-03 16:56:03 +00:00
2026-07-03 16:56:03 +00:00
2026-07-03 16:56:03 +00:00
2026-07-18 10:00:37 +02:00
2026-07-19 18:59:34 +02:00
2026-05-15 17:25:09 +02:00
2026-07-19 18:59:34 +02:00
2026-07-28 06:59:04 +00:00
2026-07-28 06:59:04 +00:00
2026-05-01 14:44:10 +00:00
2026-05-01 14:44:10 +00:00
2026-06-05 08:51:39 +00:00
2026-06-09 20:13:02 +00:00
2026-05-20 21:02:14 +00:00
2026-05-20 21:02:14 +00:00
2026-07-18 13:41:15 +00:00
2026-07-18 13:41:15 +00:00
2026-07-03 16:56:03 +00:00
2026-06-17 18:39:38 +00:00
2026-07-07 11:38:33 +02:00
2026-07-03 23:18:00 +02:00
2026-07-19 18:59:34 +02:00
2026-07-19 18:59:34 +02:00
2026-07-07 11:38:33 +02:00
2026-07-07 11:57:04 +00:00
2026-07-07 11:57:04 +00:00
2026-06-09 11:40:04 +00:00
2026-05-31 15:27:44 +02:00
2026-06-05 09:17:25 +00:00
2026-04-09 15:38:07 +00:00
2026-07-24 12:28:45 +00:00
2026-07-28 18:05:34 +02:00
2026-07-28 18:05:34 +02:00
2026-06-02 11:55:25 +00:00
2026-07-07 11:38:33 +02:00
2026-06-08 13:54:09 +00:00
2026-06-17 21:18:04 +00:00
2026-06-17 21:18:04 +00:00
2026-06-17 21:18:04 +00:00
2026-05-15 17:25:09 +02:00
2026-05-15 17:25:09 +02:00
2026-06-29 17:18:05 +02:00
2026-06-19 10:15:58 +02:00
2026-07-19 18:59:34 +02:00
2026-07-26 09:39:41 +00:00
2026-07-19 18:59:34 +02:00
2026-07-19 18:59:34 +02:00
2026-07-19 18:59:34 +02:00
2026-04-20 18:55:06 +00:00
2026-06-18 20:57:05 +00:00
2026-07-19 18:59:34 +02:00
2026-04-20 18:55:06 +00:00
2026-06-18 20:57:05 +00:00
2026-07-19 18:59:34 +02:00
2026-07-18 17:05:32 +00:00
2026-07-26 09:39:41 +00:00
2026-07-19 18:59:34 +02:00
2026-07-07 11:38:33 +02:00
2026-07-26 09:39:41 +00:00
2026-07-19 18:59:34 +02:00
2026-06-08 13:54:09 +00:00
2026-07-07 11:38:33 +02:00
2026-07-28 06:52:13 +00:00
2026-06-18 20:57:05 +00:00
2026-06-18 20:57:05 +00:00
2026-04-09 16:22:56 +00:00
2026-07-01 12:42:32 +00:00
2026-07-28 23:41:49 +02:00
2026-07-28 23:41:49 +02:00
2026-07-06 15:45:55 +00:00
2026-07-19 14:16:07 +00:00
2026-07-19 18:59:34 +02:00
2026-06-12 08:56:08 +00:00
2026-06-03 19:57:26 +00:00
2026-07-07 11:57:04 +00:00
2026-07-07 11:57:04 +00:00
2026-06-01 14:13:39 +02:00
2026-07-03 19:58:39 +02:00
2026-07-26 01:13:08 +00:00
2026-04-05 12:20:35 +00:00
2026-06-09 20:42:00 +00:00
2026-07-07 11:38:33 +02:00
2026-06-17 21:16:41 +00:00
2026-07-06 15:45:55 +00:00
2026-07-19 14:16:07 +00:00
2026-07-19 18:59:34 +02:00
2026-05-31 12:56:57 +00:00
2026-07-07 11:38:33 +02:00
2026-07-19 18:59:34 +02:00
2026-04-20 18:55:06 +00:00
2026-06-18 20:57:05 +00:00
2026-04-20 18:55:06 +00:00
2026-06-18 20:57:05 +00:00
2026-07-07 11:38:33 +02:00
2026-06-12 08:56:08 +00:00
2026-06-08 13:54:09 +00:00
2026-05-06 16:08:16 +02:00
2026-07-19 18:59:34 +02:00
2026-05-01 14:44:10 +00:00
2026-07-19 18:59:34 +02:00
2026-07-02 19:39:00 +02:00
2026-06-18 20:57:05 +00:00
2026-07-28 17:25:57 +02:00
2026-07-28 17:25:57 +02:00