X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=restore%2Fmain.c;h=ad0496816a68d42e5265ced41c83751ec56e4b02;hp=8d9c6d2c6ab7fa1a83482b9fdbc99623815d018d;hb=c400d6a2fcb10a45b62fb0af26e6536e8181c508;hpb=f48a055e452249091f3c6851a20431a8c87135b1 diff --git a/restore/main.c b/restore/main.c index 8d9c6d2..ad04968 100644 --- a/restore/main.c +++ b/restore/main.c @@ -41,7 +41,7 @@ #ifndef lint static const char rcsid[] = - "$Id: main.c,v 1.27 2001/08/13 16:17:52 stelian Exp $"; + "$Id: main.c,v 1.31 2001/11/13 12:11:42 stelian Exp $"; #endif /* not lint */ #include @@ -81,7 +81,7 @@ static const char rcsid[] = #include "extern.h" int bflag = 0, cvtflag = 0, dflag = 0, vflag = 0, yflag = 0; -int hflag = 1, mflag = 1, Mflag = 0, Nflag = 0, zflag = 0; +int hflag = 1, mflag = 1, Mflag = 0, Nflag = 0, Vflag = 0, zflag = 0; int uflag = 0; int dokerberos = 0; char command = '\0'; @@ -162,7 +162,7 @@ main(int argc, char *argv[]) #ifdef USE_QFA "Q:" #endif - "Rrs:tT:uvxX:y")) != -1) + "Rrs:tT:uvVxX:y")) != -1) switch(ch) { case 'b': /* Change default tape blocksize. */ @@ -243,6 +243,9 @@ main(int argc, char *argv[]) case 'v': vflag = 1; break; + case 'V': + Vflag = 1; + break; case 'X': if( !strcmp(optarg,"-") ) { use_stdin("-X"); @@ -277,7 +280,18 @@ main(int argc, char *argv[]) atexit(cleanup); - setinput(inputdev); + if (command == 'C' && inputdev[0] != '/' && strcmp(inputdev, "-")) { + /* since we chdir into the directory we are comparing + * to, we must retain the full tape path */ + char wd[MAXPATHLEN], fullpathinput[MAXPATHLEN]; + if (!getcwd(wd, MAXPATHLEN)) + err(1, "can't get current directory"); + snprintf(fullpathinput, MAXPATHLEN, "%s/%s", wd, inputdev); + fullpathinput[MAXPATHLEN - 1] = '\0'; + setinput(fullpathinput); + } + else + setinput(inputdev); if (argc == 0 && !filelist) { argc = 1; @@ -513,12 +527,12 @@ usage(void) (void)fprintf(stderr, "usage:\t%s%s\n\t%s%s\n\t%s%s\n\t%s%s\n\t%s%s\n\t%s%s\n", - __progname, " -C [-c" kerbflag "Mvy] [-b blocksize] [-D filesystem] [-f file] [-F script] [-s fileno]", - __progname, " -i [-ch" kerbflag "mMuvy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno]", - __progname, " -r [-c" kerbflag "Muvy] [-b blocksize] [-f file] [-F script] [-s fileno] [-T directory]", - __progname, " -R [-c" kerbflag "Muvy] [-b blocksize] [-f file] [-F script] [-s fileno] [-T directory]", - __progname, " -t [-ch" kerbflag "Muvy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno] [-X filelist] [file ...]", - __progname, " -x [-ch" kerbflag "mMuvy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno] [-X filelist] [file ...]"); + __progname, " -C [-c" kerbflag "MvVy] [-b blocksize] [-D filesystem] [-f file] [-F script] [-s fileno]", + __progname, " -i [-ch" kerbflag "mMuvVy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno]", + __progname, " -r [-c" kerbflag "MuvVy] [-b blocksize] [-f file] [-F script] [-s fileno] [-T directory]", + __progname, " -R [-c" kerbflag "MuvVy] [-b blocksize] [-f file] [-F script] [-s fileno] [-T directory]", + __progname, " -t [-ch" kerbflag "MuvVy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno] [-X filelist] [file ...]", + __progname, " -x [-ch" kerbflag "mMuvVy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno] [-X filelist] [file ...]"); exit(1); }