patch 9.1.0857: xxd: --- is incorrectly recognized as end-of-options Commit: https://github.com/vim/vim/commit/4b9fa957125e33951a4a830414ccb70172976397 Author: DungSaga <dungs...@users.noreply.github.com> Date: Mon Nov 11 22:19:50 2024 +0100
patch 9.1.0857: xxd: --- is incorrectly recognized as end-of-options Problem: xxd: --- is incorrectly recognized as end-of-options Solution: improve xxds end-of-option parser (DungSaga) closes: #9285 Signed-off-by: DungSaga <dungs...@users.noreply.github.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/src/testdir/test_xxd.vim b/src/testdir/test_xxd.vim index f10c2447d..690c8daf7 100644 --- a/src/testdir/test_xxd.vim +++ b/src/testdir/test_xxd.vim @@ -356,7 +356,7 @@ endfunc " Various ways with wrong arguments that trigger the usage output. func Test_xxd_usage() - for arg in ['-h', '-c', '-g', '-o', '-s', '-l', '-X', '-R', 'one two three'] + for arg in ['-h', '-c', '-g', '-o', '-s', '-l', '-X', '-R', 'one two three', '----', '---'] new exe 'r! ' . s:xxd_cmd . ' ' . arg call assert_match("Usage:", join(getline(1, 3))) @@ -364,6 +364,13 @@ func Test_xxd_usage() endfor endfunc +func Test_xxd_end_of_options() + new + exe 'r! ' . s:xxd_cmd . ' -- random-file-' . rand() + call assert_match('random-file-.*: No such file or directory', join(getline(1, 3))) + bwipe! +endfunc + func Test_xxd_ignore_garbage() new exe 'r! printf " xxxx 0: 42 42" | ' . s:xxd_cmd . ' -r' diff --git a/src/version.c b/src/version.c index 4f66b3de2..5c775b030 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 */ +/**/ + 857, /**/ 856, /**/ diff --git a/src/xxd/xxd.c b/src/xxd/xxd.c index b1050e9da..c22288545 100644 --- a/src/xxd/xxd.c +++ b/src/xxd/xxd.c @@ -65,6 +65,7 @@ * 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 + * 11.11.2024 improve end-of-options argument parser #9285 * * (c) 1990-1998 by Juergen Weigert (jnwei...@gmail.com) * @@ -145,7 +146,7 @@ extern void perror __P((char *)); # endif #endif -char version[] = "xxd 2024-10-19 by Juergen Weigert et al."; +char version[] = "xxd 2024-11-11 by Juergen Weigert et al."; #ifdef WIN32 char osver[] = " (Win32)"; #else @@ -843,7 +844,7 @@ main(int argc, char *argv[]) else exit_with_usage(); } - else if (!strcmp(pp, "--")) /* end of options */ + else if (!strcmp(argv[1], "--")) /* end of options */ { argv++; argc--; -- -- 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 visit https://groups.google.com/d/msgid/vim_dev/E1tAbz1-00F8TM-Lk%40256bit.org.