On 31.07.21 12:33, Rickard Carlsson wrote:
When I run the following julia script in tmux it just stops on the print
statement on the 39th and 40th iteration.
The line starting with "40 Message" contains an undefined/never-ending
ANSI escape sequence:
$ grep -a '^40 Message' output | hexdump -C
00000000 34 30 20 4d 65 73 73 61 67 65 3a 20 33 1f 1f 1b |40 Message: 3...|
00000010 19 1e 17 50 3d 33 57 03 50 1c 19 1b 15 50 11 50 |...P=3W.P....P.P|
00000020 00 1f 05 1e 14 50 1f 16 50 12 11 13 1f 1e 0a |.....P..P......|
0000002f
The byte 0x1b (last one in the first line) starts the escape sequence
("ESC["). But the following bytes (0x19, 0x1e, 0x17) are outside the
allowed values and tmux seems to ignore them.
It then comes across 0x50 which is the control code for starting a device
control string (DCS). Now it collects all the rest of the bytes until it
finds the string terminator (ST, "ESC[\" or 0x1b 0x5c). But there is no
such sequence in the rest of your output so there's nothing else to output.
Here are some demo strings which should explain tmux's behavior:
$ echo -e '\x1b\x12\x13foobar'
oobar
(0x12 and 0x13 are ignored, ESC[f does nothing, rest is output)
$ echo -e '\x1b\x12\x50foobar'
(no output because 0x50 starts a never ending DCS)
$ echo -e '\x1b\x12\x50foobar\x1b\x5cHello'
Hello
(everything between 0x50 and 0x1b 0x5c is interpreted as DCS (which
probably does nothing) and the rest is output)
In general I don't think you can expect any reasonable behavior if you
interpret random binary data as text.
Bye, Andreas
--
You received this message because you are subscribed to the Google Groups
"tmux-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web, visit
https://groups.google.com/d/msgid/tmux-users/eee61199-ddd7-3696-438e-71698eb7f8dc%40gmail.com.