diff --git a/src/edit.c b/src/edit.c index a43891f71cec1b0f76f108a2e8e6f4f5205c1315..b24c514fce13e485cd5f74f76e94ca4c9fa2ebf6 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 adde27108eb2270d5c4a4c9a7fd386bad3aab0eb..86d8ad9ca672802f040aa4c41806a80780af0cf5 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 bbb1187ac199434c5bfcfae285b48e4049aa55a1..0686b853c24fac0ad28aac0a8b9419a4caa0bdb9 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 9be7524b221c173723aabb97f9e1ff24d336b0f5..794e83b97287b7eb2ddfb8699ea3dddd4cf19b44 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 0000000000000000000000000000000000000000..749d8ad04c27aa34208ccd8a52ce1f6f2f85a5e2 --- /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