summaryrefslogtreecommitdiffstats
path: root/src/globals.h
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-04-06 22:13:01 +0200
committerBram Moolenaar <Bram@vim.org>2020-04-06 22:13:01 +0200
commit00d253e2b2f435a5386582c3f857008e7ac355c2 (patch)
tree71bbea4e4c6efa593a85266e445d82377a65f454 /src/globals.h
parentee4e0c1e9a81cb5d96e0060203a9033c2f28588e (diff)
patch 8.2.0523: loops are repeatedv8.2.0523
Problem: Loops are repeated. Solution: Use FOR_ALL_ macros. (Yegappan Lakshmanan, closes #5882)
Diffstat (limited to 'src/globals.h')
-rw-r--r--src/globals.h37
1 files changed, 26 insertions, 11 deletions
diff --git a/src/globals.h b/src/globals.h
index 6f594e9132..199a0c5e7a 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -574,6 +574,10 @@ EXTERN vimmenu_T *root_menu INIT(= NULL);
* overruling of menus that the user already defined.
*/
EXTERN int sys_menu INIT(= FALSE);
+
+#define FOR_ALL_MENUS(m) for ((m) = root_menu; (m) != NULL; (m) = (m)->next)
+#define FOR_ALL_CHILD_MENUS(p, c) \
+ for ((c) = (p)->children; (c) != NULL; (c) = (c)->next)
#endif
#ifdef FEAT_GUI
@@ -724,7 +728,8 @@ EXTERN buf_T *firstbuf INIT(= NULL); // first buffer
EXTERN buf_T *lastbuf INIT(= NULL); // last buffer
EXTERN buf_T *curbuf INIT(= NULL); // currently active buffer
-#define FOR_ALL_BUFFERS(buf) for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+#define FOR_ALL_BUFFERS(buf) \
+ for ((buf) = firstbuf; (buf) != NULL; (buf) = (buf)->b_next)
#define FOR_ALL_BUF_WININFO(buf, wip) \
for ((wip) = (buf)->b_wininfo; (wip) != NULL; (wip) = (wip)->wi_next)
@@ -1484,7 +1489,7 @@ EXTERN disptick_T display_tick INIT(= 0);
EXTERN linenr_T spell_redraw_lnum INIT(= 0);
#define FOR_ALL_SPELL_LANGS(slang) \
- for ((slang) = first_lang; (slang) != NULL; (slang) = slang->sl_next)
+ for ((slang) = first_lang; (slang) != NULL; (slang) = (slang)->sl_next)
#endif
#ifdef FEAT_CONCEAL
@@ -1545,20 +1550,20 @@ EXTERN char e_font[] INIT(= N_("E235: Unknown font: %s"));
EXTERN char e_fontwidth[] INIT(= N_("E236: Font \"%s\" is not fixed-width"));
#endif
EXTERN char e_internal[] INIT(= N_("E473: Internal error"));
-EXTERN char e_intern2[] INIT(= N_("E685: Internal error: %s"));
-EXTERN char e_interr[] INIT(= N_("Interrupted"));
-EXTERN char e_invarg[] INIT(= N_("E474: Invalid argument"));
-EXTERN char e_invarg2[] INIT(= N_("E475: Invalid argument: %s"));
-EXTERN char e_duparg2[] INIT(= N_("E983: Duplicate argument: %s"));
+EXTERN char e_intern2[] INIT(= N_("E685: Internal error: %s"));
+EXTERN char e_interr[] INIT(= N_("Interrupted"));
+EXTERN char e_invarg[] INIT(= N_("E474: Invalid argument"));
+EXTERN char e_invarg2[] INIT(= N_("E475: Invalid argument: %s"));
+EXTERN char e_duparg2[] INIT(= N_("E983: Duplicate argument: %s"));
EXTERN char e_invargval[] INIT(= N_("E475: Invalid value for argument %s"));
EXTERN char e_invargNval[] INIT(= N_("E475: Invalid value for argument %s: %s"));
#ifdef FEAT_EVAL
EXTERN char e_invexpr2[] INIT(= N_("E15: Invalid expression: %s"));
#endif
EXTERN char e_invrange[] INIT(= N_("E16: Invalid range"));
-EXTERN char e_invcmd[] INIT(= N_("E476: Invalid command"));
+EXTERN char e_invcmd[] INIT(= N_("E476: Invalid command"));
#if defined(UNIX) || defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
-EXTERN char e_isadir2[] INIT(= N_("E17: \"%s\" is a directory"));
+EXTERN char e_isadir2[] INIT(= N_("E17: \"%s\" is a directory"));
#endif
#ifdef FEAT_LIBCALL
EXTERN 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\""));
#endif
EXTERN char e_notcreate[] INIT(= N_("E482: Can't create file %s"));
EXTERN char e_notmp[] INIT(= N_("E483: Can't get temp file name"));
-EXTERN char e_notopen[] INIT(= N_("E484: Can't open file %s"));
-EXTERN char e_notread[] INIT(= N_("E485: Can't read file %s"));
+EXTERN char e_notopen[] INIT(= N_("E484: Can't open file %s"));
+EXTERN char e_notread[] INIT(= N_("E485: Can't read file %s"));
EXTERN char e_null[] INIT(= N_("E38: Null argument"));
#if defined(FEAT_DIGRAPHS) || defined(FEAT_TIMERS) || defined(FEAT_EVAL)
EXTERN char e_number_exp[] INIT(= N_("E39: Number expected"));
@@ -1837,6 +1842,16 @@ EXTERN HINSTANCE g_hinst INIT(= NULL);
EXTERN int did_repeated_msg INIT(= 0);
# define REPEATED_MSG_LOOKING 1
# define REPEATED_MSG_SAFESTATE 2
+
+#define FOR_ALL_CHANNELS(ch) \
+ for ((ch) = first_channel; (ch) != NULL; (ch) = (ch)->ch_next)
+#define FOR_ALL_JOBS(job) \
+ for ((job) = first_job; (job) != NULL; (job) = (job)->jv_next)
+#endif
+
+#if defined(FEAT_DIFF)
+#define FOR_ALL_DIFFBLOCKS_IN_TAB(tp, dp) \
+ for ((dp) = (tp)->tp_first_diff; (dp) != NULL; (dp) = (dp)->df_next)
#endif
#define FOR_ALL_LIST_ITEMS(l, li) \