changeset 790:c8680debe1cc

updated for version 7.0230
author vimboss
date Mon, 20 Mar 2006 21:55:45 +0000
parents b29b006d52d2
children 98a88a884610
files runtime/doc/eval.txt runtime/doc/makehtml.awk runtime/doc/options.txt runtime/doc/repeat.txt runtime/doc/tags runtime/plugin/README.txt src/ex_cmds2.c src/globals.h src/gui_gtk.c src/option.c src/option.h src/structs.h src/version.h
diffstat 13 files changed, 138 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -7157,7 +7157,7 @@ This is not guaranteed 100% secure, but 
 
 							*sandbox-option*
 A few options contain an expression.  When this expression is evaluated it may
-have to be done in the sandbox to avoid a security risc.  But the sandbox is
+have to be done in the sandbox to avoid a security risk.  But the sandbox is
 restrictive, thus this only happens when the option was set from an insecure
 location.  Insecure in this context are:
 - sourcing a .vimrc or .exrc in the current directlry
--- a/runtime/doc/makehtml.awk
+++ b/runtime/doc/makehtml.awk
@@ -135,7 +135,7 @@ NR == 1 { nf=split(FILENAME,f,".")
 	print "<H1>Vim documentation: " f[1] "</H1>";
 	print "<A NAME=\"top\"></A>";
 	if ( FILENAME != "help.txt" ) {
-	  print "<A HREF=\"help.html\">main help file</A>\n";
+	  print "<A HREF=\"index.html\">main help file</A>\n";
 	}
 	print "<HR>";
 	print "<PRE>";
@@ -244,7 +244,15 @@ npipe > 2 && nstar < 3 {
 				find_tag1();
 				}
 				else {
+					if ( f[1] == "index" ) {
+		printf "|<A HREF=\"vimindex.html\">" p[i] "</A>|";
+					} else {
+						if ( f[1] == "help" ) {
+		printf "|<A HREF=\"index.html\">" p[i] "</A>|";
+						} else {
 		printf "|<A HREF=\"" f[1] ".html\">" p[i] "</A>|";
+						}
+					}
 				}
 			}
 		}
