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
2 changed files with 27 additions and 6 deletions
|
@ -1,5 +1,12 @@
|
||||||
2014-12-11 Paul Eggert <eggert@cs.ucla.edu>
|
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
|
Improve commit-msg messages and autosquash
|
||||||
Problem reported by Michal Nazarewicz in Bug#19337.
|
Problem reported by Michal Nazarewicz in Bug#19337.
|
||||||
* build-aux/git-hooks/commit-msg: Add "commit message" to
|
* build-aux/git-hooks/commit-msg: Add "commit message" to
|
||||||
|
|
|
@ -46,6 +46,20 @@ fi
|
||||||
|
|
||||||
# Check the log entry.
|
# Check the log entry.
|
||||||
exec $awk '
|
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 }
|
/^#/ { next }
|
||||||
|
|
||||||
!/^.*$/ {
|
!/^.*$/ {
|
||||||
|
@ -53,7 +67,7 @@ exec $awk '
|
||||||
status = 1
|
status = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
nlines == 0 && !/[^[:space:]]/ { next }
|
nlines == 0 && $0 !~ non_space { next }
|
||||||
|
|
||||||
{ nlines++ }
|
{ nlines++ }
|
||||||
|
|
||||||
|
@ -62,18 +76,18 @@ exec $awk '
|
||||||
if (! sub(/^fixup! /, ""))
|
if (! sub(/^fixup! /, ""))
|
||||||
sub(/^squash! /, "")
|
sub(/^squash! /, "")
|
||||||
|
|
||||||
if (/^[[:space:]]/) {
|
if ($0 ~ "^" space) {
|
||||||
print "White space at start of commit message'\''s first line"
|
print "White space at start of commit message'\''s first line"
|
||||||
status = 1
|
status = 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nlines == 2 && /[^[:space:]]/ {
|
nlines == 2 && $0 ~ non_space {
|
||||||
print "Nonempty second line in commit message"
|
print "Nonempty second line in commit message"
|
||||||
status = 1
|
status = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
72 < length && /[[:space:]]/ {
|
72 < length && $0 ~ space {
|
||||||
print "Line longer than 72 characters in commit message"
|
print "Line longer than 72 characters in commit message"
|
||||||
status = 1
|
status = 1
|
||||||
}
|
}
|
||||||
|
@ -88,11 +102,11 @@ exec $awk '
|
||||||
status = 1
|
status = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
/[^[:print:]]/ {
|
$0 ~ non_print {
|
||||||
if (gsub(/\t/, "")) {
|
if (gsub(/\t/, "")) {
|
||||||
print "Tab in commit message; please use spaces instead"
|
print "Tab in commit message; please use spaces instead"
|
||||||
}
|
}
|
||||||
if (/[^[:print:]]/) {
|
if ($0 ~ non_print) {
|
||||||
print "Unprintable character in commit message"
|
print "Unprintable character in commit message"
|
||||||
}
|
}
|
||||||
status = 1
|
status = 1
|
||||||
|
|
Loading…
Add table
Reference in a new issue