diff options
| -rw-r--r-- | sys/src/cmd/samterm/main.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/sys/src/cmd/samterm/main.c b/sys/src/cmd/samterm/main.c index c20091acb..6ee72c94a 100644 --- a/sys/src/cmd/samterm/main.c +++ b/sys/src/cmd/samterm/main.c @@ -359,29 +359,19 @@ getcol(Rasp *r, long p) return col; } -int -sptotab(Rasp *r, long p) -{ - int i, col, n; - - col = getcol(r, p); - if((n = maxtab - col % maxtab) == maxtab) - n = 0; - for(i = 0; p < r->nrunes && raspc(r, p)==' ' && i<n; p++, i++) - ; - return i; -} - long del(Rasp *r, long o, long p) { - int i; + int i, col, n; if(--p < o) return o; if(!spacesindent || raspc(r, p)!=' ') return p; - for(i = 0; p-1>=o && raspc(r, p-1)==' ' && i<maxtab-1; --p, i++) + col = getcol(r, p) + 1; + if((n = col % maxtab) == 0) + n = maxtab; + for(i = 0; p-1>=o && raspc(r, p-1)==' ' && i<n-1; --p, i++) ; return p>=o? p : o; } @@ -632,8 +622,6 @@ type(Flayer *l, int res) /* what a bloody mess this is */ switch(c){ case '\b': case 0x7F: /* del */ - if(spacesindent) - a += sptotab(&t->rasp, a); l->p0 = del(&t->rasp, l->origin, a); break; case 0x15: /* ctrl-u */ |
