* term.c: Use fgets() if readline() is not available.

git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@243 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
Theodore A. Roth 2003-02-27 20:08:54 +00:00
parent 8afd3dc4e1
commit bed435c2c1
1 changed files with 30 additions and 8 deletions

38
term.c
View File

@ -24,8 +24,11 @@
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <readline/readline.h>
#include <readline/history.h>
#if defined(HAVE_LIBREADLINE)
# include <readline/readline.h>
# include <readline/history.h>
#endif
#include "avr.h"
#include "config.h"
@ -621,21 +624,40 @@ int do_cmd(PROGRAMMER * pgm, struct avrpart * p, int argc, char * argv[])
}
char * terminal_get_input(const char *prompt)
{
#if defined(HAVE_LIBREADLINE)
char *input;
input = readline(prompt);
if ((input != NULL) && (strlen(input) >= 1))
add_history(input);
return input;
#else
char input[256];
printf("%s", prompt);
if (fgets(input, sizeof(input), stdin))
{
/* FIXME: readline strips the '\n', should this too? */
strdup(input);
}
else
return NULL;
#endif
}
int terminal_mode(PROGRAMMER * pgm, struct avrpart * p)
{
char * cmdbuf;
int i, len;
int i;
char * q;
int rc;
int argc;
char ** argv;
rc = 0;
while ((cmdbuf = readline("avrdude> ")) != NULL) {
len = strlen(cmdbuf);
if (len >= 1)
add_history(cmdbuf);
while ((cmdbuf = terminal_get_input("avrdude> ")) != NULL) {
/*
* find the start of the command, skipping any white space
*/