[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Complete 'set root=('
From: |
Colin Watson |
Subject: |
[PATCH] Complete 'set root=(' |
Date: |
Thu, 3 Jun 2010 13:55:56 +0100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
While reviewing the Texinfo documentation for references to GRUB Legacy
constructs that needed to be updated, I found some discussion of
completion that used "root (<TAB>" as an example. For GRUB 2, this
would need to become "set root=(<TAB>" - but that doesn't work! The
completion code isn't smart enough to complete only the part after the
'=' in this case.
What do people think about the following patch, which makes this work so
that we can document it with a clear conscience?
2010-06-03 Colin Watson <address@hidden>
* normal/completion.c (grub_normal_do_completion): When
completing arguments to "set" and the current word contains an
equals sign, skip to after the equals sign before starting
completion.
=== modified file 'normal/completion.c'
--- normal/completion.c 2010-01-20 08:12:47 +0000
+++ normal/completion.c 2010-06-03 12:49:47 +0000
@@ -414,6 +414,14 @@ grub_normal_do_completion (char *buf, in
else
current_word = argv[argc - 1];
+ if (argc > 1 && ! grub_strcmp (argv[0], "set"))
+ {
+ char *equals = grub_strchr (current_word, '=');
+ if (equals)
+ /* Complete the value of the variable. */
+ current_word = equals + 1;
+ }
+
/* Determine the state the command line is in, depending on the
state, it can be determined how to complete. */
cmdline_state = get_state (buf);
Thanks,
--
Colin Watson address@hidden
- [PATCH] Complete 'set root=(',
Colin Watson <=