On Tue, Nov 27, 2018 at 09:56:15AM +0100, Vincent Lefevre wrote: > On 2018-11-26 20:38:37 -0500, Thomas Dickey wrote: > > On Sun, Nov 25, 2018 at 12:08:03AM +0100, Vincent Lefevre wrote: > > > With zsh, one can reproduce the issue with: > > > > > > $ xterm -e zsh -f > > > > If you added a "-l" option, that would turn on xterm's logging feature > > > > xterm -l -e zsh -f > > > > which could be interesting. > > Here's what the log file gives (output with hd): > > 00000000 1b 5b 31 6d 1b 5b 37 6d 25 1b 5b 32 37 6d 1b 5b |.[1m.[7m%.[27m.[| > 00000010 31 6d 1b 5b 6d 20 20 20 20 20 20 20 20 20 20 20 |1m.[m | > 00000020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | > * > 00000060 20 20 20 20 0d 20 0d 0d 1b 5b 6d 1b 5b 32 37 6d | . ...[m.[27m| > 00000070 1b 5b 32 34 6d 1b 5b 4a 7a 69 72 61 25 20 1b 5b |.[24m.[Jzira% .[| > 00000080 4b 1b 5b 3f 32 30 30 34 68 62 08 62 69 6e 64 6b |K.[?2004hb.bindk| > 00000090 65 79 20 2d 65 1b 5b 3f 32 30 30 34 6c 0d 0d 0a |ey -e.[?2004l...| > 000000a0 1b 5b 31 6d 1b 5b 37 6d 25 1b 5b 32 37 6d 1b 5b |.[1m.[7m%.[27m.[| > 000000b0 31 6d 1b 5b 6d 20 20 20 20 20 20 20 20 20 20 20 |1m.[m | > 000000c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | > * > 00000100 20 20 20 20 0d 20 0d 0d 1b 5b 6d 1b 5b 32 37 6d | . ...[m.[27m| > 00000110 1b 5b 32 34 6d 1b 5b 4a 7a 69 72 61 25 20 1b 5b |.[24m.[Jzira% .[| > 00000120 4b 1b 5b 3f 32 30 30 34 68 07 7e |K.[?2004h.~| > 0000012b > > The 07 7e is what the exec-formatted generates (the Ctrl-G doesn't > seem to have any effect in zsh).
exec-formatted doesn't send a ^G, it simply does an execvp() for the arguments. The escape "[?2004h" is turning on bracketed paste (which I asked about). > If after "binkey -e", I type "echo '" then Ctrl-V, I get: > > 00000120 4b 1b 5b 3f 32 30 30 34 68 65 08 65 63 68 6f 20 |K.[?2004he.echo | > 00000130 27 1b 5b 37 6d 5e 5b 1b 5b 32 37 6d 5b 32 30 31 |'.[7m^[.[27m[201| > 00000140 7e |~| > > So, actually, the effect of exec-formatted is more complex than just > a tilde (or Ctrl-G tilde). > > > But the bug report deals with programs run from xterm, which the > > shell wouldn't see -- unless it's reading xterm's output in some > > way. > > The shell sees the tilde, as if it were entered with the keyboard. The shell is using bracketed paste, and is reading xterm's output, as I suggested. > Note that I can replace > > exec-formatted("browser %s", PRIMARY) > > by > > exec-formatted("/bin/true", PRIMARY) > > and I get the same behavior in xterm, i.e. the command doesn't matter. so pasting works fairly consistently :-) > > > then in the xterm: > > > > > > zira% bindkey -e > > > > Perhaps "zira%" is your shell prompt. > > Yes, the hostname follwed by "%" is the default zsh prompt. > > > What does "bindkey -e" have to do with exec-formatted? > > "bindkey -e" selects Emacs editing mode. It just makes the issue > visible. But with the "echo '" + Ctrl-V test, the same issue is > reproducible without needing "bindkey -e": > > 00000000 1b 5b 31 6d 1b 5b 37 6d 25 1b 5b 32 37 6d 1b 5b |.[1m.[7m%.[27m.[| > 00000010 31 6d 1b 5b 6d 20 20 20 20 20 20 20 20 20 20 20 |1m.[m | > 00000020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | > * > 00000060 20 20 20 20 0d 20 0d 0d 1b 5b 6d 1b 5b 32 37 6d | . ...[m.[27m| > 00000070 1b 5b 32 34 6d 1b 5b 4a 7a 69 72 61 25 20 1b 5b |.[24m.[Jzira% .[| > 00000080 4b 1b 5b 3f 32 30 30 34 68 65 08 65 63 68 6f 20 |K.[?2004he.echo | > 00000090 27 5e 08 1b 5b 37 6d 5e 1b 5b 37 6d 5b 1b 5b 32 |'^..[7m^.[7m[.[2| > 000000a0 37 6d 5b 32 30 31 7e |7m[201~| > 000000a7 That looks as expected, if you've got two different things writing to the terminal at the same time: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Bracketed-Paste-Mode but the execvp command by itself doesn't do the writing > The effect of exec-formatted is what appears after "27 5e 08". -- Thomas E. Dickey <dic...@invisible-island.net> https://invisible-island.net ftp://ftp.invisible-island.net
signature.asc
Description: Digital signature