updated for version 7.4.083
Problem:    It's hard to avoid adding a used pattern to the search history.
Solution:   Add the ":keeppatterns" modifier. (Christian Brabandt)
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 86bcead..6cc4c7e 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -477,6 +477,8 @@
 			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,
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 8d06a95..1c700d4 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -1843,6 +1843,11 @@
 			    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 @@
 	    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 @@
     {"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 @@
 	case CMD_keepalt:
 	case CMD_keepjumps:
 	case CMD_keepmarks:
+	case CMD_keeppatterns:
 	case CMD_leftabove:
 	case CMD_lockmarks:
 	case CMD_rightbelow:
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 7ec47c7..906eb8b 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -5498,6 +5498,9 @@
     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
diff --git a/src/structs.h b/src/structs.h
index f3f3aaa..3c3fd7b 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -542,6 +542,7 @@
     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
diff --git a/src/version.c b/src/version.c
index e4b039e..ce5d250 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    83,
+/**/
     82,
 /**/
     81,