All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Millan <rmh@aybabtu.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Re: [PATCH] if timeout is set to zero, don't bother drawing the menu
Date: Sun, 10 Feb 2008 13:55:33 +0100	[thread overview]
Message-ID: <20080210125533.GF1828@thorin> (raw)
In-Reply-To: <200802100810.13574.okuji@enbug.org>

On Sun, Feb 10, 2008 at 08:10:13AM +0100, Yoshinori K. Okuji wrote:
> 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).

We could make the behaviour be, that if ESC is pressed at any time before an
input line is completed, the operation is aborted, read returns non-zero, and
it doesn't save the line to any variable.  What do you think?

> 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.

This is still error-prone.  Even if you vacuum the input buffer, we still have
a race between user unholding ENTER and GRUB showing the menu.  Vacuuming the
buffer just gives us more time, but doesn't garantee good results.

> (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.)

You mean garbage is present when control is transfered to GRUB, or generated
afterwards?  I assume the first, but then if any user input is attempted
before removing the garbage, it may be corrupted.  So it should be done as
early as possible, shouldn't it?  Perhaps in grub_console_init()?

> To count down, I don't think it should be named "--verbose". For me, this is 
> like "--print-timeout".

Ok.

I had another patch for read already, for an unrelated extension.  If you
don't mind, I'll send that in first, since it's already implemented.

-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call… if you are unable to speak?
(as seen on /.)



  reply	other threads:[~2008-02-10 12:57 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-08 16:18 [PATCH] if timeout is set to zero, don't bother drawing the menu Robert Millan
2008-02-09 10:59 ` Robert Millan
2008-02-09 20:03 ` Yoshinori K. Okuji
2008-02-09 22:09   ` Robert Millan
2008-02-10  7:10     ` Yoshinori K. Okuji
2008-02-10 12:55       ` Robert Millan [this message]
2008-02-10 20:07         ` Yoshinori K. Okuji
2008-02-10 20:24           ` Isaac Dupree
2008-02-28 10:57   ` Robert Millan
2008-02-28 22:25     ` Yoshinori K. Okuji
2008-03-03 22:22       ` Robert Millan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080210125533.GF1828@thorin \
    --to=rmh@aybabtu.com \
    --cc=grub-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.