aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/fmtree/excludes.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/fmtree/excludes.c')
-rw-r--r--usr.sbin/fmtree/excludes.c111
1 files changed, 0 insertions, 111 deletions
diff --git a/usr.sbin/fmtree/excludes.c b/usr.sbin/fmtree/excludes.c
deleted file mode 100644
index 9f1c56405706..000000000000
--- a/usr.sbin/fmtree/excludes.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright 2000 Massachusetts Institute of Technology
- *
- * Permission to use, copy, modify, and distribute this software and
- * its documentation for any purpose and without fee is hereby
- * granted, provided that both the above copyright notice and this
- * permission notice appear in all copies, that both the above
- * copyright notice and this permission notice appear in all
- * supporting documentation, and that the name of M.I.T. not be used
- * in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission. M.I.T. makes
- * no representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied
- * warranty.
- *
- * THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS
- * ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
- * SHALL M.I.T. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <sys/time.h> /* XXX for mtree.h */
-#include <sys/queue.h>
-
-#include <err.h>
-#include <fnmatch.h>
-#include <fts.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "mtree.h" /* XXX for extern.h */
-#include "extern.h"
-
-/*
- * We're assuming that there won't be a whole lot of excludes,
- * so it's OK to use a stupid algorithm.
- */
-struct exclude {
- LIST_ENTRY(exclude) link;
- const char *glob;
- int pathname;
-};
-static LIST_HEAD(, exclude) excludes;
-
-void
-init_excludes(void)
-{
- LIST_INIT(&excludes);
-}
-
-void
-read_excludes_file(const char *name)
-{
- FILE *fp;
- char *line, *str;
- struct exclude *e;
- size_t len;
-
- fp = fopen(name, "r");
- if (fp == NULL)
- err(1, "%s", name);
-
- while ((line = fgetln(fp, &len)) != NULL) {
- if (line[len - 1] == '\n')
- len--;
- if (len == 0)
- continue;
-
- str = malloc(len + 1);
- e = malloc(sizeof *e);
- if (str == NULL || e == NULL)
- errx(1, "memory allocation error");
- e->glob = str;
- memcpy(str, line, len);
- str[len] = '\0';
- if (strchr(str, '/'))
- e->pathname = 1;
- else
- e->pathname = 0;
- LIST_INSERT_HEAD(&excludes, e, link);
- }
- fclose(fp);
-}
-
-int
-check_excludes(const char *fname, const char *path)
-{
- struct exclude *e;
-
- /* fnmatch(3) has a funny return value convention... */
-#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))
- return 1;
- }
- return 0;
-}