2004-12-29 Marco Gerards <metgerards@student.han.nl>
* normal/cmdline.c (grub_cmdline_get): Redone logic so no empty lines are inserted and make it work like readline. Reported by Vincent Pelletier <subdino2004@yahoo.fr>.
This commit is contained in:
parent
8514a1e003
commit
6b8fd1c428
2 changed files with 23 additions and 5 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2004-12-29 Marco Gerards <metgerards@student.han.nl>
|
||||||
|
|
||||||
|
* normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
|
||||||
|
lines are inserted and make it work like readline. Reported by
|
||||||
|
Vincent Pelletier <subdino2004@yahoo.fr>.
|
||||||
|
|
||||||
2004-12-28 Marco Gerards <metgerards@student.han.nl>
|
2004-12-28 Marco Gerards <metgerards@student.han.nl>
|
||||||
|
|
||||||
* boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
|
* boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
|
||||||
|
|
|
@ -556,6 +556,7 @@ grub_cmdline_get (const char *prompt, char cmdline[], unsigned max_len,
|
||||||
|
|
||||||
cl_insert (cmdline);
|
cl_insert (cmdline);
|
||||||
|
|
||||||
|
if (hist_used == 0)
|
||||||
grub_history_add (buf);
|
grub_history_add (buf);
|
||||||
|
|
||||||
while ((key = GRUB_TERM_ASCII_CHAR (grub_getkey ())) != '\n' && key != '\r')
|
while ((key = GRUB_TERM_ASCII_CHAR (grub_getkey ())) != '\n' && key != '\r')
|
||||||
|
@ -641,7 +642,10 @@ grub_cmdline_get (const char *prompt, char cmdline[], unsigned max_len,
|
||||||
lpos = 0;
|
lpos = 0;
|
||||||
|
|
||||||
if (histpos > 0)
|
if (histpos > 0)
|
||||||
|
{
|
||||||
|
grub_history_replace (histpos, buf);
|
||||||
histpos--;
|
histpos--;
|
||||||
|
}
|
||||||
|
|
||||||
cl_delete (llen);
|
cl_delete (llen);
|
||||||
hist = grub_history_get (histpos);
|
hist = grub_history_get (histpos);
|
||||||
|
@ -656,7 +660,10 @@ grub_cmdline_get (const char *prompt, char cmdline[], unsigned max_len,
|
||||||
lpos = 0;
|
lpos = 0;
|
||||||
|
|
||||||
if (histpos < hist_used - 1)
|
if (histpos < hist_used - 1)
|
||||||
|
{
|
||||||
|
grub_history_replace (histpos, buf);
|
||||||
histpos++;
|
histpos++;
|
||||||
|
}
|
||||||
|
|
||||||
cl_delete (llen);
|
cl_delete (llen);
|
||||||
hist = grub_history_get (histpos);
|
hist = grub_history_get (histpos);
|
||||||
|
@ -723,8 +730,6 @@ grub_cmdline_get (const char *prompt, char cmdline[], unsigned max_len,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
grub_history_replace (histpos, buf);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
grub_putchar ('\n');
|
grub_putchar ('\n');
|
||||||
|
@ -736,6 +741,13 @@ grub_cmdline_get (const char *prompt, char cmdline[], unsigned max_len,
|
||||||
while (buf[lpos] == ' ')
|
while (buf[lpos] == ' ')
|
||||||
lpos++;
|
lpos++;
|
||||||
|
|
||||||
|
histpos = 0;
|
||||||
|
if (grub_strlen (buf) > 0)
|
||||||
|
{
|
||||||
|
grub_history_replace (histpos, buf);
|
||||||
|
grub_history_add ("");
|
||||||
|
}
|
||||||
|
|
||||||
grub_memcpy (cmdline, buf + lpos, llen - lpos + 1);
|
grub_memcpy (cmdline, buf + lpos, llen - lpos + 1);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in a new issue