X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=restore%2Finteractive.c;h=0bd6aaa6d7bc6f367c20e21a83f182b88de9003e;hp=28b4d371861d2b7820e41ebfa3ab0f49d8061306;hb=d339304329df2d458e54c02eac10a27cb31d9cb1;hpb=688653ea7629ee624cd894bfd464233d11399e74 diff --git a/restore/interactive.c b/restore/interactive.c index 28b4d37..0bd6aaa 100644 --- a/restore/interactive.c +++ b/restore/interactive.c @@ -40,7 +40,7 @@ #ifndef lint static const char rcsid[] = - "$Id: interactive.c,v 1.8 2000/01/21 10:17:41 stelian Exp $"; + "$Id: interactive.c,v 1.9 2000/02/26 01:35:48 stelian Exp $"; #endif /* not lint */ #include @@ -79,7 +79,7 @@ extern char * __progname; static int runshell; static jmp_buf reset; static char *nextarg = NULL; - +static int pflag = 0; /* prompt mode */ /* * Structure and routines associated with listing directories. */ @@ -203,7 +203,7 @@ loop: if (strncmp(cmd, "help", strlen(cmd)) != 0) goto bad; case '?': - fprintf(stderr, "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", + fprintf(stderr, "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", "Available commands are:\n", "\tls [arg] - list directory\n", "\tcd arg - change directory\n", @@ -218,6 +218,7 @@ loop: "\twhat - list dump header information\n", "\tverbose - toggle verbose flag", " (useful with ``ls'')\n", + "\tprompt - toggle the prompt display\n", "\thelp or `?' - print this list\n", "If no `arg' is supplied, the current", " directory is used\n"); @@ -234,12 +235,26 @@ loop: * Print current directory. */ case 'p': - if (strncmp(cmd, "pwd", strlen(cmd)) != 0) - goto bad; - if (curdir[1] == '\0') - fprintf(stderr, "/\n"); - else - fprintf(stderr, "%s\n", &curdir[1]); + if (strncmp(cmd, "pwd", strlen(cmd)) == 0) { + if (curdir[1] == '\0') + fprintf(stderr, "/\n"); + else + fprintf(stderr, "%s\n", &curdir[1]); + } + /* + * Toggle prompt mode. + */ + else if (strncmp(cmd, "prompt", strlen(cmd)) == 0) { + if (pflag) { + fprintf(stderr, "prompt mode off\n"); + pflag = 0; + break; + } + fprintf(stderr, "prompt mode on\n"); + pflag++; + break; + } + else goto bad; break; /* * Quit. @@ -337,7 +352,13 @@ getcmd(char *curdir, char *cmd, char *name, int size, struct arglist *ap) * Read a command line and trim off trailing white space. */ do { - fprintf(stderr, "%s > ", __progname); + if (pflag) + fprintf(stderr, "%s:%s:%s > ", + __progname, + spcl.c_filesys, + curdir[1] ? &curdir[1] : "/"); + else + fprintf(stderr, "%s > ", __progname); (void) fflush(stderr); (void) fgets(input, BUFSIZ, terminal); } while (!feof(terminal) && input[0] == '\n');