]> granicus.if.org Git - vim/commitdiff
updated for version 7.4.083 v7.4.083
authorBram Moolenaar <Bram@vim.org>
Sat, 9 Nov 2013 04:30:26 +0000 (05:30 +0100)
committerBram Moolenaar <Bram@vim.org>
Sat, 9 Nov 2013 04:30:26 +0000 (05:30 +0100)
Problem:    It's hard to avoid adding a used pattern to the search history.
Solution:   Add the ":keeppatterns" modifier. (Christian Brabandt)

runtime/doc/cmdline.txt
src/ex_cmds.h
src/ex_docmd.c
src/ex_getln.c
src/structs.h
src/version.c

index 36a71cfccc1ff0360809ee8033346bb6390fa08a..c309a0f7a18eab401495c369a4e8717cb0f6dbda 100644 (file)
@@ -356,6 +356,10 @@ terminals)
                List the recent five entries from all histories: >
                        :history all -5,
 
+:keepp[atterns] {command}                      *:keepp* *:keeppatterns*
+               Execute {command}, without adding anything to the search
+               history
+
 ==============================================================================
 2. Command-line completion                             *cmdline-completion*
 
index 86bcead76af9849517fab8dcb734383fb5302b91..6cc4c7e138f8d24c4c13f080be57e0247ece1314 100644 (file)
@@ -477,6 +477,8 @@ EX(CMD_keepmarks,   "keepmarks",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM),
 EX(CMD_keepjumps,      "keepjumps",    ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM),
+EX(CMD_keeppatterns,   "keeppatterns", ex_wrongmodifier,
+                       NEEDARG|EXTRA|NOTRLCOM),
 EX(CMD_keepalt,                "keepalt",      ex_wrongmodifier,
                        NEEDARG|EXTRA|NOTRLCOM),
 EX(CMD_list,           "list",         ex_print,
index 8d06a95c93538117c1c01a11980e8d0176034f3d..1c700d47355bae2d0691c2b2d64e63012b7e025e 100644 (file)
@@ -1843,6 +1843,11 @@ do_one_cmd(cmdlinep, sourcing,
                            cmdmod.keepalt = TRUE;
                            continue;
                        }
+                       if (checkforcmd(&ea.cmd, "keeppatterns", 5))
+                       {
+                           cmdmod.keeppatterns = TRUE;
+                           continue;
+                       }
                        if (!checkforcmd(&ea.cmd, "keepjumps", 5))
                            break;
                        cmdmod.keepjumps = TRUE;
@@ -2584,6 +2589,7 @@ do_one_cmd(cmdlinep, sourcing,
            case CMD_keepalt:
            case CMD_keepjumps:
            case CMD_keepmarks:
+           case CMD_keeppatterns:
            case CMD_leftabove:
            case CMD_let:
            case CMD_lockmarks:
@@ -3089,6 +3095,7 @@ static struct cmdmod
     {"keepalt", 5, FALSE},
     {"keepjumps", 5, FALSE},
     {"keepmarks", 3, FALSE},
+    {"keeppatterns", 5, FALSE},
     {"leftabove", 5, FALSE},
     {"lockmarks", 3, FALSE},
     {"noautocmd", 3, FALSE},
@@ -3597,6 +3604,7 @@ set_one_cmd_context(xp, buff)
        case CMD_keepalt:
        case CMD_keepjumps:
        case CMD_keepmarks:
+       case CMD_keeppatterns:
        case CMD_leftabove:
        case CMD_lockmarks:
        case CMD_rightbelow:
index 7ec47c7028b54050ceeaba5ad63ff431f2dab42d..906eb8bb0c72b11b6e1944d2eab0eefd016b828b 100644 (file)
@@ -5498,6 +5498,9 @@ add_to_history(histype, new_entry, in_map, sep)
     if (hislen == 0)           /* no history */
        return;
 
+    if (cmdmod.keeppatterns && histype == HIST_SEARCH)
+       return;
+
     /*
      * Searches inside the same mapping overwrite each other, so that only
      * the last line is kept.  Be careful not to remove a line that was moved
index f3f3aaa89b97f754bb5aa798ecc407bb1b2a25ca..3c3fd7ba27c300763a6fd9187de8c26951e7d7fe 100644 (file)
@@ -542,6 +542,7 @@ typedef struct
     int                keepmarks;              /* TRUE when ":keepmarks" was used */
     int                keepjumps;              /* TRUE when ":keepjumps" was used */
     int                lockmarks;              /* TRUE when ":lockmarks" was used */
+    int                keeppatterns;           /* TRUE when ":keeppatterns" was used */
 # ifdef FEAT_AUTOCMD
     char_u     *save_ei;               /* saved value of 'eventignore' */
 # endif
index e4b039e31d24f110ec40826253f7d1bebcfe7de5..ce5d25053db4985113633186d029dce758a86ba3 100644 (file)
@@ -738,6 +738,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    83,
 /**/
     82,
 /**/