diff --git a/ChangeLog b/ChangeLog index b6d0fcbb92d..1b161abf11b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-12-28 Paul Eggert + + * build-aux/git-hooks/commit-msg: Allow tabs. + Treat them as if they were expanded to spaces, with tab stops + every 8 columns. + 2014-12-17 Paul Eggert * .gitignore: Ignore /conftest*. diff --git a/build-aux/git-hooks/commit-msg b/build-aux/git-hooks/commit-msg index 2e3e4f21cda..9b6179ee613 100755 --- a/build-aux/git-hooks/commit-msg +++ b/build-aux/git-hooks/commit-msg @@ -87,6 +87,15 @@ exec $awk ' status = 1 } + { + # Expand tabs to spaces for length calculations etc. + while (match($0, /\t/)) { + before_tab = substr($0, 1, RSTART - 1) + after_tab = substr($0, RSTART + 1) + $0 = sprintf("%s%*s%s", before_tab, 8 - (RSTART - 1) % 8, "", after_tab) + } + } + 78 < length && $0 ~ space { print "Line longer than 78 characters in commit message" status = 1 @@ -103,12 +112,7 @@ exec $awk ' } $0 ~ non_print { - if (gsub(/\t/, "")) { - print "Tab in commit message; please use spaces instead" - } - if ($0 ~ non_print) { - print "Unprintable character in commit message" - } + print "Unprintable character in commit message" status = 1 }