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