--- /usr/ports/lang/ruby18/work/ruby-1.8.6/regcomp.c Sun Feb 5 17:10:39 2006 +++ ruby-1.8.6/regcomp.c Sat Aug 25 13:27:58 2007 @@ -972,6 +972,7 @@ break; default: + fprintf(stderr, "bug1\n"); return ONIGERR_TYPE_BUG; break; } @@ -1075,6 +1076,7 @@ break; default: + fprintf(stderr, "bug2\n"); return ONIGERR_TYPE_BUG; break; } @@ -1192,6 +1194,7 @@ break; default: + fprintf(stderr, "bug3\n"); return ONIGERR_TYPE_BUG; break; } @@ -1277,7 +1280,12 @@ r = compile_length_anchor_node(&(NANCHOR(node)), reg); break; + case N_CODE: + r = 0; + break; + default: + fprintf(stderr, "bug4\n"); return ONIGERR_TYPE_BUG; break; } @@ -1346,6 +1354,7 @@ case CTYPE_WORD: op = OP_WORD; break; case CTYPE_NOT_WORD: op = OP_NOT_WORD; break; default: + fprintf(stderr, "bug5\n"); return ONIGERR_TYPE_BUG; break; } @@ -1419,6 +1428,15 @@ r = compile_anchor_node(&(NANCHOR(node)), reg); break; + case N_CODE: + { + int len = strlen(NCODE(node).code) + 1; + r = add_opcode(reg, OP_CODE_BLOCK); + add_length(reg, len); + add_bytes(reg, NCODE(node).code, len); + } + break; + default: #ifdef ONIG_DEBUG fprintf(stderr, "compile_tree: undefined node type %d\n", NTYPE(node)); @@ -2079,6 +2097,7 @@ break; case N_ANCHOR: + case N_CODE: break; default: @@ -2319,6 +2338,7 @@ case N_BACKREF: case N_ALT: case N_ANYCHAR: + case N_CODE: #ifdef USE_SUBEXP_CALL case N_CALL: #endif @@ -2441,6 +2461,10 @@ type_mask, effect_mask, anchor_mask); break; + case N_CODE: + r = 0; + break; + default: break; } @@ -4174,11 +4198,16 @@ } break; + case N_CODE: + set_mml(&opt->len, 0, 0); + break; + default: #ifdef ONIG_DEBUG fprintf(stderr, "optimize_node_left: undefined node type %d\n", NTYPE(node)); #endif + fprintf(stderr, "bug6\n"); r = ONIGERR_TYPE_BUG; break; }