Mercurial > vim
changeset 26220:d757c9c87a58 v8.2.3641
patch 8.2.3641: xxd code has duplicate expressions
Commit: https://github.com/vim/vim/commit/581f41adb3ba1dc95bf4fc7c434427e1203be5e8
Author: DungSaga <dungsaga@users.noreply.github.com>
Date: Mon Nov 22 11:57:31 2021 +0000
patch 8.2.3641: xxd code has duplicate expressions
Problem: Xxd code has duplicate expressions.
Solution: Refactor to avoid duplication. (closes https://github.com/vim/vim/issues/9185)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 22 Nov 2021 13:00:05 +0100 |
parents | 786b2a8ec970 |
children | c296dd7d8ddc |
files | src/version.c src/xxd/xxd.c |
diffstat | 2 files changed, 8 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/version.c +++ b/src/version.c @@ -758,6 +758,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3641, +/**/ 3640, /**/ 3639,
--- a/src/xxd/xxd.c +++ b/src/xxd/xxd.c @@ -811,24 +811,16 @@ main(int argc, char *argv[]) { if (p == 0) { - if (decimal_offset) - addrlen = sprintf(l, "%08ld:", - ((unsigned long)(n + seekoff + displayoff))); - else - addrlen = sprintf(l, "%08lx:", + addrlen = sprintf(l, decimal_offset ? "%08ld:" : "%08lx:", ((unsigned long)(n + seekoff + displayoff))); for (c = addrlen; c < LLEN; l[c++] = ' '); } - if (hextype == HEX_NORMAL) + if (hextype == HEX_NORMAL || hextype == HEX_LITTLEENDIAN) { - l[c = (addrlen + 1 + (grplen * p) / octspergrp)] = hexx[(e >> 4) & 0xf]; - l[++c] = hexx[ e & 0xf]; - } - else if (hextype == HEX_LITTLEENDIAN) - { - int x = p ^ (octspergrp-1); - l[c = (addrlen + 1 + (grplen * x) / octspergrp)] = hexx[(e >> 4) & 0xf]; - l[++c] = hexx[ e & 0xf]; + int x = hextype == HEX_NORMAL ? p : p ^ (octspergrp-1); + l[c = (addrlen + 1 + (grplen * x) / octspergrp)] + = hexx[(e >> 4) & 0xf]; + l[++c] = hexx[e & 0xf]; } else /* hextype == HEX_BITS */ {