Commit 7c983171 authored by Karl Heuer's avatar Karl Heuer

(Fdelete_backward_char): Fix off-by-one error.

Treat deleted newline specially.
parent 24ff6e06
......@@ -208,19 +208,19 @@ N was explicitly specified.")
Lisp_Object n, killflag;
{
Lisp_Object value;
int deleted_tab = 0;
int deleted_special = 0;
int i;
CHECK_NUMBER (n, 0);
/* See if we are about to delete a tab backwards. */
for (i = 0; i < XINT (n); i++)
/* See if we are about to delete a tab or newline backwards. */
for (i = 1; i <= XINT (n); i++)
{
if (point - i < BEGV)
break;
if (FETCH_CHAR (point - i) == '\t')
if (FETCH_CHAR (point - i) == '\t' || FETCH_CHAR (point - i) == '\n')
{
deleted_tab = 1;
deleted_special = 1;
break;
}
}
......@@ -231,7 +231,7 @@ N was explicitly specified.")
unless at end of line. */
if (XINT (n) > 0
&& ! NILP (current_buffer->overwrite_mode)
&& ! deleted_tab
&& ! deleted_special
&& ! (point == ZV || FETCH_CHAR (point) == '\n'))
{
Finsert_char (make_number (' '), XINT (n));
......
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