# RCS to ChangeLog generator
+# Copyright (C) 1992-1998, 2001-2014 Free Software Foundation, Inc.
+
+# Author: Paul Eggert <eggert@twinsun.com>
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+Copyright='Copyright (C) 2014 Free Software Foundation, Inc.
+This program comes with NO WARRANTY, to the extent permitted by law.
+You may redistribute copies of this program
+under the terms of the GNU General Public License.
+For more information about these matters, see the files named COPYING.
+Author: Paul Eggert <eggert@twinsun.com>'
+
Help='
Generate ChangeLog entries from RCS files (perhaps in a CVS repository)
and the ChangeLog file (if any). An RCS file typically has a name
Id='$Id$'
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003,
-# 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; see the file COPYING. If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301, USA.
-
-Copyright='Copyright (C) 2007 Free Software Foundation, Inc.
-This program comes with NO WARRANTY, to the extent permitted by law.
-You may redistribute copies of this program
-under the terms of the GNU General Public License.
-For more information about these matters, see the files named COPYING.
-Author: Paul Eggert <eggert@twinsun.com>'
-
# Use the traditional C locale.
LANG=C
LANGUAGE=C
m[9]="Oct"; m[10]="Nov"; m[11]="Dec"
'
-logdir=$TMPDIR/rcs2log$$
-llogout=$logdir/l
+if type mktemp >/dev/null 2>&1; then
+ logdir=`mktemp -d`
+else
+ logdir=$TMPDIR/rcs2log$$
+ (umask 077 && mkdir "$logdir")
+fi || exit
+case $logdir in
+-*) logdir=./$logdir;;
+esac
trap exit 1 2 13 15
-trap "rm -fr $logdir 2>/dev/null" 0
-(umask 077 && exec mkdir $logdir) || exit
+trap "rm -fr \"$logdir\" 2>/dev/null" 0
+
+llogout=$logdir/l
# If no rlog-format log file is given, generate one into $rlogfile.
case $rlogfile in
?*)
case $loginFullnameMailaddrs in
*\"* | *\\*)
- sed 's/["\\]/\\&/g' >$llogout <<EOF || exit
+ sed 's/["\\]/\\&/g' >"$llogout" <<EOF || exit
$loginFullnameMailaddrs
EOF
- loginFullnameMailaddrs=`cat $llogout`;;
+ loginFullnameMailaddrs=`cat "$llogout"`;;
esac
oldIFS=$IFS
case $logins in
?*)
- sort -u -o $llogout <<EOF
+ sort -u -o "$llogout" <<EOF
$logins
EOF
;;
'')
: ;;
-esac >$llogout || exit
+esac >"$llogout" || exit
output_authors='/^date: / {
- if ($2 ~ /^[0-9]*[-\/][0-9][0-9][-\/][0-9][0-9]$/ && $3 ~ /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9][-+0-9:]*;$/ && $4 == "author:" && $5 ~ /^[^;]*;$/) {
- print substr($5, 1, length($5)-1)
+ cvsformat = $5 == "author:"
+ if ($2 ~ /^[0-9]*[-\/][0-9][0-9][-\/][0-9][0-9]$/ && (cvsformat ? $3 ~ /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/ && $4 ~ /^[-+][0-9:]*;$/ : $3 ~ /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9][-+0-9:]*;$/)) {
+ author = $(5 + cvsformat)
+ if ($(4 + cvsformat) == "author:" && author ~ /^[^;]*;$/) {
+ print substr(author, 1, length(author)-1)
+ }
}
}'
authors=`
- $AWK "$output_authors" <"$rlogfile" | sort -u | comm -23 - $llogout
+ $AWK "$output_authors" <"$rlogfile" | sort -u | comm -23 - "$llogout"
`
case $authors in
?*)
- cat >$llogout <<EOF || exit
+ cat >"$llogout" <<EOF || exit
$authors
EOF
initialize_author_script='s/["\\]/\\&/g; s/.*/author[\"&\"] = 1/'
- initialize_author=`sed -e "$initialize_author_script" <$llogout`
+ initialize_author=`sed -e "$initialize_author_script" <"$llogout"`
awkscript='
BEGIN {
alphabet = "abcdefghijklmnopqrstuvwxyz"
}
date = newdate date
}
- time = substr($3, 1, length($3) - 1)
- author = substr($5, 1, length($5)-1)
+ time = ""
+ for (i = 3; i <= NF; i++) {
+ time = time $i
+ if (time ~ /;$/) {
+ time = substr(time, 1, length(time) - 1)
+ break
+ }
+ }
+ i++
+ if ($i == "author:") {
+ author = $(i + 1)
+ if (author ~ /;$/) {
+ author = substr(author, 1, length(author) - 1)
+ }
+ } else {
+ author = ""
+ }
printf "%s%s%s%s%s%s%s%s%s%s", filename, SOH, rev, SOH, date, SOH, time, SOH, author, SOH
rev = "?"
next
# Exit successfully.
-exec rm -fr $logdir
+exec rm -fr "$logdir"
# Local Variables:
# tab-width:4
# End:
-
-# arch-tag: cea067bd-a552-4254-ba17-078208933073