summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-09-07 15:45:32 +0200
committerBram Moolenaar <Bram@vim.org>2019-09-07 15:45:32 +0200
commit261f346f8154c0ec7094a4a211c653c74e9f7c2e (patch)
treeae8f30b11e3a637d1c69bac234d0edd721d4a542 /src/window.c
parenta3a124627d2eb9d36e3dc3757429d87e041f8c0b (diff)
downloadvim-git-261f346f8154c0ec7094a4a211c653c74e9f7c2e.tar.gz
patch 8.1.2001: some source files are too bigv8.1.2001
Problem: Some source files are too big. Solution: Move buffer and window related functions to evalbuffer.c and evalwindow.c. (Yegappan Lakshmanan, closes #4898)
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c447
1 files changed, 0 insertions, 447 deletions
diff --git a/src/window.c b/src/window.c
index edeffcac2..1ba2984b3 100644
--- a/src/window.c
+++ b/src/window.c
@@ -6587,144 +6587,6 @@ restore_snapshot_rec(frame_T *sn, frame_T *fr)
return wp;
}
-#if defined(FEAT_EVAL) || defined(FEAT_PYTHON) || defined(FEAT_PYTHON3) \
- || defined(PROTO)
-/*
- * Set "win" to be the curwin and "tp" to be the current tab page.
- * restore_win() MUST be called to undo, also when FAIL is returned.
- * No autocommands will be executed until restore_win() is called.
- * When "no_display" is TRUE the display won't be affected, no redraw is
- * triggered, another tabpage access is limited.
- * Returns FAIL if switching to "win" failed.
- */
- int
-switch_win(
- win_T **save_curwin,
- tabpage_T **save_curtab,
- win_T *win,
- tabpage_T *tp,
- int no_display)
-{
- block_autocmds();
- return switch_win_noblock(save_curwin, save_curtab, win, tp, no_display);
-}
-
-/*
- * As switch_win() but without blocking autocommands.
- */
- int
-switch_win_noblock(
- win_T **save_curwin,
- tabpage_T **save_curtab,
- win_T *win,
- tabpage_T *tp,
- int no_display)
-{
- *save_curwin = curwin;
- if (tp != NULL)
- {
- *save_curtab = curtab;
- if (no_display)
- {
- curtab->tp_firstwin = firstwin;
- curtab->tp_lastwin = lastwin;
- curtab = tp;
- firstwin = curtab->tp_firstwin;
- lastwin = curtab->tp_lastwin;
- }
- else
- goto_tabpage_tp(tp, FALSE, FALSE);
- }
- if (!win_valid(win))
- return FAIL;
- curwin = win;
- curbuf = curwin->w_buffer;
- return OK;
-}
-
-/*
- * Restore current tabpage and window saved by switch_win(), if still valid.
- * When "no_display" is TRUE the display won't be affected, no redraw is
- * triggered.
- */
- void
-restore_win(
- win_T *save_curwin,
- tabpage_T *save_curtab,
- int no_display)
-{
- restore_win_noblock(save_curwin, save_curtab, no_display);
- unblock_autocmds();
-}
-
-/*
- * As restore_win() but without unblocking autocommands.
- */
- void
-restore_win_noblock(
- win_T *save_curwin,
- tabpage_T *save_curtab,
- int no_display)
-{
- if (save_curtab != NULL && valid_tabpage(save_curtab))
- {
- if (no_display)
- {
- curtab->tp_firstwin = firstwin;
- curtab->tp_lastwin = lastwin;
- curtab = save_curtab;
- firstwin = curtab->tp_firstwin;
- lastwin = curtab->tp_lastwin;
- }
- else
- goto_tabpage_tp(save_curtab, FALSE, FALSE);
- }
- if (win_valid(save_curwin))
- {
- curwin = save_curwin;
- curbuf = curwin->w_buffer;
- }
-#ifdef FEAT_TEXT_PROP
- else if (WIN_IS_POPUP(curwin))
- // original window was closed and now we're in a popup window: Go
- // to the first valid window.
- win_goto(firstwin);
-#endif
-}
-
-/*
- * Make "buf" the current buffer. restore_buffer() MUST be called to undo.
- * No autocommands will be executed. Use aucmd_prepbuf() if there are any.
- */
- void
-switch_buffer(bufref_T *save_curbuf, buf_T *buf)
-{
- block_autocmds();
- set_bufref(save_curbuf, curbuf);
- --curbuf->b_nwindows;
- curbuf = buf;
- curwin->w_buffer = buf;
- ++curbuf->b_nwindows;
-}
-
-/*
- * Restore the current buffer after using switch_buffer().
- */
- void
-restore_buffer(bufref_T *save_curbuf)
-{
- unblock_autocmds();
- /* Check for valid buffer, just in case. */
- if (bufref_valid(save_curbuf))
- {
- --curbuf->b_nwindows;
- curwin->w_buffer = save_curbuf->br_buf;
- curbuf = save_curbuf->br_buf;
- ++curbuf->b_nwindows;
- }
-}
-#endif
-
#if defined(FEAT_GUI) || defined(PROTO)
/*
* Return TRUE if there is any vertically split window.
@@ -6896,312 +6758,3 @@ skip:
return NULL; // no error
}
#endif
-
-#if defined(FEAT_EVAL) || defined(PROTO)
- int
-win_getid(typval_T *argvars)
-{
- int winnr;
- win_T *wp;
-
- if (argvars[0].v_type == VAR_UNKNOWN)
- return curwin->w_id;
- winnr = tv_get_number(&argvars[0]);
- if (winnr > 0)
- {
- if (argvars[1].v_type == VAR_UNKNOWN)
- wp = firstwin;
- else
- {
- tabpage_T *tp;
- int tabnr = tv_get_number(&argvars[1]);
-
- FOR_ALL_TABPAGES(tp)
- if (--tabnr == 0)
- break;
- if (tp == NULL)
- return -1;
- if (tp == curtab)
- wp = firstwin;
- else
- wp = tp->tp_firstwin;
- }
- for ( ; wp != NULL; wp = wp->w_next)
- if (--winnr == 0)
- return wp->w_id;
- }
- return 0;
-}
-
- int
-win_gotoid(typval_T *argvars)
-{
- win_T *wp;
- tabpage_T *tp;
- int id = tv_get_number(&argvars[0]);
-
- FOR_ALL_TAB_WINDOWS(tp, wp)
- if (wp->w_id == id)
- {
- goto_tabpage_win(tp, wp);
- return 1;
- }
- return 0;
-}
-
- void
-win_id2tabwin(typval_T *argvars, list_T *list)
-{
- win_T *wp;
- tabpage_T *tp;
- int winnr = 1;
- int tabnr = 1;
- int id = tv_get_number(&argvars[0]);
-
- FOR_ALL_TABPAGES(tp)
- {
- FOR_ALL_WINDOWS_IN_TAB(tp, wp)
- {
- if (wp->w_id == id)
- {
- list_append_number(list, tabnr);
- list_append_number(list, winnr);
- return;
- }
- ++winnr;
- }
- ++tabnr;
- winnr = 1;
- }
- list_append_number(list, 0);
- list_append_number(list, 0);
-}
-
-/*
- * Return the window pointer of window "id".
- */
- win_T *
-win_id2wp(int id)
-{
- return win_id2wp_tp(id, NULL);
-}
-
-/*
- * Return the window and tab pointer of window "id".
- */
- win_T *
-win_id2wp_tp(int id, tabpage_T **tpp)
-{
- win_T *wp;
- tabpage_T *tp;
-
- FOR_ALL_TAB_WINDOWS(tp, wp)
- if (wp->w_id == id)
- {
- if (tpp != NULL)
- *tpp = tp;
- return wp;
- }
-#ifdef FEAT_TEXT_PROP
- // popup windows are in separate lists
- FOR_ALL_TABPAGES(tp)
- for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
- if (wp->w_id == id)
- {
- if (tpp != NULL)
- *tpp = tp;
- return wp;
- }
- for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
- if (wp->w_id == id)
- {
- if (tpp != NULL)
- *tpp = tp;
- return wp;
- }
-#endif
-
- return NULL;
-}
-
- int
-win_id2win(typval_T *argvars)
-{
- win_T *wp;
- int nr = 1;
- int id = tv_get_number(&argvars[0]);
-
- FOR_ALL_WINDOWS(wp)
- {
- if (wp->w_id == id)
- return nr;
- ++nr;
- }
- return 0;
-}
-
- void
-win_findbuf(typval_T *argvars, list_T *list)
-{
- win_T *wp;
- tabpage_T *tp;
- int bufnr = tv_get_number(&argvars[0]);
-
- FOR_ALL_TAB_WINDOWS(tp, wp)
- if (wp->w_buffer->b_fnum == bufnr)
- list_append_number(list, wp->w_id);
-}
-
-/*
- * Find window specified by "vp" in tabpage "tp".
- */
- win_T *
-find_win_by_nr(
- typval_T *vp,
- tabpage_T *tp) // NULL for current tab page
-{
- win_T *wp;
- int nr = (int)tv_get_number_chk(vp, NULL);
-
- if (nr < 0)
- return NULL;
- if (nr == 0)
- return curwin;
-
- FOR_ALL_WINDOWS_IN_TAB(tp, wp)
- {
- if (nr >= LOWEST_WIN_ID)
- {
- if (wp->w_id == nr)
- return wp;
- }
- else if (--nr <= 0)
- break;
- }
- if (nr >= LOWEST_WIN_ID)
- {
-#ifdef FEAT_TEXT_PROP
- // check tab-local popup windows
- for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
- if (wp->w_id == nr)
- return wp;
- // check global popup windows
- for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
- if (wp->w_id == nr)
- return wp;
-#endif
- return NULL;
- }
- return wp;
-}
-
-/*
- * Find a window: When using a Window ID in any tab page, when using a number
- * in the current tab page.
- */
- win_T *
-find_win_by_nr_or_id(typval_T *vp)
-{
- int nr = (int)tv_get_number_chk(vp, NULL);
-
- if (nr >= LOWEST_WIN_ID)
- return win_id2wp(tv_get_number(vp));
- return find_win_by_nr(vp, NULL);
-}
-
-/*
- * Find window specified by "wvp" in tabpage "tvp".
- * Returns the tab page in 'ptp'
- */
- win_T *
-find_tabwin(
- typval_T *wvp, // VAR_UNKNOWN for current window
- typval_T *tvp, // VAR_UNKNOWN for current tab page
- tabpage_T **ptp)
-{
- win_T *wp = NULL;
- tabpage_T *tp = NULL;
- long n;
-
- if (wvp->v_type != VAR_UNKNOWN)
- {
- if (tvp->v_type != VAR_UNKNOWN)
- {
- n = (long)tv_get_number(tvp);
- if (n >= 0)
- tp = find_tabpage(n);
- }
- else
- tp = curtab;
-
- if (tp != NULL)
- {
- wp = find_win_by_nr(wvp, tp);
- if (wp == NULL && wvp->v_type == VAR_NUMBER
- && wvp->vval.v_number != -1)
- // A window with the specified number is not found
- tp = NULL;
- }
- }
- else
- {
- wp = curwin;
- tp = curtab;
- }
-
- if (ptp != NULL)
- *ptp = tp;
-
- return wp;
-}
-
-/*
- * Get the layout of the given tab page for winlayout().
- */
- void
-get_framelayout(frame_T *fr, list_T *l, int outer)
-{
- frame_T *child;
- list_T *fr_list;
- list_T *win_list;
-
- if (fr == NULL)
- return;
-
- if (outer)
- // outermost call from f_winlayout()
- fr_list = l;
- else
- {
- fr_list = list_alloc();
- if (fr_list == NULL)
- return;
- list_append_list(l, fr_list);
- }
-
- if (fr->fr_layout == FR_LEAF)
- {
- if (fr->fr_win != NULL)
- {
- list_append_string(fr_list, (char_u *)"leaf", -1);
- list_append_number(fr_list, fr->fr_win->w_id);
- }
- }
- else
- {
- list_append_string(fr_list,
- fr->fr_layout == FR_ROW ? (char_u *)"row" : (char_u *)"col", -1);
-
- win_list = list_alloc();
- if (win_list == NULL)
- return;
- list_append_list(fr_list, win_list);
- child = fr->fr_child;
- while (child != NULL)
- {
- get_framelayout(child, win_list, FALSE);
- child = child->fr_next;
- }
- }
-}
-#endif