Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: script using vared to read commands - history bug
- X-seq: zsh-workers 13048
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxxxxxxxxx>
- To: greg@xxxxxxxxxxxxxxx, zsh-workers@xxxxxxxxxxxxxx (Zsh list)
- Subject: Re: script using vared to read commands - history bug
- Date: Fri, 20 Oct 2000 07:57:55 +0000
- In-reply-to: <14831.50805.334555.712481@xxxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
- References: <14831.50805.334555.712481@xxxxxxxxxxxxxxxxxxx>
On Oct 20, 12:13am, Greg Klanderman wrote:
}
} If I run the following script:
}
} #!/bin/zsh
}
} prompt="%B%%%b "
} while cmd="" && vared -h -p "$prompt" cmd ; do
} echo " -- got: $cmd"
} print -s - "$cmd"
} done
}
} it works as intended, except that the most recent
} command never appears in the history. What's up?
What's up is that the history code doesn't really expect to be invoked
from a non-interactive shell, even though `vared -h' will let you get
away with it, so nothing is properly initialized until the second time
you write something to the history, and thereafter it's always off by
one.
If the first thing you do at the prompt in this script is type ctrl-p,
zsh 3.1.9 will core dump. (3.0.8 doesn't seem to have that part of the
problem.)
If there's a straightforward solution to this, I don't know enough about
the history mechanism to find it quickly. There are a number of places
in zle_hist.c that never check to see whether quietgethist() returns 0
(which is what produces the core dump), but it's not merely that the
history is empty, because you don't get a core dump at the first prompt
from `zsh -f'.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
Messages sorted by:
Reverse Date,
Date,
Thread,
Author