X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=restore%2Fdirs.c;h=45d4cbe0743981208e96fa82ce6544ee4deb83de;hp=19105470c4ea8e39b82f3ff6d3055dfa9a58b860;hb=fe0e02857a1ff7db4bf8cb28780de7ecf2f24234;hpb=11856e771fadee7ddb9b5a613c91f562bf363da7 diff --git a/restore/dirs.c b/restore/dirs.c index 1910547..45d4cbe 100644 --- a/restore/dirs.c +++ b/restore/dirs.c @@ -46,7 +46,7 @@ #ifndef lint static const char rcsid[] = - "$Id: dirs.c,v 1.16 2002/01/16 09:32:14 stelian Exp $"; + "$Id: dirs.c,v 1.18 2002/02/04 11:18:46 stelian Exp $"; #endif /* not lint */ #include @@ -140,7 +140,7 @@ struct odirect { char d_name[ODIRSIZ]; }; -#ifdef __linux__ +#if defined(__linux__) || defined(sunos) static struct inotab *allocinotab __P((dump_ino_t, struct new_bsd_inode *, long)); #else static struct inotab *allocinotab __P((dump_ino_t, struct dinode *, long)); @@ -164,11 +164,11 @@ static struct direct *searchdir __P((dump_ino_t, char *)); void extractdirs(int genmode) { - register int i; -#ifdef __linux__ - register struct new_bsd_inode *ip; + int i; +#if defined(__linux__) || defined(sunos) + struct new_bsd_inode *ip; #else - register struct dinode *ip; + struct dinode *ip; #endif struct inotab *itp; struct direct nulldir; @@ -252,8 +252,8 @@ skipdirs(void) void treescan(char *pname, dump_ino_t ino, long (*todo) __P((char *, dump_ino_t, int))) { - register struct inotab *itp; - register struct direct *dp; + struct inotab *itp; + struct direct *dp; int namelen; long bpt; char locname[MAXPATHLEN + 1]; @@ -325,7 +325,11 @@ pathsearch(const char *pathname) while (*path == '/') path++; dp = NULL; +#ifdef __linux__ while ((name = strsep(&path, "/")) != NULL && *name /* != NULL */) { +#else + while ((name = strtok_r(NULL, "/", &path)) != NULL && *name /* != NULL */) { +#endif if ((dp = searchdir(ino, name)) == NULL) return (NULL); ino = dp->d_ino; @@ -340,8 +344,8 @@ pathsearch(const char *pathname) static struct direct * searchdir(dump_ino_t inum, char *name) { - register struct direct *dp; - register struct inotab *itp; + struct direct *dp; + struct inotab *itp; int len; itp = inotablookup(inum); @@ -364,9 +368,9 @@ static void putdir(char *buf, size_t size) { struct direct cvtbuf; - register struct odirect *odp; + struct odirect *odp; struct odirect *eodp; - register struct direct *dp; + struct direct *dp; long loc, i; if (cvtflag) { @@ -431,9 +435,9 @@ putdir(char *buf, size_t size) /* * These variables are "local" to the following two functions. */ -char dirbuf[DIRBLKSIZ]; -long dirloc = 0; -long prev = 0; +static char dirbuf[DIRBLKSIZ]; +static long dirloc = 0; +static long prev = 0; /* * add a new directory entry to a file. @@ -509,7 +513,7 @@ rst_seekdir(RST_DIR *dirp, long loc, long base) struct direct * rst_readdir(RST_DIR *dirp) { - register struct direct *dp; + struct direct *dp; for (;;) { if (dirp->dd_loc == 0) { @@ -590,8 +594,8 @@ rst_telldir(RST_DIR *dirp) static RST_DIR * opendirfile(const char *name) { - register RST_DIR *dirp; - register int fd; + RST_DIR *dirp; + int fd; if ((fd = open(name, O_RDONLY)) == -1) return (NULL); @@ -674,7 +678,7 @@ setdirmodes(int flags) int genliteraldir(char *name, dump_ino_t ino) { - register struct inotab *itp; + struct inotab *itp; int ofile, dp, i, size; char buf[BUFSIZ]; @@ -730,7 +734,7 @@ allocinotab(dump_ino_t ino, struct new_bsd_inode *dip, long seekpt) allocinotab(dump_ino_t ino, struct dinode *dip, long seekpt) #endif { - register struct inotab *itp; + struct inotab *itp; struct modeinfo node; itp = calloc(1, sizeof(struct inotab)); @@ -769,7 +773,7 @@ allocinotab(dump_ino_t ino, struct dinode *dip, long seekpt) static struct inotab * inotablookup(dump_ino_t ino) { - register struct inotab *itp; + struct inotab *itp; for (itp = inotab[INOHASH(ino)]; itp != NULL; itp = itp->t_next) if (itp->t_ino == ino)