updated for version 7.0225
diff --git a/src/edit.c b/src/edit.c
index a43891f..b24c514 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -2146,11 +2146,11 @@
else
match->cp_fname = NULL;
match->cp_flags = flags;
- if (kind != NULL)
+ if (kind != NULL && *kind != NUL)
match->cp_kind = vim_strsave(kind);
- if (extra != NULL)
+ if (extra != NULL && *extra != NUL)
match->cp_extra = vim_strsave(extra);
- if (info != NULL)
+ if (info != NULL && *info != NUL)
match->cp_info = vim_strsave(info);
/*
diff --git a/src/globals.h b/src/globals.h
index adde271..86d8ad9 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -410,7 +410,8 @@
#ifdef FEAT_DIFF
/* Value set from 'diffopt'. */
-EXTERN int diff_context INIT(= 6); /* context for folds */
+EXTERN int diff_context INIT(= 6); /* context for folds */
+EXTERN int diff_foldcolumn INIT(= 2); /* 'foldcolumn' for diff mode */
EXTERN int diff_need_scrollbind INIT(= FALSE);
#endif
diff --git a/src/option.c b/src/option.c
index bbb1187..0686b85 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1923,6 +1923,13 @@
{"prompt", NULL, P_BOOL|P_VI_DEF,
(char_u *)&p_prompt, PV_NONE,
{(char_u *)TRUE, (char_u *)0L}},
+ {"pumheight", "ph", P_NUM|P_VI_DEF,
+#ifdef FEAT_INS_EXPAND
+ (char_u *)&p_ph, PV_NONE,
+#else
+ (char_u *)NULL, PV_NONE,
+#endif
+ {(char_u *)0L, (char_u *)0L}},
{"quoteescape", "qe", P_STRING|P_ALLOCED|P_VI_DEF,
#ifdef FEAT_TEXTOBJ
(char_u *)&p_qe, PV_QE,
@@ -3194,7 +3201,7 @@
}
}
# else
-# ifdef MACOS
+# ifdef MACOS_CONVERT
if (mch_getenv((char_u *)"LANG") == NULL)
{
char buf[20];
diff --git a/src/option.h b/src/option.h
index 9be7524..794e83b 100644
--- a/src/option.h
+++ b/src/option.h
@@ -378,6 +378,7 @@
EXTERN int p_cp; /* 'compatible' */
#ifdef FEAT_INS_EXPAND
EXTERN char_u *p_cot; /* 'completeopt' */
+EXTERN long p_ph; /* 'pumheight' */
#endif
EXTERN char_u *p_cpo; /* 'cpoptions' */
#ifdef FEAT_CSCOPE
diff --git a/src/testdir/test61.in b/src/testdir/test61.in
new file mode 100644
index 0000000..749d8ad
--- /dev/null
+++ b/src/testdir/test61.in
@@ -0,0 +1,52 @@
+Tests for undo tree.
+Since this script is sourced we need to explicitly break changes up in
+undo-able pieces. Do that by setting 'undolevels'.
+
+STARTTEST
+:" Delete three characters and undo
+Gx:set ul=100
+x:set ul=100
+x:.w! test.out
+g-:.w >>test.out
+g-:.w >>test.out
+g-:.w >>test.out
+g-:.w >>test.out
+:"
+:/^111/w >>test.out
+:" Delete three other characters and go back in time step by step
+$x:set ul=100
+x:set ul=100
+x:.w >>test.out
+:sleep 1
+g-:.w >>test.out
+g-:.w >>test.out
+g-:.w >>test.out
+g-:.w >>test.out
+g-:.w >>test.out
+g-:.w >>test.out
+g-:.w >>test.out
+g-:.w >>test.out
+10g+:.w >>test.out
+:"
+:/^222/w >>test.out
+:" Delay for three seconds and go some seconds forward and backward
+:sleep 2
+Aa:set ul=100
+Ab:set ul=100
+Ac:set ul=100
+:.w >>test.out
+:ear 1s
+:.w >>test.out
+:ear 3s
+:.w >>test.out
+:later 1s
+:.w >>test.out
+:later 1h
+:.w >>test.out
+:qa!
+ENDTEST
+
+1111 -----
+2222 -----
+
+123456789