commit - 8ee5da7cf764bf5685c137264cd4d6a03f12ba89
commit + 0d2dfbc84f42317fab5bc247355868d86613f3b0
blob - decfece7a81f5eb6d9e69dcae1f35ebe98928ee2
blob + 97ef6d87dd1b2ac81fe9f93df59b26c120b89087
--- src/cmd/9term/win.c
+++ src/cmd/9term/win.c
}
}
qunlock(&q.lk);
+ }
+}
+
+int
+dropcr(char *p, int n)
+{
+ int i;
+ char *w, *r;
+
+ r = p;
+ w = p;
+ for(i=0; i<n; i++) {
+ switch(*r) {
+ case '\b':
+ if(w > p)
+ w--;
+ break;
+ case '\r':
+ *w++ = '\n';
+ break;
+ default:
+ *w++ = *r;
+ break;
+ }
+ r++;
}
+ return w-p;
}
void
continue;
n = dropcrnl(buf+npart, n);
+ if(n == 0)
+ continue;
+
+ n = dropcr(buf+npart, n);
if(n == 0)
continue;
blob - 28d45cbb591faa7f41332d6d4211333dffe0dfc1
blob + b03f15fcc638e78eb0747a1a5c82c9c3056de0fe
--- src/cmd/9term/wind.c
+++ src/cmd/9term/wind.c
if(up == rp)
initial = wbswidth(w, '\r');
}else if(i == nr-1)
- *up = '\n';
+ *up++ = '\n';
break;
default:
*up++ = *bp;