mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 9.0.2066: xxd: corrupting files when reversing bit dumps
Problem: xxd: corrupting files when reversing bit dumps Solution: handle reversing bit dump slightly differently fixes: #13410 closes: #13415 Co-authored-by: OldWorldOrdr <joey.t.reinhart@gmail.com> Co-authored-by: K.Takata <kentkt@csc.jp> Signed-off-by: Christian Brabandt <cb@256bit.org> Signed-off-by: K.Takata <kentkt@csc.jp> Signed-off-by: tristhaus <tristhaus@yahoo.de>
This commit is contained in:
committed by
Christian Brabandt
parent
3932072ab4
commit
1c14030aff
@@ -373,6 +373,13 @@ func Test_xxd_revert_bit_dump()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_xxd_roundtrip_large_bit_dump()
|
||||
new
|
||||
exe 'r! printf "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" | ' . s:xxd_cmd . ' -b | ' . s:xxd_cmd . ' -r -b'
|
||||
call assert_match('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678', join(getline(1, 3)))
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_xxd_version()
|
||||
new
|
||||
exe 'r! ' . s:xxd_cmd . ' -v'
|
||||
|
@@ -704,6 +704,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2066,
|
||||
/**/
|
||||
2065,
|
||||
/**/
|
||||
|
@@ -136,7 +136,7 @@ extern void perror __P((char *));
|
||||
# endif
|
||||
#endif
|
||||
|
||||
char version[] = "xxd 2023-10-08 by Juergen Weigert et al.";
|
||||
char version[] = "xxd 2023-10-24 by Juergen Weigert et al.";
|
||||
#ifdef WIN32
|
||||
char osver[] = " (Win32)";
|
||||
#else
|
||||
@@ -418,19 +418,13 @@ huntype(
|
||||
}
|
||||
else /* HEX_BITS */
|
||||
{
|
||||
n1 = parse_hex_digit(c);
|
||||
if (n1 >= 0)
|
||||
{
|
||||
want_off = (want_off << 4) | n1;
|
||||
}
|
||||
|
||||
if (bt < 0)
|
||||
if (n1 < 0)
|
||||
{
|
||||
p = 0;
|
||||
bcnt = 0;
|
||||
b = 0;
|
||||
continue;
|
||||
}
|
||||
want_off = (want_off << 4) | n1;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
Reference in New Issue
Block a user