#ifndef lint
static const char rcsid[] =
- "$Id: interactive.c,v 1.20 2002/01/25 14:59:53 stelian Exp $";
+ "$Id: interactive.c,v 1.23 2002/02/25 13:54:53 stelian Exp $";
#endif /* not lint */
#include <config.h>
static char *rl_gets (char *prompt);
static void initialize_readline(void);
-static char **restore_completion (char *text, int start, int end);
-static char *command_generator(char *text, int state);
-static char *filename_generator(char *text, int state);
+static char **restore_completion (const char *text, int start, int end);
+static char *command_generator(const char *text, int state);
+static char *filename_generator(const char *text, int state);
#endif
#define round(a, b) (((a) + (b) - 1) / (b) * (b))
void
runcmdshell(void)
{
- register struct entry *np;
+ struct entry *np;
dump_ino_t ino;
struct arglist arglist;
char curdir[MAXPATHLEN];
static void
getcmd(char *curdir, char *cmd, char *name, int size, struct arglist *ap)
{
- register char *cp;
+ char *cp;
static char input[BUFSIZ];
char output[BUFSIZ];
# define rawname input /* save space by reusing input buffer */
static char *
copynext(char *input, char *output)
{
- register char *cp, *bp;
+ char *cp, *bp;
char quote;
for (cp = input; *cp == ' ' || *cp == '\t'; cp++)
void
canon(char *rawname, char *canonname, int len)
{
- register char *cp, *np;
+ char *cp, *np;
if (strcmp(rawname, ".") == 0 || strncmp(rawname, "./", 2) == 0)
(void) strcpy(canonname, "");
static void
printlist(char *name, char *basename)
{
- register struct afile *fp, *list, *listp = NULL;
- register struct direct *dp;
+ struct afile *fp, *list, *listp = NULL;
+ struct direct *dp;
struct afile single;
RST_DIR *dirp;
int entries, len, namelen;
static void
formatf(struct afile *list, int nentry)
{
- register struct afile *fp, *endlist;
+ struct afile *fp, *endlist;
int width, bigino, haveprefix, havepostfix;
int i, j, w, precision = 0, columns, lines;
static int
glob_stat(const char *name, struct stat *stp)
{
- register struct direct *dp;
+ struct direct *dp;
dp = pathsearch(name);
if (dp == NULL || (!dflag && TSTINO(dp->d_ino, dumpmap) == 0) ||
(!vflag && dp->d_ino == WINO))
#if HAVE_READLINE
+#if !HAVE_READLINE_RLCM
+#define rl_completion_matches completion_matches
+#endif
+
/* A static variable for holding the line. */
static char *line_read = NULL;
return (line_read);
}
-static void
-initialize_readline(void)
-{
- rl_attempted_completion_function = restore_completion;
- rl_completion_entry_function = (Function *)NULL;
- rl_completion_append_character = '\0';
- rl_instream = terminal;
-}
-
-static char **
-restore_completion (char *text, int start, int end)
-{
- char **matches;
-
- if (start == 0)
- matches = completion_matches (text, command_generator);
- else
- matches = completion_matches (text, filename_generator);
-
- return (matches);
-}
-
static char *
-command_generator(char *text, int state)
+command_generator(const char *text, int state)
{
static int list_index, len;
char *name;
}
static char *
-filename_generator(char *text, int state)
+filename_generator(const char *text, int state)
{
static int list_index;
char *name;
return name;
}
+
+static char **
+restore_completion (const char *text, int start, int end)
+{
+ char **matches;
+
+ if (start == 0)
+ matches = rl_completion_matches (text, command_generator);
+ else
+ matches = rl_completion_matches (text, filename_generator);
+
+ return (matches);
+}
+
+static void
+initialize_readline(void)
+{
+ rl_readline_name = "dump";
+ rl_attempted_completion_function = restore_completion;
+ rl_completion_entry_function = NULL;
+#if HAVE_READLINE_CAC /* compile with readline 2.0 */
+ rl_completion_append_character = '\0';
+#endif
+ rl_instream = terminal;
+}
+
#endif /* HAVE_READLINE */