client: Collect readline-related code in play.c

Move prompt() from servcmd.c to play.c and give it external linkage.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2015-12-06 08:40:14 +01:00
parent f83e61cdd2
commit 60fee0e6ae
3 changed files with 20 additions and 28 deletions

View file

@ -61,6 +61,7 @@ int expect(int s, int match, char *buf);
int tcp_connect(char *, char *); int tcp_connect(char *, char *);
int login(int s, char *uname, char *cname, char *cpass, int kill_proc, int); int login(int s, char *uname, char *cname, char *cpass, int kill_proc, int);
int play(int, char *); int play(int, char *);
void prompt(int, char *, char *);
void sendcmd(int s, char *cmd, char *arg); void sendcmd(int s, char *cmd, char *arg);
int servercmd(int, char *, int); int servercmd(int, char *, int);
void outch(char); void outch(char);

View file

@ -699,3 +699,22 @@ play(int sock, char *history_file)
#endif #endif
return ret; return ret;
} }
void
prompt(int code, char *prompt, char *teles)
{
char pr[1024];
snprintf(pr, sizeof(pr), "%s%s", teles, prompt);
#ifdef HAVE_LIBREADLINE
rl_set_prompt(pr);
rl_forced_update_display();
#else /* !HAVE_LIBREADLINE */
printf("%s", pr);
fflush(stdout);
#endif /* !HAVE_LIBREADLINE */
if (auxfp) {
fprintf(auxfp, "%s%s", teles, prompt);
fflush(auxfp);
}
}

View file

@ -46,14 +46,6 @@
#include "proto.h" #include "proto.h"
#include "secure.h" #include "secure.h"
#ifdef HAVE_LIBREADLINE
# if defined(HAVE_READLINE_READLINE_H)
# include <readline/readline.h>
# elif defined(HAVE_READLINE_H)
# include <readline.h>
# endif /* defined(HAVE_READLINE_H) */
#endif /* HAVE_LIBREADLINE */
int eight_bit_clean; int eight_bit_clean;
FILE *auxfp; FILE *auxfp;
int restricted; int restricted;
@ -62,7 +54,6 @@ static FILE *redir_fp;
static int redir_is_pipe; static int redir_is_pipe;
static int executing; static int executing;
static void prompt(int, char *, char *);
static void doredir(char *p); static void doredir(char *p);
static void dopipe(char *p); static void dopipe(char *p);
static int doexecute(char *p); static int doexecute(char *p);
@ -137,25 +128,6 @@ servercmd(int code, char *arg, int len)
return 0; return 0;
} }
static void
prompt(int code, char *prompt, char *teles)
{
char pr[1024];
snprintf(pr, sizeof(pr), "%s%s", teles, prompt);
#ifdef HAVE_LIBREADLINE
rl_set_prompt(pr);
rl_forced_update_display();
#else /* !HAVE_LIBREADLINE */
printf("%s", pr);
fflush(stdout);
#endif /* !HAVE_LIBREADLINE */
if (auxfp) {
fprintf(auxfp, "%s%s", teles, prompt);
fflush(auxfp);
}
}
static char * static char *
fname(char *s) fname(char *s)
{ {