#ifndef lint
static const char rcsid[] =
- "$Id: tape.c,v 1.89 2005/05/02 15:10:46 stelian Exp $";
+ "$Id: tape.c,v 1.93 2009/07/23 14:10:39 stelian Exp $";
#endif /* not lint */
#include <config.h>
#endif
FLUSHTAPEBUF();
findtapeblksize();
+ cvtflag = 0;
if (gethead(&spcl) == FAIL) {
blkcnt--; /* push back this block */
blksread--;
if (nextvol == 1) {
tapesread = 0;
gettingfile = 0;
- tpblksread = 0;
blksread = 0;
}
if (pipein) {
}
if (haderror || (bot_code && !Mflag)) {
haderror = 0;
+ if (compare_errors)
+ fprintf(stderr, "%d compare errors so far\n", compare_errors);
#ifdef sunos
fprintf(stderr, "Mount volume %ld\n", (long)newvol);
#else
}
(void) chown(name, curfile.dip->di_uid, curfile.dip->di_gid);
(void) chmod(name, mode);
+ extractattr(name);
+ utimes(name, timep);
if (flags)
#ifdef __linux__
(void) lsetflags(name, flags);
#endif
#endif
skipfile();
- extractattr(name);
- utimes(name, timep);
return (GOOD);
case IFCHR:
}
(void) chown(name, curfile.dip->di_uid, curfile.dip->di_gid);
(void) chmod(name, mode);
+ extractattr(name);
+ utimes(name, timep);
if (flags)
#ifdef __linux__
{
#endif
#endif
skipfile();
- extractattr(name);
- utimes(name, timep);
return (GOOD);
case IFREG:
skipfile();
(void) chown(name, luid, lgid);
(void) chmod(name, mode);
+ extractattr(name);
+ utimes(name, timep);
if (flags)
#ifdef __linux__
(void) lsetflags(name, flags);
(void) chflags(name, flags);
#endif
#endif
- extractattr(name);
- utimes(name, timep);
return (GOOD);
}
}
(void) fchown(ofile, uid, gid);
(void) fchmod(ofile, mode);
(void) close(ofile);
- (void) lsetflags(oFileRsrc, flags);
utimes(oFileRsrc, timep);
+ (void) lsetflags(oFileRsrc, flags);
return (GOOD);
}
/* NOTREACHED */
break;
}
}
- if (gethead(&spcl) == GOOD && size > 0) {
+ while (gethead(&spcl) != GOOD) {
+ fprintf(stderr, "Incorrect block for %s at %ld blocks\n",
+ curfile.name, (long)blksread);
+ }
+ if (size > 0) {
if (spcl.c_type == TS_ADDR)
goto loop;
Dprintf(stdout,
errx(1, "Tape read error on first record");
memcpy(&spclpt, tapebuf, TP_BSIZE);
+ cvtflag = 0;
if (converthead(&spclpt) == FAIL) {
cvtflag++;
if (converthead(&spclpt) == FAIL) {
if (checksum((int *)buf) == FAIL)
return (FAIL);
if (Bcvt)
- swabst((u_char *)"8i4s31i528bi192b3i", (u_char *)buf);
+ swabst((u_char *)"8i4s1l29i528bi192b4i", (u_char *)buf);
goto good;
}
memcpy(&u_ospcl.s_ospcl, buf, TP_BSIZE);