diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2007-07-05 18:01:48 +0200 |
---|---|---|
committer | Sascha Hauer <sha@octopus.labnet.pengutronix.de> | 2007-07-05 18:01:48 +0200 |
commit | abbe1817c385c099b9224753cde8459f77c70da2 (patch) | |
tree | 4084768ca610bd6548bdf4372c9d47e88baa040b /common/readline_simple.c | |
parent | af347d05abb8b69fe846d09419a3e0abe1eeb1cd (diff) | |
download | barebox-abbe1817c385c099b9224753cde8459f77c70da2.tar.gz barebox-abbe1817c385c099b9224753cde8459f77c70da2.tar.xz |
svn_rev_381
change readline prototype to be independent of global console_buffer
Diffstat (limited to 'common/readline_simple.c')
-rw-r--r-- | common/readline_simple.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/common/readline_simple.c b/common/readline_simple.c index 51b5f09484..7675103ea1 100644 --- a/common/readline_simple.c +++ b/common/readline_simple.c @@ -1,8 +1,6 @@ #include <common.h> #include <watchdog.h> -extern char console_buffer[CONFIG_CBSIZE]; /* console I/O buffer */ - static char erase_seq[] = "\b \b"; /* erase sequence */ static char tab_seq[] = " "; /* used to expand TABs */ @@ -44,9 +42,9 @@ static char * delete_char (char *buffer, char *p, int *colp, int *np, int plen) * -1 if break * -2 if timed out */ -int readline (const char *const prompt) +int readline (const char *prompt, char *line, int len) { - char *p = console_buffer; + char *p = line; int n = 0; /* buffer index */ int plen = 0; /* prompt length */ int col; /* output column cnt */ @@ -84,13 +82,13 @@ int readline (const char *const prompt) case '\n': *p = '\0'; puts ("\r\n"); - return (p - console_buffer); + return (p - line); case '\0': /* nul */ continue; case 0x03: /* ^C - break */ - console_buffer[0] = '\0'; /* discard input */ + line[0] = '\0'; /* discard input */ return (-1); case 0x15: /* ^U - erase line */ @@ -98,20 +96,20 @@ int readline (const char *const prompt) puts (erase_seq); --col; } - p = console_buffer; + p = line; n = 0; continue; case 0x17: /* ^W - erase word */ - p=delete_char(console_buffer, p, &col, &n, plen); + p=delete_char(line, p, &col, &n, plen); while ((n > 0) && (*p != ' ')) { - p=delete_char(console_buffer, p, &col, &n, plen); + p=delete_char(line, 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(line, p, &col, &n, plen); continue; default: @@ -123,8 +121,8 @@ int readline (const char *const prompt) #ifdef CONFIG_AUTO_COMPLETE /* if auto completion triggered just continue */ *p = '\0'; - if (cmd_auto_complete(prompt, console_buffer, &n, &col)) { - p = console_buffer + n; /* reset */ + if (cmd_auto_complete(prompt, line, &n, &col)) { + p = line + n; /* reset */ continue; } #endif |