Hi, there

  I had merged the patch for enabling hotkey in grub silent mode to
grub-trunk.
  The --function-key now has been removed from sleep.mod, now sleep.mod will
  monitor all function keys, delete, tab and backspace.

Thanks!

Franz Hsieh


On Fri, Sep 13, 2013 at 5:18 PM, Franz Hsieh <franz.hs...@canonical.com>wrote:

>
>
>
> On Wed, Sep 11, 2013 at 9:31 PM, Colin Watson <cjwat...@ubuntu.com> wrote:
>
>> Hi Franz,
>>
>> Throughout this patch, please take care to adhere to the GRUB coding
>> style.  This is definitely an improvement over previous versions I've
>> reviewed, but it still has a number of places where functions are called
>> or declared with no space before the opening parenthesis.  That is,
>> "function()" should become "function ()".  I know it's a minor point,
>> but it makes code much easier to read when it's all in the same style.
>>
>> On Wed, Sep 11, 2013 at 02:18:04PM +0100, Franz Hsieh (via Colin Watson)
>> wrote:
>> > +static struct
>> > +{
>> > +  char *name;
>> > +  int key;
>> > +} function_key_aliases[] =
>> > +  {
>> > +    {"f1", GRUB_TERM_KEY_F1},
>> > +    {"f2", GRUB_TERM_KEY_F2},
>> > +    {"f3", GRUB_TERM_KEY_F3},
>> > +    {"f4", GRUB_TERM_KEY_F4},
>> > +    {"f5", GRUB_TERM_KEY_F5},
>> > +    {"f6", GRUB_TERM_KEY_F6},
>> > +    {"f7", GRUB_TERM_KEY_F7},
>> > +    {"f8", GRUB_TERM_KEY_F8},
>> > +    {"f9", GRUB_TERM_KEY_F9},
>> > +    {"f10", GRUB_TERM_KEY_F10},
>> > +    {"f11", GRUB_TERM_KEY_F11},
>> > +    {"f12", GRUB_TERM_KEY_F12},
>> > +  };
>> > +
>>
>> This is essentially a copy of hotkey_aliases from
>> grub-core/commands/menuentry.c, and there's duplicated lookup code as
>> well.  Can you find any way to share it?  Since we certainly don't want
>> to put this in the kernel, and neither the sleep module nor the normal
>> module really ought to depend on the other, I suspect that doing so
>> would require a new module for shared menu code, which may well be
>> overkill for this, but it's worth a look.
>>
>
> I also agree to remove duplicate code, but seems not easy to do it unless
> we have a shared module, right? Well it would take me some time to
> evaluate.
>
> At the very least it would be a good idea to bring the contents of this
>> structure into sync with hotkey_aliases and add comments to encourage
>> developers to keep them that way.
>>
>> I think we should also call this kind of thing simply "hotkey"
>> consistently across the code, rather than it sometimes being
>> "function_key" or "fnkey".
>>
>
>
>>
>> > +      if (key == fnkey)
>> > +     {
>> > +       char hotkey[32] = {0};
>> > +       grub_snprintf(hotkey, 32, "%d", key);
>> > +       grub_env_set("hotkey", (char*)&hotkey);
>> > +       return 1;
>> > +     }
>>
>> We've generally tried to get rid of this kind of static allocation.  Use
>> grub_xasprintf instead:
>>
>>   if (key == fnkey)
>>     {
>>       char *hotkey = grub_xasprintf ("%d", key);
>>       grub_env_set ("hotkey", hotkey);
>>       grub_free (hotkey);
>>       return 1;
>>     }
>>
>> > +int
>> > +grub_menu_get_hotkey (void)
>>
>> This function is only used in this file, so it should be static.
>>
>
> These idea are good and I will do these changes in my patch.
>
> Rather than having to configure this explicitly, I have an alternative
>> suggestion, which ties into my earlier suggestion of making the hotkey
>> code a bit more shared.  Why not have sleep --interruptible look up the
>> hotkeys configured in the menu and automatically honour any of those?
>> That way you wouldn't have to configure hotkeys in two places (grub.cfg
>> and /etc/default/grub).  Plus, I'm always more comfortable with patches
>> that don't require adding configuration options.
>>
>
> Agree with Colin's points and I will update the patch.
> By the way I would like to combine --function-key and --interruptible. I
> think
> it is a simple way that sleep.mod always checks ESC for interrupt and
> f1~f12 for the
> hotkey.
>
> Thanks for your reviews and if there is any good suggestion, please feel
> free to tell me.
>
> Regards,
> Franz Hsieh
>
>

Attachment: grub2-enable-hotkey-in-silent-mode.patch
Description: Binary data

_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to