pike.git
/
lib
/
modules
/
Calendar.pmod
/
tzdata
/
checklinks.awk
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/lib/modules/Calendar.pmod/tzdata/checklinks.awk:1:
# Check links in tz tables. # Contributed by Paul Eggert.
-
/^Link/
{
used[$2]
=
1
}
-
/^Zone/
{
defined
[$2]
=
1
}
+
BEGIN
{
+
#
Special
marker indicating that the name is
defined
as a Zone.
+
# It is a newline so that it cannot match a valid name.
+
# It is not null so that its slot does not appear unset.
+
Zone
=
"\n"
+
}
-
END
{
-
status =
0
+
/^Zone/
{
+
if (defined[$2]) {
+
if (defined[$2] == Zone) {
+
printf "%s: Zone has duplicate definition\n", $2
+
} else {
+
printf "%s: Link with same name as Zone\n", $2
+
}
+
status =
1
+
}
+
defined[$2] = Zone
+
}
-
+
/^Link/ {
+
if (defined[$3]) {
+
if (defined[$3] == Zone) {
+
printf "%s: Link with same name as Zone\n", $3
+
} else if (defined[$3] == $2) {
+
printf "%s: Link has duplicate definition\n", $3
+
} else {
+
printf "%s: Link to both %s and %s\n", $3, defined[$3], $2
+
}
+
status = 1
+
}
+
used[$2] = 1
+
defined[$3] = $2
+
}
+
+
END {
for (tz in used) {
-
if (
!
defined[tz]) {
+
if (defined[tz]
!= Zone
) {
printf "%s: Link to non-zone\n", tz status = 1 } } exit status }