diff options
Diffstat (limited to 'editors/vi.c')
-rw-r--r-- | editors/vi.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/editors/vi.c b/editors/vi.c index da7464b58..b81f2b92d 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 | |||
2722 | // only swap context if other context is valid | 2722 | // only swap context if other context is valid |
2723 | if (text <= mark[27] && mark[27] <= end - 1) { | 2723 | if (text <= mark[27] && mark[27] <= end - 1) { |
2724 | tmp = mark[27]; | 2724 | tmp = mark[27]; |
2725 | mark[27] = mark[26]; | 2725 | mark[27] = p; |
2726 | mark[26] = tmp; | 2726 | mark[26] = p = tmp; |
2727 | p = mark[26]; // where we are going- previous context | ||
2728 | context_start = prev_line(prev_line(prev_line(p))); | 2727 | context_start = prev_line(prev_line(prev_line(p))); |
2729 | context_end = next_line(next_line(next_line(p))); | 2728 | context_end = next_line(next_line(next_line(p))); |
2730 | } | 2729 | } |
@@ -3665,8 +3664,9 @@ static void do_cmd(int c) | |||
3665 | } | 3664 | } |
3666 | break; | 3665 | break; |
3667 | case '\'': // '- goto a specific mark | 3666 | case '\'': // '- goto a specific mark |
3668 | c1 = (get_one_char() | 0x20) - 'a'; | 3667 | c1 = (get_one_char() | 0x20); |
3669 | if ((unsigned)c1 <= 25) { // a-z? | 3668 | if ((unsigned)(c1 - 'a') <= 25) { // a-z? |
3669 | c1 = (c1 - 'a'); | ||
3670 | // get the b-o-l | 3670 | // get the b-o-l |
3671 | q = mark[c1]; | 3671 | q = mark[c1]; |
3672 | if (text <= q && q < end) { | 3672 | if (text <= q && q < end) { |
@@ -3980,7 +3980,9 @@ static void do_cmd(int c) | |||
3980 | c1 = get_one_char(); | 3980 | c1 = get_one_char(); |
3981 | if (c1 != 'g') { | 3981 | if (c1 != 'g') { |
3982 | buf[0] = 'g'; | 3982 | buf[0] = 'g'; |
3983 | buf[1] = c1; // TODO: if Unicode? | 3983 | // c1 < 0 if the key was special. Try "g<up-arrow>" |
3984 | // TODO: if Unicode? | ||
3985 | buf[1] = (c1 >= 0 ? c1 : '*'); | ||
3984 | buf[2] = '\0'; | 3986 | buf[2] = '\0'; |
3985 | not_implemented(buf); | 3987 | not_implemented(buf); |
3986 | break; | 3988 | break; |