Changeset 40458b9 for filterelement.c
- Timestamp:
- Dec 24, 2003, 7:35:21 PM (20 years ago)
- Branches:
- master, barnowl_perlaim, debian, owl, release-1.10, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- 5c1393d
- Parents:
- dad943e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
filterelement.c
re187445 r40458b9 12 12 #define OWL_FILTERELEMENT_NOT 7 13 13 #define OWL_FILTERELEMENT_RE 8 14 14 #define OWL_FILTERELEMENT_FILTER 9 15 15 16 16 void owl_filterelement_create_null(owl_filterelement *fe) … … 18 18 fe->type=OWL_FILTERELEMENT_NULL; 19 19 fe->field=NULL; 20 fe->filtername=NULL; 20 21 } 21 22 22 23 void owl_filterelement_create_openbrace(owl_filterelement *fe) 23 24 { 25 owl_filterelement_create_null(fe); 24 26 fe->type=OWL_FILTERELEMENT_OPENBRACE; 25 fe->field=NULL;26 27 } 27 28 28 29 void owl_filterelement_create_closebrace(owl_filterelement *fe) 29 30 { 31 owl_filterelement_create_null(fe); 30 32 fe->type=OWL_FILTERELEMENT_CLOSEBRACE; 31 fe->field=NULL;32 33 } 33 34 34 35 void owl_filterelement_create_and(owl_filterelement *fe) 35 36 { 37 owl_filterelement_create_null(fe); 36 38 fe->type=OWL_FILTERELEMENT_AND; 37 fe->field=NULL;38 39 } 39 40 40 41 void owl_filterelement_create_or(owl_filterelement *fe) 41 42 { 43 owl_filterelement_create_null(fe); 42 44 fe->type=OWL_FILTERELEMENT_OR; 43 fe->field=NULL;44 45 } 45 46 46 47 void owl_filterelement_create_not(owl_filterelement *fe) 47 48 { 49 owl_filterelement_create_null(fe); 48 50 fe->type=OWL_FILTERELEMENT_NOT; 49 fe->field=NULL;50 51 } 51 52 52 53 void owl_filterelement_create_true(owl_filterelement *fe) 53 54 { 55 owl_filterelement_create_null(fe); 54 56 fe->type=OWL_FILTERELEMENT_TRUE; 55 fe->field=NULL;56 57 } 57 58 58 59 void owl_filterelement_create_false(owl_filterelement *fe) 59 60 { 61 owl_filterelement_create_null(fe); 60 62 fe->type=OWL_FILTERELEMENT_FALSE; 61 fe->field=NULL;62 63 } 63 64 64 65 void owl_filterelement_create_re(owl_filterelement *fe, char *field, char *re) 65 66 { 67 owl_filterelement_create_null(fe); 66 68 fe->type=OWL_FILTERELEMENT_RE; 67 69 fe->field=owl_strdup(field); … … 69 71 } 70 72 73 void owl_filterelement_create_filter(owl_filterelement *fe, char *name) 74 { 75 owl_filterelement_create_null(fe); 76 fe->type=OWL_FILTERELEMENT_FILTER; 77 fe->filtername=owl_strdup(name); 78 } 79 71 80 void owl_filterelement_free(owl_filterelement *fe) 72 81 { 73 82 if (fe->field) owl_free(fe->field); 83 if (fe->filtername) owl_free(fe->filtername); 74 84 } 75 85 … … 133 143 } 134 144 145 int owl_filterelement_is_filter(owl_filterelement *fe) 146 { 147 if (fe->type==OWL_FILTERELEMENT_FILTER) return(1); 148 return(0); 149 } 150 135 151 char *owl_filterelement_get_field(owl_filterelement *fe) 136 152 { 137 return(fe->field); 153 if (fe->field) return(fe->field); 154 return("unknown-field"); 155 } 156 157 char *owl_filterelement_get_filtername(owl_filterelement *fe) 158 { 159 if (fe->filtername) return(fe->filtername); 160 return("unknown-filter"); 138 161 } 139 162 … … 142 165 if ( (fe->type==OWL_FILTERELEMENT_TRUE) || 143 166 (fe->type==OWL_FILTERELEMENT_FALSE) || 144 (fe->type==OWL_FILTERELEMENT_RE) ) { 167 (fe->type==OWL_FILTERELEMENT_RE) || 168 (fe->type==OWL_FILTERELEMENT_FILTER)) { 145 169 return(1); 146 170 } … … 148 172 } 149 173 150 174 /* caller must free the return */ 151 175 char *owl_filterelement_to_string(owl_filterelement *fe) 152 176 { 153 /* return must be freed by caller */154 155 177 if (owl_filterelement_is_openbrace(fe)) { 156 178 return(owl_strdup("( ")); … … 168 190 return(owl_strdup("false ")); 169 191 } else if (owl_filterelement_is_re(fe)) { 170 char *buff; 171 buff=owl_malloc(LINE); 172 sprintf(buff, "%s %s ", fe->field, owl_regex_get_string(&(fe->re))); 173 return(buff); 192 return(owl_sprintf("%s %s ", fe->field, owl_regex_get_string(&(fe->re)))); 193 } else if (owl_filterelement_is_filter(fe)) { 194 return(owl_sprintf("filter %s ", fe->filtername)); 174 195 } 175 return(owl_strdup("")); 196 197 return(owl_strdup("?")); 176 198 }
Note: See TracChangeset
for help on using the changeset viewer.