|
Line 0
Link Here
|
|
|
1 |
--- psi/zstring.c.orig |
| 2 |
+++ psi/zstring.c |
| 3 |
@@ -142,13 +142,18 @@ search_impl(i_ctx_t *i_ctx_p, bool forward) |
| 4 |
return 0; |
| 5 |
found: |
| 6 |
op->tas.type_attrs = op1->tas.type_attrs; |
| 7 |
- op->value.bytes = ptr; |
| 8 |
- r_set_size(op, size); |
| 9 |
+ op->value.bytes = ptr; /* match */ |
| 10 |
+ op->tas.rsize = size; /* match */ |
| 11 |
push(2); |
| 12 |
- op[-1] = *op1; |
| 13 |
- r_set_size(op - 1, ptr - op[-1].value.bytes); |
| 14 |
- op1->value.bytes = ptr + size; |
| 15 |
- r_set_size(op1, count + (!forward ? (size - 1) : 0)); |
| 16 |
+ op[-1] = *op1; /* pre */ |
| 17 |
+ op[-3].value.bytes = ptr + size; /* post */ |
| 18 |
+ if (forward) { |
| 19 |
+ op[-1].tas.rsize = ptr - op[-1].value.bytes; /* pre */ |
| 20 |
+ op[-3].tas.rsize = count; /* post */ |
| 21 |
+ } else { |
| 22 |
+ op[-1].tas.rsize = count; /* pre */ |
| 23 |
+ op[-3].tas.rsize -= count + size; /* post */ |
| 24 |
+ } |
| 25 |
make_true(op); |
| 26 |
return 0; |
| 27 |
} |