Subject: bug#12398: 23.4; Disabling fringes causes term to garble certain text output.

From: Robert Park <[email-masked]>
Date: Sat, 13 Oct 2012 13:15:44 -0500

On Sat, Oct 13, 2012 at 4:00 AM, Chong Yidong <[email-masked]> wrote:
> Thanks for the bug report.  This bug has been fixed in Emacs 24.

Was it only *just* fixed? Because I can still reproduce it in Emacs 24.1.1.

1. eval this elisp:

(set-fringe-mode (cons 0 0))

2. Run any command that outputs long lines in term-mode:

$ echo `seq 100`

Expected output:

robru ~
$ echo `seq 100`
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
27 28 29 30 31 32
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
56 57 58 59 60 61
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100

Actual output:

$ bru ~4 95 96 97 98 99 100 72 73 74 75 76 77 78 79 80 81 82 83 84 85
86 87 88 89 90 91

Note that I have a two-line $PS1 set, and the output appears to be the
second line of my prompt ('$ ') laid over the first line of my prompt
('robru ~') laid over the third line of the output (the numbers).

Further, once this condition is triggered, *all* further output
regardless of line length just overwrites this same one line, until
C-l is typed, then everything goes back to normal (at least until
another long line is printed).

The workaround is to enable the fringe on just one side:

(set-fringe-mode (cons 0 1))

And then everything works fine.

-- 
http://gottengeography.ca