@@ -574,6 +574,10 @@ EXTERN vimmenu_T *root_menu INIT(= NULL);
574574 * overruling of menus that the user already defined.
575575 */
576576EXTERN int sys_menu INIT (= FALSE);
577+
578+ #define FOR_ALL_MENUS (m ) for ((m ) = root_menu ; (m ) != NULL; (m ) = (m )-> next )
579+ #define FOR_ALL_CHILD_MENUS (p , c ) \
580+ for ((c ) = (p )-> children ; (c ) != NULL; (c ) = (c )-> next )
577581#endif
578582
579583#ifdef FEAT_GUI
@@ -724,7 +728,8 @@ EXTERN buf_T *firstbuf INIT(= NULL); // first buffer
724728EXTERN buf_T * lastbuf INIT (= NULL); // last buffer
725729EXTERN buf_T * curbuf INIT (= NULL); // currently active buffer
726730
727- #define FOR_ALL_BUFFERS (buf ) for (buf = firstbuf ; buf != NULL; buf = buf -> b_next )
731+ #define FOR_ALL_BUFFERS (buf ) \
732+ for ((buf ) = firstbuf ; (buf ) != NULL; (buf ) = (buf )-> b_next )
728733
729734#define FOR_ALL_BUF_WININFO (buf , wip ) \
730735 for ((wip ) = (buf )-> b_wininfo ; (wip ) != NULL ; (wip ) = (wip )-> wi_next )
@@ -1484,7 +1489,7 @@ EXTERN disptick_T display_tick INIT(= 0);
14841489EXTERN linenr_T spell_redraw_lnum INIT (= 0 );
14851490
14861491#define FOR_ALL_SPELL_LANGS (slang ) \
1487- for ((slang ) = first_lang ; (slang ) != NULL; (slang ) = slang -> sl_next )
1492+ for ((slang ) = first_lang ; (slang ) != NULL; (slang ) = ( slang ) -> sl_next )
14881493#endif
14891494
14901495#ifdef FEAT_CONCEAL
@@ -1545,20 +1550,20 @@ EXTERN char e_font[] INIT(= N_("E235: Unknown font: %s"));
15451550EXTERN char e_fontwidth [] INIT (= N_ ("E236: Font \"%s\" is not fixed-width" ));
15461551#endif
15471552EXTERN char e_internal [] INIT (= N_ ("E473: Internal error" ));
1548- EXTERN char e_intern2 [] INIT (= N_ ("E685: Internal error: %s" ));
1549- EXTERN char e_interr [] INIT (= N_ ("Interrupted" ));
1550- EXTERN char e_invarg [] INIT (= N_ ("E474: Invalid argument" ));
1551- EXTERN char e_invarg2 [] INIT (= N_ ("E475: Invalid argument: %s" ));
1552- EXTERN char e_duparg2 [] INIT (= N_ ("E983: Duplicate argument: %s" ));
1553+ EXTERN char e_intern2 [] INIT (= N_ ("E685: Internal error: %s" ));
1554+ EXTERN char e_interr [] INIT (= N_ ("Interrupted" ));
1555+ EXTERN char e_invarg [] INIT (= N_ ("E474: Invalid argument" ));
1556+ EXTERN char e_invarg2 [] INIT (= N_ ("E475: Invalid argument: %s" ));
1557+ EXTERN char e_duparg2 [] INIT (= N_ ("E983: Duplicate argument: %s" ));
15531558EXTERN char e_invargval [] INIT (= N_ ("E475: Invalid value for argument %s" ));
15541559EXTERN char e_invargNval [] INIT (= N_ ("E475: Invalid value for argument %s: %s" ));
15551560#ifdef FEAT_EVAL
15561561EXTERN char e_invexpr2 [] INIT (= N_ ("E15: Invalid expression: %s" ));
15571562#endif
15581563EXTERN char e_invrange [] INIT (= N_ ("E16: Invalid range" ));
1559- EXTERN char e_invcmd [] INIT (= N_ ("E476: Invalid command" ));
1564+ EXTERN char e_invcmd [] INIT (= N_ ("E476: Invalid command" ));
15601565#if defined(UNIX ) || defined(FEAT_SYN_HL ) || defined(FEAT_SPELL )
1561- EXTERN char e_isadir2 [] INIT (= N_ ("E17: \"%s\" is a directory" ));
1566+ EXTERN char e_isadir2 [] INIT (= N_ ("E17: \"%s\" is a directory" ));
15621567#endif
15631568#ifdef FEAT_LIBCALL
15641569EXTERN char e_libcall [] INIT (= N_ ("E364: Library call failed for \"%s()\"" ));
@@ -1614,8 +1619,8 @@ EXTERN char e_noserver[] INIT(= N_("E247: no registered server named \"%s\""));
16141619#endif
16151620EXTERN char e_notcreate [] INIT (= N_ ("E482: Can't create file %s" ));
16161621EXTERN char e_notmp [] INIT (= N_ ("E483: Can't get temp file name" ));
1617- EXTERN char e_notopen [] INIT (= N_ ("E484: Can't open file %s" ));
1618- EXTERN char e_notread [] INIT (= N_ ("E485: Can't read file %s" ));
1622+ EXTERN char e_notopen [] INIT (= N_ ("E484: Can't open file %s" ));
1623+ EXTERN char e_notread [] INIT (= N_ ("E485: Can't read file %s" ));
16191624EXTERN char e_null [] INIT (= N_ ("E38: Null argument" ));
16201625#if defined(FEAT_DIGRAPHS ) || defined(FEAT_TIMERS ) || defined(FEAT_EVAL )
16211626EXTERN char e_number_exp [] INIT (= N_ ("E39: Number expected" ));
@@ -1837,6 +1842,16 @@ EXTERN HINSTANCE g_hinst INIT(= NULL);
18371842EXTERN int did_repeated_msg INIT (= 0 );
18381843# define REPEATED_MSG_LOOKING 1
18391844# define REPEATED_MSG_SAFESTATE 2
1845+
1846+ #define FOR_ALL_CHANNELS (ch ) \
1847+ for ((ch) = first_channel; (ch) != NULL; (ch) = (ch)->ch_next)
1848+ #define FOR_ALL_JOBS (job ) \
1849+ for ((job) = first_job; (job) != NULL; (job) = (job)->jv_next)
1850+ #endif
1851+
1852+ #if defined(FEAT_DIFF )
1853+ #define FOR_ALL_DIFFBLOCKS_IN_TAB (tp , dp ) \
1854+ for ((dp) = (tp)->tp_first_diff; (dp) != NULL; (dp) = (dp)->df_next)
18401855#endif
18411856
18421857#define FOR_ALL_LIST_ITEMS (l , li ) \
0 commit comments