summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-07-17 21:32:32 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-07-17 21:32:32 +0000
commit7b54dc788c1bafcc0452790403758f84f0852854 (patch)
tree5878d487da22ae8118c36937f5be0be95acd7be6
parent7354244c4aaa22924c3d179eca4af168c27d68f8 (diff)
vi: using array data after it fell out of scope is stupid.
-rw-r--r--editors/vi.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/editors/vi.c b/editors/vi.c
index 1f1d3ca39..27f2a3abd 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -2492,6 +2492,14 @@ static int file_write(char *fn, char *first, char *last)
static void place_cursor(int row, int col, int optimize)
{
char cm1[sizeof(CMrc) + sizeof(int)*3 * 2];
+#if ENABLE_FEATURE_VI_OPTIMIZE_CURSOR
+ enum {
+ SZ_UP = sizeof(CMup),
+ SZ_DN = sizeof(CMdown),
+ SEQ_SIZE = SZ_UP > SZ_DN ? SZ_UP : SZ_DN,
+ };
+ char cm2[SEQ_SIZE * 5 + 32]; // bigger than worst case size
+#endif
char *cm;
if (row < 0) row = 0;
@@ -2505,12 +2513,6 @@ static void place_cursor(int row, int col, int optimize)
#if ENABLE_FEATURE_VI_OPTIMIZE_CURSOR
if (optimize && col < 16) {
- enum {
- SZ_UP = sizeof(CMup),
- SZ_DN = sizeof(CMdown),
- SEQ_SIZE = SZ_UP > SZ_DN ? SZ_UP : SZ_DN,
- };
- char cm2[SEQ_SIZE * 5 + 32]; // bigger than worst case size
char *screenp;
int Rrow = last_row;
int diff = Rrow - row;