Hmm. It has something to do with your UTF-8 validation in apl_read(). My guess is that read() returns in the middle of a multibyte UTF-8 character, causing the validation to fail.
I don't think this is strictly related to the size of the buffer; I tried changing BUFFER_SIZE to 6256 with no improvement. It's interesting to note that APL prints the ]KEYB output all in one chunk of about a thousand characters with embedded \n, then does one C++ endl. In a spot check, I couldn't find any other instances in APL where \n was sent instead of endl. On Wed, Aug 13, 2014 at 2:04 PM, David Lamkins <da...@lamkins.net> wrote: > Oops. Not related at all to quad-PW; sorry... > > The extra blanks move around each time I invoke ]KEYB, whether or not > quad-PW has changed. > > > On Wed, Aug 13, 2014 at 1:52 PM, David Lamkins <da...@lamkins.net> wrote: > >> The ]KEYB breakage seems dependent on quad-PW, somehow. Try different >> values for quad-PW and you'll see the extra blanks move around in the ]KEYB >> display. >> >> (Also, note that the location of the assign arrow and branch arrow are >> transposed in the keymap.) >> >> <http://successful-lisp.com/> >> >