aboutsummaryrefslogtreecommitdiff
path: root/bsdconfig/timezone/share/menus.subr
diff options
context:
space:
mode:
Diffstat (limited to 'bsdconfig/timezone/share/menus.subr')
-rw-r--r--bsdconfig/timezone/share/menus.subr225
1 files changed, 0 insertions, 225 deletions
diff --git a/bsdconfig/timezone/share/menus.subr b/bsdconfig/timezone/share/menus.subr
deleted file mode 100644
index ef3979be49a5..000000000000
--- a/bsdconfig/timezone/share/menus.subr
+++ /dev/null
@@ -1,225 +0,0 @@
-if [ ! "$_TIMEZONE_MENUS_SUBR" ]; then _TIMEZONE_MENUS_SUBR=1
-#
-# Copyright (c) 2011-2012 Devin Teske
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-# $FreeBSD$
-#
-############################################################ INCLUDES
-
-BSDCFG_SHARE="/usr/share/bsdconfig"
-. $BSDCFG_SHARE/common.subr || exit 1
-f_dprintf "%s: loading includes..." timezone/menus.subr
-f_include $BSDCFG_SHARE/dialog.subr
-
-############################################################ GLOBALS
-
-#
-# Export special included variables required by awk(1) for `ENVIRON' visibility
-#
-export DIALOG_MENU_TAGS
-
-############################################################ FUNCTIONS
-
-# f_make_menus
-#
-# Creates the tag/item ordered-pair list environment variables for the
-# continent and country menus.
-#
-# Required variables [from continents.subr]:
-#
-# CONTINENTS
-# Space-separated list of continents.
-# continent_*_title
-# Desired menu text for the continent represented by *.
-#
-# Required variables [created by f_read_iso3166_table from iso3166.subr]:
-#
-# COUNTRIES
-# Space-separated list of 2-character country codes.
-# country_*_name :: when country_*_nzones < 0
-# Desired menu text for the country-zone represented by *, the 2-
-# character country code.
-#
-# Required variables [created by f_read_zones from zones.subr]:
-#
-# country_*_nzones
-# Number of zones for the country represented by *, the 2-
-# character country code. Should be -1 if the country has only
-# one single zone, otherwise 1 or greater to indicate how many
-# zones the country has.
-# country_*_cont :: when country_*_nzones < 0
-# Principal continent (or ocean) in which the country-zone
-# represented by *, the 2-character country code, resides.
-# country_*_cont_N :: when country_*_nzones > 0
-# Principal continent (or ocean) in which zone-N of the country
-# represented by * resides, the 2-character country code.
-# country_*_descr_N :: when country_*_nzones > 0
-# Desired submenu text for zone-N of the country represented by
-# *, the 2-character country code.
-#
-# Variables created by this function:
-#
-# continent_menu_list
-# Menu-list of continents.
-# continent_*_nitems
-# Number of items associated with the continent represented by *,
-# the continent identifier.
-# continent_*_tlc_N
-# 2-character country code of the Nth item in the continent menu
-# for the continent represented by *, the continent identifier.
-# continent_*_menu_list
-# Menu-list of countries/zones for each continent represented by
-# *, the continent identifier.
-# country_*_menu_list
-# For countries that have multiple zones, this is the submenu-
-# list of zones for said country represented by *, the 2-
-# character country code.
-#
-# This function is a two-parter. Below is the awk(1) portion of the function,
-# afterward is the sh(1) function which utilizes the below awk script.
-#
-f_make_menus_awk='
-function add_zone_n_to_country_menu(tlc, n)
-{
- zone_title = ENVIRON["country_" tlc "_descr_" n]
- gsub(/'\''/, "'\''\\'\'\''", zone_title)
- country_menu_list[tlc] = country_menu_list[tlc] \
- ( length(country_menu_list[tlc]) > 0 ? "\n" : "" ) \
- n " '\''" zone_title "'\''"
-}
-BEGIN {
- #
- # First, count up all the countries in each continent/ocean.
- # Be careful to count those countries which have multiple zones
- # only once for each. NB: some countries are in multiple
- # continents/oceans.
- #
- i = split(ENVIRON["COUNTRIES"], countries, /[[:space:]]+/)
- for (cp = 1; cp <= i; cp++)
- {
- tlc = countries[cp]
- title = ENVIRON["country_" tlc "_name"]
- gsub(/'\''/, "'\''\\'\'\''", title)
- nzones = ENVIRON["country_" tlc "_nzones"]
- if (!nzones)
- {
- # Country has no zones
- continue
- }
- else if (nzones < 0)
- {
- # Country has only one zone
- cont = ENVIRON["country_" tlc "_cont"]
- nitems = ++continent_nitems[cont]
- continent_tlc[cont,nitems] = tlc
- continent_title[cont,nitems] = title
- }
- else
- {
- # Country has one or more zones
- for (n = 1; n <= nzones; n++)
- {
- add_zone_n_to_country_menu(tlc, n)
- cont = ENVIRON["country_" tlc "_cont_" n]
- for (x = 1; x < n; x++)
- {
- contx = ENVIRON["country_"tlc"_cont_"x]
- if (cont == contx) break
- }
- if (x == n)
- {
- nitems = ++continent_nitems[cont]
- continent_tlc[cont,nitems] = tlc
- continent_title[cont,nitems] = title
- }
- }
- }
- }
-}
-END {
- tags = ENVIRON["DIALOG_MENU_TAGS"]
- cont_menu_list = ""
- tagn = 0
-
- #
- # Assemble the menu items in the menu list for each continent/ocean.
- #
- i = split(ENVIRON["CONTINENTS"], array, /[[:space:]]+/)
- for (item = 1; item <= i; item++)
- {
- cont = array[item]
- if (!cont) continue
-
- if (++tagn >= length(tags)) break
- tag = substr(tags, tagn, 1)
- cont_menu_list = cont_menu_list \
- ( length(cont_menu_list) > 0 ? "\n" : "" ) \
- "'\''" tag "'\'' '\''" \
- ENVIRON["continent_" cont "_title"] "'\''"
-
- nitems = continent_nitems[cont]
- printf "continent_%s_nitems=%d\n", cont, nitems
-
- menu_list = ""
- for (n = 1; n <= nitems; n++)
- {
- printf "continent_%s_tlc_%d=%s\n",
- cont, n, continent_tlc[cont,n]
-
- title = continent_title[cont,n]
- menu_list = menu_list \
- ( length(menu_list) > 0 ? "\n" : "" ) \
- n " '\''" title "'\''"
- }
-
- gsub(/"/, "\\\"", menu_list)
- printf "continent_%s_menu_list=\"%s\"\n", cont, menu_list
- }
-
- gsub(/"/, "\\\"", continent_menu_list)
- printf "continent_menu_list=\"%s\"\n", cont_menu_list
- print "export continent_menu_list"
-
- #
- # Dump the submenus of countries with multiple zones
- #
- for (tlc in country_menu_list)
- {
- menu_list = country_menu_list[tlc]
- gsub(/"/, "\\\"", menu_list)
- printf "country_%s_menu_list=\"%s\"\n", tlc, menu_list
- }
-}
-'
-f_make_menus()
-{
- eval $( :| awk "$f_make_menus_awk" )
-}
-
-############################################################ MAIN
-
-f_dprintf "%s: Successfully loaded." timezone/menus.subr
-
-fi # ! $_TIMEZONE_MENUS_SUBR