# HG changeset patch # User vimboss # Date 1140041922 0 # Node ID f892bda292a89e7592ccee5fc0e296659066d7c5 # Parent b945c6d9f3c7648ce86a770c4d357a99616a37fb updated for version 7.0198 diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1,4 +1,4 @@ -*change.txt* For Vim version 7.0aa. Last change: 2006 Feb 13 +*change.txt* For Vim version 7.0aa. Last change: 2006 Feb 15 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1171,7 +1171,7 @@ gq{motion} Format the lines that {motio Formatting is done with one of three methods: 1. If 'formatexpr' is not empty the expression is evaluated. This can differ for each buffer. - 2. If 'formatprg' is not mepty an external program + 2. If 'formatprg' is not empty an external program is used. 3. Otherise formatting is done internally. diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.0aa. Last change: 2006 Feb 14 +*todo.txt* For Vim version 7.0aa. Last change: 2006 Feb 15 VIM REFERENCE MANUAL by Bram Moolenaar @@ -32,22 +32,20 @@ be worked on, but only if you sponsor Vi Support WINDOW TABS. Works like several pages, each with their own split windows. Let's call them "tab pages". - - todo: - - ":qa"? - - "2gt" doesn't restore syntax HL. GUI: scrollbars are wrong. - - line at top of frame with tabs. 'tabline' option 0/1/2 like 'laststatus' - Use the name of the first buffer in the tab (ignoring the help window, - unless it's the only one). Add a number for the window count. + - Mouse click in tab name should select that tab. + - line at top of frame with tabs. + for the name ignore the help window, unless it's the only one). + Add a number for the window count? + Add a '+' if one of the windows is modified? Add 'tabtext' option, like 'statusline'. - Select tab with mouse. + Add an "X" to close the current tab (like firefox). - When deleting a buffer also close windows in other tab pages. - - check all places where (firstwin == lastwin) is used (and vise versa) + - check all places where firstwin and lastwin are used - check all places wheren only_one_window() is used. - - When Vim window is resized all tabs must be resized. + - Add tabpage(): returns current tab page number. - E999 - ":tabclose N" close tab N - docs: + - docs: :tabedit :tabfind :tab N @@ -58,21 +56,20 @@ windows. Let's call them "tab pages". "gt": Use "1gt" - "99gt" to switch to another tab. "gt" goes to the next one. Hint in docs: To mess with another buffer, without changing the window layout, do this in another tab. - - add GUI Tabs for some systems. - Patch for GTK 1.2 passed on by Christian Michon, 2004 Jan 6. - Simple patch for GTK by Luis M (nov 7). - - Don't forget to provide an "X" to close the current tab. - - Need to be able to search the windows in inactive tabs, e.g. for the - quickfix window. - + 'tabline' values 0/1/2 + - add GUI Tabs for some systems. + Patch for GTK 1.2 passed on by Christian Michon, 2004 Jan 6. + Simple patch for GTK by Luis M (nov 7). + - Need to be able to search the windows in inactive tabs, e.g. for the + quickfix window. Crash with X command server (Ciaran McCreesh). Ctags still hasn't included the patch... +"fsutil hardlink" can create a hard link on an NTFS file system. (Daniel +Einspanjer) What library function can detect that? + spelling: - Also use the spelling dictionary for dictionary completion. When 'dictionary' is empty and/or when "kspell" is in 'complete'. diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -3456,6 +3456,9 @@ update_window_manager_hints(void) * otherwise the hints don't work. */ width = gui_get_base_width(); height = gui_get_base_height(); +# ifdef FEAT_MENU + height += tabpageline_height() * gui.char_height; +# endif # ifdef HAVE_GTK2 width += get_menu_tool_width(); height += get_menu_tool_height(); diff --git a/src/option.c b/src/option.c --- a/src/option.c +++ b/src/option.c @@ -2181,6 +2181,13 @@ static struct vimoption {(char_u *)0L, (char_u *)0L} #endif }, + {"tabline", "tal", P_NUM|P_VI_DEF|P_RALL, +#ifdef FEAT_WINDOWS + (char_u *)&p_tal, PV_NONE, +#else + (char_u *)NULL, PV_NONE, +#endif + {(char_u *)1L, (char_u *)0L}}, {"tabstop", "ts", P_NUM|P_VI_DEF|P_RBUF, (char_u *)&p_ts, PV_TS, {(char_u *)8L, (char_u *)0L}}, @@ -7259,6 +7266,12 @@ set_num_option(opt_idx, varp, value, err { last_status(FALSE); } + + /* (re)set tab page line */ + else if (pp == &p_tal) + { + shell_new_rows(); /* recompute window positions and heights */ + } #endif #ifdef FEAT_GUI diff --git a/src/option.h b/src/option.h --- a/src/option.h +++ b/src/option.h @@ -577,6 +577,7 @@ EXTERN char_u *p_lispwords; /* 'lispword #endif #ifdef FEAT_WINDOWS EXTERN long p_ls; /* 'laststatus' */ +EXTERN long p_tal; /* 'tabline' */ #endif EXTERN char_u *p_lcs; /* 'listchars' */ diff --git a/src/proto/gui.pro b/src/proto/gui.pro --- a/src/proto/gui.pro +++ b/src/proto/gui.pro @@ -34,6 +34,7 @@ void gui_send_mouse_event __ARGS((int bu int gui_xy2colrow __ARGS((int x, int y, int *colp)); void gui_menu_cb __ARGS((vimmenu_T *menu)); void gui_init_which_components __ARGS((char_u *oldval)); +void gui_remove_scrollbars __ARGS((void)); void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp)); scrollbar_T *gui_find_scrollbar __ARGS((long ident)); void gui_drag_scrollbar __ARGS((scrollbar_T *sb, long value, int still_dragging)); diff --git a/src/proto/window.pro b/src/proto/window.pro --- a/src/proto/window.pro +++ b/src/proto/window.pro @@ -26,6 +26,7 @@ void shell_new_rows __ARGS((void)); void shell_new_columns __ARGS((void)); void win_size_save __ARGS((garray_T *gap)); void win_size_restore __ARGS((garray_T *gap)); +int win_comp_pos __ARGS((void)); void win_setheight __ARGS((int height)); void win_setheight_win __ARGS((int height, win_T *win)); void win_setwidth __ARGS((int width)); diff --git a/src/screen.c b/src/screen.c --- a/src/screen.c +++ b/src/screen.c @@ -701,8 +701,14 @@ updateWindow(wp) if (clip_star.available && clip_isautosel()) clip_update_selection(); #endif + win_update(wp); + #ifdef FEAT_WINDOWS + /* When the screen was cleared redraw the tab pages line. */ + if (redraw_tabpage) + draw_tabpage(); + if (wp->w_redr_status # ifdef FEAT_CMDL_INFO || p_ru @@ -7057,6 +7063,9 @@ screenclear2() win_rest_invalid(firstwin); redraw_cmdline = TRUE; +#ifdef FEAT_WINDOWS + redraw_tabpage = TRUE; +#endif if (must_redraw == CLEAR) /* no need to clear again */ must_redraw = NOT_VALID; compute_cmdrow(); @@ -8468,11 +8477,14 @@ draw_tabpage() c = '/'; else c = '\\'; - screen_putchar(c, 0, col++, attr); + if (t_colors < 8) + screen_putchar(c, 0, col++, attr); if (tp->tp_topframe != topframe) attr = attr_nosel; + screen_putchar(' ', 0, col++, attr); + if (tp->tp_topframe == topframe) wp = curwin; else @@ -8488,11 +8500,17 @@ draw_tabpage() len = tabwidth; screen_puts_len(NameBuff, len, 0, col, attr); col += len; - } - - screen_putchar('\\', 0, col++, attr); - while (col < Columns) - screen_putchar('_', 0, col++, attr_fill); + screen_putchar(' ', 0, col++, attr); + } + + if (t_colors < 8) + { + screen_putchar('\\', 0, col++, attr); + c = '_'; + } + else + c = ' '; + screen_fill(0, 1, col, (int)Columns, c, c, attr_fill); } #endif diff --git a/src/structs.h b/src/structs.h --- a/src/structs.h +++ b/src/structs.h @@ -1555,11 +1555,13 @@ typedef struct w_line typedef struct tabpage_S tabpage_T; struct tabpage_S { - tabpage_T *tp_next; /* next tabpage or NULL */ - frame_T *tp_topframe; - win_T *tp_curwin; /* current window in this Tab page */ - win_T *tp_firstwin; /* first window in this Tab page */ - win_T *tp_lastwin; /* last window in this Tab page */ + tabpage_T *tp_next; /* next tabpage or NULL */ + frame_T *tp_topframe; /* topframe for the windows */ + win_T *tp_curwin; /* current window in this Tab page */ + win_T *tp_firstwin; /* first window in this Tab page */ + win_T *tp_lastwin; /* last window in this Tab page */ + long tp_old_Rows; /* Rows when Tab page was left */ + long tp_old_Columns; /* Columns when Tab page was left */ }; /* diff --git a/src/syntax.c b/src/syntax.c --- a/src/syntax.c +++ b/src/syntax.c @@ -6079,9 +6079,8 @@ static char *(highlight_init_both[]) = "DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red", "PmenuThumb cterm=reverse gui=reverse", "PmenuSbar ctermbg=Grey guibg=Grey", - "TabPage term=underline cterm=underline ctermbg=grey gui=underline guibg=grey", - "TabPageSel term=reverse,bold cterm=reverse,bold gui=reverse,bold", - "TabPageFill term=underline cterm=underline ctermbg=grey gui=underline guibg=grey", + "TabPageSel term=bold cterm=bold gui=bold", + "TabPageFill term=reverse cterm=reverse gui=reverse", NULL }; @@ -6110,6 +6109,7 @@ static char *(highlight_init_light[]) = "DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue", "DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta", "DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan", + "TabPage term=underline cterm=underline ctermbg=LightGrey gui=underline guibg=LightGrey", NULL }; @@ -6138,6 +6138,7 @@ static char *(highlight_init_dark[]) = "DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue", "DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta", "DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan", + "TabPage term=underline cterm=underline ctermbg=DarkGrey gui=underline guibg=DarkGrey", NULL }; diff --git a/src/version.h b/src/version.h --- a/src/version.h +++ b/src/version.h @@ -36,5 +36,5 @@ #define VIM_VERSION_NODOT "vim70aa" #define VIM_VERSION_SHORT "7.0aa" #define VIM_VERSION_MEDIUM "7.0aa ALPHA" -#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 14)" -#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 14, compiled " +#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 15)" +#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 15, compiled "