diff options
| -rw-r--r-- | editors/vi.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/editors/vi.c b/editors/vi.c index ac3a175af..57b011444 100644 --- a/editors/vi.c +++ b/editors/vi.c | |||
| @@ -19,7 +19,7 @@ | |||
| 19 | */ | 19 | */ |
| 20 | 20 | ||
| 21 | static const char vi_Version[] = | 21 | static const char vi_Version[] = |
| 22 | "$Id: vi.c,v 1.31 2004/01/21 10:59:45 bug1 Exp $"; | 22 | "$Id: vi.c,v 1.32 2004/02/04 11:19:44 andersen Exp $"; |
| 23 | 23 | ||
| 24 | /* | 24 | /* |
| 25 | * To compile for standalone use: | 25 | * To compile for standalone use: |
| @@ -1669,10 +1669,13 @@ static Byte find_range(Byte ** start, Byte ** stop, Byte c) | |||
| 1669 | q = dot; | 1669 | q = dot; |
| 1670 | } else if (strchr("wW", c)) { | 1670 | } else if (strchr("wW", c)) { |
| 1671 | do_cmd(c); // execute movement cmd | 1671 | do_cmd(c); // execute movement cmd |
| 1672 | // if we are at the next word's first char | 1672 | // if we are at the next word's first char |
| 1673 | // step back one char | 1673 | // step back one char |
| 1674 | if (dot > text && isspace(dot[-1])) | 1674 | // but check the possibilities when it is true |
| 1675 | dot--; // move back off of next word | 1675 | if (dot > text && ((isspace(dot[0]) && !isspace(dot[0])) |
| 1676 | || (ispunct(dot[-1]) && !ispunct(dot[0])) | ||
| 1677 | || (isalnum(dot[-1]) && !isalnum(dot[0])))) | ||
| 1678 | dot--; // move back off of next word | ||
| 1676 | if (dot > text && *dot == '\n') | 1679 | if (dot > text && *dot == '\n') |
| 1677 | dot--; // stay off NL | 1680 | dot--; // stay off NL |
| 1678 | q = dot; | 1681 | q = dot; |
