PROG= mtree
MAN= mtree.8
SRCS= compare.c crc.c create.c excludes.c misc.c mtree.c spec.c verify.c
+WARNS?= 6
.if defined(BOOTSTRAPPING)
.PATH: ${.CURDIR}/../../lib/libc/gen
#include "mtree.h"
#include "extern.h"
-extern int uflag;
-extern int lineno;
-
-static char *ftype(u_int);
+static const char *ftype(u_int);
#define INDENTNAMELEN 8
#define LABEL \
}
int
-compare(char *name, NODE *s, FTSENT *p)
+compare(NODE *s, FTSENT *p)
{
- extern int uflag;
u_long len, val;
int fd, label;
- char *cp, *tab = "";
- char *fflags;
+ char *cp, *fflags;
+ const char *tab = "";
label = 0;
switch(s->type) {
if (s->flags & F_SIZE && s->st_size != p->fts_statp->st_size &&
!S_ISDIR(p->fts_statp->st_mode)) {
LABEL;
- printf("%ssize expected %qd found %qd\n",
- tab, s->st_size, p->fts_statp->st_size);
+ printf("%ssize expected %jd found %jd\n", tab,
+ (intmax_t)s->st_size, (intmax_t)p->fts_statp->st_size);
tab = "\t";
}
/*
return (label);
}
-char *
+const char *
inotype(u_int type)
{
switch(type & S_IFMT) {
/* NOTREACHED */
}
-static char *
+static const char *
ftype(u_int type)
{
switch(type) {
#define INDENTNAMELEN 15
#define MAXLINELEN 80
-extern long int crc_total;
-extern int ftsoptions;
-extern int dflag, iflag, nflag, sflag;
-extern u_int keys;
-extern char fullpath[MAXPATHLEN];
-extern int lineno;
-
static gid_t gid;
static uid_t uid;
static mode_t mode;
{
FTS *t;
FTSENT *p;
- time_t clock;
- char *argv[2], host[MAXHOSTNAMELEN];
+ time_t clk;
+ char *argv[2], host[MAXHOSTNAMELEN], dot[] = ".";
int indent = 0;
- time(&clock);
+ time(&clk);
gethostname(host, sizeof(host));
printf(
"#\t user: %s\n#\tmachine: %s\n#\t tree: %s\n#\t date: %s",
- getlogin(), host, fullpath, ctime(&clock));
+ getlogin(), host, fullpath, ctime(&clk));
- argv[0] = ".";
+ argv[0] = dot;
argv[1] = NULL;
if ((t = fts_open(argv, ftsoptions, dsort)) == NULL)
err(1, "line %d: fts_open", lineno);
#define MATCH(g, n) (fnmatch((g), (n), FNM_PATHNAME) == 0)
LIST_FOREACH(e, &excludes, link) {
- if (e->pathname && MATCH(e->glob, path)
- || MATCH(e->glob, fname))
+ if ((e->pathname && MATCH(e->glob, path)) ||
+ MATCH(e->glob, fname))
return 1;
}
return 0;
* $DragonFly: src/usr.sbin/mtree/extern.h,v 1.3 2003/11/03 19:31:39 eirikn Exp $
*/
-int compare(char *, NODE *, FTSENT *);
+#ifdef MAXPATHLEN
+extern char fullpath[MAXPATHLEN];
+#endif
+extern int dflag, eflag, iflag, nflag, qflag, rflag, sflag, uflag;
+extern int ftsoptions;
+extern int lineno;
+extern long int crc_total;
+extern u_int keys;
+
+int compare(NODE *, FTSENT *);
int crc(int, u_long *, u_long *);
void cwalk(void);
char *flags_to_string(u_long);
-char *inotype(u_int);
+const char *inotype(u_int);
u_int parsekey(char *, int *);
char *rlink(char *);
NODE *spec(void);
#include "mtree.h"
#include "extern.h"
-extern int lineno;
-
typedef struct _key {
- char *name; /* key name */
+ const char *name; /* key name */
u_int val; /* value */
#define NEEDVALUE 0x01
{"uname", F_UNAME, NEEDVALUE},
};
+int keycompare(const void *, const void *);
+
u_int
parsekey(char *name, int *needvaluep)
{
KEY *k, tmp;
- int keycompare(const void *, const void *);
tmp.name = name;
k = (KEY *)bsearch(&tmp, keylist, sizeof(keylist) / sizeof(KEY),
keycompare(const void *a, const void *b)
{
- return (strcmp(((KEY *)a)->name, ((KEY *)b)->name));
+ return (strcmp(((const KEY *)a)->name, ((const KEY *)b)->name));
}
char *
#include "mtree.h"
#include "extern.h"
-extern long int crc_total;
-
int ftsoptions = FTS_PHYSICAL;
int cflag, dflag, eflag, iflag, nflag, qflag, rflag, sflag, uflag, Uflag;
u_int keys;
#include "mtree.h"
#include "extern.h"
-extern long int crc_total;
-extern int ftsoptions;
-extern int dflag, eflag, qflag, rflag, sflag, uflag;
-extern char fullpath[MAXPATHLEN];
-extern int lineno;
-
static NODE *root;
static char path[MAXPATHLEN];
FTSENT *p;
NODE *ep, *level;
int specdepth, rval;
- char *argv[2];
+ char *argv[2], dot[] = ".";
- argv[0] = ".";
+ argv[0] = dot;
argv[1] = NULL;
if ((t = fts_open(argv, ftsoptions, NULL)) == NULL)
err(1, "line %d: fts_open", lineno);
!strcmp(ep->name, p->fts_name)) {
ep->flags |= F_VISIT;
if ((ep->flags & F_NOCHANGE) == 0 &&
- compare(ep->name, ep, p))
+ compare(ep, p))
rval = MISMATCHEXIT;
if (ep->flags & F_IGN)
fts_set(t, p, FTS_SKIP);