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

Re: zsh as ksh for login shell -- a bug with PS1?

On 08 Jan, 2005, at 11:24, Peter Stephenson wrote:
"William H. Magill" wrote:
I have a two-line prompt string

PS1='[$PWD] $me
  $HOST> '

I have been using this for many years. It works fine under ksh on Tru64
Unix 5.1 and when zsh 4.2.1 itself is evoked as the login shell.

However, if I change the /etc/password entry to evoke ksh instead of
zsh, the newline is lost, resulting in a prompt consisting of "$HOST> "

I think you're saying that ksh is really a link to zsh.  In that case
zsh will start up with a different set of options.  Probably the
critical one in this case is single_line_zle.  Try "unsetopt
single_line_zle" and see if that works.  (If my experiment is correct
this is exactly the problem.)

Yes, ksh is a link to zsh.

"unsetopt single_line_zle" did the trick!

Profuse thanks....

The option isn't there for the prompt, in fact, it's there because ksh
doesn't handle multiple line editing buffers. It so happens that in zsh
this is associated with a multi-line prompt.  However, it's not at all
clear we really need to enforce this restriction of ksh when emulating
it anyway.  It's hard to think of a case where it's an advantage.

I'm not certain I completely understand your comment, but from experience with various actual implementations of ksh, there is no restriction on two line prompts. Similarly, I find no restriction mentioned in the "Korn Shell" book by Bolsky and Korn.

William H. Magill
# Beige G3 [Rev A motherboard - 300 MHz 768 Meg] OS X 10.2.8
# Flat-panel iMac (2.1) [800MHz - Super Drive - 768 Meg] OS X 10.3.7
# PWS433a [Alpha 21164 Rev 7.2 (EV56)- 64 Meg] Tru64 5.1a
# XP1000  [Alpha 21264-3 (EV6) - 256 meg] FreeBSD 5.3
# XP1000  [Alpha 21264-A (EV 6.7) - 384 meg] FreeBSD 5.3

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