1
0
Fork 0
mirror of git://slackware.nl/current.git synced 2025-02-15 08:50:09 +01:00
slackware-current/source/ap/vim/patches/7.3.196
Patrick J Volkerding 9664bee729 Slackware 14.0
Wed Sep 26 01:10:42 UTC 2012
Slackware 14.0 x86_64 stable is released!

We're perfectionists here at Slackware, so this release has been a long
time a-brewing.  But we think you'll agree that it was worth the wait.
Slackware 14.0 combines modern components, ease of use, and flexible
configuration... our "KISS" philosophy demands it.

The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a
dual-sided
32-bit/64-bit x86/x86_64 DVD.  Please consider supporting the Slackware
project by picking up a copy from store.slackware.com.  We're taking
pre-orders now, and offer a discount if you sign up for a subscription.

Thanks to everyone who helped make this happen.  The Slackware team, the
upstream developers, and (of course) the awesome Slackware user
community.

Have fun!  :-)
2018-05-31 22:51:55 +02:00

224 lines
7.3 KiB
Text

To: vim_dev@googlegroups.com
Subject: Patch 7.3.196
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.196
Problem: Can't intercept a character that is going to be inserted.
Solution: Add the InsertCharPre autocommand event. (Jakson A. Aquino)
Files: runtime/doc/autocmd.txt, runtime/doc/eval.txt,
runtime/doc/map.txt, src/edit.c, src/eval.c, src/fileio.c,
src/vim.h
*** ../mercurial/vim73/runtime/doc/autocmd.txt 2011-04-28 19:01:26.000000000 +0200
--- runtime/doc/autocmd.txt 2011-05-19 17:12:17.000000000 +0200
***************
*** 299,304 ****
--- 299,306 ----
|InsertEnter| starting Insert mode
|InsertChange| when typing <Insert> while in Insert or Replace mode
|InsertLeave| when leaving Insert mode
+ |InsertCharPre| when a character was typed in Insert mode, before
+ inserting it
|ColorScheme| after loading a color scheme
***************
*** 657,662 ****
--- 659,675 ----
indicates the new mode.
Be careful not to move the cursor or do
anything else that the user does not expect.
+ *InsertCharPre*
+ InsertCharPre When a character is typed in Insert mode,
+ before inserting the char.
+ The |v:char| variable indicates the char typed
+ and can be changed during the event to insert
+ a different character. When |v:char| is set
+ to more than one character this text is
+ inserted literally.
+ It is not allowed to change the text |textlock|.
+ The event is not triggered when 'paste' is
+ set.
*InsertEnter*
InsertEnter Just before starting Insert mode. Also for
Replace mode and Virtual Replace mode. The
*** ../mercurial/vim73/runtime/doc/eval.txt 2011-05-19 12:22:41.000000000 +0200
--- runtime/doc/eval.txt 2011-05-19 16:55:58.000000000 +0200
***************
*** 1293,1298 ****
--- 1293,1299 ----
*v:char* *char-variable*
v:char Argument for evaluating 'formatexpr' and used for the typed
character when using <expr> in an abbreviation |:map-<expr>|.
+ It is also used by the |InsertPreChar| event.
*v:charconvert_from* *charconvert_from-variable*
v:charconvert_from
*** ../mercurial/vim73/runtime/doc/map.txt 2011-05-10 17:17:38.000000000 +0200
--- runtime/doc/map.txt 2011-05-19 16:40:34.000000000 +0200
***************
*** 226,232 ****
For abbreviations |v:char| is set to the character that was typed to trigger
the abbreviation. You can use this to decide how to expand the {lhs}. You
! can't change v:char and you should not insert it.
Be very careful about side effects! The expression is evaluated while
obtaining characters, you may very well make the command dysfunctional.
--- 226,232 ----
For abbreviations |v:char| is set to the character that was typed to trigger
the abbreviation. You can use this to decide how to expand the {lhs}. You
! you should not either insert or change the v:char.
Be very careful about side effects! The expression is evaluated while
obtaining characters, you may very well make the command dysfunctional.
*** ../mercurial/vim73/src/edit.c 2011-05-10 14:22:10.000000000 +0200
--- src/edit.c 2011-05-19 17:20:53.000000000 +0200
***************
*** 1381,1390 ****
goto do_intr;
#endif
/*
* Insert a nomal character.
*/
! normalchar:
#ifdef FEAT_SMARTINDENT
/* Try to perform smart-indenting. */
ins_try_si(c);
--- 1381,1425 ----
goto do_intr;
#endif
+ normalchar:
/*
* Insert a nomal character.
*/
! #ifdef FEAT_AUTOCMD
! if (!p_paste)
! {
! /* Trigger the InsertCharPre event. Lock the text to avoid
! * weird things from happening. */
! set_vim_var_char(c);
! ++textlock;
! if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL,
! FALSE, curbuf))
! {
! /* Get the new value of v:char. If it is more than one
! * character insert it literally. */
! char_u *s = get_vim_var_str(VV_CHAR);
! if (MB_CHARLEN(s) > 1)
! {
! if (stop_arrow() != FAIL)
! {
! ins_str(s);
! AppendToRedobuffLit(s, -1);
! }
! c = NUL;
! }
! else
! c = PTR2CHAR(s);
! }
!
! set_vim_var_string(VV_CHAR, NULL, -1);
! --textlock;
!
! /* If the new value is an empty string then don't insert a
! * char. */
! if (c == NUL)
! break;
! }
! #endif
#ifdef FEAT_SMARTINDENT
/* Try to perform smart-indenting. */
ins_try_si(c);
***************
*** 3491,3501 ****
return;
}
p += len;
! #ifdef FEAT_MBYTE
! c = mb_ptr2char(p);
! #else
! c = *p;
! #endif
ins_compl_addleader(c);
}
--- 3526,3532 ----
return;
}
p += len;
! c = PTR2CHAR(p);
ins_compl_addleader(c);
}
*** ../mercurial/vim73/src/eval.c 2011-05-19 14:59:07.000000000 +0200
--- src/eval.c 2011-05-19 16:40:39.000000000 +0200
***************
*** 352,358 ****
{VV_NAME("swapname", VAR_STRING), VV_RO},
{VV_NAME("swapchoice", VAR_STRING), 0},
{VV_NAME("swapcommand", VAR_STRING), VV_RO},
! {VV_NAME("char", VAR_STRING), VV_RO},
{VV_NAME("mouse_win", VAR_NUMBER), 0},
{VV_NAME("mouse_lnum", VAR_NUMBER), 0},
{VV_NAME("mouse_col", VAR_NUMBER), 0},
--- 352,358 ----
{VV_NAME("swapname", VAR_STRING), VV_RO},
{VV_NAME("swapchoice", VAR_STRING), 0},
{VV_NAME("swapcommand", VAR_STRING), VV_RO},
! {VV_NAME("char", VAR_STRING), 0},
{VV_NAME("mouse_win", VAR_NUMBER), 0},
{VV_NAME("mouse_lnum", VAR_NUMBER), 0},
{VV_NAME("mouse_col", VAR_NUMBER), 0},
*** ../mercurial/vim73/src/fileio.c 2011-05-10 16:41:13.000000000 +0200
--- src/fileio.c 2011-05-19 16:40:39.000000000 +0200
***************
*** 7662,7667 ****
--- 7662,7668 ----
{"InsertChange", EVENT_INSERTCHANGE},
{"InsertEnter", EVENT_INSERTENTER},
{"InsertLeave", EVENT_INSERTLEAVE},
+ {"InsertCharPre", EVENT_INSERTCHARPRE},
{"MenuPopup", EVENT_MENUPOPUP},
{"QuickFixCmdPost", EVENT_QUICKFIXCMDPOST},
{"QuickFixCmdPre", EVENT_QUICKFIXCMDPRE},
*** ../mercurial/vim73/src/vim.h 2011-05-10 16:41:13.000000000 +0200
--- src/vim.h 2011-05-19 16:40:39.000000000 +0200
***************
*** 1274,1279 ****
--- 1274,1280 ----
EVENT_WINENTER, /* after entering a window */
EVENT_WINLEAVE, /* before leaving a window */
EVENT_ENCODINGCHANGED, /* after changing the 'encoding' option */
+ EVENT_INSERTCHARPRE, /* before inserting a char */
EVENT_CURSORHOLD, /* cursor in same position for a while */
EVENT_CURSORHOLDI, /* idem, in Insert mode */
EVENT_FUNCUNDEFINED, /* if calling a function which doesn't exist */
*** ../vim-7.3.195/src/version.c 2011-05-19 16:35:05.000000000 +0200
--- src/version.c 2011-05-19 17:15:41.000000000 +0200
***************
*** 711,712 ****
--- 711,714 ----
{ /* Add new patch number below this line */
+ /**/
+ 196,
/**/
--
I AM THANKFUL...
...for the mess to clean after a party because it means I have
been surrounded by friends.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///