]> granicus.if.org Git - vim/commitdiff
patch 8.2.0073: initializing globals with COMMA is clumsy v8.2.0073
authorBram Moolenaar <Bram@vim.org>
Wed, 1 Jan 2020 14:46:47 +0000 (15:46 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 1 Jan 2020 14:46:47 +0000 (15:46 +0100)
Problem:    Initializing globals with COMMA is clumsy.
Solution:   Use INIT2(), INIT3(), etc.

src/globals.h
src/version.c
src/vim.h

index acdce7096812dd17985f547c465c2c3fc3bf819b..e1738693def8ff9365e328f28009ca0c0e9ff44c 100644 (file)
@@ -270,7 +270,7 @@ EXTERN int  msg_no_more INIT(= FALSE);  // don't use more prompt, truncate
  * Stack of execution contexts.  Each entry is an estack_T.
  * Current context is at ga_len - 1.
  */
-EXTERN garray_T        exestack INIT(= {0 COMMA 0 COMMA sizeof(estack_T) COMMA 50 COMMA NULL});
+EXTERN garray_T        exestack INIT5(0, 0, sizeof(estack_T), 50, NULL);
 // name of error message source
 #define SOURCING_NAME (((estack_T *)exestack.ga_data)[exestack.ga_len - 1].es_name)
 // line number in the message source or zero
@@ -285,7 +285,7 @@ EXTERN int  debug_backtrace_level INIT(= 0); // breakpoint backtrace level
 # ifdef FEAT_PROFILE
 EXTERN int     do_profiling INIT(= PROF_NONE); // PROF_ values
 # endif
-EXTERN garray_T script_items INIT(= {0 COMMA 0 COMMA sizeof(scriptitem_T) COMMA 4 COMMA NULL});
+EXTERN garray_T script_items INIT5(0, 0, sizeof(scriptitem_T), 4, NULL);
 #define SCRIPT_ITEM(id) (((scriptitem_T *)script_items.ga_data)[(id) - 1])
 #define FUNCLINE(fp, j)        ((char_u **)(fp->uf_lines.ga_data))[j]
 
@@ -375,7 +375,7 @@ EXTERN int  want_garbage_collect INIT(= FALSE);
 EXTERN int     garbage_collect_at_exit INIT(= FALSE);
 
 // Script CTX being sourced or was sourced to define the current function.
-EXTERN sctx_T  current_sctx INIT(= {0 COMMA 0 COMMA 0 COMMA 0});
+EXTERN sctx_T  current_sctx INIT4(0, 0, 0, 0);
 #endif
 
 EXTERN int     did_source_packages INIT(= FALSE);
@@ -468,7 +468,7 @@ EXTERN int  au_did_filetype INIT(= FALSE);
 
 // When deleting the current buffer, another one must be loaded.  If we know
 // which one is preferred, au_new_curbuf is set to it
-EXTERN bufref_T        au_new_curbuf INIT(= {NULL COMMA 0 COMMA 0});
+EXTERN bufref_T        au_new_curbuf INIT3(NULL, 0, 0);
 
 // When deleting a buffer/window and autocmd_busy is TRUE, do not free the
 // buffer/window. but link it in the list starting with
@@ -1412,7 +1412,7 @@ EXTERN int        term_is_xterm INIT(= FALSE);    // xterm-like 'term'
 EXTERN char    psepc INIT(= '\\');     // normal path separator character
 EXTERN char    psepcN INIT(= '/');     // abnormal path separator character
 // normal path separator string
-EXTERN char    pseps[2] INIT(= {'\\' COMMA 0});
+EXTERN char    pseps[2] INIT2('\\', 0);
 #endif
 
 // Set to TRUE when an operator is being executed with virtual editing, MAYBE
index c8cd6f12cad7e7925d37eea9b666733447d6103f..c8df547e4d6c06d7fa51b6289a90eeeb68a49d77 100644 (file)
@@ -742,6 +742,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    73,
 /**/
     72,
 /**/
index d69272edd983deb9bacebf10510796f5276230e6..1fd24ad3fdaa6b05ba4e9be3e958c3808b0d3a99 100644 (file)
--- a/src/vim.h
+++ b/src/vim.h
@@ -1775,11 +1775,18 @@ void *vim_memset(void *, int, size_t);
 #ifndef EXTERN
 # define EXTERN extern
 # define INIT(x)
+# define INIT2(a, b)
+# define INIT3(a, b, c)
+# define INIT4(a, b, c, d)
+# define INIT5(a, b, c, d, e)
 #else
 # ifndef INIT
 #  define INIT(x) x
+#  define INIT2(a, b) = {a, b}
+#  define INIT3(a, b, c) = {a, b, c}
+#  define INIT4(a, b, c, d) = {a, b, c, d}
+#  define INIT5(a, b, c, d, e) = {a, b, c, d, e}
 #  define DO_INIT
-#  define COMMA ,
 # endif
 #endif