diff lib-src/rcs2log @ 11627:2f0766bf8315

(datearg): If rlog options are specified explicitly, omit the implicit '-d>DATE' option. (repository, rlog): Allow absolute paths to CVS repositories. Look only at the first line of CVS/Repository.
author Paul Eggert <eggert@twinsun.com>
date Sun, 30 Apr 1995 15:34:52 +0000
parents 4d05376b5cb2
children b9b0b3f96dc2
line wrap: on
line diff
--- a/lib-src/rcs2log	Sun Apr 30 15:27:38 1995 +0000
+++ b/lib-src/rcs2log	Sun Apr 30 15:34:52 1995 +0000
@@ -12,7 +12,7 @@
 
 # Author: Paul Eggert <eggert@twinsun.com>
 
-# $Id: rcs2log,v 1.20 1995/03/21 23:14:41 eggert Exp eggert $
+# $Id: rcs2log,v 1.22 1995/04/30 15:34:52 eggert Exp $
 
 # Copyright 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
 
@@ -42,7 +42,7 @@
 hostname= # name of local host (if empty, will deduce it later)
 indent=8 # indent of log line
 length=79 # suggested max width of log line
-logins= # login names for people we know fullnames and mailaddresses of
+logins= # login names for people we know fullnames and mailaddrs of
 loginFullnameMailaddrs= # login<tab>fullname<tab>mailaddr triplets
 recursive= # t if we want recursive rlog
 rlog_options= # options to pass to rlog
@@ -116,69 +116,78 @@
 '
 
 
-# Log into $rlogout the revisions checked in since the first ChangeLog entry.
+# Put rlog output into $rlogout.
 
-date=1970
-if test -s ChangeLog
-then
-	# Add 1 to seconds to avoid duplicating most recent log.
-	e='
-		/^... ... [ 0-9][0-9] [ 0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9]+ /{
-			'"$month_data"'
-			year = $5
-			for (i=0; i<=11; i++) if (m[i] == $2) break
-			dd = $3
-			hh = substr($0,12,2)
-			mm = substr($0,15,2)
-			ss = substr($0,18,2)
-			ss++
-			if (ss == 60) {
-				ss = 0
-				mm++
-				if (mm == 60) {
-					mm = 0
-					hh++
-					if (hh == 24) {
-						hh = 0
-						dd++
-						monthdays = mo[i+1] - mo[i]
-						if (i == 1 && year%4 == 0 && (year%100 != 0 || year%400 == 0)) monthdays++
-						if (dd == monthdays + 1) {
-							dd = 1
-							i++
-							if (i == 12) {
-								i = 0
-								year++
+# If no rlog options are given,
+# log the revisions checked in since the first ChangeLog entry.
+case $rlog_options in
+'')
+	date=1970
+	if test -s ChangeLog
+	then
+		# Add 1 to seconds to avoid duplicating most recent log.
+		e='
+			/^... ... [ 0-9][0-9] [ 0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9]+ /{
+				'"$month_data"'
+				year = $5
+				for (i=0; i<=11; i++) if (m[i] == $2) break
+				dd = $3
+				hh = substr($0,12,2)
+				mm = substr($0,15,2)
+				ss = substr($0,18,2)
+				ss++
+				if (ss == 60) {
+					ss = 0
+					mm++
+					if (mm == 60) {
+						mm = 0
+						hh++
+						if (hh == 24) {
+							hh = 0
+							dd++
+							monthdays = mo[i+1] - mo[i]
+							if (i == 1 && year%4 == 0 && (year%100 != 0 || year%400 == 0)) monthdays++
+							if (dd == monthdays + 1) {
+								dd = 1
+								i++
+								if (i == 12) {
+									i = 0
+									year++
+								}
 							}
 						}
 					}
 				}
+				printf "%d/%02d/%02d %02d:%02d:%02d\n", year,i+1,dd,hh,mm,ss
+				exit
 			}
-			printf "%d/%02d/%02d %02d:%02d:%02d\n", year, i+1, dd, hh, mm, ss
-			exit
-		}
-	'
-	d=`$AWK "$e" <ChangeLog` || exit
-	case $d in
-	?*) date=$d
-	esac
-fi
-datearg="-d>$date"
+		'
+		d=`$AWK "$e" <ChangeLog` || exit
+		case $d in
+		?*) date=$d
+		esac
+	fi
+	datearg="-d>$date"
+esac
 
-repository=
-rlog=rlog
-case $CVSROOT in
-?*)
-	if test -d "$CVSROOT" && test -f CVS/Repository
+# If CVS is in use, examine its repository, not the normal RCS files.
+if test ! -f CVS/Repository
+then
+	rlog=rlog
+	repository=
+else
+	rlog='cvs log'
+	repository=`sed 1q <CVS/Repository` || exit
+	case $repository in
+	/*) ;;
+	*) repository=${CVSROOT?}/$repository
+	esac
+	if test ! -d "$repository"
 	then
-		r=`cat <CVS/Repository` || exit
-		if test -d "$CVSROOT/$r"
-		then
-			repository=$CVSROOT/$r
-			rlog='cvs log'
-		fi
+		echo >&2 "$0: $repository: bad repository (see CVS/Repository)"
+		exit 1
 	fi
-esac
+fi
 
 # With no arguments, examine all files under the RCS directory.
 case $# in
@@ -226,7 +235,10 @@
 trap exit 1 2 13 15
 trap "rm -f $llogout $rlogout; exit 1" 0
 
-$rlog "$datearg" $rlog_options ${1+"$@"} >$rlogout || exit
+case $rlog_options in
+?*) $rlog $rlog_options ${1+"$@"} >$rlogout;;
+'') $rlog "$datearg" ${1+"$@"} >$rlogout
+esac || exit
 
 
 # Get the full name of each author the logs mention, and set initialize_fullname
@@ -450,7 +462,7 @@
 # Finally, reformat the sorted log entries.
 $AWK '
 	BEGIN {
-		# Some awks do not understand "\r" or "\013", so we have to
+		# Some awk variants do not understand "\r" or "\013", so we have to
 		# put a carriage return directly in the file.
 		CR="
" # <-- There is a single CR between the " chars here.