Lines Matching refs:pat
42 struct URLPattern *pat = &glob->pattern[glob->size];
43 pat->type = UPTSet;
44 pat->content.Set.size = 1;
45 pat->content.Set.ptr_s = 0;
46 pat->globindex = -1;
48 pat->content.Set.elements = malloc(sizeof(char *));
50 if(!pat->content.Set.elements)
53 pat->content.Set.elements[0] = malloc(len + 1);
54 if(!pat->content.Set.elements[0])
57 memcpy(pat->content.Set.elements[0], fixed, len);
58 pat->content.Set.elements[0][len] = 0;
97 struct URLPattern *pat;
104 pat = &glob->pattern[glob->size];
106 pat->type = UPTSet;
107 pat->content.Set.size = 0;
108 pat->content.Set.ptr_s = 0;
109 pat->content.Set.elements = NULL;
110 pat->globindex = globindex;
127 if(multiply(amount, pat->content.Set.size + 1))
134 if(pat->content.Set.elements) {
135 char **new_arr = realloc(pat->content.Set.elements,
136 (size_t)(pat->content.Set.size + 1) *
141 pat->content.Set.elements = new_arr;
144 pat->content.Set.elements = malloc(sizeof(char *));
146 if(!pat->content.Set.elements)
149 pat->content.Set.elements[pat->content.Set.size] =
151 if(!pat->content.Set.elements[pat->content.Set.size])
153 ++pat->content.Set.size;
195 struct URLPattern *pat;
200 pat = &glob->pattern[glob->size];
201 pat->globindex = globindex;
210 pat->type = UPTCharRange;
242 pat->content.CharRange.step = (int)step;
243 pat->content.CharRange.ptr_c = pat->content.CharRange.min_c = min_c;
244 pat->content.CharRange.max_c = max_c;
246 if(multiply(amount, ((pat->content.CharRange.max_c -
247 pat->content.CharRange.min_c) /
248 pat->content.CharRange.step + 1)))
258 pat->type = UPTNumRange;
259 pat->content.NumRange.padlength = 0;
266 ++pat->content.NumRange.padlength; /* padding length is set for all
320 pat->content.NumRange.ptr_n = pat->content.NumRange.min_n = min_n;
321 pat->content.NumRange.max_n = max_n;
322 pat->content.NumRange.step = step_n;
324 if(multiply(amount, ((pat->content.NumRange.max_n -
325 pat->content.NumRange.min_n) /
326 pat->content.NumRange.step + 1)))
532 struct URLPattern *pat;
549 pat = &glob->pattern[glob->size - 1 - i];
550 switch(pat->type) {
552 if((pat->content.Set.elements) &&
553 (++pat->content.Set.ptr_s == pat->content.Set.size)) {
554 pat->content.Set.ptr_s = 0;
559 pat->content.CharRange.ptr_c =
560 (char)(pat->content.CharRange.step +
561 (int)((unsigned char)pat->content.CharRange.ptr_c));
562 if(pat->content.CharRange.ptr_c > pat->content.CharRange.max_c) {
563 pat->content.CharRange.ptr_c = pat->content.CharRange.min_c;
568 pat->content.NumRange.ptr_n += pat->content.NumRange.step;
569 if(pat->content.NumRange.ptr_n > pat->content.NumRange.max_n) {
570 pat->content.NumRange.ptr_n = pat->content.NumRange.min_n;
575 printf("internal error: invalid pattern type (%d)\n", (int)pat->type);
585 pat = &glob->pattern[i];
586 switch(pat->type) {
588 if(pat->content.Set.elements) {
590 pat->content.Set.elements[pat->content.Set.ptr_s]);
598 *buf++ = pat->content.CharRange.ptr_c;
605 pat->content.NumRange.padlength,
606 pat->content.NumRange.ptr_n);
612 printf("internal error: invalid pattern type (%d)\n", (int)pat->type);
644 struct URLPattern *pat = NULL;
652 pat = &glob->pattern[i];
658 if(pat) {
659 switch(pat->type) {
661 if(pat->content.Set.elements) {
662 appendthis = pat->content.Set.elements[pat->content.Set.ptr_s];
664 strlen(pat->content.Set.elements[pat->content.Set.ptr_s]);
668 numbuf[0] = pat->content.CharRange.ptr_c;
675 pat->content.NumRange.padlength,
676 pat->content.NumRange.ptr_n);
682 (int)pat->type);