On Saturday 09 February 2008 23:09, Robert Millan wrote: > On Sat, Feb 09, 2008 at 09:03:09PM +0100, Yoshinori K. Okuji wrote: > > On Friday 08 February 2008 17:18, Robert Millan wrote: > > > Fixes an ugly result of setting timeout=0. > > > > > > When this is combined with the "sleep" patch I just sent, user can > > > implement hiddenmenu-like functionality via scripting: > > > > > > echo -n "Press `ESC' to enter the menu... " > > > if sleep -v -i 10 ; then > > > set timeout=10 > > > else > > > set timeout=0 > > > fi > > > > I think this is a bit strange. I don't think anybody expects that "sleep" > > outputs a counter or is interrupted by a key input. It is too different > > from POSIX's sleep. > > > > My preference is rather to extend "read". Bash's "read" accepts a timeout > > and some other options. > > Ok, so you suggest: > > read --timeout N --verbose --interruptible > > ?
"read" exits when an input is passed by default, so "interruptible" sounds odd. Here, I think what you want is a behavior that "read" does not wait for ENTER, but reads immediately any character (or only ESC). In GRUB Legacy, the hidden menu uses ESC, because if it uses ENTER, and the user pushes ENTER too long, and a key repeat occurs, then the first item may be selected quick as a flash. But we could avoid this problem by vacuuming all inputs before showing a menu, so it might be acceptable to use ENTER instead. (Actually, this should be implemented, regardless of this issue, because some BIOSes may leave garbage in a key buffer. I don't remember if this has been done for GRUB 2.) To count down, I don't think it should be named "--verbose". For me, this is like "--print-timeout". Okuji _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel