This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU Libtool".
The branch, master has been updated via 0f84217752fe50155f1f00fd14efbbbbdfaaed24 (commit) via 03ec5f495586b8350a7653a440a6e563bd2b8889 (commit) via 351a88feee66eda6ce33eb06acdebb8e9c6d6716 (commit) from de7b2cb2b72f98329b231ceab2e98f21e8ddaa22 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 0f84217752fe50155f1f00fd14efbbbbdfaaed24 Author: Pavel Raiskup <prais...@redhat.com> Date: Fri Sep 25 08:14:02 2015 +0200 maint: put newline after 'Subjecŧ' in ChangeLog * Makefile.am ($(changelog)): Use --format='%s%n%n%b%n'. Signed-off-by: Pavel Raiskup <prais...@redhat.com> commit 03ec5f495586b8350a7653a440a6e563bd2b8889 Author: Pavel Raiskup <prais...@redhat.com> Date: Fri Sep 25 08:08:06 2015 +0200 gnulib: sync with upstream Blacklisting of duplicated ChangeLog entries is now much easier with new gitlog-to-changelog's option --ignore-matching -- so patching the script is not necessary. * Makefile.am ($(changelog)): Start ignoring entries having the 'Omit-from-ChangeLog.' "topic" line. Use TZ=UTC to generate the same ChangeLog regardless of the actual time-zone. * build-aux/git-log-fix: Put the "blacklist" mark at the beginning of each commit as that is requirement for --ignore-matching. * gl/build-aux/gitlog-to-changelog.diff: Removed. * gnulib: Sync with upstream. Signed-off-by: Pavel Raiskup <prais...@redhat.com> commit 351a88feee66eda6ce33eb06acdebb8e9c6d6716 Author: Pavel Raiskup <prais...@redhat.com> Date: Fri Sep 18 23:17:07 2015 +0200 libtoolize: fix infinite recursion in m4 Some projects use this construct in configure.ac: m4_define([version], m4_include([version])) pkg_version=version When the m4_include builtin is undefined (as was done in libtoolize and extract-trace scripts), the call to this 'version' macro enters an infinite recursion (until ENOMEM). So rather re-define all potentially dangerous macros by empty strings, suggested by Eric Blake. While we are on it, merge the macro-"blacklist" with similar list implemented in gettext, except for 'm4_esyscmd'. It's kept defined because we already trace AC_INIT macro for package version, while it is often specified by m4_esyscmd(git-version-gen). Similarly to m4_include, m4_esyscmd might be opt-in-blacklisted in future. References: http://lists.gnu.org/archive/html/libtool/2015-09/msg00000.html https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764580 * gl/build-aux/extract-trace (_G_mini): Redefine trace-breaking macros to empty strings rather than undefining those. Use 'dnl' for comments. * bootstrap: Likewise, sync with extract-trace. * NEWS: Document. * NO-THANKS: Mention Hiroyuki Sato. Signed-off-by: Pavel Raiskup <prais...@redhat.com> ----------------------------------------------------------------------- Summary of changes: Makefile.am | 4 +- NEWS | 4 + NO-THANKS | 1 + bootstrap | 42 ++++++++----- build-aux/git-log-fix | 110 ++++++++++++++++---------------- gl/build-aux/extract-trace | 42 ++++++++----- gl/build-aux/gitlog-to-changelog.diff | 83 ------------------------- gnulib | 2 +- 8 files changed, 118 insertions(+), 170 deletions(-) delete mode 100644 gl/build-aux/gitlog-to-changelog.diff diff --git a/Makefile.am b/Makefile.am index e4d6074..b8d2703 100644 --- a/Makefile.am +++ b/Makefile.am @@ -549,7 +549,9 @@ no_thanks = $(srcdir)/NO-THANKS changelog_start_date = 2011-01-01 $(changelog): FORCE $(AM_V_GEN)if test -d '$(srcdir)/.git'; then \ - $(gitlog_to_changelog) --amend=$(git_log_fix) \ + TZ=UTC $(gitlog_to_changelog) --amend=$(git_log_fix) \ + --ignore-matching=Omit-from-ChangeLog. \ + --format='%s%n%n%b%n' \ --since=$(changelog_start_date) > '$@T'; \ rm -f '$@'; mv '$@T' '$@'; \ cat '$(changelog_old)' >> '$@'; \ diff --git a/NEWS b/NEWS index c5c9023..82dd037 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,10 @@ NEWS - list of user-visible changes between releases of GNU Libtool * Noteworthy changes in release ?.? (????-??-??) [?] +** Bug fixes: + + - Fix significant slowdown of libtoolize for certain projects (regression + introduced in 2.4.3 release) caused by infinite m4 macro recursion. * Noteworthy changes in release 2.4.6 (2015-02-15) [stable] diff --git a/NO-THANKS b/NO-THANKS index 10de16b..51ec8eb 100644 --- a/NO-THANKS +++ b/NO-THANKS @@ -82,6 +82,7 @@ Donn Washburn n5...@comcast.net Erik van Pienbroek erik-...@vanpienbroek.nl Ethan Mallove ethan.mall...@sun.com Fred Cox sailorf...@yahoo.com +Hiroyuki Sato hiroys...@gmail.com Jakub Bogusz qbo...@pld-linux.org James Su james...@gmail.com Jay Krell jay.kr...@cornell.edu diff --git a/bootstrap b/bootstrap index 4596413..17fb169 100755 --- a/bootstrap +++ b/bootstrap @@ -2472,29 +2472,41 @@ func_extract_trace () # arguments to Autocof functions, but without following # 'm4_s?include' files. _G_mini=' - # Initialisation. + dnl Initialisation. m4_changequote([,]) m4_define([m4_copy], [m4_define([$2], m4_defn([$1]))]) m4_define([m4_rename], [m4_copy([$1], [$2])m4_undefine([$1])]) - # Disable these macros. - m4_undefine([m4_dnl]) - m4_undefine([m4_include]) - m4_undefine([m4_m4exit]) - m4_undefine([m4_m4wrap]) - m4_undefine([m4_maketemp]) + dnl Replace macros which may abort m4 with a no-op variant. + m4_pushdef([m4_assert]) + m4_pushdef([m4_exit]) + m4_pushdef([m4_fatal]) + m4_pushdef([m4_m4exit]) - # Copy and rename macros not handled by "m4 --prefix". + dnl Replace macros that might break stderr of m4. + m4_pushdef([m4_errprint]) + m4_pushdef([m4_errprintn]) + m4_pushdef([m4_include]) + m4_pushdef([m4_warn]) + + dnl Avoid side-effects of tracing by extract-trace. + m4_pushdef([m4_maketemp]) + m4_pushdef([m4_mkstemp]) + + dnl TODO: reasons for this + m4_pushdef([m4_dnl]) + m4_pushdef([m4_m4wrap]) + + dnl Copy and rename macros not handled by "m4 --prefix". m4_define([dnl], [m4_builtin([dnl])]) m4_copy([m4_define], [m4_defun]) m4_rename([m4_ifelse], [m4_if]) - m4_ifdef([m4_mkstemp], [m4_undefine([m4_mkstemp])]) m4_rename([m4_patsubst], [m4_bpatsubst]) m4_rename([m4_regexp], [m4_bregexp]) - # "m4sugar.mini" - useful m4-time macros for dynamic arguments. - # If we discover packages that need more m4 macros defined in - # order to bootstrap correctly, add them here: + dnl "m4sugar.mini" - useful m4-time macros for dynamic arguments. + dnl If we discover packages that need more m4 macros defined in + dnl order to bootstrap correctly, add them here: m4_define([m4_bmatch], [m4_if([$#], 0, [], [$#], 1, [], [$#], 2, [$2], [m4_if(m4_bregexp([$1], [$2]), -1, @@ -2505,11 +2517,11 @@ func_extract_trace () m4_define([m4_require], [$1]) m4_define([m4_shift3], [m4_shift(m4shift(m4shift($@)))]) - # "autoconf.mini" - things from autoconf macros we care about. + dnl "autoconf.mini" - things from autoconf macros we care about. m4_copy([m4_defun], [AC_DEFUN]) - # Dummy definitions for the macros we want to trace. - # AM_INIT_AUTOMAKE at least produces no trace without this. + dnl Dummy definitions for the macros we want to trace. + dnl AM_INIT_AUTOMAKE at least produces no trace without this. ' _G_save=$IFS diff --git a/build-aux/git-log-fix b/build-aux/git-log-fix index 89055c7..2e7ad7c 100644 --- a/build-aux/git-log-fix +++ b/build-aux/git-log-fix @@ -73,163 +73,163 @@ s|\n\n|\n|g ## branch. # Date: Tue Oct 2 21:05:53 2012 +0700 4440d6523bf9c668720f9ffa66fb89e91912a504 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n\n| 0fc275469ef020177d8dff2c041456f6b6155537 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 692bc68dc9a580647a164d6338ca7e13cb593966 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 6cb0d0d771bc1e3be402929b900000ca7a8a16d4 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| d50e123595d80b5582d0663ad50e3454051c482d -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| e0f66dc54d2f7906a2513c68d76362be4bcbbef3 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| ae68608314993e81836257ac1eec449256decd53 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| d576fa9da144f2e9ab14337c9590d4abfdea985f -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 3cbc0e26f0a7f0bbea559912c3da920b4ead8e5e -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 83d52fd6d2039c048f731133bec0ae8a1bf9382d -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 1e70622d7c127b4dd90b3a5b0650d323ec2305fc -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 1fcb9bc4e4b7b7166a6f45da633f813faee6e00f -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| bf6aa3082089d12bf4500b469c096263823a75b4 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 43acd6749a29f079452cfb70b6c6e1c8f1469128 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 8c6e33197e36463cb7fcf5d575a53c3f414ec4ff -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 7db681a2696c75dc6c55261ea8fd11f92e42db2b -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 59f8a3a6e1a26d501e5865f7611d8828aac5579c -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| f2a640f7e03e5dcf1510833a0e1e4991032b5f96 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 90529a55ef40653051730d3c20203fa2ad5e8f7f -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| d702946c65b309c389ae717a4d2d6fe158c3ee5f -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 8392cd263e847a22b2409c35bf03d7c9e68d2cd0 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 430e782755bbe8061a5e7f9d856b33e3b7da3ac8 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| d60b4387c178100b0bd3835c61d0f4771330bf6a -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 47a889a4ca2009e2147fa5b2f95baefe1dca8288 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 8f975a1368594126e37d85511f1f96164e466d93 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| f8a4b90f9a712f47b7627d2cf96eed74825df91f -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| b25625e6b25427dba80051b2924060b1e84ea73e -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 3467227ccb6c99f4c2122b9fb3fa67d54b5bd54b -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 8bfac9e3e82646868907aede4ebe4deb158a2e8a -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| baffe661910947df0dcd5a5bbd6512fc0bce59b9 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 822881fe3c69ca474b8e13d60243dd9c1a1c3fea -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| f7f249a0e6b5093b8752f1ba863345bfcd5a237e -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| c03789b8ee33f136d3bbd7f7a111ad863bb4c7e8 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 78385ffd8af73b927549c3596da67233f2f92f0e -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 7d25536e80b68042a6d999c11a0c5c9dc948f82e -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 7a2a8f32bb83d6b16db8436b530ec5e88fbd0751 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| c5dec32e37e90ce46813efe7dfe8c5500cc55bbc -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| a2445f0fdbeaa72c18a893714e4437ea01faa08a -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 0c953ba5cc71bd1de615df28fbf16e27be62244e -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| f32a760fbd40796be0b7e3be41226a82db1748d4 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| a80878742dfd0f5127c1ddc5f803fab980eb816a -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| d56683630a6415e59f1be7a6540c4733e9671bd8 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| ca821436009a93c2e8f3c5ce07ed23d90bbba49e -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| c7d7e46fbea7d6249680da71ecda1d84bdec858a -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 156a851bc5d758f2d4d7fd89cef678ae72f35e77 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 87c4cffb19cf5ba8dc088e0ad357e5c3d4be2433 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| c5230035e5df31976285bf36141d89236416230d -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| cb4ed2559e89354ea846a686543206d3445ea5ec -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 9f3cec5b2ec476bd4fd978c1e23398b25d36cd2f -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 5f27eeb0a37f15b32ccb1b97b2ed9022f5df9a60 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 013c91874e974543d2f58843c1e839ba102d6ee0 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 006695fed2e9cd10664c97c69880a82545dde1ef -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| ff3b32aed7db925a7390d92ffede055b4c8ccf18 -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| d43b40113ec1e8289e48d77f00e8947f2fd98fd4 # Date: Tue Oct 2 21:02:16 2012 +0700 @@ -295,7 +295,7 @@ s|\n(Improve )|\nlibtool: $1| 9333e74fc7b76a11ed04a19343eb5dd75a1035f3 # Date: Sun Feb 19 16:21:00 2012 -0600 # Elide duplicate log entries. -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| c0c49f289f22ae670066657c60905986da3b555f # Date: Sun Feb 19 15:33:48 2012 -0600 @@ -335,7 +335,7 @@ s|\n(Support )|\nlibtool: $1| 962aa919f51cdf8e2cee4fb2d1d9bafa34d50887 # Date: Fri Nov 25 14:53:42 2011 +0700 # Elide duplicate log entries. -s|$|Omit-from-ChangeLog: Yes| +s|\n\n|\nOmit-from-ChangeLog.\n| 11d16ab06c36948c053c507f5f9e06ff3de221c7 # Date: Fri Nov 25 14:39:57 2011 +0700 diff --git a/gl/build-aux/extract-trace b/gl/build-aux/extract-trace index 315a32a..c6abd21 100755 --- a/gl/build-aux/extract-trace +++ b/gl/build-aux/extract-trace @@ -329,29 +329,41 @@ func_extract_trace () # arguments to Autocof functions, but without following # 'm4_s?include' files. _G_mini=' - # Initialisation. + dnl Initialisation. m4_changequote([,]) m4_define([m4_copy], [m4_define([$2], m4_defn([$1]))]) m4_define([m4_rename], [m4_copy([$1], [$2])m4_undefine([$1])]) - # Disable these macros. - m4_undefine([m4_dnl]) - m4_undefine([m4_include]) - m4_undefine([m4_m4exit]) - m4_undefine([m4_m4wrap]) - m4_undefine([m4_maketemp]) + dnl Replace macros which may abort m4 with a no-op variant. + m4_pushdef([m4_assert]) + m4_pushdef([m4_exit]) + m4_pushdef([m4_fatal]) + m4_pushdef([m4_m4exit]) - # Copy and rename macros not handled by "m4 --prefix". + dnl Replace macros that might break stderr of m4. + m4_pushdef([m4_errprint]) + m4_pushdef([m4_errprintn]) + m4_pushdef([m4_include]) + m4_pushdef([m4_warn]) + + dnl Avoid side-effects of tracing by extract-trace. + m4_pushdef([m4_maketemp]) + m4_pushdef([m4_mkstemp]) + + dnl TODO: reasons for this + m4_pushdef([m4_dnl]) + m4_pushdef([m4_m4wrap]) + + dnl Copy and rename macros not handled by "m4 --prefix". m4_define([dnl], [m4_builtin([dnl])]) m4_copy([m4_define], [m4_defun]) m4_rename([m4_ifelse], [m4_if]) - m4_ifdef([m4_mkstemp], [m4_undefine([m4_mkstemp])]) m4_rename([m4_patsubst], [m4_bpatsubst]) m4_rename([m4_regexp], [m4_bregexp]) - # "m4sugar.mini" - useful m4-time macros for dynamic arguments. - # If we discover packages that need more m4 macros defined in - # order to bootstrap correctly, add them here: + dnl "m4sugar.mini" - useful m4-time macros for dynamic arguments. + dnl If we discover packages that need more m4 macros defined in + dnl order to bootstrap correctly, add them here: m4_define([m4_bmatch], [m4_if([$#], 0, [], [$#], 1, [], [$#], 2, [$2], [m4_if(m4_bregexp([$1], [$2]), -1, @@ -362,11 +374,11 @@ func_extract_trace () m4_define([m4_require], [$1]) m4_define([m4_shift3], [m4_shift(m4shift(m4shift($@)))]) - # "autoconf.mini" - things from autoconf macros we care about. + dnl "autoconf.mini" - things from autoconf macros we care about. m4_copy([m4_defun], [AC_DEFUN]) - # Dummy definitions for the macros we want to trace. - # AM_INIT_AUTOMAKE at least produces no trace without this. + dnl Dummy definitions for the macros we want to trace. + dnl AM_INIT_AUTOMAKE at least produces no trace without this. ' _G_save=$IFS diff --git a/gl/build-aux/gitlog-to-changelog.diff b/gl/build-aux/gitlog-to-changelog.diff deleted file mode 100644 index 168376f..0000000 --- a/gl/build-aux/gitlog-to-changelog.diff +++ /dev/null @@ -1,83 +0,0 @@ -diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog -index e02d34c..aeae458 100755 ---- a/build-aux/gitlog-to-changelog -+++ b/build-aux/gitlog-to-changelog -@@ -99,6 +99,8 @@ at the beginning of a log message line. They are not copied to the output. - Co-authored-by: Joe User <user\@example.com> - List the specified name and email address on a second - ChangeLog header, denoting a co-author. -+ Omit-from-ChangeLog: Yes -+ No ChangeLog entry is made for this commit. - Signed-off-by: Joe User <user\@example.com> - These lines are simply elided. - -@@ -323,10 +325,14 @@ sub git_dir_option($) - strftime ("%F", localtime ($1)), $2; - - my @coauthors = grep /^Co-authored-by:.*$/, @line; -+ -+ my $omit = grep /^Omit-from-ChangeLog:\s+[Yy]es$/, @line; -+ - # Omit meta-data lines we've already interpreted. - @line = grep !/^(?:Signed-off-by:[ ].*>$ - |Co-authored-by:[ ] - |Copyright-paperwork-exempt:[ ] -+ |Omit-from-ChangeLog:[ ] - )/x, @line; - - # Remove leading and trailing blank lines. -@@ -351,33 +357,33 @@ sub git_dir_option($) - . substr ($_, 5) . "\n"; - } - -- # If clustering of commit messages has been disabled, if this header -- # would be different from the previous date/name/email/coauthors header, -- # or if this or the previous entry consists of two or more paragraphs, -- # then print the header. -- if ( ! $cluster -- || $date_line ne $prev_date_line -- || "@coauthors" ne "@prev_coauthors" -- || $multi_paragraph -- || $prev_multi_paragraph) -- { -- $prev_date_line eq '' -- or print "\n"; -- print $date_line; -- @coauthors -- and print join ("\n", @coauthors), "\n"; -- } -- $prev_date_line = $date_line; -- @prev_coauthors = @coauthors; -- $prev_multi_paragraph = $multi_paragraph; -- - # If there were any lines - if (@line == 0) - { - warn "$ME: warning: empty commit message:\n $date_line\n"; - } -- else -+ elsif ( ! $omit ) - { -+ # If clustering of commit messages has been disabled, if this header -+ # would be different from the previous date/name/email/coauthors header, -+ # or if this or the previous entry consists of two or more paragraphs, -+ # then print the header. -+ if ( ! $cluster -+ || $date_line ne $prev_date_line -+ || "@coauthors" ne "@prev_coauthors" -+ || $multi_paragraph -+ || $prev_multi_paragraph) -+ { -+ $prev_date_line eq '' -+ or print "\n"; -+ print $date_line; -+ @coauthors -+ and print join ("\n", @coauthors), "\n"; -+ } -+ $prev_date_line = $date_line; -+ @prev_coauthors = @coauthors; -+ $prev_multi_paragraph = $multi_paragraph; -+ - if ($append_dot) - { - # If the first line of the message has enough room, then diff --git a/gnulib b/gnulib index 342d9f0..82b8610 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 342d9f09f2bab9a0380faa88787147bac4d48278 +Subproject commit 82b86107d7f249e9396a65dd1a103f3227f1854e hooks/post-receive -- GNU Libtool