mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-03-16 23:07:00 +00:00
Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master
This commit is contained in:
commit
808da52f62
2 changed files with 17 additions and 10 deletions
|
@ -59,7 +59,6 @@ extern int do_bootd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|||
|
||||
#define MAX_DELAY_STOP_STR 32
|
||||
|
||||
static int parse_line (char *, char *[]);
|
||||
#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
|
||||
static int abortboot(int);
|
||||
#endif
|
||||
|
@ -918,8 +917,15 @@ static int cread_line(const char *const prompt, char *buf, unsigned int *len)
|
|||
*/
|
||||
int readline (const char *const prompt)
|
||||
{
|
||||
return readline_into_buffer(prompt, console_buffer);
|
||||
}
|
||||
|
||||
|
||||
int readline_into_buffer (const char *const prompt, char * buffer)
|
||||
{
|
||||
char *p = buffer;
|
||||
char * p_buf = p;
|
||||
#ifdef CONFIG_CMDLINE_EDITING
|
||||
char *p = console_buffer;
|
||||
unsigned int len=MAX_CMDBUF_SIZE;
|
||||
int rc;
|
||||
static int initted = 0;
|
||||
|
@ -934,7 +940,6 @@ int readline (const char *const prompt)
|
|||
rc = cread_line(prompt, p, &len);
|
||||
return rc < 0 ? rc : len;
|
||||
#else
|
||||
char *p = console_buffer;
|
||||
int n = 0; /* buffer index */
|
||||
int plen = 0; /* prompt length */
|
||||
int col; /* output column cnt */
|
||||
|
@ -972,13 +977,13 @@ int readline (const char *const prompt)
|
|||
case '\n':
|
||||
*p = '\0';
|
||||
puts ("\r\n");
|
||||
return (p - console_buffer);
|
||||
return (p - p_buf);
|
||||
|
||||
case '\0': /* nul */
|
||||
continue;
|
||||
|
||||
case 0x03: /* ^C - break */
|
||||
console_buffer[0] = '\0'; /* discard input */
|
||||
p_buf[0] = '\0'; /* discard input */
|
||||
return (-1);
|
||||
|
||||
case 0x15: /* ^U - erase line */
|
||||
|
@ -986,20 +991,20 @@ int readline (const char *const prompt)
|
|||
puts (erase_seq);
|
||||
--col;
|
||||
}
|
||||
p = console_buffer;
|
||||
p = p_buf;
|
||||
n = 0;
|
||||
continue;
|
||||
|
||||
case 0x17: /* ^W - erase word */
|
||||
p=delete_char(console_buffer, p, &col, &n, plen);
|
||||
p=delete_char(p_buf, p, &col, &n, plen);
|
||||
while ((n > 0) && (*p != ' ')) {
|
||||
p=delete_char(console_buffer, p, &col, &n, plen);
|
||||
p=delete_char(p_buf, p, &col, &n, plen);
|
||||
}
|
||||
continue;
|
||||
|
||||
case 0x08: /* ^H - backspace */
|
||||
case 0x7F: /* DEL - backspace */
|
||||
p=delete_char(console_buffer, p, &col, &n, plen);
|
||||
p=delete_char(p_buf, p, &col, &n, plen);
|
||||
continue;
|
||||
|
||||
default:
|
||||
|
@ -1012,7 +1017,7 @@ int readline (const char *const prompt)
|
|||
/* if auto completion triggered just continue */
|
||||
*p = '\0';
|
||||
if (cmd_auto_complete(prompt, console_buffer, &n, &col)) {
|
||||
p = console_buffer + n; /* reset */
|
||||
p = p_buf + n; /* reset */
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -197,6 +197,8 @@ int print_buffer (ulong addr, void* data, uint width, uint count, uint linelen);
|
|||
void main_loop (void);
|
||||
int run_command (const char *cmd, int flag);
|
||||
int readline (const char *const prompt);
|
||||
int readline_into_buffer (const char *const prompt, char * buffer);
|
||||
int parse_line (char *, char *[]);
|
||||
void init_cmd_timeout(void);
|
||||
void reset_cmd_timeout(void);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue