Mercurial > vim
changeset 5720:0ace3a24c2a0 v7.4.205
updated for version 7.4.205
Problem: ":mksession" writes command to move to second argument while it
does not exist. When it does exist the order might be wrong.
Solution: Use ":argadd" for each argument instead of using ":args" with a
list of names. (Nobuhiro Takasaki)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 12 Mar 2014 21:28:26 +0100 |
parents | 41731b8ee4b8 |
children | f99b6efb5193 |
files | src/ex_docmd.c src/version.c |
diffstat | 2 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -10381,7 +10381,7 @@ makeopens(fd, dirnow) } /* the global argument list */ - if (ses_arglist(fd, "args", &global_alist.al_ga, + if (ses_arglist(fd, "argglobal", &global_alist.al_ga, !(ssop_flags & SSOP_CURDIR), &ssop_flags) == FAIL) return FAIL; @@ -10955,9 +10955,9 @@ ses_arglist(fd, cmd, gap, fullname, flag char_u *buf = NULL; char_u *s; - if (gap->ga_len == 0) - return put_line(fd, "silent! argdel *"); - if (fputs(cmd, fd) < 0) + if (fputs(cmd, fd) < 0 || put_eol(fd) == FAIL) + return FAIL; + if (put_line(fd, "silent! argdel *") == FAIL) return FAIL; for (i = 0; i < gap->ga_len; ++i) { @@ -10974,7 +10974,9 @@ ses_arglist(fd, cmd, gap, fullname, flag s = buf; } } - if (fputs(" ", fd) < 0 || ses_put_fname(fd, s, flagp) == FAIL) + if (fputs("argadd ", fd) < 0 + || ses_put_fname(fd, s, flagp) == FAIL + || put_eol(fd) == FAIL) { vim_free(buf); return FAIL; @@ -10982,7 +10984,7 @@ ses_arglist(fd, cmd, gap, fullname, flag vim_free(buf); } } - return put_eol(fd); + return OK; } /*