Replace the only instance of sed(1) in bsdconfig(8) with awk(1).
MFC after: 3 days
This commit is contained in:
parent
cbe6c25d2e
commit
a831d7d1c5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=278464
@ -46,6 +46,13 @@ menu_help="Customize system console behavior"
|
||||
# can be i18n'ed but `command' is the name of a script.
|
||||
#
|
||||
menu_selection="console|console"
|
||||
menu_selection="vt_font|font"
|
||||
menu_selection="vt_keymap|keymap"
|
||||
menu_selection="vt_repeat|repeat"
|
||||
menu_selection="vt_saver|saver"
|
||||
menu_selection="vt_screenmap|screenmap"
|
||||
menu_selection="vt_ttys|ttys"
|
||||
# For backward compatibility
|
||||
menu_selection="syscons_font|font"
|
||||
menu_selection="syscons_keymap|keymap"
|
||||
menu_selection="syscons_repeat|repeat"
|
||||
|
@ -45,6 +45,7 @@ menu_help=""
|
||||
# can be i18n'ed but `command' is the name of a script.
|
||||
#
|
||||
menu_selection="includes|includes"
|
||||
menu_selection="api|includes"
|
||||
|
||||
#
|
||||
# ------------ Items below this line do NOT need i18n translation ------------
|
||||
|
@ -219,7 +219,7 @@ f_keymap_get_all()
|
||||
echo -n "$k "
|
||||
# NOTE: Translate '8x8' to '8x08' before sending to
|
||||
# sort(1) so that things work out as we might expect.
|
||||
debug= keymap_$k get desc | sed -e 's/8x8/8x08/g'
|
||||
debug= keymap_$k get desc | awk 'gsub(/8x8/,"8x08")||1'
|
||||
done | sort -k2 | awk '{
|
||||
printf "%s%s", (started ? " " : ""), $1; started = 1
|
||||
}'
|
||||
|
@ -1,6 +1,6 @@
|
||||
if [ ! "$_TIMEZONE_CONTINENTS_SUBR" ]; then _TIMEZONE_CONTINENTS_SUBR=1
|
||||
#
|
||||
# Copyright (c) 2011-2012 Devin Teske
|
||||
# Copyright (c) 2011-2014 Devin Teske
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
@ -87,7 +87,7 @@ export continent_utc_title
|
||||
|
||||
############################################################ FUNCTIONS
|
||||
|
||||
# f_continent $cont $property
|
||||
# f_continent $cont $property [$var_to_set]
|
||||
#
|
||||
# Returns a single property of a given continent. Available properties are:
|
||||
#
|
||||
@ -102,37 +102,60 @@ export continent_utc_title
|
||||
# (which appears after continent selection).
|
||||
# menu_list Menu-list of regions for this continent.
|
||||
#
|
||||
# If $var_to_set is missing or NULL, the value of $var_to_get is printed to
|
||||
# standard output for capturing in a sub-shell (which is less-recommended
|
||||
# because of performance degredation; for example, when called in a loop).
|
||||
#
|
||||
f_continent()
|
||||
{
|
||||
local cont="$1" property="$2"
|
||||
eval echo \"\${continent_${cont}_$property}\"
|
||||
f_getvar "continent_${1}_$2" $3
|
||||
}
|
||||
|
||||
# f_find_continent $title
|
||||
# f_find_continent $title [$var_to_set]
|
||||
#
|
||||
# Returns continent identifier given continent title.
|
||||
#
|
||||
# If $var_to_set is missing or NULL, the value of $var_to_get is printed to
|
||||
# standard output for capturing in a sub-shell (which is less-recommended
|
||||
# because of performance degredation; for example, when called in a loop).
|
||||
#
|
||||
f_find_continent()
|
||||
{
|
||||
local cont
|
||||
for cont in $CONTINENTS; do
|
||||
if [ "$1" = "$( f_continent $cont title )" ]; then
|
||||
echo "$cont"
|
||||
local __cont __title
|
||||
for __cont in $CONTINENTS; do
|
||||
f_continent $__cont title __title
|
||||
if [ "$1" = "$__title" ]; then
|
||||
if [ "$2" ]; then
|
||||
setvar "$2" $__cont
|
||||
else
|
||||
echo "$__cont"
|
||||
fi
|
||||
return $SUCCESS
|
||||
fi
|
||||
done
|
||||
return $FAILURE
|
||||
}
|
||||
|
||||
# f_OCEANP $cont
|
||||
# f_OCEANP $cont [$var_to_set]
|
||||
#
|
||||
# Returns "1" if the first argument is an ocean, otherwise NULL.
|
||||
#
|
||||
# If $var_to_set is missing or NULL, the value of $var_to_get is printed to
|
||||
# standard output for capturing in a sub-shell (which is less-recommended
|
||||
# because of performance degredation; for example, when called in a loop).
|
||||
#
|
||||
f_OCEANP()
|
||||
{
|
||||
case "$1" in
|
||||
arctic|atlantic|indian|pacific)
|
||||
echo 1
|
||||
if [ "$2" ]; then
|
||||
setvar "$2" 1
|
||||
else
|
||||
echo 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
[ "$2" ] && setvar "$2" ""
|
||||
esac
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
if [ ! "$_TIMEZONE_COUNTRIES_SUBR" ]; then _TIMEZONE_COUNTRIES_SUBR=1
|
||||
#
|
||||
# Copyright (c) 2011-2012 Devin Teske
|
||||
# Copyright (c) 2011-2014 Devin Teske
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
@ -25,8 +25,10 @@ if [ ! "$_TIMEZONE_COUNTRIES_SUBR" ]; then _TIMEZONE_COUNTRIES_SUBR=1
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
############################################################ FUNCTIONS
|
||||
|
||||
# f_country $code $property
|
||||
# f_country $code $property [$var_to_set]
|
||||
#
|
||||
# Returns a single property of a given country. Available properties are:
|
||||
#
|
||||
@ -44,10 +46,13 @@ if [ ! "$_TIMEZONE_COUNTRIES_SUBR" ]; then _TIMEZONE_COUNTRIES_SUBR=1
|
||||
# descr_N Like name, but for the Nth zone when the country has
|
||||
# multiple zones (nzones > 0)
|
||||
#
|
||||
# If $var_to_set is missing or NULL, the value of $var_to_get is printed to
|
||||
# standard output for capturing in a sub-shell (which is less-recommended
|
||||
# because of performance degredation; for example, when called in a loop).
|
||||
#
|
||||
f_country()
|
||||
{
|
||||
local code="$1" property="$2"
|
||||
eval echo \"\${country_${code}_$property}\"
|
||||
f_getvar "country_${1}_$2" $3
|
||||
}
|
||||
|
||||
# f_sort_countries
|
||||
@ -59,22 +64,42 @@ f_country()
|
||||
# afterward is the sh(1) function which utilizes the below awk script.
|
||||
#
|
||||
f_sort_countries_awk='
|
||||
function _asorti(src, dest)
|
||||
{
|
||||
split($0, array, /[[:space:]]+/)
|
||||
k = nitems = 0
|
||||
for (i in src) dest[++nitems] = i
|
||||
for (i = 1; i <= nitems; k = i++) {
|
||||
idx = dest[i]
|
||||
while ((k > 0) && (dest[k] > idx)) {
|
||||
dest[k+1] = dest[k]; k--
|
||||
}
|
||||
dest[k+1] = idx
|
||||
}
|
||||
return nitems
|
||||
}
|
||||
BEGIN {
|
||||
split(ENVIRON["COUNTRIES"], array, /[[:space:]]+/)
|
||||
for (item in array)
|
||||
{
|
||||
tlc = array[item]
|
||||
print ENVIRON["country_" tlc "_name"] " " tlc
|
||||
name = ENVIRON["country_" tlc "_name"]
|
||||
countries[name] = tlc
|
||||
}
|
||||
n = _asorti(countries, sorted_countries)
|
||||
for (i = 1, i <= n; i++)
|
||||
print countries[sorted_countries[i]]
|
||||
exit
|
||||
}
|
||||
'
|
||||
f_sort_countries()
|
||||
{
|
||||
COUNTRIES=$( echo "$COUNTRIES" | awk "$f_sort_countries_awk" |
|
||||
sort | awk '{print $NF}' )
|
||||
export COUNTRIES
|
||||
export COUNTRIES # for awk(1) ENVIRON[] visibility
|
||||
COUNTRIES=$( awk "$f_sort_countries_awk" )
|
||||
export COUNTRIES # Pedantic
|
||||
}
|
||||
|
||||
############################################################ MAIN
|
||||
|
||||
f_dprintf "%s: Successfully loaded." timezone/countries.subr
|
||||
|
||||
fi # ! $_TIMEZONE_COUNTRIES_SUBR
|
||||
|
@ -830,8 +830,7 @@ f_user_delete()
|
||||
f_eval_catch $funcname \
|
||||
pw '%s -H 0' "$cmd"
|
||||
else
|
||||
f_eval_catch $funcname \
|
||||
pw '%s -h -' "$cmd"
|
||||
f_eval_catch $funcname pw '%s -h -' "$cmd"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user