# DELETE THIS COMMENT IN YOUR COPY.
#
# This is the global list of words which are still too commonly used in the
# codebase to be blocked outright. This list will continue to shrink as the
# codebase moves away from the use of these terms.
#
# Copy this file to your project and comment more words to enable the repo hook
# to block the words.

# KEEP THIS COMMENT IN YOUR COPY.
#
# Don't delete this file if you want to keep keyword_check enabled even if it's
# empty.
#
# See repohooks/README.md for more details.

# black.?hat
black.?list
build.?cop
crazy
cripple
dummy
# first.?class.?citizen
# grandfathered
# gr[ae]y.?hat
gr[ae]y.?list
\bhe\b
\bshe\b
\bhim\b
\bher\b
\bhis\b
\bhers\b
man.?in.?the.?middle
master
\bmitm(\b|\d)
\bnative
\bred.?line
rtfm
\b(in)?sane(\b|\d)
sanity
slave
# white.?glove
# white.?hat
white.?label
white.?list
\bwtf
