# HG changeset patch # User Bram Moolenaar # Date 1548189004 -3600 # Node ID 30d4a5f547c76c2a7c6d65b1a01c78e1d4dd5b7a # Parent acb0995b8a2cbf0da46c515fb7aca667d5b77fe9 patch 8.1.0790: code for creating tabpages in session is too complex commit https://github.com/vim/vim/commit/57a6bf056715bd5c94d8047247615e39862424e7 Author: Bram Moolenaar Date: Tue Jan 22 21:27:13 2019 +0100 patch 8.1.0790: code for creating tabpages in session is too complex Problem: Code for creating tabpages in session is too complex. Solution: Simplify the code. (Jason Franklin) diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -11401,26 +11401,14 @@ makeopens( tab_topframe = topframe; if ((ssop_flags & SSOP_TABPAGES)) { - int num_tabs; - - /* - * 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) - { - tabpage_T *tp = find_tabpage(tabnr); - - if (tp == NULL) /* done all tab pages */ - break; - - if (tabnr > 1 && put_line(fd, "tabnew") == FAIL) + 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_ALL_TABPAGES(tp) + 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, "tabrewind") == FAIL) return FAIL; } for (tabnr = 1; ; ++tabnr) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -792,6 +792,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 790, +/**/ 789, /**/ 788,