@@ -373,13 +381,12 @@ END {
 
 #
 # as main we keep index.txt (by default)
-# other candidate, help.txt
 #
 function topback () {
 	if ( FILENAME != "tags" ) {
 	if ( FILENAME != "help.txt" ) {
 	printf("<A HREF=\"#top\">top</A> - ");
-	printf("<A HREF=\"help.html\">main help file</A>\n");
+	printf("<A HREF=\"index.html\">main help file</A>\n");
 	} else {
 	printf("<A HREF=\"#top\">top</A>\n");
 	}
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1013,7 +1013,7 @@ A jump table for the options with a shor
 
 						     *'balloonexpr'* *'bexpr'*
 'balloonexpr' 'bexpr'	string	(default "")
-			global
+			global or local to buffer |global-local|
 			{not in Vi}
 			{only available when compiled with the |+balloon_eval|
 			feature}
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 7.0aa.  Last change: 2006 Mar 07
+*repeat.txt*    For Vim version 7.0aa.  Last change: 2006 Mar 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -563,9 +563,17 @@ It is only included when Vim was compile
 
 :prof[ile] start {fname}			*:prof* *:profile* *E750*
 		Start profiling, write the output in {fname} upon exit.
-		If {fname} already exists it will be overwritten.
+		If {fname} already exists it will be silently overwritten.
 		The variable |v:profiling| is set to one.
 
+:prof[ile] pause
+		Don't profile until the following ":profile continue".  Can be
+		used when doing something that should not be counted (e.g., an
+		external command).  Does not nest.
+
+:prof[ile] continue
+		Continue profiling after ":profile pause".
+
 :prof[ile] func {pattern}
 		Profile function that matches the pattern {pattern}.
 		See |:debug-name| for how {pattern} is used.
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2558,12 +2558,22 @@ 90.5	usr_90.txt	/*90.5*
 :sleep	various.txt	/*:sleep*
 :sm	change.txt	/*:sm*
 :smagic	change.txt	/*:smagic*
+:smap	map.txt	/*:smap*
+:smap_l	map.txt	/*:smap_l*
+:smapc	map.txt	/*:smapc*
+:smapclear	map.txt	/*:smapclear*
+:sme	gui.txt	/*:sme*
+:smenu	gui.txt	/*:smenu*
 :sn	windows.txt	/*:sn*
 :snext	windows.txt	/*:snext*
 :sni	if_sniff.txt	/*:sni*
 :sniff	if_sniff.txt	/*:sniff*
 :sno	change.txt	/*:sno*
 :snomagic	change.txt	/*:snomagic*
+:snor	map.txt	/*:snor*
+:snoremap	map.txt	/*:snoremap*
+:snoreme	gui.txt	/*:snoreme*
+:snoremenu	gui.txt	/*:snoremenu*
 :so	repeat.txt	/*:so*
 :sor	change.txt	/*:sor*
 :sort	change.txt	/*:sort*
@@ -2607,6 +2617,10 @@ 90.5	usr_90.txt	/*90.5*
 :substitute	change.txt	/*:substitute*
 :sun	windows.txt	/*:sun*
 :sunhide	windows.txt	/*:sunhide*
+:sunm	map.txt	/*:sunm*
+:sunmap	map.txt	/*:sunmap*
+:sunme	gui.txt	/*:sunme*
+:sunmenu	gui.txt	/*:sunmenu*
 :sus	starting.txt	/*:sus*
 :suspend	starting.txt	/*:suspend*
 :sv	windows.txt	/*:sv*
@@ -2839,6 +2853,21 @@ 90.5	usr_90.txt	/*90.5*
 :xa	editing.txt	/*:xa*
 :xall	editing.txt	/*:xall*
 :xit	editing.txt	/*:xit*
+:xm	map.txt	/*:xm*
+:xmap	map.txt	/*:xmap*
+:xmap_l	map.txt	/*:xmap_l*
+:xmapc	map.txt	/*:xmapc*
+:xmapclear	map.txt	/*:xmapclear*
+:xme	gui.txt	/*:xme*
+:xmenu	gui.txt	/*:xmenu*
+:xn	map.txt	/*:xn*
+:xnoremap	map.txt	/*:xnoremap*
+:xnoreme	gui.txt	/*:xnoreme*
+:xnoremenu	gui.txt	/*:xnoremenu*
+:xu	map.txt	/*:xu*
+:xunmap	map.txt	/*:xunmap*
+:xunme	gui.txt	/*:xunme*
+:xunmenu	gui.txt	/*:xunmenu*
 :y	change.txt	/*:y*
 :yank	change.txt	/*:yank*
 :z	various.txt	/*:z*
@@ -4931,6 +4960,7 @@ edit-files	editing.txt	/*edit-files*
 edit-intro	editing.txt	/*edit-intro*
 edit-no-break	usr_25.txt	/*edit-no-break*
 editing.txt	editing.txt	/*editing.txt*
+efm-%>	quickfix.txt	/*efm-%>*
 efm-entries	quickfix.txt	/*efm-entries*
 efm-ignore	quickfix.txt	/*efm-ignore*
 eiffel.vim	syntax.txt	/*eiffel.vim*
@@ -5972,7 +6002,9 @@ mapmode-l	map.txt	/*mapmode-l*
 mapmode-n	map.txt	/*mapmode-n*
 mapmode-nvo	map.txt	/*mapmode-nvo*
 mapmode-o	map.txt	/*mapmode-o*
+mapmode-s	map.txt	/*mapmode-s*
 mapmode-v	map.txt	/*mapmode-v*
+mapmode-x	map.txt	/*mapmode-x*
 mapping	map.txt	/*mapping*
 mark	motion.txt	/*mark*
 mark-motions	motion.txt	/*mark-motions*
@@ -6249,6 +6281,7 @@ new-line-continuation	version5.txt	/*new
 new-location-list	version7.txt	/*new-location-list*
 new-manpage-trans	version7.txt	/*new-manpage-trans*
 new-map-expression	version7.txt	/*new-map-expression*
+new-map-select	version7.txt	/*new-map-select*
 new-more-highlighting	version7.txt	/*new-more-highlighting*
 new-more-unicode	version7.txt	/*new-more-unicode*
 new-multi-byte	version5.txt	/*new-multi-byte*
--- a/runtime/plugin/README.txt
+++ b/runtime/plugin/README.txt
@@ -8,6 +8,7 @@ netrw.vim	edit files over a network and 
 rrhelper.vim	used for --remote-wait editing
 tar.vim		edit (compressed) tar files
 tohtml.vim	convert a file with syntax highlighting to HTML
+vimball.vim	create and unpack .vba files
 
 Note: the explorer.vim plugin is no longer here, the netrw.vim plugin has
 taken over browsing directories (also over ftp).
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1007,6 +1007,7 @@ profile_msg(tm)
 }
 
 static char_u	*profile_fname = NULL;
+static proftime_T pause_time;
 
 /*
  * ":profile cmd args"
@@ -1026,12 +1027,27 @@ ex_profile(eap)
     {
 	vim_free(profile_fname);
 	profile_fname = vim_strsave(e);
-	do_profiling = TRUE;
+	do_profiling = PROF_YES;
 	profile_zero(&prof_wait_time);
 	set_vim_var_nr(VV_PROFILING, 1L);
     }
-    else if (!do_profiling)
+    else if (do_profiling == PROF_NONE)
 	EMSG(_("E750: First use :profile start <fname>"));
+    else if (STRCMP(eap->arg, "pause") == 0)
+    {
+	if (do_profiling == PROF_YES)
+	    profile_start(&pause_time);
+	do_profiling = PROF_PAUSED;
+    }
+    else if (STRCMP(eap->arg, "continue") == 0)
+    {
+	if (do_profiling == PROF_PAUSED)
+	{
+	    profile_end(&pause_time);
+	    profile_add(&prof_wait_time, &pause_time);
+	}
+	do_profiling = PROF_YES;
+    }
     else
     {
 	/* The rest is similar to ":breakadd". */
@@ -2920,7 +2936,7 @@ do_source(fname, check_other, is_vimrc)
 
 #ifdef FEAT_EVAL
 # ifdef FEAT_PROFILE
-    if (do_profiling)
+    if (do_profiling == PROF_YES)
 	prof_child_enter(&wait_start);		/* entering a child now */
 # endif
 
@@ -2984,7 +3000,7 @@ do_source(fname, check_other, is_vimrc)
     }
 
 # ifdef FEAT_PROFILE
-    if (do_profiling)
+    if (do_profiling == PROF_YES)
     {
 	int	forceit;
 
@@ -3013,7 +3029,7 @@ do_source(fname, check_other, is_vimrc)
     retval = OK;
 
 #ifdef FEAT_PROFILE
-    if (do_profiling)
+    if (do_profiling == PROF_YES)
     {
 	/* Get "si" again, "script_items" may have been reallocated. */
 	si = &SCRIPT_ITEM(current_SID);
@@ -3061,7 +3077,7 @@ almosttheend:
     current_SID = save_current_SID;
     restore_funccal(save_funccalp);
 # ifdef FEAT_PROFILE
-    if (do_profiling)
+    if (do_profiling == PROF_YES)
 	prof_child_exit(&wait_start);		/* leaving a child now */
 # endif
 #endif
@@ -3227,7 +3243,7 @@ getsourceline(c, cookie, indent)
 	sp->dbg_tick = debug_tick;
     }
 # ifdef FEAT_PROFILE
-    if (do_profiling)
+    if (do_profiling == PROF_YES)
 	script_line_end();
 # endif
 #endif
@@ -3246,7 +3262,7 @@ getsourceline(c, cookie, indent)
 	++sourcing_lnum;
     }
 #ifdef FEAT_PROFILE
-    if (line != NULL && do_profiling)
+    if (line != NULL && do_profiling == PROF_YES)
 	script_line_start();
 #endif
 
--- a/src/globals.h
+++ b/src/globals.h
@@ -224,7 +224,7 @@ EXTERN int	debug_break_level INIT(= -1);
 EXTERN int	debug_did_msg INIT(= FALSE);	/* did "debug mode" message */
 EXTERN int	debug_tick INIT(= 0);		/* breakpoint change count */
 # ifdef FEAT_PROFILE
-EXTERN int	do_profiling INIT(= 0);		/* ":profile start" used */
+EXTERN int	do_profiling INIT(= PROF_NONE);	/* PROF_ values */
 # endif
 
 /*
--- a/src/gui_gtk.c
+++ b/src/gui_gtk.c
@@ -320,6 +320,19 @@ create_menu_icon(vimmenu_T *menu, GtkIco
     return image;
 }
 
+/*ARGSUSED*/
+    static gint
+toolbar_button_focus_in_event(GtkWidget *widget, GdkEventFocus *event, gpointer data)
+{
+    /* When we're in a GtkPlug, we don't have window focus events, only widget focus.
+     * To emulate stand-alone gvim, if a button gets focus (e.g., <Tab> into GtkPlug)
+     * immediately pass it to mainwin.
+     */
+    if (gtk_socket_id != 0)
+        gtk_widget_grab_focus(gui.drawarea);
+
+    return TRUE;
+}
 #endif /* FEAT_TOOLBAR && HAVE_GTK2 */
 
 #if (defined(FEAT_TOOLBAR) && defined(HAVE_GTK2)) || defined(PROTO)
@@ -767,6 +780,10 @@ gui_mch_add_menu_item(vimmenu_T *menu, i
 		    menu,
 		    idx);
 
+            if (gtk_socket_id != 0)
+                gtk_signal_connect(GTK_OBJECT(menu->id), "focus_in_event",
+                        GTK_SIGNAL_FUNC(toolbar_button_focus_in_event), NULL);
+
 	    CONVERT_TO_UTF8_FREE(text);
 	    CONVERT_TO_UTF8_FREE(tooltip);
 
--- a/src/option.c
+++ b/src/option.c
@@ -101,6 +101,9 @@
 #ifdef FEAT_MBYTE
 # define PV_FENC	OPT_BUF(BV_FENC)
 #endif
+#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
+# define PV_BEXPR	OPT_BOTH(OPT_BUF(BV_BEXPR))
+#endif
 #ifdef FEAT_EVAL
 # define PV_FEX		OPT_BUF(BV_FEX)
 #endif
@@ -250,7 +253,7 @@ typedef enum
 #define VAR_WIN ((char_u *)-1)
 
 /*
- * These the global values for options which are also local to a buffer.
+ * These are the global values for options which are also local to a buffer.
  * Only to be used in option.c!
  */
 static int	p_ai;
@@ -581,7 +584,7 @@ static struct vimoption
 			    {(char_u *)FALSE, (char_u *)0L}},
 # ifdef FEAT_EVAL
     {"balloonexpr", "bexpr", P_STRING|P_ALLOCED|P_VI_DEF|P_VIM,
-			    (char_u *)&p_bexpr, PV_NONE,
+			    (char_u *)&p_bexpr, PV_BEXPR,
 			    {(char_u *)"", (char_u *)0L}},
 # endif
 #endif
@@ -4997,6 +5000,9 @@ check_buf_options(buf)
     check_string_option(&buf->b_p_inde);
     check_string_option(&buf->b_p_indk);
 #endif
+#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
+    check_string_option(&buf->b_p_bexpr);
+#endif
 #if defined(FEAT_EVAL)
     check_string_option(&buf->b_p_fex);
 #endif
@@ -5157,6 +5163,9 @@ insecure_flag(opt_idx, opt_flags)
 #ifdef FEAT_EVAL
 	    case PV_FDE:	return &curwin->w_p_fde_flags;
 	    case PV_FDT:	return &curwin->w_p_fdt_flags;
+# ifdef FEAT_BEVAL
+	    case PV_BEXPR:	return &curbuf->b_p_bexpr_flags;
+# endif
 #endif
 #if defined(FEAT_EVAL)
 # if defined(FEAT_CINDENT)
@@ -8784,6 +8793,9 @@ get_varp_scope(p, opt_flags)
 	    case PV_DICT: return (char_u *)&(curbuf->b_p_dict);
 	    case PV_TSR:  return (char_u *)&(curbuf->b_p_tsr);
 #endif
+#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
+	    case PV_BEXPR: return (char_u *)&(curbuf->b_p_bexpr);
+#endif
 #ifdef FEAT_STL_OPT
 	    case PV_STL:  return (char_u *)&(curwin->w_p_stl);
 #endif
@@ -8839,6 +8851,10 @@ get_varp(p)
 	case PV_MP:	return *curbuf->b_p_mp != NUL
 				    ? (char_u *)&(curbuf->b_p_mp) : p->var;
 #endif
+#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
+	case PV_BEXPR:	return *curbuf->b_p_bexpr != NUL
+				    ? (char_u *)&(curbuf->b_p_bexpr) : p->var;
+#endif
 #ifdef FEAT_STL_OPT
 	case PV_STL:	return *curwin->w_p_stl != NUL
 				    ? (char_u *)&(curwin->w_p_stl) : p->var;
@@ -9368,6 +9384,9 @@ buf_copy_options(buf, flags)
 #ifdef FEAT_TEXTOBJ
 	    buf->b_p_qe = vim_strsave(p_qe);
 #endif
+#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
+	    buf->b_p_bexpr = empty_option;
+#endif
 
 	    /*
 	     * Don't copy the options set by ex_help(), use the saved values,
--- a/src/option.h
+++ b/src/option.h
@@ -910,6 +910,7 @@ enum
     , BV_ET
     , BV_FENC
 #ifdef FEAT_EVAL
+    , BV_BEXPR
     , BV_FEX
 #endif
     , BV_FF
--- a/src/structs.h
+++ b/src/structs.h
@@ -1458,6 +1458,11 @@ struct file_buffer
     dict_T	b_vars;		/* internal variables, local to buffer */
 #endif
 
+#if defined(FEAT_BEVAL) && defined(FEAT_EVAL)
+    char_u	*b_p_bexpr;	/* 'balloonexpr' local value */
+    long_u	b_p_bexpr_flags;/* flags for 'balloonexpr' */
+#endif
+
     /* When a buffer is created, it starts without a swap file.  b_may_swap is
      * then set to indicate that a swap file may be opened later.  It is reset
      * if a swap file could not be opened.
@@ -1618,6 +1623,10 @@ struct tabpage_S
     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 */
+#ifdef FEAT_GUI
+    int		    tp_prev_which_scrollbars[3];
+				    /* previous value of which_scrollbars */
+#endif
 #ifdef FEAT_DIFF
     diff_T	    *tp_first_diff;
     buf_T	    *(tp_diffbuf[DB_COUNT]);
@@ -2092,15 +2101,17 @@ typedef struct cursor_entry
 #define MENU_INDEX_INVALID	-1
 #define MENU_INDEX_NORMAL	0
 #define MENU_INDEX_VISUAL	1
-#define MENU_INDEX_OP_PENDING	2
-#define MENU_INDEX_INSERT	3
-#define MENU_INDEX_CMDLINE	4
-#define MENU_INDEX_TIP		5
-#define MENU_MODES		6
+#define MENU_INDEX_SELECT	2
+#define MENU_INDEX_OP_PENDING	3
+#define MENU_INDEX_INSERT	4
+#define MENU_INDEX_CMDLINE	5
+#define MENU_INDEX_TIP		6
+#define MENU_MODES		7
 
 /* Menu modes */
 #define MENU_NORMAL_MODE	(1 << MENU_INDEX_NORMAL)
 #define MENU_VISUAL_MODE	(1 << MENU_INDEX_VISUAL)
+#define MENU_SELECT_MODE	(1 << MENU_INDEX_SELECT)
 #define MENU_OP_PENDING_MODE	(1 << MENU_INDEX_OP_PENDING)
 #define MENU_INSERT_MODE	(1 << MENU_INDEX_INSERT)
 #define MENU_CMDLINE_MODE	(1 << MENU_INDEX_CMDLINE)
--- 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 19)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 19, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 20)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 20, compiled "