From 9d47f1707bab4d318febcfbd65c692b2b3962f42 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Wed, 15 Mar 2006 23:03:01 +0000
Subject: [PATCH] updated for version 7.0225

---
 src/edit.c            |  6 ++---
 src/globals.h         |  3 ++-
 src/option.c          |  9 +++++++-
 src/option.h          |  1 +
 src/testdir/test61.in | 52 +++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 66 insertions(+), 5 deletions(-)
 create mode 100644 src/testdir/test61.in

diff --git a/src/edit.c b/src/edit.c
index a43891f71c..b24c514fce 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -2146,11 +2146,11 @@ ins_compl_add(str, len, icase, fname, kind, extra, info, cdir, flags)
     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 adde27108e..86d8ad9ca6 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -410,7 +410,8 @@ EXTERN int	drag_sep_line INIT(= FALSE);	/* dragging vert separator */
 
 #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 bbb1187ac1..0686b853c2 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1923,6 +1923,13 @@ static struct vimoption
     {"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 @@ set_init_1()
 	}
     }
 # 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 9be7524b22..794e83b972 100644
--- a/src/option.h
+++ b/src/option.h
@@ -378,6 +378,7 @@ EXTERN int	p_confirm;	/* 'confirm' */
 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 0000000000..749d8ad04c
--- /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
-- 
GitLab