# HG changeset patch # User Bram Moolenaar # Date 1394656106 -3600 # Node ID 0ace3a24c2a0153f0aaf9b619d3958e7f486705f # Parent 41731b8ee4b816b206afa724891a15b0074a1d73 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) diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- 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; } /* diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 205, +/**/ 204, /**/ 203,