Mercurial > vim
changeset 19025:90da7f8130ca v8.2.0073
patch 8.2.0073: initializing globals with COMMA is clumsy
Commit: https://github.com/vim/vim/commit/ea8b7aecab9cc6d9c2d2845ad53203b26de14f85
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 1 15:46:47 2020 +0100
patch 8.2.0073: initializing globals with COMMA is clumsy
Problem: Initializing globals with COMMA is clumsy.
Solution: Use INIT2(), INIT3(), etc.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 01 Jan 2020 16:00:04 +0100 |
parents | 0d5df9dfc168 |
children | 0c0f1f148632 |
files | src/globals.h src/version.c src/vim.h |
diffstat | 3 files changed, 15 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/globals.h +++ b/src/globals.h @@ -270,7 +270,7 @@ EXTERN int msg_no_more INIT(= FALSE); / * 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(= # 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(= F 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); 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
--- a/src/version.c +++ b/src/version.c @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 73, +/**/ 72, /**/ 71,
--- 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