Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Pasting of long lines to ZLE is buggy under Mac OS X



On Thu, Oct 02, 2008 at 08:55:25AM +0200, Vincent Lefevre wrote:
> It seems that zsh 4.3.6 suffers from a buffering problem when pasting
> long lines under Mac OS X (at least 10.4.11). Other software, such as
> bash and emacs (running in a terminal), does not seem to have such a
> problem.
[...]

You may want to try "strace" or "truss" or the equivalent on
your system.

Here (4.3.6-dev-0+0925), it seems zsh reads one character at a time, and for
every character, surprisingly, it does:

read(10, "."..., 1)                     = 1
fcntl64(0, F_DUPFD, 10)                 = 11
close(0)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [CHLD], [CHLD], 8) = 0
dup2(11, 0)                             = 0
close(11)                               = 0
write(10, "."..., 1.)                    = 1

It doesn't do that on another machine with 4.3.6-dev-0+0925
(debian x86 as well) where it just does:

read(10, "f"..., 1)                     = 1
write(10, "f"..., 1f)                    = 1

But if zsh reads one character at a time, it's difficult to
explain how big copy pastes cause problems.

-- 
Stéphane



Messages sorted by: Reverse Date, Date, Thread, Author