From 97b2ad35425fd589c4ff816d1f1161f2f7f6a93d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 18 Mar 2006 21:40:56 +0000 Subject: updated for version 7.0228 --- src/auto/configure | 12 ++++++++ src/charset.c | 3 +- src/configure.in | 11 +++++++ src/dosinst.c | 80 +++++++++++++++++++++++++-------------------------- src/dosinst.h | 4 ++- src/edit.c | 2 +- src/ex_getln.c | 2 +- src/gui_gtk_x11.c | 62 ++++++++++++++++++++++----------------- src/gui_w32.c | 2 +- src/misc2.c | 2 +- src/option.c | 13 +++++++++ src/option.h | 3 ++ src/proto/getchar.pro | 6 ++-- src/structs.h | 3 ++ src/version.h | 4 +-- 15 files changed, 131 insertions(+), 78 deletions(-) (limited to 'src') diff --git a/src/auto/configure b/src/auto/configure index 3dfa1b601..20668eb29 100755 --- a/src/auto/configure +++ b/src/auto/configure @@ -7837,6 +7837,18 @@ echo "${ECHO_T}yes" >&6 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0` GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0` GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0` + + echo "$as_me:$LINENO: checking for FreeBSD" >&5 +echo $ECHO_N "checking for FreeBSD... $ECHO_C" >&6 + if test "`(uname) 2>/dev/null`" = FreeBSD; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE" + GNOME_LIBS="$GNOME_LIBS -pthread" + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi have_gnome=yes else echo "$as_me:$LINENO: result: not found" >&5 diff --git a/src/charset.c b/src/charset.c index 7c820d24b..df8685216 100644 --- a/src/charset.c +++ b/src/charset.c @@ -1722,9 +1722,10 @@ vim_isblankline(lbuf) * If "len" is not NULL, the length of the number in characters is returned. * If "nptr" is not NULL, the signed result is returned in it. * If "unptr" is not NULL, the unsigned result is returned in it. + * If "unptr" is not NULL, the unsigned result is returned in it. * If "dooct" is non-zero recognize octal numbers, when > 1 always assume * octal number. - * If "dohext" is non-zero recognize hex numbers, when > 1 always assume + * If "dohex" is non-zero recognize hex numbers, when > 1 always assume * hex number. */ void diff --git a/src/configure.in b/src/configure.in index 3412b95d0..90eb33b8a 100644 --- a/src/configure.in +++ b/src/configure.in @@ -1478,6 +1478,17 @@ AC_DEFUN([GNOME_INIT_HOOK], GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0` GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0` GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0` + + dnl On FreeBSD we need -pthread but pkg-config doesn't include it. + dnl This might not be the right way but it works for me... + AC_MSG_CHECKING(for FreeBSD) + if test "`(uname) 2>/dev/null`" = FreeBSD; then + AC_MSG_RESULT(yes, adding -pthread) + GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE" + GNOME_LIBS="$GNOME_LIBS -pthread" + else + AC_MSG_RESULT(no) + fi $1 else AC_MSG_RESULT(not found) diff --git a/src/dosinst.c b/src/dosinst.c index 41a826708..1b572a075 100644 --- a/src/dosinst.c +++ b/src/dosinst.c @@ -751,7 +751,6 @@ install_bat_choice(int idx) char *exename = targets[choices[idx].arg].exenamearg; char *vimarg = targets[choices[idx].arg].exearg; FILE *fd; - char buf[BUFSIZE]; if (*batpath != NUL) { @@ -763,23 +762,29 @@ install_bat_choice(int idx) need_uninstall_entry = 1; fprintf(fd, "@echo off\n"); - fprintf(fd, "rem -- Run Vim --\n\n"); + fprintf(fd, "rem -- Run Vim --\n"); + fprintf(fd, "\n"); - strcpy(buf, installdir); - buf[runtimeidx - 1] = NUL; - /* Don't use double quotes for the value here, also when buf + /* Don't use double quotes for the "set" argument, also when it * contains a space. The quotes would be included in the value - * for MSDOS and NT. */ - fprintf(fd, "set VIM=%s\n\n", buf); - - strcpy(buf, installdir + runtimeidx); - add_pathsep(buf); - strcat(buf, exename); + * for MSDOS and NT. + * The order of preference is: + * 1. $VIMRUNTIME/vim.exe (user preference) + * 2. $VIM/vim70/vim.exe (hard coded version) + * 3. installdir/vim.exe (hard coded install directory) + */ + fprintf(fd, "set VIM_EXE_DIR=%s\n", installdir); + fprintf(fd, "if exist \"%%VIM%%\\%s\\%s\" set VIM_EXE_DIR=%%VIM%%\\%s\n", + VIM_VERSION_NODOT, exename, VIM_VERSION_NODOT); + fprintf(fd, "if exist \"%%VIMRUNTIME%%\\%s\" set VIM_EXE_DIR=%%VIMRUNTIME%%\n", exename); + fprintf(fd, "\n"); /* Give an error message when the executable could not be found. */ - fprintf(fd, "if exist \"%%VIM%%\\%s\" goto havevim\n", buf); - fprintf(fd, "echo \"%%VIM%%\\%s\" not found\n", buf); - fprintf(fd, "goto eof\n\n"); + fprintf(fd, "if exist \"%%VIM_EXE_DIR%%\\%s\" goto havevim\n", + exename); + fprintf(fd, "echo \"%%VIM_EXE_DIR%%\\%s\" not found\n", exename); + fprintf(fd, "goto eof\n"); + fprintf(fd, "\n"); fprintf(fd, ":havevim\n"); fprintf(fd, "rem collect the arguments in VIMARGS for Win95\n"); @@ -796,10 +801,12 @@ install_bat_choice(int idx) } fprintf(fd, "set VIMARGS=%%VIMARGS%% %%1\n"); fprintf(fd, "shift\n"); - fprintf(fd, "goto loopstart\n\n"); + fprintf(fd, "goto loopstart\n"); fprintf(fd, ":loopend\n"); + fprintf(fd, "\n"); - fprintf(fd, "if .%%OS%%==.Windows_NT goto ntaction\n\n"); + fprintf(fd, "if .%%OS%%==.Windows_NT goto ntaction\n"); + fprintf(fd, "\n"); /* For gvim.exe use "start" to avoid that the console window stays * open. */ @@ -809,24 +816,21 @@ install_bat_choice(int idx) fprintf(fd, "start "); } - /* Do use quotes here if the path includes a space. */ - if (strchr(installdir, ' ') != NULL) - fprintf(fd, "\"%%VIM%%\\%s\" %s %%VIMARGS%%\n", buf, vimarg); - else - fprintf(fd, "%%VIM%%\\%s %s %%VIMARGS%%\n", buf, vimarg); - fprintf(fd, "goto eof\n\n"); + /* Always use quotes, $VIM or $VIMRUNTIME might have a space. */ + fprintf(fd, "\"%%VIM_EXE_DIR%%\\%s\" %s %%VIMARGS%%\n", + exename, vimarg); + fprintf(fd, "goto eof\n"); + fprintf(fd, "\n"); if (*exename == 'g') { fprintf(fd, ":nofork\n"); fprintf(fd, "start /w "); - /* Do use quotes here if the path includes a space. */ - if (strchr(installdir, ' ') != NULL) - fprintf(fd, "\"%%VIM%%\\%s\" %s %%VIMARGS%%\n", buf, - vimarg); - else - fprintf(fd, "%%VIM%%\\%s %s %%VIMARGS%%\n", buf, vimarg); - fprintf(fd, "goto eof\n\n"); + /* Always use quotes, $VIM or $VIMRUNTIME might have a space. */ + fprintf(fd, "\"%%VIM_EXE_DIR%%\\%s\" %s %%VIMARGS%%\n", + exename, vimarg); + fprintf(fd, "goto eof\n"); + fprintf(fd, "\n"); } fprintf(fd, ":ntaction\n"); @@ -840,22 +844,18 @@ install_bat_choice(int idx) fprintf(fd, "start \"dummy\" /b "); } - /* Do use quotes here if the path includes a space. */ - if (strchr(installdir, ' ') != NULL) - fprintf(fd, "\"%%VIM%%\\%s\" %s %%*\n", buf, vimarg); - else - fprintf(fd, "%%VIM%%\\%s %s %%*\n", buf, vimarg); - fprintf(fd, "goto eof\n\n"); + /* Always use quotes, $VIM or $VIMRUNTIME might have a space. */ + fprintf(fd, "\"%%VIM_EXE_DIR%%\\%s\" %s %%*\n", exename, vimarg); + fprintf(fd, "goto eof\n"); + fprintf(fd, "\n"); if (*exename == 'g') { fprintf(fd, ":noforknt\n"); fprintf(fd, "start \"dummy\" /b /wait "); - /* Do use quotes here if the path includes a space. */ - if (strchr(installdir, ' ') != NULL) - fprintf(fd, "\"%%VIM%%\\%s\" %s %%*\n", buf, vimarg); - else - fprintf(fd, "%%VIM%%\\%s %s %%*\n", buf, vimarg); + /* Always use quotes, $VIM or $VIMRUNTIME might have a space. */ + fprintf(fd, "\"%%VIM_EXE_DIR%%\\%s\" %s %%*\n", + exename, vimarg); } fprintf(fd, "\n:eof\n"); diff --git a/src/dosinst.h b/src/dosinst.h index 7b53e5008..485e7cd71 100644 --- a/src/dosinst.h +++ b/src/dosinst.h @@ -350,7 +350,7 @@ retry: * List of targets. The first one (index zero) is used for the default path * for the batch files. */ -#define TARGET_COUNT 8 +#define TARGET_COUNT 9 struct { @@ -381,6 +381,8 @@ struct "vimdiff.exe","vim.exe", "-d"}, {"gvimdiff","gvimdiff.bat", "gVim Diff.lnk", "gvimdiff.exe","gvim.exe", "-d"}, + {"vimtutor","vimtutor.bat", "Vim tutor.lnk", + "vimtutor.bat", "vimtutor.bat", ""}, }; #define ICON_COUNT 3 diff --git a/src/edit.c b/src/edit.c index e8396d139..0cac94531 100644 --- a/src/edit.c +++ b/src/edit.c @@ -7251,7 +7251,7 @@ ins_ctrl_g() static void ins_ctrl_hat() { - if (map_to_exists_mode((char_u *)"", LANGMAP)) + if (map_to_exists_mode((char_u *)"", LANGMAP, FALSE)) { /* ":lmap" mappings exists, Toggle use of ":lmap" mappings. */ if (State & LANGMAP) diff --git a/src/ex_getln.c b/src/ex_getln.c index 2af0e7ca6..58cfec843 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -985,7 +985,7 @@ getcmdline(firstc, count, indent) goto cmdline_not_changed; case Ctrl_HAT: - if (map_to_exists_mode((char_u *)"", LANGMAP)) + if (map_to_exists_mode((char_u *)"", LANGMAP, FALSE)) { /* ":lmap" mappings exists, toggle use of mappings. */ State ^= LANGMAP; diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c index 058e90c96..964fcf687 100644 --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -2884,7 +2884,8 @@ get_menu_tool_width(void) width += get_item_dimensions(gui.toolbar, GTK_ORIENTATION_VERTICAL); # endif # ifdef FEAT_GUI_TABLINE - width += get_item_dimensions(gui.tabline, GTK_ORIENTATION_VERTICAL); + if (gui.tabline != NULL) + width += get_item_dimensions(gui.tabline, GTK_ORIENTATION_VERTICAL); # endif #endif @@ -2903,7 +2904,8 @@ get_menu_tool_height(void) height += get_item_dimensions(gui.toolbar, GTK_ORIENTATION_HORIZONTAL); #endif #ifdef FEAT_GUI_TABLINE - height += get_item_dimensions(gui.tabline, GTK_ORIENTATION_HORIZONTAL); + if (gui.tabline != NULL) + height += get_item_dimensions(gui.tabline, GTK_ORIENTATION_HORIZONTAL); #endif return height; @@ -3578,32 +3580,38 @@ gui_mch_init(void) #endif /* FEAT_TOOLBAR */ #ifdef FEAT_GUI_TABLINE - /* Use a Notebook for the tab pages labels. The labels are hidden by - * default. */ - gui.tabline = gtk_notebook_new(); - gtk_widget_show(gui.tabline); - gtk_box_pack_start(GTK_BOX(vbox), gui.tabline, FALSE, FALSE, 0); - gtk_notebook_set_show_border(GTK_NOTEBOOK(gui.tabline), FALSE); - gtk_notebook_set_show_tabs(GTK_NOTEBOOK(gui.tabline), FALSE); - - { - GtkWidget *page, *label; - - /* Add the first tab. */ - page = gtk_vbox_new(FALSE, 0); - gtk_widget_show(page); - gtk_container_add(GTK_CONTAINER(gui.tabline), page); - label = gtk_label_new("-Empty-"); - gtk_widget_show(label); - gtk_notebook_set_tab_label(GTK_NOTEBOOK(gui.tabline), page, label); - } - gtk_signal_connect(GTK_OBJECT(gui.tabline), "switch_page", - GTK_SIGNAL_FUNC(on_select_tab), NULL); - - /* Create a popup menu for the tab line and connect it. */ - tabline_menu = create_tabline_menu(); - gtk_signal_connect_object(GTK_OBJECT(gui.tabline), "button_press_event", + /* + * Use a Notebook for the tab pages labels. The labels are hidden by + * default. + * TODO: currently doesn't work for Gnome. + */ + if (!using_gnome) + { + gui.tabline = gtk_notebook_new(); + gtk_widget_show(gui.tabline); + gtk_box_pack_start(GTK_BOX(vbox), gui.tabline, FALSE, FALSE, 0); + gtk_notebook_set_show_border(GTK_NOTEBOOK(gui.tabline), FALSE); + gtk_notebook_set_show_tabs(GTK_NOTEBOOK(gui.tabline), FALSE); + + { + GtkWidget *page, *label; + + /* Add the first tab. */ + page = gtk_vbox_new(FALSE, 0); + gtk_widget_show(page); + gtk_container_add(GTK_CONTAINER(gui.tabline), page); + label = gtk_label_new("-Empty-"); + gtk_widget_show(label); + gtk_notebook_set_tab_label(GTK_NOTEBOOK(gui.tabline), page, label); + } + gtk_signal_connect(GTK_OBJECT(gui.tabline), "switch_page", + GTK_SIGNAL_FUNC(on_select_tab), NULL); + + /* Create a popup menu for the tab line and connect it. */ + tabline_menu = create_tabline_menu(); + gtk_signal_connect_object(GTK_OBJECT(gui.tabline), "button_press_event", GTK_SIGNAL_FUNC(on_tabline_menu), GTK_OBJECT(tabline_menu)); + } #endif gui.formwin = gtk_form_new(); diff --git a/src/gui_w32.c b/src/gui_w32.c index 6e3608065..3c3d9949b 100644 --- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -2063,7 +2063,7 @@ gui_mch_draw_string( int cw; /* width of current cell */ int c; - wlen = 0 + wlen = 0; clen = 0; cells = 0; for (i = 0; i < len; ) diff --git a/src/misc2.c b/src/misc2.c index 9c84786a3..2a0d7cda9 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -157,7 +157,7 @@ coladvance2(pos, addspaces, finetune, wcol) || (VIsual_active && *p_sel != 'o') #endif #ifdef FEAT_VIRTUALEDIT - || (ve_flags & VE_ONEMORE) + || ((ve_flags & VE_ONEMORE) && wcol < MAXCOL) #endif ; line = ml_get_curline(); diff --git a/src/option.c b/src/option.c index 0686b853c..8b3d8c660 100644 --- a/src/option.c +++ b/src/option.c @@ -231,6 +231,9 @@ #ifdef FEAT_WINDOWS # define PV_WFH OPT_WIN(WV_WFH) #endif +#ifdef FEAT_VERTSPLIT +# define PV_WFW OPT_WIN(WV_WFW) +#endif #define PV_WRAP OPT_WIN(WV_WRAP) @@ -2638,6 +2641,13 @@ static struct vimoption (char_u *)VAR_WIN, PV_WFH, #else (char_u *)NULL, PV_NONE, +#endif + {(char_u *)FALSE, (char_u *)0L}}, + {"winfixwidth", "wfw", P_BOOL|P_VI_DEF|P_RSTAT, +#ifdef FEAT_VERTSPLIT + (char_u *)VAR_WIN, PV_WFW, +#else + (char_u *)NULL, PV_NONE, #endif {(char_u *)FALSE, (char_u *)0L}}, {"winminheight", "wmh", P_NUM|P_VI_DEF, @@ -8869,6 +8879,9 @@ get_varp(p) #ifdef FEAT_WINDOWS case PV_WFH: return (char_u *)&(curwin->w_p_wfh); #endif +#ifdef FEAT_VERTSPLIT + case PV_WFW: return (char_u *)&(curwin->w_p_wfw); +#endif #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) case PV_PVW: return (char_u *)&(curwin->w_p_pvw); #endif diff --git a/src/option.h b/src/option.h index b4782abb2..b1e6f8241 100644 --- a/src/option.h +++ b/src/option.h @@ -1043,6 +1043,9 @@ enum #endif #ifdef FEAT_WINDOWS , WV_WFH +#endif +#ifdef FEAT_VERTSPLIT + , WV_WFW #endif , WV_WRAP , WV_COUNT /* must be the last one */ diff --git a/src/proto/getchar.pro b/src/proto/getchar.pro index e38f38009..9212342b2 100644 --- a/src/proto/getchar.pro +++ b/src/proto/getchar.pro @@ -49,15 +49,15 @@ int do_map __ARGS((int maptype, char_u *arg, int mode, int abbrev)); int get_map_mode __ARGS((char_u **cmdp, int forceit)); void map_clear __ARGS((char_u *cmdp, char_u *arg, int forceit, int abbr)); void map_clear_int __ARGS((buf_T *buf, int mode, int local, int abbr)); -int map_to_exists __ARGS((char_u *str, char_u *modechars)); -int map_to_exists_mode __ARGS((char_u *rhs, int mode)); +int map_to_exists __ARGS((char_u *str, char_u *modechars, int abbr)); +int map_to_exists_mode __ARGS((char_u *rhs, int mode, int abbr)); char_u *set_context_in_map_cmd __ARGS((expand_T *xp, char_u *cmd, char_u *arg, int forceit, int isabbrev, int isunmap, cmdidx_T cmdidx)); int ExpandMappings __ARGS((regmatch_T *regmatch, int *num_file, char_u ***file)); int check_abbr __ARGS((int c, char_u *ptr, int col, int mincol)); int makemap __ARGS((FILE *fd, buf_T *buf)); int put_escstr __ARGS((FILE *fd, char_u *strstart, int what)); void check_map_keycodes __ARGS((void)); -char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod)); +char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod, int abbr)); void init_mappings __ARGS((void)); void add_map __ARGS((char_u *map, int mode)); /* vim: set ft=c : */ diff --git a/src/structs.h b/src/structs.h index 1e66e6ff5..6abdc4149 100644 --- a/src/structs.h +++ b/src/structs.h @@ -176,6 +176,8 @@ typedef struct #if defined(FEAT_WINDOWS) int wo_wfh; # define w_p_wfh w_onebuf_opt.wo_wfh /* 'winfixheight' */ + int wo_wfw; +# define w_p_wfw w_onebuf_opt.wo_wfw /* 'winfixwidth' */ #endif #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) int wo_pvw; @@ -1656,6 +1658,7 @@ struct frame_S char fr_layout; /* FR_LEAF, FR_COL or FR_ROW */ #ifdef FEAT_VERTSPLIT int fr_width; + int fr_newwidth; /* new width used in win_equal_rec() */ #endif int fr_height; int fr_newheight; /* new height used in win_equal_rec() */ diff --git a/src/version.h b/src/version.h index 92f741133..6e8bfdcb7 100644 --- 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 Mar 17)" -#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 17, compiled " +#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 18)" +#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 18, compiled " -- cgit v1.2.1