| struct re_pattern_buffer { |
| unsigned char *buffer; |
| unsigned long int allocated; |
| }; |
| void byte_regex_compile (struct re_pattern_buffer *bufp, |
| unsigned char *begalt, unsigned char *b) |
| { |
| unsigned char *pfrom; |
| unsigned char *pto; |
| |
| while ((unsigned long) (b - bufp->buffer + 3) > bufp->allocated) |
| { |
| unsigned char *old_buffer = bufp->buffer; |
| bufp->allocated <<= 1; |
| if (old_buffer != bufp->buffer) |
| { |
| int incr = bufp->buffer - old_buffer; |
| b += incr; |
| } |
| } |
| pfrom = b; |
| pto = b + 3; |
| while (pfrom != begalt) |
| *--pto = *--pfrom; |
| } |
| |