changeset 1672:fddea6c03dee v7.2b.004

updated for version 7.2b-004
author vimboss
date Mon, 14 Jul 2008 21:05:15 +0000
parents 5d25cdc3c3f3
children 553c97222cc0
files src/eval.c src/quickfix.c src/version.c
diffstat 3 files changed, 20 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -14997,7 +14997,7 @@ do_searchpair(spat, mpat, epat, dir, ski
 
     /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
     save_cpo = p_cpo;
-    p_cpo = (char_u *)"";
+    p_cpo = empty_option;
 
 #ifdef FEAT_RELTIME
     /* Set the time limit, if there is one. */
@@ -15112,7 +15112,11 @@ do_searchpair(spat, mpat, epat, dir, ski
 theend:
     vim_free(pat2);
     vim_free(pat3);
-    p_cpo = save_cpo;
+    if (p_cpo == empty_option)
+	p_cpo = save_cpo;
+    else
+	/* Darn, evaluating the {skip} expression changed the value. */
+	free_string_option(save_cpo);
 
     return retval;
 }
@@ -22503,7 +22507,7 @@ do_string_sub(str, pat, sub, flags)
 
     /* Make 'cpoptions' empty, so that the 'l' flag doesn't work here */
     save_cpo = p_cpo;
-    p_cpo = (char_u *)"";
+    p_cpo = empty_option;
 
     ga_init2(&ga, 1, 200);
 
@@ -22564,7 +22568,11 @@ do_string_sub(str, pat, sub, flags)
 
     ret = vim_strsave(ga.ga_data == NULL ? str : (char_u *)ga.ga_data);
     ga_clear(&ga);
-    p_cpo = save_cpo;
+    if (p_cpo == empty_option)
+	p_cpo = save_cpo;
+    else
+	/* Darn, evaluating {sub} expression changed the value. */
+	free_string_option(save_cpo);
 
     return ret;
 }
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -3779,7 +3779,7 @@ ex_helpgrep(eap)
 
     /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
     save_cpo = p_cpo;
-    p_cpo = (char_u *)"";
+    p_cpo = empty_option;
 
 #ifdef FEAT_MULTI_LANG
     /* Check for a specified language */
@@ -3889,7 +3889,11 @@ ex_helpgrep(eap)
 	qi->qf_lists[qi->qf_curlist].qf_index = 1;
     }
 
-    p_cpo = save_cpo;
+    if (p_cpo == empty_option)
+	p_cpo = save_cpo;
+    else
+	/* Darn, some plugin changed the value. */
+	free_string_option(save_cpo);
 
 #ifdef FEAT_WINDOWS
     qf_update_buffer(qi);
--- a/src/version.c
+++ b/src/version.c
@@ -677,6 +677,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4,
+/**/
     3,
 /**/
     2,