BUGS   [plain text]


-----------------
KNOWN BUGS IN ZSH
-----------------

On some terminals, display of lines with exactly 80 characters is
problematic.  zsh assumes that the terminal does not print an extra
newline in this case, but some terminals (e.g. aixterm) do.
------------------------------------------------------------------------
When interrupting code like the following with ^C:
  while true; do
    sh -c '...'
  done
if the `sh' is executing, zsh does not know that the sh received a ^C and
continues with the next iteration.  This happens for any program which
handles the interrupt, then exits after tidying up; it does not happen for
zsh, which exits directly from the signal handler.  The workaround is to
use ^Z which forks the shell and makes the loop a separate job, then kill
the suspended loop.
------------------------------------------------------------------------
If you suspend "man", zle seems to get into cooked mode.  It works ok
for plain "less".
It is not specific neither to man nor to zsh.
E.g. call the following program foo:
#include <sys/wait.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
    int status;

    if (!fork())	/* child */
	execvp(argv[1], argv + 1);
    else		/* parent */
	wait(&status);
}
Then if you suspend
% foo less something
from zsh/bash, zle/readline gets into cooked mode.
------------------------------------------------------------------------
The pattern %?* matches names beginning with %? instead of names with at
least two characters beginning with %. This is a hack to allow %?foo job
substitution without quoting. This behaviour is incompatible with sh
and ksh and may be removed in the future. A good fix would be to keep
such patterns unchanged if they do not match regardless of the state of
the nonomatch and nullglob options.
------------------------------------------------------------------------
It is currently impossible to time builtins.
------------------------------------------------------------------------