diff src/quickfix.c @ 27752:c1d1639b52dd v8.2.4402

patch 8.2.4402: missing parenthesis may cause unexpected problems Commit: https://github.com/vim/vim/commit/ae6f1d8b14c2f63811ee83ef14e32086fb3e9b83 Author: kylo252 <59826753+kylo252@users.noreply.github.com> Date: Wed Feb 16 19:24:07 2022 +0000 patch 8.2.4402: missing parenthesis may cause unexpected problems Problem: Missing parenthesis may cause unexpected problems. Solution: Add more parenthesis is macros. (closes https://github.com/vim/vim/issues/9788)
author Bram Moolenaar <Bram@vim.org>
date Wed, 16 Feb 2022 20:30:03 +0100
parents bf540a32439a
children 44a552776007
line wrap: on
line diff
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -189,28 +189,28 @@ static void	unload_dummy_buffer(buf_T *b
 static qf_info_T *ll_get_or_alloc_list(win_T *);
 
 // Quickfix window check helper macro
-#define IS_QF_WINDOW(wp) (bt_quickfix(wp->w_buffer) && wp->w_llist_ref == NULL)
+#define IS_QF_WINDOW(wp) (bt_quickfix((wp)->w_buffer) && (wp)->w_llist_ref == NULL)
 // Location list window check helper macro
-#define IS_LL_WINDOW(wp) (bt_quickfix(wp->w_buffer) && wp->w_llist_ref != NULL)
+#define IS_LL_WINDOW(wp) (bt_quickfix((wp)->w_buffer) && (wp)->w_llist_ref != NULL)
 
 // Quickfix and location list stack check helper macros
-#define IS_QF_STACK(qi)		(qi->qfl_type == QFLT_QUICKFIX)
-#define IS_LL_STACK(qi)		(qi->qfl_type == QFLT_LOCATION)
-#define IS_QF_LIST(qfl)		(qfl->qfl_type == QFLT_QUICKFIX)
-#define IS_LL_LIST(qfl)		(qfl->qfl_type == QFLT_LOCATION)
+#define IS_QF_STACK(qi)		((qi)->qfl_type == QFLT_QUICKFIX)
+#define IS_LL_STACK(qi)		((qi)->qfl_type == QFLT_LOCATION)
+#define IS_QF_LIST(qfl)		((qfl)->qfl_type == QFLT_QUICKFIX)
+#define IS_LL_LIST(qfl)		((qfl)->qfl_type == QFLT_LOCATION)
 
 /*
  * Return location list for window 'wp'
  * For location list window, return the referenced location list
  */
-#define GET_LOC_LIST(wp) (IS_LL_WINDOW(wp) ? wp->w_llist_ref : wp->w_llist)
+#define GET_LOC_LIST(wp) (IS_LL_WINDOW(wp) ? (wp)->w_llist_ref : (wp)->w_llist)
 
 // Macro to loop through all the items in a quickfix list
 // Quickfix item index starts from 1, so i below starts at 1
 #define FOR_ALL_QFL_ITEMS(qfl, qfp, i) \
-		    for (i = 1, qfp = qfl->qf_start; \
-			    !got_int && i <= qfl->qf_count && qfp != NULL; \
-			    ++i, qfp = qfp->qf_next)
+		    for ((i) = 1, (qfp) = (qfl)->qf_start; \
+			    !got_int && (i) <= (qfl)->qf_count && (qfp) != NULL; \
+			    ++(i), (qfp) = (qfp)->qf_next)
 
 /*
  * Looking up a buffer can be slow if there are many.  Remember the last one