Bakul Shah has observed corrupted files being written
when acme writes over osxfuse to sshfs to a remote file system.
In one example we examined, acme is writing an 0xf03-byte
file in two system calls, first an 0x806-byte write and then a 0x6fd-byte
write. (0x806 is BUFSIZE/sizeof(Rune); this file has no multibyte UTF-8.)
What actually ends up happening is that an 0x806-byte file is written:
0x000-0x6fd contains what should be 0x806-0xf03
0x6fd-0x7fa contains zeros
0x7fa-0x806 contains what should be 0x7fa-0x806 (correct!)
The theory is that fuse or sshfs or perhaps the remote file server is
mishandling the unaligned writes. acme does not seem to be at fault.
Using bio here will make the writes align to 8K boundaries,
avoiding the bugs in whatever underlying piece is broken.
TBR=r
https://codereview.appspot.com/89550043
Home and End previously navigated between
two different window locations: the top and
the bottom of the text. Now they include a
third waypoint: the location where typing last
happened. Thus, in a win window, typing
ls -l
<home>
scrolls to the beginning of the ls -l output.
A second <home> continues to the top of the file.
Makes Send scroll always, along with writes by
external programs to +Errors.
R=r
CC=mccoyst
http://codereview.appspot.com/4830051
Ignore scroll/noscroll window setting.
Instead, scroll when the write begins in
or immediately after the displayed window content.
In the new scrolling discipline, executing
"Noscroll" is replaced by typing Page Up or
using the mouse to scroll higher in the buffer,
and executing "Scroll" is replaced by typing End
or using the mouse to scroll to the bottom of
the buffer.
R=r, r2
http://codereview.appspot.com/4433060
Move libfmt, libutf into subdirectories of lib9.
Add poll-based socket i/o to libthread, so that we can
avoid using multiple procs when possible, thus removing
dependence on crappy pthreads implementations.
Convert samterm, acme to the single-proc libthread.
Bring libcomplete, acme up-to-date w.r.t. Plan 9 distribution.