X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=restore%2Fmain.c;h=77ae96d1c466a2315a9cc8692b8c669c3a4a2d33;hp=ad0496816a68d42e5265ced41c83751ec56e4b02;hb=11856e771fadee7ddb9b5a613c91f562bf363da7;hpb=c400d6a2fcb10a45b62fb0af26e6536e8181c508 diff --git a/restore/main.c b/restore/main.c index ad04968..77ae96d 100644 --- a/restore/main.c +++ b/restore/main.c @@ -2,8 +2,8 @@ * Ported to Linux's Second Extended File System as part of the * dump and restore backup suit * Remy Card , 1994-1997 - * Stelian Pop , 1999-2000 - * Stelian Pop - Alcôve , 2000 + * Stelian Pop , 1999-2000 + * Stelian Pop - Alcôve , 2000-2002 */ /* @@ -41,7 +41,7 @@ #ifndef lint static const char rcsid[] = - "$Id: main.c,v 1.31 2001/11/13 12:11:42 stelian Exp $"; + "$Id: main.c,v 1.34 2002/01/16 09:32:14 stelian Exp $"; #endif /* not lint */ #include @@ -82,7 +82,7 @@ static const char rcsid[] = int bflag = 0, cvtflag = 0, dflag = 0, vflag = 0, yflag = 0; int hflag = 1, mflag = 1, Mflag = 0, Nflag = 0, Vflag = 0, zflag = 0; -int uflag = 0; +int uflag = 0, lflag = 0, Lflag = 0; int dokerberos = 0; char command = '\0'; long dumpnum = 1; @@ -158,7 +158,7 @@ main(int argc, char *argv[]) #ifdef KERBEROS "k" #endif - "mMN" + "lL:mMN" #ifdef USE_QFA "Q:" #endif @@ -214,6 +214,16 @@ main(int argc, char *argv[]) ch, command); command = ch; break; + case 'l': + lflag = 1; + break; + case 'L': + Lflag = strtol(optarg, &p, 10); + if (*p) + errx(1, "illegal limit -- %s", optarg); + if (Lflag < 0) + errx(1, "limit must be greater than 0"); + break; case 'm': mflag = 0; break; @@ -280,7 +290,11 @@ main(int argc, char *argv[]) atexit(cleanup); - if (command == 'C' && inputdev[0] != '/' && strcmp(inputdev, "-")) { + if (command == 'C' && inputdev[0] != '/' && strcmp(inputdev, "-") +#ifdef RRESTORE + && !strchr(inputdev, ':') +#endif + ) { /* since we chdir into the directory we are comparing * to, we must retain the full tape path */ char wd[MAXPATHLEN], fullpathinput[MAXPATHLEN]; @@ -527,12 +541,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 "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 ...]"); + __progname, " -C [-c" kerbflag "lMvVy] [-b blocksize] [-D filesystem] [-f file] [-F script] [-L limit] [-s fileno]", + __progname, " -i [-ch" kerbflag "lmMuvVy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno]", + __progname, " -r [-c" kerbflag "lMuvVy] [-b blocksize] [-f file] [-F script] [-s fileno] [-T directory]", + __progname, " -R [-c" kerbflag "lMuvVy] [-b blocksize] [-f file] [-F script] [-s fileno] [-T directory]", + __progname, " -t [-ch" kerbflag "lMuvVy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno] [-X filelist] [file ...]", + __progname, " -x [-ch" kerbflag "lmMuvVy] [-b blocksize] [-f file] [-F script] " qfaflag "[-s fileno] [-X filelist] [file ...]"); exit(1); } @@ -570,6 +584,7 @@ obsolete(int *argcp, char **argvp[]) case 'D': case 'f': case 'F': + case 'L': case 'Q': case 's': case 'T':