patch 9.1.0793: xxd: -e does add one extra space Commit: https://github.com/vim/vim/commit/c73fc86bf8fe318aab41900dd92e380143211cda Author: Aapo Rantalainen <aapo.rantalai...@gmail.com> Date: Sat Oct 19 15:54:57 2024 +0200
patch 9.1.0793: xxd: -e does add one extra space Problem: xxd: -e does add one extra space Solution: fix it, refactor and merge some code (Aapo Rantalainen) fixes: #15898 closes: #15899 Signed-off-by: Aapo Rantalainen <aapo.rantalai...@gmail.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/src/testdir/test_xxd.vim b/src/testdir/test_xxd.vim index 570687151..f10c2447d 100644 --- a/src/testdir/test_xxd.vim +++ b/src/testdir/test_xxd.vim @@ -485,12 +485,12 @@ func Test_xxd_little_endian_with_cols() enew! call writefile(["ABCDEF"], 'Xxdin', 'D') exe 'r! ' .. s:xxd_cmd .. ' -e -c6 ' .. ' Xxdin' - call assert_equal('00000000: 44434241 4645 ABCDEF', getline(2)) + call assert_equal('00000000: 44434241 4645 ABCDEF', getline(2)) enew! call writefile(["ABCDEFGHI"], 'Xxdin', 'D') exe 'r! ' .. s:xxd_cmd .. ' -e -c9 ' .. ' Xxdin' - call assert_equal('00000000: 44434241 48474645 49 ABCDEFGHI', getline(2)) + call assert_equal('00000000: 44434241 48474645 49 ABCDEFGHI', getline(2)) bwipe! endfunc diff --git a/src/version.c b/src/version.c index 93187e847..8c389ff57 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 793, /**/ 792, /**/ diff --git a/src/xxd/xxd.c b/src/xxd/xxd.c index 63f516c12..b1050e9da 100644 --- a/src/xxd/xxd.c +++ b/src/xxd/xxd.c @@ -64,6 +64,7 @@ * 10.02.2024 fix buffer-overflow when writing color output to buffer, #14003 * 10.05.2024 fix another buffer-overflow when writing colored output to buffer, #14738 * 10.09.2024 Support -b and -i together, #15661 + * 19.10.2024 -e did add an extra space #15899 * * (c) 1990-1998 by Juergen Weigert (jnwei...@gmail.com) * @@ -144,7 +145,7 @@ extern void perror __P((char *)); # endif #endif -char version[] = "xxd 2024-09-15 by Juergen Weigert et al."; +char version[] = "xxd 2024-10-19 by Juergen Weigert et al."; #ifdef WIN32 char osver[] = " (Win32)"; #else @@ -1110,9 +1111,6 @@ main(int argc, char *argv[]) else c = addrlen + 3 + (grplen * cols - 1)/octspergrp + p*12; - if (hextype == HEX_LITTLEENDIAN) - c += 1; - COLOR_PROLOGUE begin_coloring_char(l,&c,e,ebcdic); #if defined(__MVS__) && __CHARSET_LIB == 0 @@ -1126,21 +1124,15 @@ main(int argc, char *argv[]) l[c++] = (e > 31 && e < 127) ? e : '.'; #endif COLOR_EPILOGUE - n++; - if (++p == cols) - { - l[c++] = ' '; - l[c++] = ' - xxdline(fpo, l, autoskip ? nonzero : 1); - nonzero = 0; - p = 0; - } } else /*no colors*/ { if (ebcdic) e = (e < 64) ? '.' : etoa64[e-64]; + if (hextype == HEX_LITTLEENDIAN) + c -= 1; + c += addrlen + 3 + p; l[c++] = #if defined(__MVS__) && __CHARSET_LIB == 0 @@ -1149,16 +1141,16 @@ main(int argc, char *argv[]) (e > 31 && e < 127) #endif ? e : '.'; - n++; - if (++p == cols) - { - l[c++] = ' '; - l[c] = ' - xxdline(fpo, l, autoskip ? nonzero : 1); - nonzero = 0; - p = 0; - } } + n++; + if (++p == cols) + { + l[c++] = ' '; + l[c] = ' + xxdline(fpo, l, autoskip ? nonzero : 1); + nonzero = 0; + p = 0; + } } if (p) { @@ -1166,8 +1158,6 @@ main(int argc, char *argv[]) l[c] = ' if (color) { - c++; - x = p; if (hextype == HEX_LITTLEENDIAN) { -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/E1t2A01-00AVP7-DQ%40256bit.org.