Revision 793dc676e08394ed15bffe0ed66606ff9ced1c6a authored by Nguyễn Thái Ngọc Duy on 25 June 2016, 05:22:31 UTC, committed by Junio C Hamano on 01 July 2016, 19:44:30 UTC
Similar to the previous commit, we can't use kws on icase search
outside ascii range. But we can't simply pass the pattern to
regcomp/pcre like the previous commit because it may contain regex
special characters, so we need to quote the regex first.

To avoid misquote traps that could lead to undefined behavior, we
always stick to basic regex engine in this case. We don't need fancy
features for grepping a literal string anyway.

basic_regex_quote_buf() assumes that if the pattern is in a multibyte
encoding, ascii chars must be unambiguously encoded as single
bytes. This is true at least for UTF-8. For others, let's wait until
people yell up. Chances are nobody uses multibyte, non utf-8 charsets
anymore.

Noticed-by: Plamen Totev <plamen.totev@abv.bg>
Helped-by: René Scharfe <l.s.r@web.de>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 5c1ebcc
History
File Mode Size
Documentation
block-sha1
builtin
compat
contrib
ewah
git-gui
gitk-git
gitweb
mergetools
perl
po
ppc
refs
t
templates
vcs-svn
xdiff
.gitattributes -rw-r--r-- 105 bytes
.gitignore -rw-r--r-- 3.7 KB
.mailmap -rw-r--r-- 13.9 KB
.travis.yml -rw-r--r-- 2.9 KB
COPYING -rw-r--r-- 18.3 KB
GIT-VERSION-GEN -rwxr-xr-x 766 bytes
INSTALL -rw-r--r-- 8.9 KB
LGPL-2.1 -rw-r--r-- 26.2 KB
Makefile -rw-r--r-- 75.5 KB
README -rw-r--r-- 2.6 KB
RelNotes l--------- 32 bytes
abspath.c -rw-r--r-- 4.4 KB
aclocal.m4 -rw-r--r-- 1.4 KB
advice.c -rw-r--r-- 3.5 KB
advice.h -rw-r--r-- 967 bytes
alias.c -rw-r--r-- 1.5 KB
alloc.c -rw-r--r-- 2.6 KB
archive-tar.c -rw-r--r-- 11.3 KB
archive-zip.c -rw-r--r-- 15.2 KB
archive.c -rw-r--r-- 14.7 KB
archive.h -rw-r--r-- 1.3 KB
argv-array.c -rw-r--r-- 1.5 KB
argv-array.h -rw-r--r-- 636 bytes
attr.c -rw-r--r-- 19.8 KB
attr.h -rw-r--r-- 1.6 KB
base85.c -rw-r--r-- 2.8 KB
bisect.c -rw-r--r-- 24.8 KB
bisect.h -rw-r--r-- 713 bytes
blob.c -rw-r--r-- 389 bytes
blob.h -rw-r--r-- 664 bytes
branch.c -rw-r--r-- 8.1 KB
branch.h -rw-r--r-- 2.2 KB
builtin.h -rw-r--r-- 9.0 KB
bulk-checkin.c -rw-r--r-- 7.1 KB
bulk-checkin.h -rw-r--r-- 323 bytes
bundle.c -rw-r--r-- 12.1 KB
bundle.h -rw-r--r-- 707 bytes
cache-tree.c -rw-r--r-- 17.2 KB
cache-tree.h -rw-r--r-- 1.6 KB
cache.h -rw-r--r-- 63.0 KB
check-builtins.sh -rwxr-xr-x 596 bytes
check-racy.c -rw-r--r-- 538 bytes
check_bindir -rwxr-xr-x 374 bytes
color.c -rw-r--r-- 8.1 KB
color.h -rw-r--r-- 3.3 KB
column.c -rw-r--r-- 9.8 KB
column.h -rw-r--r-- 1.4 KB
combine-diff.c -rw-r--r-- 40.3 KB
command-list.txt -rw-r--r-- 8.9 KB
commit-slab.h -rw-r--r-- 4.8 KB
commit.c -rw-r--r-- 40.8 KB
commit.h -rw-r--r-- 13.1 KB
config.c -rw-r--r-- 55.6 KB
config.mak.in -rw-r--r-- 540 bytes
config.mak.uname -rw-r--r-- 16.4 KB
configure.ac -rw-r--r-- 34.9 KB
connect.c -rw-r--r-- 19.3 KB
connect.h -rw-r--r-- 596 bytes
connected.c -rw-r--r-- 3.2 KB
connected.h -rw-r--r-- 930 bytes
convert.c -rw-r--r-- 31.8 KB
convert.h -rw-r--r-- 2.5 KB
copy.c -rw-r--r-- 1.3 KB
credential-cache--daemon.c -rw-r--r-- 6.3 KB
credential-cache.c -rw-r--r-- 2.9 KB
credential-store.c -rw-r--r-- 5.0 KB
credential.c -rw-r--r-- 7.7 KB
credential.h -rw-r--r-- 833 bytes
csum-file.c -rw-r--r-- 4.0 KB
csum-file.h -rw-r--r-- 1.3 KB
ctype.c -rw-r--r-- 2.6 KB
daemon.c -rw-r--r-- 31.5 KB
date.c -rw-r--r-- 26.9 KB
decorate.c -rw-r--r-- 1.8 KB
decorate.h -rw-r--r-- 400 bytes
delta.h -rw-r--r-- 3.4 KB
diff-delta.c -rw-r--r-- 15.4 KB
diff-lib.c -rw-r--r-- 14.1 KB
diff-no-index.c -rw-r--r-- 6.9 KB
diff.c -rw-r--r-- 138.1 KB
diff.h -rw-r--r-- 11.7 KB
diffcore-break.c -rw-r--r-- 9.0 KB
diffcore-delta.c -rw-r--r-- 5.4 KB
diffcore-order.c -rw-r--r-- 2.4 KB
diffcore-pickaxe.c -rw-r--r-- 5.7 KB
diffcore-rename.c -rw-r--r-- 17.6 KB
diffcore.h -rw-r--r-- 4.8 KB
dir.c -rw-r--r-- 69.4 KB
dir.h -rw-r--r-- 9.7 KB
editor.c -rw-r--r-- 1.5 KB
entry.c -rw-r--r-- 7.4 KB
environment.c -rw-r--r-- 8.5 KB
exec_cmd.c -rw-r--r-- 3.1 KB
exec_cmd.h -rw-r--r-- 503 bytes
fast-import.c -rw-r--r-- 88.1 KB
fetch-pack.c -rw-r--r-- 26.7 KB
fetch-pack.h -rw-r--r-- 1.0 KB
fmt-merge-msg.h -rw-r--r-- 187 bytes
fsck.c -rw-r--r-- 21.3 KB
fsck.h -rw-r--r-- 1.7 KB
generate-cmdlist.sh -rwxr-xr-x 929 bytes
gettext.c -rw-r--r-- 4.8 KB
gettext.h -rw-r--r-- 2.2 KB
git-add--interactive.perl -rwxr-xr-x 36.1 KB
git-archimport.perl -rwxr-xr-x 36.0 KB
git-bisect.sh -rwxr-xr-x 15.6 KB
git-compat-util.h -rw-r--r-- 24.2 KB
git-cvsexportcommit.perl -rwxr-xr-x 12.6 KB
git-cvsimport.perl -rwxr-xr-x 31.3 KB
git-cvsserver.perl -rwxr-xr-x 158.6 KB
git-difftool--helper.sh -rwxr-xr-x 2.1 KB
git-difftool.perl -rwxr-xr-x 13.2 KB
git-filter-branch.sh -rwxr-xr-x 12.5 KB
git-instaweb.sh -rwxr-xr-x 18.1 KB
git-merge-octopus.sh -rwxr-xr-x 2.2 KB
git-merge-one-file.sh -rwxr-xr-x 3.6 KB
git-merge-resolve.sh -rwxr-xr-x 944 bytes
git-mergetool--lib.sh -rw-r--r-- 7.3 KB
git-mergetool.sh -rwxr-xr-x 9.1 KB
git-p4.py -rwxr-xr-x 135.0 KB
git-parse-remote.sh -rw-r--r-- 2.3 KB
git-quiltimport.sh -rwxr-xr-x 3.5 KB
git-rebase--am.sh -rw-r--r-- 2.4 KB
git-rebase--interactive.sh -rw-r--r-- 33.3 KB
git-rebase--merge.sh -rw-r--r-- 3.7 KB
git-rebase.sh -rwxr-xr-x 15.8 KB
git-relink.perl -rwxr-xr-x 4.0 KB
git-remote-testgit.sh -rwxr-xr-x 2.9 KB
git-request-pull.sh -rwxr-xr-x 3.8 KB
git-send-email.perl -rwxr-xr-x 48.4 KB
git-sh-i18n.sh -rw-r--r-- 2.0 KB
git-sh-setup.sh -rw-r--r-- 8.1 KB
git-stash.sh -rwxr-xr-x 13.8 KB
git-submodule.sh -rwxr-xr-x 29.1 KB
git-svn.perl -rwxr-xr-x 62.3 KB
git-web--browse.sh -rwxr-xr-x 4.3 KB
git.c -rw-r--r-- 19.9 KB
git.rc -rw-r--r-- 566 bytes
git.spec.in -rw-r--r-- 11.1 KB
gpg-interface.c -rw-r--r-- 6.5 KB
gpg-interface.h -rw-r--r-- 1.2 KB
graph.c -rw-r--r-- 34.5 KB
graph.h -rw-r--r-- 3.9 KB
grep.c -rw-r--r-- 42.9 KB
grep.h -rw-r--r-- 4.8 KB
hashmap.c -rw-r--r-- 6.3 KB
hashmap.h -rw-r--r-- 2.5 KB
help.c -rw-r--r-- 11.5 KB
help.h -rw-r--r-- 1.1 KB
hex.c -rw-r--r-- 2.6 KB
http-backend.c -rw-r--r-- 15.7 KB
http-fetch.c -rw-r--r-- 2.3 KB
http-push.c -rw-r--r-- 49.9 KB
http-walker.c -rw-r--r-- 13.9 KB
http.c -rw-r--r-- 50.1 KB
http.h -rw-r--r-- 6.2 KB
ident.c -rw-r--r-- 11.5 KB
imap-send.c -rw-r--r-- 35.8 KB
khash.h -rw-r--r-- 12.6 KB
kwset.c -rw-r--r-- 20.5 KB
kwset.h -rw-r--r-- 2.6 KB
levenshtein.c -rw-r--r-- 2.5 KB
levenshtein.h -rw-r--r-- 203 bytes
line-log.c -rw-r--r-- 30.6 KB
line-log.h -rw-r--r-- 1.8 KB
line-range.c -rw-r--r-- 6.5 KB
line-range.h -rw-r--r-- 1.3 KB
list-objects.c -rw-r--r-- 6.1 KB
list-objects.h -rw-r--r-- 407 bytes
ll-merge.c -rw-r--r-- 10.5 KB
ll-merge.h -rw-r--r-- 567 bytes
lockfile.c -rw-r--r-- 5.3 KB
lockfile.h -rw-r--r-- 10.0 KB
log-tree.c -rw-r--r-- 24.4 KB
log-tree.h -rw-r--r-- 1.2 KB
mailinfo.c -rw-r--r-- 23.5 KB
mailinfo.h -rw-r--r-- 955 bytes
mailmap.c -rw-r--r-- 8.9 KB
mailmap.h -rw-r--r-- 271 bytes
match-trees.c -rw-r--r-- 8.0 KB
merge-blobs.c -rw-r--r-- 2.6 KB
merge-blobs.h -rw-r--r-- 194 bytes
merge-recursive.c -rw-r--r-- 57.9 KB
merge-recursive.h -rw-r--r-- 1.6 KB
merge.c -rw-r--r-- 2.4 KB
mergesort.c -rw-r--r-- 1.5 KB
mergesort.h -rw-r--r-- 574 bytes
name-hash.c -rw-r--r-- 5.9 KB
notes-cache.c -rw-r--r-- 2.2 KB
notes-cache.h -rw-r--r-- 500 bytes
notes-merge.c -rw-r--r-- 22.7 KB
notes-merge.h -rw-r--r-- 2.8 KB
notes-utils.c -rw-r--r-- 4.9 KB
notes-utils.h -rw-r--r-- 1.4 KB
notes.c -rw-r--r-- 36.6 KB
notes.h -rw-r--r-- 11.7 KB
object.c -rw-r--r-- 9.6 KB
object.h -rw-r--r-- 4.5 KB
pack-bitmap-write.c -rw-r--r-- 12.4 KB
pack-bitmap.c -rw-r--r-- 25.0 KB
pack-bitmap.h -rw-r--r-- 1.7 KB
pack-check.c -rw-r--r-- 5.0 KB
pack-objects.c -rw-r--r-- 2.1 KB
pack-objects.h -rw-r--r-- 1.9 KB
pack-revindex.c -rw-r--r-- 5.7 KB
pack-revindex.h -rw-r--r-- 323 bytes
pack-write.c -rw-r--r-- 10.3 KB
pack.h -rw-r--r-- 3.2 KB
pager.c -rw-r--r-- 3.6 KB
parse-options-cb.c -rw-r--r-- 4.7 KB
parse-options.c -rw-r--r-- 17.4 KB
parse-options.h -rw-r--r-- 9.8 KB
patch-delta.c -rw-r--r-- 2.2 KB
patch-ids.c -rw-r--r-- 2.4 KB
patch-ids.h -rw-r--r-- 490 bytes
path.c -rw-r--r-- 28.3 KB
pathspec.c -rw-r--r-- 14.1 KB
pathspec.h -rw-r--r-- 3.2 KB
pkt-line.c -rw-r--r-- 5.4 KB
pkt-line.h -rw-r--r-- 3.0 KB
preload-index.c -rw-r--r-- 2.5 KB
pretty.c -rw-r--r-- 42.6 KB
prio-queue.c -rw-r--r-- 1.9 KB
prio-queue.h -rw-r--r-- 1.5 KB
progress.c -rw-r--r-- 6.3 KB
progress.h -rw-r--r-- 504 bytes
prompt.c -rw-r--r-- 1.4 KB
prompt.h -rw-r--r-- 168 bytes
quote.c -rw-r--r-- 10.4 KB
quote.h -rw-r--r-- 2.7 KB
reachable.c -rw-r--r-- 4.8 KB
reachable.h -rw-r--r-- 304 bytes
read-cache.c -rw-r--r-- 61.2 KB
ref-filter.c -rw-r--r-- 42.3 KB
ref-filter.h -rw-r--r-- 3.3 KB
reflog-walk.c -rw-r--r-- 8.3 KB
reflog-walk.h -rw-r--r-- 792 bytes
refs.c -rw-r--r-- 25.9 KB
refs.h -rw-r--r-- 19.0 KB
remote-curl.c -rw-r--r-- 24.9 KB
remote-testsvn.c -rw-r--r-- 8.4 KB
remote.c -rw-r--r-- 58.8 KB
remote.h -rw-r--r-- 8.0 KB
replace_object.c -rw-r--r-- 3.0 KB
rerere.c -rw-r--r-- 25.4 KB
rerere.h -rw-r--r-- 1.1 KB
resolve-undo.c -rw-r--r-- 4.3 KB
resolve-undo.h -rw-r--r-- 612 bytes
revision.c -rw-r--r-- 91.8 KB
revision.h -rw-r--r-- 7.9 KB
run-command.c -rw-r--r-- 25.8 KB
run-command.h -rw-r--r-- 7.1 KB
send-pack.c -rw-r--r-- 14.0 KB
send-pack.h -rw-r--r-- 774 bytes
sequencer.c -rw-r--r-- 32.0 KB
sequencer.h -rw-r--r-- 1.1 KB
server-info.c -rw-r--r-- 5.7 KB
setup.c -rw-r--r-- 27.5 KB
sh-i18n--envsubst.c -rw-r--r-- 10.3 KB
sha1-array.c -rw-r--r-- 1.2 KB
sha1-array.h -rw-r--r-- 583 bytes
sha1-lookup.c -rw-r--r-- 9.2 KB
sha1-lookup.h -rw-r--r-- 403 bytes
sha1_file.c -rw-r--r-- 90.2 KB
sha1_name.c -rw-r--r-- 36.4 KB
shallow.c -rw-r--r-- 17.2 KB
shell.c -rw-r--r-- 5.1 KB
shortlog.h -rw-r--r-- 463 bytes
show-index.c -rw-r--r-- 2.2 KB
sideband.c -rw-r--r-- 3.4 KB
sideband.h -rw-r--r-- 262 bytes
sigchain.c -rw-r--r-- 1.1 KB
sigchain.h -rw-r--r-- 247 bytes
split-index.c -rw-r--r-- 9.0 KB
split-index.h -rw-r--r-- 1.1 KB
strbuf.c -rw-r--r-- 17.8 KB
strbuf.h -rw-r--r-- 18.9 KB
streaming.c -rw-r--r-- 11.8 KB
streaming.h -rw-r--r-- 504 bytes
string-list.c -rw-r--r-- 7.3 KB
string-list.h -rw-r--r-- 5.1 KB
submodule-config.c -rw-r--r-- 12.6 KB
submodule-config.h -rw-r--r-- 906 bytes
submodule.c -rw-r--r-- 30.3 KB
submodule.h -rw-r--r-- 1.9 KB
symlinks.c -rw-r--r-- 9.3 KB
tag.c -rw-r--r-- 3.2 KB
tag.h -rw-r--r-- 508 bytes
tar.h -rw-r--r-- 644 bytes
tempfile.c -rw-r--r-- 8.0 KB
tempfile.h -rw-r--r-- 9.3 KB
test-chmtime.c -rw-r--r-- 2.6 KB
test-config.c -rw-r--r-- 3.8 KB
test-ctype.c -rw-r--r-- 918 bytes
test-date.c -rw-r--r-- 1.5 KB
test-delta.c -rw-r--r-- 1.8 KB
test-dump-cache-tree.c -rw-r--r-- 1.6 KB
test-dump-split-index.c -rw-r--r-- 861 bytes
test-dump-untracked-cache.c -rw-r--r-- 1.6 KB
test-genrandom.c -rw-r--r-- 722 bytes
test-hashmap.c -rw-r--r-- 6.1 KB
test-index-version.c -rw-r--r-- 258 bytes
test-line-buffer.c -rw-r--r-- 2.1 KB
test-match-trees.c -rw-r--r-- 598 bytes
test-mergesort.c -rw-r--r-- 924 bytes
test-mktemp.c -rw-r--r-- 269 bytes
test-parse-options.c -rw-r--r-- 3.5 KB
test-path-utils.c -rw-r--r-- 7.2 KB
test-prio-queue.c -rw-r--r-- 621 bytes
test-read-cache.c -rw-r--r-- 202 bytes
test-regex.c -rw-r--r-- 1.5 KB
test-revision-walking.c -rw-r--r-- 1.4 KB
test-run-command.c -rw-r--r-- 2.0 KB
test-scrap-cache-tree.c -rw-r--r-- 386 bytes
test-sha1-array.c -rw-r--r-- 930 bytes
test-sha1.c -rw-r--r-- 941 bytes
test-sha1.sh -rwxr-xr-x 1.9 KB
test-sigchain.c -rw-r--r-- 344 bytes
test-string-list.c -rw-r--r-- 2.5 KB
test-submodule-config.c -rw-r--r-- 1.6 KB
test-subprocess.c -rw-r--r-- 393 bytes
test-svn-fe.c -rw-r--r-- 1.3 KB
test-urlmatch-normalization.c -rw-r--r-- 1.2 KB
test-wildmatch.c -rw-r--r-- 635 bytes
thread-utils.c -rw-r--r-- 1.7 KB
thread-utils.h -rw-r--r-- 241 bytes
trace.c -rw-r--r-- 10.4 KB
trace.h -rw-r--r-- 3.6 KB
trailer.c -rw-r--r-- 22.6 KB
trailer.h -rw-r--r-- 170 bytes
transport-helper.c -rw-r--r-- 34.7 KB
transport.c -rw-r--r-- 36.5 KB
transport.h -rw-r--r-- 7.5 KB
tree-diff.c -rw-r--r-- 17.7 KB
tree-walk.c -rw-r--r-- 26.6 KB
tree-walk.h -rw-r--r-- 2.8 KB
tree.c -rw-r--r-- 6.2 KB
tree.h -rw-r--r-- 1.0 KB
unicode_width.h -rw-r--r-- 6.6 KB
unimplemented.sh -rw-r--r-- 101 bytes
unix-socket.c -rw-r--r-- 2.4 KB
unix-socket.h -rw-r--r-- 158 bytes
unpack-trees.c -rw-r--r-- 49.3 KB
unpack-trees.h -rw-r--r-- 2.2 KB
update_unicode.sh -rwxr-xr-x 1.0 KB
upload-pack.c -rw-r--r-- 21.3 KB
url.c -rw-r--r-- 2.7 KB
url.h -rw-r--r-- 492 bytes
urlmatch.c -rw-r--r-- 16.5 KB
urlmatch.h -rw-r--r-- 1.9 KB
usage.c -rw-r--r-- 3.3 KB
userdiff.c -rw-r--r-- 9.2 KB
userdiff.h -rw-r--r-- 646 bytes
utf8.c -rw-r--r-- 15.9 KB
utf8.h -rw-r--r-- 2.3 KB
varint.c -rw-r--r-- 660 bytes
varint.h -rw-r--r-- 168 bytes
version.c -rw-r--r-- 651 bytes
version.h -rw-r--r-- 180 bytes
versioncmp.c -rw-r--r-- 3.4 KB
walker.c -rw-r--r-- 7.3 KB
walker.h -rw-r--r-- 1.1 KB
wildmatch.c -rw-r--r-- 7.8 KB
wildmatch.h -rw-r--r-- 346 bytes
worktree.c -rw-r--r-- 5.5 KB
worktree.h -rw-r--r-- 1.0 KB
wrap-for-bin.sh -rw-r--r-- 818 bytes
wrapper.c -rw-r--r-- 15.3 KB
write_or_die.c -rw-r--r-- 2.1 KB
ws.c -rw-r--r-- 9.6 KB
wt-status.c -rw-r--r-- 47.2 KB
wt-status.h -rw-r--r-- 2.7 KB
xdiff-interface.c -rw-r--r-- 7.1 KB
xdiff-interface.h -rw-r--r-- 1.1 KB
zlib.c -rw-r--r-- 6.1 KB

README

back to top