mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
![Johannes Schindelin](/assets/img/avatar_default.png)
The new regexec_buf() function operates on buffers with an explicitly specified length, rather than NUL-terminated strings. We need to use this function whenever the buffer we want to pass to regexec(3) may have been mmap(2)ed (and is hence not NUL-terminated). Note: the original motivation for this patch was to fix a bug where `git diff -G <regex>` would crash. This patch converts more callers, though, some of which allocated to construct NUL-terminated strings, or worse, modified buffers to temporarily insert NULs while calling regexec(3). By converting them to use regexec_buf(), the code has become much cleaner. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
23 lines
408 B
Bash
Executable file
23 lines
408 B
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2016 Johannes Schindelin
|
|
#
|
|
|
|
test_description='Pickaxe options'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success setup '
|
|
test_commit initial &&
|
|
printf "%04096d" 0 >4096-zeroes.txt &&
|
|
git add 4096-zeroes.txt &&
|
|
test_tick &&
|
|
git commit -m "A 4k file"
|
|
'
|
|
test_expect_success '-G matches' '
|
|
git diff --name-only -G "^0{4096}$" HEAD^ >out &&
|
|
test 4096-zeroes.txt = "$(cat out)"
|
|
'
|
|
|
|
test_done
|