X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fcommon.h;h=a37488a9709ecad01ca1cfe9ea62d242e36aa3d9;hb=586c684815d71063cb39670f2398b5261de91ed5;hp=e7f4c684176f42932b652f09b88cf0ffecd343ad;hpb=49ea4c50575f66e8f0450e463e1d882eed6255ec;p=chaz%2Ftar diff --git a/src/common.h b/src/common.h index e7f4c68..a37488a 100644 --- a/src/common.h +++ b/src/common.h @@ -1,7 +1,7 @@ /* Common declarations for the tar program. Copyright (C) 1988, 1992, 1993, 1994, 1996, 1997, 1999, 2000, 2001, - 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -150,8 +150,18 @@ GLOBAL int check_links_option; /* Patterns that match file names to be excluded. */ GLOBAL struct exclude *excluded; -/* Exclude directories containing a cache directory tag. */ -GLOBAL bool exclude_caches_option; +enum exclusion_tag_type + { + exclusion_tag_none, + /* Exclude the directory contents, but preserve the directory + itself and the exclusion tag file */ + exclusion_tag_contents, + /* Exclude everything below the directory, preserving the directory + itself */ + exclusion_tag_under, + /* Exclude entire directory */ + exclusion_tag_all, + }; /* Specified value to be put into tar file in place of stat () results, or just -1 if such an override should not take place. */ @@ -417,6 +427,10 @@ enum dump_status dump_status_not_implemented }; +void add_exclusion_tag (const char *name, enum exclusion_tag_type type, + bool (*)(const char*)); +bool cachedir_file_p (const char *name); + bool file_dumpable_p (struct tar_stat_info *st); void create_archive (void); void pad_archive (off_t size_left); @@ -722,4 +736,5 @@ bool utf8_convert (bool to_utf, char const *input, char **output); /* Module transform.c */ void set_transform_expr (const char *expr); bool transform_name (char **pinput); -bool transform_name_fp (char **pinput, char *(*fun)(char *)); +bool transform_member_name (char **pinput, bool lnk); +bool transform_name_fp (char **pinput, char *(*fun)(char *, void *), void *);