]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 8.2.5088: value of cmod_verbose is a bit complicated to use v8.2.5088
authorzeertzjq <zeertzjq@outlook.com>
Tue, 14 Jun 2022 12:30:35 +0000 (13:30 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 14 Jun 2022 12:30:35 +0000 (13:30 +0100)
Problem:    Value of cmod_verbose is a bit complicated to use.
Solution:   Use zero for not set, value + 1 when set. (closes #10564)

src/ex_docmd.c
src/ex_getln.c
src/globals.h
src/structs.h
src/version.c

index 9a06999e7cf01be0e1e15997a899ec0ae7cfe334..a6f5952c1f42153120e4195ce52b92f6c37f1b4b 100644 (file)
@@ -3089,12 +3089,11 @@ parse_command_modifiers(
                            break;
                        if (vim_isdigit(*eap->cmd))
                        {
-                           cmod->cmod_verbose = atoi((char *)eap->cmd);
-                           if (cmod->cmod_verbose == 0)
-                               cmod->cmod_verbose = -1;
+                           // zero means not set, one is verbose == 0, etc.
+                           cmod->cmod_verbose = atoi((char *)eap->cmd) + 1;
                        }
                        else
-                           cmod->cmod_verbose = 1;
+                           cmod->cmod_verbose = 2;  // default: verbose == 1
                        eap->cmd = p;
                        continue;
        }
@@ -3147,7 +3146,7 @@ has_cmdmod(cmdmod_T *cmod, int ignore_silent)
                || (cmod->cmod_flags
                      & ~(CMOD_SILENT | CMOD_ERRSILENT | CMOD_UNSILENT)) != 0))
            || cmod->cmod_split != 0
-           || cmod->cmod_verbose != 0
+           || cmod->cmod_verbose > 0
            || cmod->cmod_tab != 0
            || cmod->cmod_filter_regmatch.regprog != NULL;
 }
@@ -3182,11 +3181,11 @@ apply_cmdmod(cmdmod_T *cmod)
        cmod->cmod_did_sandbox = TRUE;
     }
 #endif
-    if (cmod->cmod_verbose != 0)
+    if (cmod->cmod_verbose > 0)
     {
        if (cmod->cmod_verbose_save == 0)
            cmod->cmod_verbose_save = p_verbose + 1;
-       p_verbose = cmod->cmod_verbose < 0 ? 0 : cmod->cmod_verbose;
+       p_verbose = cmod->cmod_verbose - 1;
     }
 
     if ((cmod->cmod_flags & (CMOD_SILENT | CMOD_UNSILENT))
index 20d9520ed107acca2e7e8d3fe84673f6d02fdc88..8be971a885bec3a8bbf157c2a54bf069ecae3e6d 100644 (file)
@@ -256,7 +256,6 @@ do_incsearch_highlighting(
     ea.cmd = ccline.cmdbuff;
     ea.addr_type = ADDR_LINES;
 
-    CLEAR_FIELD(dummy_cmdmod);
     parse_command_modifiers(&ea, &dummy, &dummy_cmdmod, TRUE);
 
     cmd = skip_range(ea.cmd, TRUE, NULL);
index 7100dcd08d0e185dfe5de0385883d3a8b1b62864..63377af5b11d33e68c2d060eb83f627478ce0650 100644 (file)
@@ -1291,7 +1291,7 @@ EXTERN pos_T      last_cursormoved              // for CursorMoved event
 
 EXTERN int     postponed_split INIT(= 0);  // for CTRL-W CTRL-] command
 EXTERN int     postponed_split_flags INIT(= 0);  // args for win_split()
-EXTERN int     postponed_split_tab INIT(= 0);  // cmdmod.tab
+EXTERN int     postponed_split_tab INIT(= 0);  // cmdmod.cmod_tab
 #ifdef FEAT_QUICKFIX
 EXTERN int     g_do_tagpreview INIT(= 0);  // for tag preview commands:
                                            // height of preview window
index 7fe97fdbb363460740f298b08d7b0ddea40402cb..9e409281415a30565456731f94794472f18fd6a8 100644 (file)
@@ -662,8 +662,8 @@ typedef struct
     regmatch_T cmod_filter_regmatch;   // set by :filter /pat/
     int                cmod_filter_force;      // set for :filter!
 
-    int                cmod_verbose;           // non-zero to set 'verbose', -1 is
-                                       // used for zero override
+    int                cmod_verbose;           // 0 if not set, > 0 to set 'verbose'
+                                       // to cmod_verbose - 1
 
     // values for undo_cmdmod()
     char_u     *cmod_save_ei;          // saved value of 'eventignore'
index 47b5382feac412e5d7653114b40ad40d8e106f2d..02600f7559447a863f2a8b01bbec331e2e652081 100644 (file)
@@ -734,6 +734,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    5088,
 /**/
     5087,
 /**/