diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-07-22 20:50:17 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-07-22 20:50:17 +0200 |
commit | 26b654a5df9414e43734eb4c956b67c331d70a50 (patch) | |
tree | 76092e9dd7e4bd373decaa84cc132567d743eff2 | |
parent | 1e78e69680a5f52970d9b1ef60710e556b09b8c2 (diff) | |
download | vim-git-26b654a5df9414e43734eb4c956b67c331d70a50.tar.gz |
patch 8.1.1731: command line history not read from viminfo on startupv8.1.1731
Problem: Command line history not read from viminfo on startup.
Solution: Get history length after initializing it.
-rw-r--r-- | src/testdir/test_viminfo.vim | 6 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/viminfo.c | 5 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/testdir/test_viminfo.vim b/src/testdir/test_viminfo.vim index cea78e574..8206458d9 100644 --- a/src/testdir/test_viminfo.vim +++ b/src/testdir/test_viminfo.vim @@ -1,6 +1,12 @@ " Test for reading and writing .viminfo function Test_viminfo_read_and_write() + " First clear 'history', so that "hislen" is zero. Then set it again, + " simulating Vim starting up. + set history=0 + wviminfo Xviminfo + set history=1000 + call histdel(':') let lines = [ \ '# comment line', diff --git a/src/version.c b/src/version.c index 69baf5439..d8b3dfedb 100644 --- a/src/version.c +++ b/src/version.c @@ -778,6 +778,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1731, +/**/ 1730, /**/ 1729, diff --git a/src/viminfo.c b/src/viminfo.c index 888014446..7e192cecd 100644 --- a/src/viminfo.c +++ b/src/viminfo.c @@ -212,9 +212,10 @@ prepare_viminfo_history(int asklen, int writing) int num; int type; int len; - int hislen = get_hislen(); + int hislen; init_history(); + hislen = get_hislen(); viminfo_add_at_front = (asklen != 0 && !writing); if (asklen > hislen) asklen = hislen; @@ -460,7 +461,7 @@ merge_history(int type) // Make one long list with all entries. max_len = hislen + viminfo_hisidx[type]; tot_hist = ALLOC_MULT(histentry_T *, max_len); - new_hist = ALLOC_MULT(histentry_T, hislen ); + new_hist = ALLOC_MULT(histentry_T, hislen); if (tot_hist == NULL || new_hist == NULL) { vim_free(tot_hist); |