Patch from Robert J. Osborne <rj@resourceinternational.com> that fixes

a bug in vi where the beginning of the text space was not checked
before dot is decremented for delete and escape sequences on an empty
file.
1_00_stable_10817
Eric Andersen 2001-08-02 05:26:41 +00:00
parent 842757dc96
commit fdbac35b33
2 changed files with 6 additions and 6 deletions

View File

@ -19,7 +19,7 @@
*/
static const char vi_Version[] =
"$Id: vi.c,v 1.14 2001/07/31 15:01:12 kraai Exp $";
"$Id: vi.c,v 1.15 2001/08/02 05:26:41 andersen Exp $";
/*
* To compile for standalone use:
@ -2640,12 +2640,12 @@ static Byte *char_insert(Byte * p, Byte c) // insert the char c at 'p'
cmdcnt = 0;
end_cmd_q(); // stop adding to q
strcpy((char *) status_buffer, " "); // clear the status buffer
if (p[-1] != '\n') {
if ((p[-1] != '\n') && (dot>text)) {
p--;
}
} else if (c == erase_char) { // Is this a BS
// 123456789
if (p[-1] != '\n') {
if ((p[-1] != '\n') && (dot>text)) {
p--;
p = text_hole_delete(p, p); // shrink buffer 1 char
#ifdef BB_FEATURE_VI_DOT_CMD

6
vi.c
View File

@ -19,7 +19,7 @@
*/
static const char vi_Version[] =
"$Id: vi.c,v 1.14 2001/07/31 15:01:12 kraai Exp $";
"$Id: vi.c,v 1.15 2001/08/02 05:26:41 andersen Exp $";
/*
* To compile for standalone use:
@ -2640,12 +2640,12 @@ static Byte *char_insert(Byte * p, Byte c) // insert the char c at 'p'
cmdcnt = 0;
end_cmd_q(); // stop adding to q
strcpy((char *) status_buffer, " "); // clear the status buffer
if (p[-1] != '\n') {
if ((p[-1] != '\n') && (dot>text)) {
p--;
}
} else if (c == erase_char) { // Is this a BS
// 123456789
if (p[-1] != '\n') {
if ((p[-1] != '\n') && (dot>text)) {
p--;
p = text_hole_delete(p, p); // shrink buffer 1 char
#ifdef BB_FEATURE_VI_DOT_CMD