mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
Port commit-msg to mawk
Problem reported by Ted Zlatanov in: http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg01093.html * build-aux/git-hooks/commit-msg (space, non_space, non_print): New vars. Use them as approximations to POSIX bracket expressions, on implementations like mawk that do not support POSIX regexps.
This commit is contained in:
parent
9ac0332030
commit
75b4857ef0
@ -1,5 +1,12 @@
|
||||
2014-12-11 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Port commit-msg to mawk
|
||||
Problem reported by Ted Zlatanov in:
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg01093.html
|
||||
* build-aux/git-hooks/commit-msg (space, non_space, non_print):
|
||||
New vars. Use them as approximations to POSIX bracket expressions,
|
||||
on implementations like mawk that do not support POSIX regexps.
|
||||
|
||||
Improve commit-msg messages and autosquash
|
||||
Problem reported by Michal Nazarewicz in Bug#19337.
|
||||
* build-aux/git-hooks/commit-msg: Add "commit message" to
|
||||
|
@ -46,6 +46,20 @@ fi
|
||||
|
||||
# Check the log entry.
|
||||
exec $awk '
|
||||
BEGIN {
|
||||
if (" " ~ /[[:space:]]/) {
|
||||
space = "[[:space:]]"
|
||||
non_space = "[^[:space:]]"
|
||||
non_print = "[^[:print:]]"
|
||||
} else {
|
||||
# mawk 1.3.3 does not support POSIX bracket expressions.
|
||||
# Approximate them as best we can.
|
||||
space = "[ \f\n\r\t\v]"
|
||||
non_space = "[^ \f\n\r\t\v]"
|
||||
non_print = "[\1-\37\177]"
|
||||
}
|
||||
}
|
||||
|
||||
/^#/ { next }
|
||||
|
||||
!/^.*$/ {
|
||||
@ -53,7 +67,7 @@ exec $awk '
|
||||
status = 1
|
||||
}
|
||||
|
||||
nlines == 0 && !/[^[:space:]]/ { next }
|
||||
nlines == 0 && $0 !~ non_space { next }
|
||||
|
||||
{ nlines++ }
|
||||
|
||||
@ -62,18 +76,18 @@ exec $awk '
|
||||
if (! sub(/^fixup! /, ""))
|
||||
sub(/^squash! /, "")
|
||||
|
||||
if (/^[[:space:]]/) {
|
||||
if ($0 ~ "^" space) {
|
||||
print "White space at start of commit message'\''s first line"
|
||||
status = 1
|
||||
}
|
||||
}
|
||||
|
||||
nlines == 2 && /[^[:space:]]/ {
|
||||
nlines == 2 && $0 ~ non_space {
|
||||
print "Nonempty second line in commit message"
|
||||
status = 1
|
||||
}
|
||||
|
||||
72 < length && /[[:space:]]/ {
|
||||
72 < length && $0 ~ space {
|
||||
print "Line longer than 72 characters in commit message"
|
||||
status = 1
|
||||
}
|
||||
@ -88,11 +102,11 @@ exec $awk '
|
||||
status = 1
|
||||
}
|
||||
|
||||
/[^[:print:]]/ {
|
||||
$0 ~ non_print {
|
||||
if (gsub(/\t/, "")) {
|
||||
print "Tab in commit message; please use spaces instead"
|
||||
}
|
||||
if (/[^[:print:]]/) {
|
||||
if ($0 ~ non_print) {
|
||||
print "Unprintable character in commit message"
|
||||
}
|
||||
status = 1
|
||||
|
Loading…
Reference in New Issue
Block a user