diff options
| author | Paul Eggert | 1992-04-01 08:57:55 +0000 |
|---|---|---|
| committer | Paul Eggert | 1992-04-01 08:57:55 +0000 |
| commit | 23a227f7179a440649f6a79115f8c299e77bfdce (patch) | |
| tree | 56d939bc952474b19d4b61cf4366990323364f23 /lib-src | |
| parent | 906ad89def9657f1d594c5c315ddf2c2579a782e (diff) | |
| download | emacs-23a227f7179a440649f6a79115f8c299e77bfdce.tar.gz emacs-23a227f7179a440649f6a79115f8c299e77bfdce.zip | |
Don't duplicate most recent logs. Fix bug in dates after Feb 29 in leap year.
Diffstat (limited to 'lib-src')
| -rwxr-xr-x | lib-src/rcs2log | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/lib-src/rcs2log b/lib-src/rcs2log index 22b2157e6ad..9869b12ff0d 100755 --- a/lib-src/rcs2log +++ b/lib-src/rcs2log | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | # RCS to ChangeLog generator | 3 | # RCS to ChangeLog generator |
| 4 | 4 | ||
| 5 | # $Id: rcs2clog,v 1.3 1992/02/05 17:25:10 eggert Exp eggert $ | 5 | # $Id: rcs2log,v 1.4 1992/03/21 05:58:05 eggert Exp eggert $ |
| 6 | 6 | ||
| 7 | # Generate a change log prefix from RCS/* and the existing ChangeLog (if any). | 7 | # Generate a change log prefix from RCS/* and the existing ChangeLog (if any). |
| 8 | # Output the new prefix to standard output. | 8 | # Output the new prefix to standard output. |
| @@ -32,15 +32,23 @@ done | |||
| 32 | 32 | ||
| 33 | # Log into $rlogout the revisions checked in since the first ChangeLog entry. | 33 | # Log into $rlogout the revisions checked in since the first ChangeLog entry. |
| 34 | 34 | ||
| 35 | datearg=-d'>1970' | 35 | date=1970 |
| 36 | if test -s ChangeLog | 36 | if test -s ChangeLog |
| 37 | then | 37 | then |
| 38 | e='s/^\(...\) \(...\) \(..\) \(..:..:..\) \(....\) .*/\1 \2 \3 \4 \5/p; 1q' | 38 | # Add 1 to seconds to avoid duplicating most recent log. |
| 39 | date=`sed -n "$e" <ChangeLog` || exit | 39 | # It's a good thing `rlog' doesn't mind a time ending in `:60'. |
| 40 | case $date in | 40 | e=' |
| 41 | ?*) datearg="-d>$date" | 41 | /^... ... [ 0-9][0-9] [ 0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9]+ /{ |
| 42 | printf "%s%.2d %s\n", substr($0,1,17), substr($0,18,2)+1, $5 | ||
| 43 | exit | ||
| 44 | } | ||
| 45 | ' | ||
| 46 | d=`awk "$e" <ChangeLog` || exit | ||
| 47 | case $d in | ||
| 48 | ?*) date=$d | ||
| 42 | esac | 49 | esac |
| 43 | fi | 50 | fi |
| 51 | datearg="-d>$date" | ||
| 44 | 52 | ||
| 45 | rlogout=/tmp/chg$$ | 53 | rlogout=/tmp/chg$$ |
| 46 | trap exit 1 2 13 15 | 54 | trap exit 1 2 13 15 |
| @@ -153,7 +161,7 @@ awk <$rlogout ' | |||
| 153 | # and each line of the log is terminated by \r instead of \n. | 161 | # and each line of the log is terminated by \r instead of \n. |
| 154 | # Sort the log entries, first by date (in reverse order), | 162 | # Sort the log entries, first by date (in reverse order), |
| 155 | # then by author, then by log entry, and finally by file name (just in case). | 163 | # then by author, then by log entry, and finally by file name (just in case). |
| 156 | sort +1 -2r +3 +0 | | 164 | sort +1 -3r +3 +0 | |
| 157 | 165 | ||
| 158 | # Finally, reformat the sorted log entries. | 166 | # Finally, reformat the sorted log entries. |
| 159 | awk ' | 167 | awk ' |
| @@ -208,6 +216,7 @@ awk ' | |||
| 208 | # and use it to decide whether to output a blank line. | 216 | # and use it to decide whether to output a blank line. |
| 209 | newclumpname = "" | 217 | newclumpname = "" |
| 210 | sep = "\n" | 218 | sep = "\n" |
| 219 | if (date == "") sep = "" | ||
| 211 | if (newlog ~ /^{[^ }]+}[ ]/) { | 220 | if (newlog ~ /^{[^ }]+}[ ]/) { |
| 212 | i = index(newlog, "}") | 221 | i = index(newlog, "}") |
| 213 | newclumpname = substr(newlog, 1, i) | 222 | newclumpname = substr(newlog, 1, i) |
| @@ -235,13 +244,13 @@ awk ' | |||
| 235 | # into ugly ctime date like "Fri Jan 3 00:03:44 1992". | 244 | # into ugly ctime date like "Fri Jan 3 00:03:44 1992". |
| 236 | # Calculate day of week from Gregorian calendar. | 245 | # Calculate day of week from Gregorian calendar. |
| 237 | i = index($2, "/") | 246 | i = index($2, "/") |
| 238 | year = substr($2, 1, i-1) | 247 | year = substr($2, 1, i-1) + 0 |
| 239 | monthday = substr($2, i+1) | 248 | monthday = substr($2, i+1) |
| 240 | i = index(monthday, "/") | 249 | i = index(monthday, "/") |
| 241 | month = substr(monthday, 1, i-1) | 250 | month = substr(monthday, 1, i-1) + 0 |
| 242 | day = substr(monthday, i+1) | 251 | day = substr(monthday, i+1) + 0 |
| 243 | leap = 0 | 252 | leap = 0 |
| 244 | if (2 <= month && year%4 == 0 && (year%100 != 0 || year%400 == 0)) leap = 1 | 253 | if (2 < month && year%4 == 0 && (year%100 != 0 || year%400 == 0)) leap = 1 |
| 245 | days_since_Sunday_before_epoch = EPOCH_WEEKDAY + year * 365 + int((year + 3) / 4) - int((year + 99) / 100) + int((year + 399) / 400) + mo[month-1] + leap + day - 1 | 254 | days_since_Sunday_before_epoch = EPOCH_WEEKDAY + year * 365 + int((year + 3) / 4) - int((year + 99) / 100) + int((year + 399) / 400) + mo[month-1] + leap + day - 1 |
| 246 | 255 | ||
| 247 | # Print "date fullname (email address)" if the fullname is known; | 256 | # Print "date fullname (email address)" if the fullname is known; |