14616d0f9Sopenharmony_ci# Check zonenow.tab for consistency with primary data. 24616d0f9Sopenharmony_ci 34616d0f9Sopenharmony_ci# Contributed by Paul Eggert. This file is in the public domain. 44616d0f9Sopenharmony_ci 54616d0f9Sopenharmony_cifunction record_zone(zone, data) { 64616d0f9Sopenharmony_ci if (zone) { 74616d0f9Sopenharmony_ci zone_data[zone] = data 84616d0f9Sopenharmony_ci zones[data] = zones[data] " " zone 94616d0f9Sopenharmony_ci } 104616d0f9Sopenharmony_ci} 114616d0f9Sopenharmony_ci 124616d0f9Sopenharmony_ciBEGIN { 134616d0f9Sopenharmony_ci while (getline <zdump_table) { 144616d0f9Sopenharmony_ci if ($0 ~ /^TZ/) { 154616d0f9Sopenharmony_ci record_zone(zone, data) 164616d0f9Sopenharmony_ci zone = $0 174616d0f9Sopenharmony_ci sub(/.*\.dir\//, "", zone) 184616d0f9Sopenharmony_ci sub(/\/\//, "/", zone) 194616d0f9Sopenharmony_ci sub(/"/, "", zone) 204616d0f9Sopenharmony_ci data = "" 214616d0f9Sopenharmony_ci } else if ($0 ~ /./) 224616d0f9Sopenharmony_ci data = data $0 "\n" 234616d0f9Sopenharmony_ci } 244616d0f9Sopenharmony_ci record_zone(zone, data) 254616d0f9Sopenharmony_ci FS = "\t" 264616d0f9Sopenharmony_ci} 274616d0f9Sopenharmony_ci 284616d0f9Sopenharmony_ci/^[^#]/ { 294616d0f9Sopenharmony_ci zone = $3 304616d0f9Sopenharmony_ci data = zone_data[zone] 314616d0f9Sopenharmony_ci if (!data) { 324616d0f9Sopenharmony_ci printf "%s: no data\n", zone 334616d0f9Sopenharmony_ci status = 1 344616d0f9Sopenharmony_ci } else { 354616d0f9Sopenharmony_ci zone2 = zonenow[data] 364616d0f9Sopenharmony_ci if (zone2) { 374616d0f9Sopenharmony_ci printf "zones %s and %s identical from now on\n", zone, zone2 384616d0f9Sopenharmony_ci status = 1 394616d0f9Sopenharmony_ci } else 404616d0f9Sopenharmony_ci zonenow[data] = zone 414616d0f9Sopenharmony_ci } 424616d0f9Sopenharmony_ci} 434616d0f9Sopenharmony_ci 444616d0f9Sopenharmony_ciEND { 454616d0f9Sopenharmony_ci for (zone in zone_data) { 464616d0f9Sopenharmony_ci data = zone_data[zone] 474616d0f9Sopenharmony_ci if (!zonenow[data]) { 484616d0f9Sopenharmony_ci printf "zonenow.tab should have one of:%s\n", zones[data] 494616d0f9Sopenharmony_ci zonenow[data] = zone # This suppresses duplicate diagnostics. 504616d0f9Sopenharmony_ci status = 1 514616d0f9Sopenharmony_ci } 524616d0f9Sopenharmony_ci } 534616d0f9Sopenharmony_ci exit status 544616d0f9Sopenharmony_ci} 55