patch 8.2.2854: custom statusline cannot contain % items
Problem: Custom statusline cannot contain % items.
Solution: Add "%{% expr %}". (closes #8190)
diff --git a/src/optionstr.c b/src/optionstr.c
index 1ec8d05..f332294 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -618,8 +618,10 @@
}
if (*s == '{')
{
+ int reevaluate = (*s == '%');
+
s++;
- while (*s != '}' && *s)
+ while ((*s != '}' || (reevaluate && s[-1] != '%')) && *s)
s++;
if (*s != '}')
return N_("E540: Unclosed expression sequence");