typedef __SIZE_TYPE__ size_t; struct re_pattern_buffer { unsigned char *buffer; unsigned long int used; }; struct re_registers { int *start; }; static const char **regstart, **regend; static const char **old_regend; static int re_match_2_internal (struct re_pattern_buffer *bufp, struct re_registers *regs) { unsigned char *p = bufp->buffer; unsigned char *pend = p + bufp->used; for (;;) { int highest_active_reg = 1; if (bufp) { int i; for (i = 1;; i++) regs->start[i] = 0; } switch ((unsigned int) *p++) { case 1: { unsigned char r = *p; if (r) highest_active_reg = r; } if (p + 2 == pend) { char is_a_jump_n = 0; int mcnt = 0; unsigned char *p1; p1 = p + 2; switch (*p1++) { case 2: is_a_jump_n = 1; case 1: do { do { mcnt = *p1; } while (0); p1 += 2; } while (0); if (is_a_jump_n) p1 = 0; } if (mcnt && *p1 == 0) { unsigned r; for (r = 0; r < (unsigned) *p + (unsigned) *(p + 1); r++) { if (regend[0] >= regstart[r]) regend[r] = old_regend[r]; } do { while (0 < highest_active_reg + 1) { } } while (0); } } } } return -1; }