Commit 2718dfa4 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(Fself_insert_command): Optimize the case with arg > 2

to avoid running change hooks lots of times.
parent 14a9bcda
...@@ -221,6 +221,18 @@ Whichever character you type to run this command is inserted.") ...@@ -221,6 +221,18 @@ Whichever character you type to run this command is inserted.")
/* Barf if the key that invoked this was not a character. */ /* Barf if the key that invoked this was not a character. */
if (!INTEGERP (last_command_char)) if (!INTEGERP (last_command_char))
bitch_at_user (); bitch_at_user ();
else if (XINT (arg) >= 2 && NILP (current_buffer->overwrite_mode))
{
XSETFASTINT (arg, XFASTINT (arg) - 2);
/* The first one might want to expand an abbrev. */
internal_self_insert (XINT (last_command_char), 1);
/* The bulk of the copies of this char can be inserted simply.
We don't have to handle a user-specified face specially
because it will get inherited from the first char inserted. */
Finsert_char (last_command_char, arg, Qt);
/* The last one might want to auto-fill. */
internal_self_insert (XINT (last_command_char), 0);
}
else else
while (XINT (arg) > 0) while (XINT (arg) > 0)
{ {
...@@ -313,7 +325,8 @@ internal_self_insert (c1, noautofill) ...@@ -313,7 +325,8 @@ internal_self_insert (c1, noautofill)
#endif #endif
synt = SYNTAX (c); synt = SYNTAX (c);
if ((synt == Sclose || synt == Smath) if ((synt == Sclose || synt == Smath)
&& !NILP (Vblink_paren_function) && INTERACTIVE) && !NILP (Vblink_paren_function) && INTERACTIVE
&& !noautofill)
{ {
call0 (Vblink_paren_function); call0 (Vblink_paren_function);
hairy = 2; hairy = 2;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment