setrev.awk revision 1.1 1 #!/usr/bin/awk -f
2 #
3 # $NetBSD: setrev.awk,v 1.1 1996/01/16 15:15:55 leo Exp $
4 #
5 function revcmp(r1, r2, n1, n2, a1, a2, n, i) {
6 n1 = split(r1, a1, "\.")
7 n2 = split(r2, a2, "\.")
8 n = (n1 < n2) ? n1 : n2
9
10 for (i = 1; i <= n; ++i) {
11 if (a1[i] != a2[i])
12 return(a1[i] - a2[i])
13 }
14 if (n1 != n2)
15 return(n1 - n2)
16 return(0)
17 }
18
19 BEGIN {
20 destfile = ARGV[1]
21 rev = "0.0"
22 }
23
24 {
25 if (revcmp($4, rev) > 0)
26 rev = $4
27 next file
28 }
29
30 END {
31 while ((e = getline <destfile) > 0) {
32 if (/"\$Revision.*\$"/)
33 sub("\\\$Revision.*\\\$", "Revision " rev)
34 print
35 }
36 if (e)
37 exit(1)
38 exit(0)
39 }
40