Merge illumos-gate
[unleashed.git] / contrib / tzdata / checklinks.awk
blobf30901086536b03d80dbcf5f89a023fdab56f3b3
1 # Check links in tz tables.
3 # Contributed by Paul Eggert. This file is in the public domain.
5 BEGIN {
6 # Special marker indicating that the name is defined as a Zone.
7 # It is a newline so that it cannot match a valid name.
8 # It is not null so that its slot does not appear unset.
9 Zone = "\n"
12 /^Z/ {
13 if (defined[$2]) {
14 if (defined[$2] == Zone) {
15 printf "%s: Zone has duplicate definition\n", $2
16 } else {
17 printf "%s: Link with same name as Zone\n", $2
19 status = 1
21 defined[$2] = Zone
24 /^L/ {
25 if (defined[$3]) {
26 if (defined[$3] == Zone) {
27 printf "%s: Link with same name as Zone\n", $3
28 } else if (defined[$3] == $2) {
29 printf "%s: Link has duplicate definition\n", $3
30 } else {
31 printf "%s: Link to both %s and %s\n", $3, defined[$3], $2
33 status = 1
35 used[$2] = 1
36 defined[$3] = $2
39 END {
40 for (tz in used) {
41 if (defined[tz] != Zone) {
42 printf "%s: Link to non-zone\n", tz
43 status = 1
47 exit status