patch 9.0.0245: mechanism to prevent recursive screen updating is incomplete
Problem: Mechanism to prevent recursive screen updating is incomplete.
Solution: Add "redraw_not_allowed" and set it in build_stl_str_hl().
(issue #10952)
diff --git a/src/globals.h b/src/globals.h
index 99ecefb..3c2d904 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -600,9 +600,13 @@
#endif
// While redrawing the screen this flag is set. It means the screen size
-// ('lines' and 'rows') must not be changed.
+// ('lines' and 'rows') must not be changed and prevents recursive updating.
EXTERN int updating_screen INIT(= FALSE);
+// While computing a statusline and the like we do not want any w_redr_type or
+// must_redraw to be set.
+EXTERN int redraw_not_allowed INIT(= FALSE);
+
#ifdef MESSAGE_QUEUE
// While closing windows or buffers messages should not be handled to avoid
// using invalid windows or buffers.