|
23 | 23 | #include "xinclude.h" |
24 | 24 |
|
25 | 25 |
|
26 | | -static int xdl_emit_record(xdfile_t *xdf, long ri, char const *pre, xdemitcb_t *ecb) { |
27 | | - long size, psize = strlen(pre); |
28 | | - char const *rec = xdf->recs[ri]->ptr; |
| 26 | +static int xdl_emit_record(xdfile_t *xdf, long ri, char const *pre, xdemitcb_t *ecb) |
| 27 | +{ |
| 28 | + xrecord_t *rec = xdf->recs[ri]; |
29 | 29 |
|
30 | | - size = xdf->recs[ri]->size; |
31 | | - if (xdl_emit_diffrec(rec, size, pre, psize, ecb) < 0) |
| 30 | + if (xdl_emit_diffrec(rec->ptr, rec->size, pre, strlen(pre), ecb) < 0) |
32 | 31 | return -1; |
33 | 32 |
|
34 | 33 | return 0; |
@@ -111,11 +110,11 @@ static long def_ff(const char *rec, long len, char *buf, long sz) |
111 | 110 | static long match_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri, |
112 | 111 | char *buf, long sz) |
113 | 112 | { |
114 | | - const char *rec = xdf->recs[ri]->ptr; |
115 | | - long len = xdf->recs[ri]->size; |
| 113 | + xrecord_t *rec = xdf->recs[ri]; |
| 114 | + |
116 | 115 | if (!xecfg->find_func) |
117 | | - return def_ff(rec, len, buf, sz); |
118 | | - return xecfg->find_func(rec, len, buf, sz, xecfg->find_func_priv); |
| 116 | + return def_ff(rec->ptr, rec->size, buf, sz); |
| 117 | + return xecfg->find_func(rec->ptr, rec->size, buf, sz, xecfg->find_func_priv); |
119 | 118 | } |
120 | 119 |
|
121 | 120 | static int is_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri) |
@@ -151,14 +150,12 @@ static long get_func_line(xdfenv_t *xe, xdemitconf_t const *xecfg, |
151 | 150 |
|
152 | 151 | static int is_empty_rec(xdfile_t *xdf, long ri) |
153 | 152 | { |
154 | | - const char *rec = xdf->recs[ri]->ptr; |
155 | | - long len = xdf->recs[ri]->size; |
| 153 | + xrecord_t *rec = xdf->recs[ri]; |
| 154 | + long i = 0; |
156 | 155 |
|
157 | | - while (len > 0 && XDL_ISSPACE(*rec)) { |
158 | | - rec++; |
159 | | - len--; |
160 | | - } |
161 | | - return !len; |
| 156 | + for (; i < rec->size && XDL_ISSPACE(rec->ptr[i]); i++); |
| 157 | + |
| 158 | + return i == rec->size; |
162 | 159 | } |
163 | 160 |
|
164 | 161 | int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb, |
|
0 commit comments