diff options
-rw-r--r-- | editors/vi.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/editors/vi.c b/editors/vi.c index c142dacd7..38a4692fd 100644 --- a/editors/vi.c +++ b/editors/vi.c @@ -2722,9 +2722,8 @@ static char *swap_context(char *p) // goto new context for '' command make this // only swap context if other context is valid if (text <= mark[27] && mark[27] <= end - 1) { tmp = mark[27]; - mark[27] = mark[26]; - mark[26] = tmp; - p = mark[26]; // where we are going- previous context + mark[27] = p; + mark[26] = p = tmp; context_start = prev_line(prev_line(prev_line(p))); context_end = next_line(next_line(next_line(p))); } @@ -3618,8 +3617,9 @@ static void do_cmd(int c) } break; case '\'': // '- goto a specific mark - c1 = (get_one_char() | 0x20) - 'a'; - if ((unsigned)c1 <= 25) { // a-z? + c1 = (get_one_char() | 0x20); + if ((unsigned)(c1 - 'a') <= 25) { // a-z? + c1 = (c1 - 'a'); // get the b-o-l q = mark[c1]; if (text <= q && q < end) { |