This patch just simplifies the code for outputting the
":tabnew" commands that a session script should invoke.
Currently, the code is a bit messy and was easy to
simplify:
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 8a9b2f4bf..91314ec2a 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -11401,26 +11401,17 @@ makeopens(
tab_topframe = topframe;
if ((ssop_flags & SSOP_TABPAGES))
{
- int num_tabs;
+ tabpage_T *tp;
- /*
- * Similar to ses_win_rec() below, populate the tab pages first so
- * later local options won't be copied to the new tabs.
- */
- for (tabnr = 1; ; ++tabnr)
+ // This is similar to "ses_win_rec()" below. Populate the tab pages
+ // first so that local options won't be copied to new tabs later.
+ FOR_ALL_TABPAGES(tp)
{
- tabpage_T *tp = find_tabpage(tabnr);
-
- if (tp == NULL) /* done all tab pages */
- break;
-
- if (tabnr > 1 && put_line(fd, "tabnew") == FAIL)
+ if (tp->tp_next != NULL && put_line(fd, "tabnew") == FAIL)
return FAIL;
}
- num_tabs = tabnr - 1;
- if (num_tabs > 1 && (fprintf(fd, "tabnext -%d", num_tabs - 1) < 0
- || put_eol(fd) == FAIL))
+ if (first_tabpage->tp_next != NULL && put_line(fd, "tabnext 1") == FAIL)
return FAIL;
}
for (tabnr = 1; ; ++tabnr)
All of the existing tests for mksession still pass.
Let me know if anything looks amiss.
Thanks,
Jason Franklin
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.