00001 /************************************************************************ 00002 * Copyright (C) 2005-2009 Philipp Marek. 00003 * 00004 * This program is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU General Public License version 3 as 00006 * published by the Free Software Foundation. 00007 ************************************************************************/ 00008 00009 #ifndef __IGNORE_H__ 00010 #define __IGNORE_H__ 00011 00015 #include "global.h" 00016 #include "actions.h" 00017 00021 #define PATTERN_POSITION_START (0) 00022 00023 #define PATTERN_POSITION_END (-1) 00024 00026 extern int ign__max_group_name_len; 00027 00030 struct grouping_t { 00031 char *group_name; 00032 apr_hash_t *auto_props; 00033 struct url_t *url; 00034 int is_ignore:1; 00035 int is_take:1; 00036 }; 00037 00038 00039 00041 work_t ign__work; 00043 work_t ign__rign; 00044 00046 int ign__new_pattern(unsigned count, 00047 char *pattern[], char *ends, 00048 int user_pattern, int position); 00050 int ign__is_ignore(struct estat *sts, int *is_ignored); 00052 int ign__load_list(char *dir); 00053 00055 int ign__print_group_stats(FILE *output); 00056 00057 enum { 00058 FORCE_IGNORE=0, 00059 ALLOW_GROUPS, 00060 }; 00061 00064 #define HAVE_DIR 1 00065 #define HAVE_CASE 2 00066 #define HAVE_GROUP 4 00067 #define HAVE_MODE 8 00068 #define HAVE_PATTERN 16 00069 #define HAVE_PATTERN_SUBST 32 00070 00074 #define hlp_ignore hlp_groups 00075 00076 #endif 00077