diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-09-27 16:08:51 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-09-27 16:08:51 +0200 |
commit | 03bcc1520a54573c7149233cf51975e0fe077399 (patch) | |
tree | 6e85ad778d303f067f9ebab58de40d40db14f6a8 /sys/src/cmd/vt/main.c | |
parent | b74ce50a1c8670e46ee55c4aa09912da6567bd9b (diff) |
vt: fix backup/forward after resize
Diffstat (limited to 'sys/src/cmd/vt/main.c')
-rw-r--r-- | sys/src/cmd/vt/main.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/sys/src/cmd/vt/main.c b/sys/src/cmd/vt/main.c index dc28688ac..9ea9fec6d 100644 --- a/sys/src/cmd/vt/main.c +++ b/sys/src/cmd/vt/main.c @@ -58,7 +58,6 @@ char *menutext3[] = { int x, y; /* character positions */ Rune *backp; int backc; -int atend; int nbacklines; int xmax, ymax; int blocked; @@ -1142,18 +1141,13 @@ readmenu(void) switch(menuhit(2, mc, &menu2, nil)) { case Mbackup: /* back up */ - if(atend == 0){ + if(backup(backc+1)) backc++; - backup(backc); - } return; case Mforward: /* move forward */ - backc--; - if(backc >= 0) - backup(backc); - else - backc = 0; + if(backc > 0) + backup(--backc); return; case Mreset: /* reset */ @@ -1183,11 +1177,11 @@ readmenu(void) } } -void +int backup(int count) { Rune *cp; - int n; + int left, n; unselect(); @@ -1200,13 +1194,13 @@ backup(int count) nbacklines = ymax-1; } cp = histp; - atend = 0; + left = 1; while (n >= 0) { cp--; if(cp < hist) cp = &hist[HISTSIZ-1]; if(*cp == '\0') { - atend = 1; + left = 0; break; } if(*cp == '\n') @@ -1216,6 +1210,7 @@ backup(int count) if(cp >= &hist[HISTSIZ]) cp = hist; backp = cp; + return left; } Point |