diff options
| author | Junio C Hamano <gitster@pobox.com> | 2025-10-14 12:56:09 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-10-14 12:56:09 -0700 |
| commit | 9ff172d0ee65dfea6a8e329ab4363e2afa6dea49 (patch) | |
| tree | 8afcdfbc6ac58ecfaa40cfd76eca48f5a7ccfad0 /xdiff/xemit.c | |
| parent | 243a61d2cffe790ba811f5a7922a7e6a365b2922 (diff) | |
| parent | 8b9c5d2e3a38b6e0c2278fe10fe2a4bf34496a9d (diff) | |
| download | git-9ff172d0ee65dfea6a8e329ab4363e2afa6dea49.tar.gz | |
Merge branch 'en/xdiff-cleanup'
A lot of code clean-up of xdiff.
Split out of a larger topic.
* en/xdiff-cleanup:
xdiff: change type of xdfile_t.changed from char to bool
xdiff: add macros DISCARD(0), KEEP(1), INVESTIGATE(2) in xprepare.c
xdiff: rename rchg -> changed in xdfile_t
xdiff: delete chastore from xdfile_t
xdiff: delete fields ha, line, size in xdlclass_t in favor of an xrecord_t
xdiff: delete redundant array xdfile_t.ha
xdiff: delete struct diffdata_t
xdiff: delete local variables that alias fields in xrecord_t
xdiff: delete superfluous function xdl_get_rec() in xemit
xdiff: delete unnecessary fields from xrecord_t and xdfile_t
xdiff: delete local variables and initialize/free xdfile_t directly
xdiff: delete static forward declarations in xprepare
Diffstat (limited to 'xdiff/xemit.c')
| -rw-r--r-- | xdiff/xemit.c | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/xdiff/xemit.c b/xdiff/xemit.c index 1d40c9cb40..b2f1f30cd3 100644 --- a/xdiff/xemit.c +++ b/xdiff/xemit.c @@ -22,23 +22,13 @@ #include "xinclude.h" -static long xdl_get_rec(xdfile_t *xdf, long ri, char const **rec) { - *rec = xdf->recs[ri]->ptr; - - return xdf->recs[ri]->size; -} - - -static int xdl_emit_record(xdfile_t *xdf, long ri, char const *pre, xdemitcb_t *ecb) { - long size, psize = strlen(pre); - char const *rec; - - size = xdl_get_rec(xdf, ri, &rec); - if (xdl_emit_diffrec(rec, size, pre, psize, ecb) < 0) { +static int xdl_emit_record(xdfile_t *xdf, long ri, char const *pre, xdemitcb_t *ecb) +{ + xrecord_t *rec = &xdf->recs[ri]; + if (xdl_emit_diffrec(rec->ptr, rec->size, pre, strlen(pre), ecb) < 0) return -1; - } return 0; } @@ -120,11 +110,11 @@ static long def_ff(const char *rec, long len, char *buf, long sz) static long match_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri, char *buf, long sz) { - const char *rec; - long len = xdl_get_rec(xdf, ri, &rec); + xrecord_t *rec = &xdf->recs[ri]; + if (!xecfg->find_func) - return def_ff(rec, len, buf, sz); - return xecfg->find_func(rec, len, buf, sz, xecfg->find_func_priv); + return def_ff(rec->ptr, rec->size, buf, sz); + return xecfg->find_func(rec->ptr, rec->size, buf, sz, xecfg->find_func_priv); } static int is_func_rec(xdfile_t *xdf, xdemitconf_t const *xecfg, long ri) @@ -160,14 +150,12 @@ static long get_func_line(xdfenv_t *xe, xdemitconf_t const *xecfg, static int is_empty_rec(xdfile_t *xdf, long ri) { - const char *rec; - long len = xdl_get_rec(xdf, ri, &rec); + xrecord_t *rec = &xdf->recs[ri]; + long i = 0; - while (len > 0 && XDL_ISSPACE(*rec)) { - rec++; - len--; - } - return !len; + for (; i < rec->size && XDL_ISSPACE(rec->ptr[i]); i++); + + return i == rec->size; } int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb, |
