updated for version 7.0004
diff --git a/src/option.c b/src/option.c
index 948018d..d48c840 100644
--- a/src/option.c
+++ b/src/option.c
@@ -62,6 +62,7 @@
     , PV_CMS
     , PV_COM
     , PV_CPT
+    , PV_CFU
     , PV_DEF
     , PV_DICT
     , PV_DIFF
@@ -109,6 +110,7 @@
     , PV_PATH
     , PV_PI
     , PV_PVW
+    , PV_QE
     , PV_RL
     , PV_RLC
     , PV_RO
@@ -169,6 +171,9 @@
 #ifdef FEAT_INS_EXPAND
 static char_u	*p_cpt;
 #endif
+#ifdef FEAT_COMPL_FUNC
+static char_u	*p_cfu;
+#endif
 static int	p_eol;
 static int	p_et;
 #ifdef FEAT_MBYTE
@@ -205,6 +210,9 @@
 static char_u	*p_oft;
 #endif
 static int	p_pi;
+#ifdef FEAT_TEXTOBJ
+static char_u	*p_qe;
+#endif
 static int	p_ro;
 #ifdef FEAT_SMARTINDENT
 static int	p_si;
@@ -624,6 +632,15 @@
 			    {(char_u *)0L, (char_u *)0L}
 #endif
 			    },
+    {"completefunc", "cfu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE,
+#ifdef FEAT_COMPL_FUNC
+			    (char_u *)&p_cfu, PV_CFU,
+			    {(char_u *)"", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)0L, (char_u *)0L}
+#endif
+			    },
     {"confirm",     "cf",   P_BOOL|P_VI_DEF,
 #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
 			    (char_u *)&p_confirm, PV_NONE,
@@ -1658,6 +1675,15 @@
     {"prompt",	    NULL,   P_BOOL|P_VI_DEF,
 			    (char_u *)NULL, PV_NONE,
 			    {(char_u *)FALSE, (char_u *)0L}},
+    {"quoteescape", "qe",   P_STRING|P_ALLOCED|P_VI_DEF,
+#ifdef FEAT_TEXTOBJ
+			    (char_u *)&p_qe, PV_QE,
+			    {(char_u *)"\\", (char_u *)0L}
+#else
+			    (char_u *)NULL, PV_NONE,
+			    {(char_u *)NULL, (char_u *)0L}
+#endif
+			    },
     {"readonly",    "ro",   P_BOOL|P_VI_DEF|P_RSTAT|P_NOGLOB,
 			    (char_u *)&p_ro, PV_RO,
 			    {(char_u *)FALSE, (char_u *)0L}},
@@ -4375,6 +4401,9 @@
     check_string_option(&buf->b_p_cms);
 #endif
     check_string_option(&buf->b_p_nf);
+#ifdef FEAT_TEXTOBJ
+    check_string_option(&buf->b_p_qe);
+#endif
 #ifdef FEAT_SYN_HL
     check_string_option(&buf->b_p_syn);
 #endif
@@ -4397,6 +4426,9 @@
 #ifdef FEAT_INS_EXPAND
     check_string_option(&buf->b_p_cpt);
 #endif
+#ifdef FEAT_COMPL_FUNC
+    check_string_option(&buf->b_p_cfu);
+#endif
 #ifdef FEAT_KEYMAP
     check_string_option(&buf->b_p_keymap);
 #endif
@@ -5793,6 +5825,7 @@
     {
 	{&lcs_eol,	"eol"},
 	{&lcs_ext,	"extends"},
+	{&lcs_nbsp,	"nbsp"},
 	{&lcs_prec,	"precedes"},
 	{&lcs_tab2,	"tab"},
 	{&lcs_trail,	"trail"},
@@ -7871,6 +7904,9 @@
 #ifdef FEAT_INS_EXPAND
 	case PV_CPT:	return (char_u *)&(curbuf->b_p_cpt);
 #endif
+#ifdef FEAT_COMPL_FUNC
+	case PV_CFU:	return (char_u *)&(curbuf->b_p_cfu);
+#endif
 	case PV_EOL:	return (char_u *)&(curbuf->b_p_eol);
 	case PV_ET:	return (char_u *)&(curbuf->b_p_et);
 #ifdef FEAT_MBYTE
@@ -7909,6 +7945,9 @@
 	case PV_OFT:	return (char_u *)&(curbuf->b_p_oft);
 #endif
 	case PV_PI:	return (char_u *)&(curbuf->b_p_pi);
+#ifdef FEAT_TEXTOBJ
+	case PV_QE:	return (char_u *)&(curbuf->b_p_qe);
+#endif
 	case PV_RO:	return (char_u *)&(curbuf->b_p_ro);
 #ifdef FEAT_SMARTINDENT
 	case PV_SI:	return (char_u *)&(curbuf->b_p_si);
@@ -8173,6 +8212,9 @@
 #ifdef FEAT_INS_EXPAND
 	    buf->b_p_cpt = vim_strsave(p_cpt);
 #endif
+#ifdef FEAT_COMPL_FUNC
+	    buf->b_p_cfu = vim_strsave(p_cfu);
+#endif
 	    buf->b_p_sts = p_sts;
 	    buf->b_p_sts_nopaste = p_sts_nopaste;
 #ifndef SHORT_FNAME
@@ -8256,6 +8298,9 @@
 	    buf->b_p_dict = empty_option;
 	    buf->b_p_tsr = empty_option;
 #endif
+#ifdef FEAT_TEXTOBJ
+	    buf->b_p_qe = vim_strsave(p_qe);
+#endif
 
 	    /*
 	     * Don't copy the options set by ex_help(), use the saved values,