head	1.19;
access;
symbols
	RELENG_9:1.17.0.2;
locks; strict;
comment	@# @;


1.19
date	2013.07.08.00.33.55;	author svnexp;	state Exp;
branches;
next	1.18;

1.18
date	2013.07.08.00.32.27;	author svnexp;	state Exp;
branches;
next	1.17;

1.17
date	2013.06.25.00.35.22;	author svnexp;	state Exp;
branches
	1.17.2.1;
next	1.16;

1.16
date	2013.06.19.00.35.38;	author svnexp;	state Exp;
branches;
next	1.15;

1.15
date	2013.06.19.00.33.28;	author svnexp;	state Exp;
branches;
next	1.14;

1.14
date	2013.06.19.00.32.44;	author svnexp;	state Exp;
branches;
next	1.13;

1.13
date	2013.06.03.00.43.28;	author svnexp;	state Exp;
branches;
next	1.12;

1.12
date	2013.06.02.00.37.30;	author svnexp;	state Exp;
branches;
next	1.11;

1.11
date	2013.06.01.00.35.21;	author svnexp;	state Exp;
branches;
next	1.10;

1.10
date	2013.05.15.00.26.05;	author svnexp;	state Exp;
branches;
next	1.9;

1.9
date	2013.04.23.00.30.01;	author svnexp;	state Exp;
branches;
next	1.8;

1.8
date	2013.04.23.00.27.07;	author svnexp;	state Exp;
branches;
next	1.7;

1.7
date	2012.12.25.11.03.38;	author svnexp;	state Exp;
branches;
next	1.6;

1.6
date	2012.12.25.09.37.00;	author svnexp;	state Exp;
branches;
next	1.5;

1.5
date	2012.11.17.04.41.47;	author svnexp;	state Exp;
branches;
next	1.4;

1.4
date	2012.11.17.01.54.38;	author svnexp;	state Exp;
branches;
next	1.3;

1.3
date	2012.09.20.23.44.13;	author dteske;	state Exp;
branches;
next	1.2;

1.2
date	2012.09.18.22.28.42;	author dteske;	state Exp;
branches;
next	1.1;

1.1
date	2012.07.14.03.16.57;	author dteske;	state Exp;
branches;
next	;

1.17.2.1
date	2013.06.25.00.35.22;	author svnexp;	state dead;
branches;
next	1.17.2.2;

1.17.2.2
date	2013.07.07.20.03.17;	author svnexp;	state Exp;
branches;
next	1.17.2.3;

1.17.2.3
date	2014.03.27.04.02.36;	author svnexp;	state Exp;
branches;
next	;


desc
@@


1.19
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/252987
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@#!/bin/sh
#-
# Copyright (c) 2012-2013 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: head/usr.sbin/bsdconfig/console/keymap 252987 2013-07-07 18:51:44Z dteske $
#
############################################################ INCLUDES

BSDCFG_SHARE="/usr/share/bsdconfig"
. $BSDCFG_SHARE/common.subr || exit 1
f_dprintf "%s: loading includes..." "$0"
f_include $BSDCFG_SHARE/dialog.subr
f_include $BSDCFG_SHARE/mustberoot.subr
f_include $BSDCFG_SHARE/sysrc.subr

BSDCFG_LIBE="/usr/libexec/bsdconfig" APP_DIR="080.console"
f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr

ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
[ $? -eq $SUCCESS -a "$ipgm" ] && pgm="$ipgm"

############################################################ CONFIGURATION

#
# List of keymap names
#
KEYMAP_NAMES="
	belgian                  brazil_cp850             brazil_iso
	brazil_iso_accent        bulgarian_bds            bulgarian_phonetic
	central_european_iso     croatian_iso             czech_iso_accent
	danish_cp865             danish_iso               estonian_cp850
	estonian_iso             estonian_iso_15          finnish_cp850
	finnish_iso              french_iso               french_iso_accent
	french_iso_macbook       german_cp850             german_iso
	greek_101                greek_104                greek_elot
	hungarian_101            hungarian_102            icelandic
	icelandic_accent         italian                  japanese_106
	latin_american           latin_american_accent    norway_iso
	polish_iso               portuguese               portuguese_accent
	russia_koi8_r            slovak                   slovenian
	spanish                  spanish_accent           swedish_cp850
	swedish_iso              swiss_french_cp850       swiss_french_iso
	swiss_french_iso_accent  swiss_german_cp850       swiss_german_iso
	swiss_german_iso_accent  uk_cp850                 uk_iso
	ukrainian_koi8_u         ukrainian_koi8_u_koi8_r  usa_capslock_ctrl
	usa_dvorak               usa_dvorak_left          usa_dvorak_right
	usa_emacs                usa_iso                  usa_unix
" # END-QUOTE

############################################################ FUNCTIONS

# dialog_menu_main
#
# Display the dialog(1)-based application main menu.
#
dialog_menu_main()
{
	local prompt="$msg_keymap_menu_text"
	local menu_list defaultitem= # Calculated below
	local hline="$hline_choose_a_keyboard_map"

	#
	# Export variables for awk(1) ENVIRON visibility
	#
	local name
	for name in $KEYMAP_NAMES; do
		export msg_$name msg_${name}_desc
	done

	#
	# Generate a sorted list of keymaps. If the first letter of the keymap
	# name is unique (case-insensitive) then it is used as the tag to allow
	# the user to jump to that entry.
	#
	menu_list=$(
		for name in $KEYMAP_NAMES; do
			eval echo \"\$msg_$name\" msg_$name
		done | sort | awk 'BEGIN { prefix = "" }
		{
			cur_prefix = tolower(substr(ENVIRON[$NF], 1, 1))
			printf "'\''"
			if ( prefix != cur_prefix )
				prefix = cur_prefix
			else
				printf " "
			printf "%s'\'' '\''%s'\''\n",
			       ENVIRON[$NF], ENVIRON[$NF"_desc"]
		}'
	)

	local height width rows
	eval f_dialog_menu_size height width rows \
	                        \"\$DIALOG_TITLE\"     \
	                        \"\$DIALOG_BACKTITLE\" \
	                        \"\$prompt\"           \
	                        \"\$hline\"            \
	                        $menu_list

	case "$( f_sysrc_get keymap )" in
	be.iso)                defaultitem="$msg_belgian"                 ;;
	br275.cp850)           defaultitem="$msg_brazil_cp850"            ;;
	br275.iso)             defaultitem="$msg_brazil_iso"              ;;
	br275.iso.acc)         defaultitem="$msg_brazil_iso_accent"       ;;
	bg.bds.ctrlcaps)       defaultitem="$msg_bulgarian_bds"           ;;
	bg.phonetic.ctrlcaps)  defaultitem="$msg_bulgarian_phonetic"      ;;
	ce.iso2)               defaultitem="$msg_central_european_iso"    ;;
	hr.iso)                defaultitem="$msg_croatian_iso"            ;;
	cs.latin2.qwertz)      defaultitem="$msg_czech_iso_accent"        ;;
	danish.cp865)          defaultitem="$msg_danish_cp865"            ;;
	danish.iso)            defaultitem="$msg_danish_iso"              ;;
	estonian.cp850)        defaultitem="$msg_estonian_cp850"          ;;
	estonian.iso)          defaultitem="$msg_estonian_iso"            ;;
	estonian.iso15)        defaultitem="$msg_estonian_iso_15"         ;;
	finnish.cp850)         defaultitem="$msg_finnish_cp850"           ;;
	finnish.iso)           defaultitem="$msg_finnish_iso"             ;;
	fr.iso)                defaultitem="$msg_french_iso"              ;;
	fr.iso.acc)            defaultitem="$msg_french_iso_accent"       ;;
	fr.macbook.acc)        defaultitem="$msg_french_iso_macbook"      ;;
	german.cp850)          defaultitem="$msg_german_cp850"            ;;
	german.iso)            defaultitem="$msg_german_iso"              ;;
	gr.us101.acc)          defaultitem="$msg_greek_101"               ;;
	el.iso07)              defaultitem="$msg_greek_104"               ;;
	gr.elot.acc)           defaultitem="$msg_greek_elot"              ;;
	hu.iso2.101keys)       defaultitem="$msg_hungarian_101"           ;;
	hu.iso2.102keys)       defaultitem="$msg_hungarian_102"           ;;
	icelandic.iso)         defaultitem="$msg_icelandic"               ;;
	icelandic.iso.acc)     defaultitem="$msg_icelandic_accent"        ;;
	it.iso)                defaultitem="$msg_italian"                 ;;
	jp.106)                defaultitem="$msg_japanese_106"            ;;
	latinamerican)         defaultitem="$msg_latin_american"          ;;
	latinamerican.iso.acc) defaultitem="$msg_latin_american_accent"   ;;
	norwegian.iso)         defaultitem="$msg_norway_iso"              ;;
	pl_PL.ISO8859-2)       defaultitem="$msg_polish_iso"              ;;
	pt.iso)                defaultitem="$msg_portuguese"              ;;
	pt.iso.acc)            defaultitem="$msg_portuguese_accent"       ;;
	ru.koi8-r)             defaultitem="$msg_russia_koi8_r"           ;;
	sk.iso2)               defaultitem="$msg_slovak"                  ;;
	si.iso)                defaultitem="$msg_slovenian"               ;;
	spanish.iso)           defaultitem="$msg_spanish"                 ;;
	spanish.iso.acc)       defaultitem="$msg_spanish_accent"          ;;
	swedish.cp850)         defaultitem="$msg_swedish_cp850"           ;;
	swedish.iso)           defaultitem="$msg_swedish_iso"             ;;
	swissfrench.cp850)     defaultitem="$msg_swiss_french_cp850"      ;;
	swissfrench.iso)       defaultitem="$msg_swiss_french_iso"        ;;
	swissfrench.iso.acc)   defaultitem="$msg_swiss_french_iso_accent" ;;
	swissgerman.cp850)     defaultitem="$msg_swiss_german_cp850"      ;;
	swissgerman.iso)       defaultitem="$msg_swiss_german_iso"        ;;
	swissgerman.iso.acc)   defaultitem="$msg_swiss_german_iso_accent" ;;
	uk.cp850)              defaultitem="$msg_uk_cp850"                ;;
	uk.iso)                defaultitem="$msg_uk_iso"                  ;;
	ua.koi8-u)             defaultitem="$msg_ukrainian_koi8_u"        ;;
	ua.koi8-u.shift.alt)   defaultitem="$msg_ukrainian_koi8_u_koi8_r" ;;
	us.pc-ctrl)            defaultitem="$msg_usa_capslock_ctrl"       ;;
	us.dvorak)             defaultitem="$msg_usa_dvorak"              ;;
	us.dvorakl)            defaultitem="$msg_usa_dvorak_left"         ;;
	us.dvorakr)            defaultitem="$msg_usa_dvorak_right"        ;;
	us.emacs)              defaultitem="$msg_usa_emacs"               ;;
	us.iso)                defaultitem="$msg_usa_iso"                 ;;
	us.unix)               defaultitem="$msg_usa_unix"                ;;
	esac

	# The defaultitem may have to be indented to match the menu_list
	if [ "$defaultitem" ]; then
		( eval set -- $menu_list
		  while [ $# -gt 0 ]; do
		  	[ "$defaultitem" = "$1" ] && break
		  	[ " $defaultitem" = "$1" ] && exit 0
		  	shift 2 # tag/item
		  done
		  exit 1 # No modification needed
		) && defaultitem=" $defaultitem"
	fi

	local menu_choice
	menu_choice=$( eval $DIALOG \
		--title \"\$DIALOG_TITLE\"         \
		--backtitle \"\$DIALOG_BACKTITLE\" \
		--hline \"\$hline\"                \
		--ok-label \"\$msg_ok\"            \
		--cancel-label \"\$msg_cancel\"    \
		--default-item \"\$defaultitem\"   \
		--menu \"\$prompt\"                \
		$height $width $rows               \
		$menu_list                         \
		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
	)
	local retval=$?
	f_dialog_menutag_store -s "$menu_choice"
	return $retval
}

############################################################ MAIN

# Incorporate rc-file if it exists
[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc"

#
# Process command-line arguments
#
while getopts h$GETOPTS_STDARGS flag; do
	case "$flag" in
	h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm" ;;
	esac
done
shift $(( $OPTIND - 1 ))

#
# Initialize
#
f_dialog_title "$msg_system_console_keymap"
f_dialog_backtitle "${ipgm:+bsdconfig }$pgm"
f_mustberoot_init

#
# Launch application main menu
#
while :; do
	dialog_menu_main || f_die
	f_dialog_menutag_fetch mtag

	#
	# Reverse the users choice into the variable name
	#
	keymap_name=
	mtag="${mtag# }" # remove single leading-space if-present
	for name in $KEYMAP_NAMES; do
		if [ "$( eval echo \"\$msg_$name\" )" = "$mtag" ]; then
			keymap_name="$name"
			break
		fi
	done

	[ "$keymap_name" ] || continue

	keymap_to_set=
	case "$keymap_name" in
	belgian)                 keymap_to_set="be.iso"                ;;
	brazil_cp850)            keymap_to_set="br275.cp850"           ;;
	brazil_iso)              keymap_to_set="br275.iso"             ;;
	brazil_iso_accent)       keymap_to_set="br275.iso.acc"         ;;
	bulgarian_bds)           keymap_to_set="bg.bds.ctrlcaps"       ;;
	bulgarian_phonetic)      keymap_to_set="bg.phonetic.ctrlcaps"  ;;
	central_european_iso)    keymap_to_set="ce.iso2"               ;;
	croatian_iso)            keymap_to_set="hr.iso"                ;;
	czech_iso_accent)        keymap_to_set="cs.latin2.qwertz"      ;;
	danish_cp865)            keymap_to_set="danish.cp865"          ;;
	danish_iso)              keymap_to_set="danish.iso"            ;;
	estonian_cp850)          keymap_to_set="estonian.cp850"        ;;
	estonian_iso)            keymap_to_set="estonian.iso"          ;;
	estonian_iso_15)         keymap_to_set="estonian.iso15"        ;;
	finnish_cp850)           keymap_to_set="finnish.cp850"         ;;
	finnish_iso)             keymap_to_set="finnish.iso"           ;;
	french_iso)              keymap_to_set="fr.iso"                ;;
	french_iso_accent)       keymap_to_set="fr.iso.acc"            ;;
	french_iso_macbook)      keymap_to_set="fr.macbook.acc"        ;;
	german_cp850)            keymap_to_set="german.cp850"          ;;
	german_iso)              keymap_to_set="german.iso"            ;;
	greek_101)               keymap_to_set="gr.us101.acc"          ;;
	greek_104)               keymap_to_set="el.iso07"              ;;
	greek_elot)              keymap_to_set="gr.elot.acc"           ;;
	hungarian_101)           keymap_to_set="hu.iso2.101keys"       ;;
	hungarian_102)           keymap_to_set="hu.iso2.102keys"       ;;
	icelandic)               keymap_to_set="icelandic.iso"         ;;
	icelandic_accent)        keymap_to_set="icelandic.iso.acc"     ;;
	italian)                 keymap_to_set="it.iso"                ;;
	japanese_106)            keymap_to_set="jp.106"                ;;
	latin_american)          keymap_to_set="latinamerican"         ;;
	latin_american_accent)   keymap_to_set="latinamerican.iso.acc" ;;
	norway_iso)              keymap_to_set="norwegian.iso"         ;;
	polish_iso)              keymap_to_set="pl_PL.ISO8859-2"       ;;
	portuguese)              keymap_to_set="pt.iso"                ;;
	portuguese_accent)       keymap_to_set="pt.iso.acc"            ;;
	russia_koi8_r)           keymap_to_set="ru.koi8-r"             ;;
	slovak)                  keymap_to_set="sk.iso2"               ;;
	slovenian)               keymap_to_set="si.iso"                ;;
	spanish)                 keymap_to_set="spanish.iso"           ;;
	spanish_accent)          keymap_to_set="spanish.iso.acc"       ;;
	swedish_cp850)           keymap_to_set="swedish.cp850"         ;;
	swedish_iso)             keymap_to_set="swedish.iso"           ;;
	swiss_french_cp850)      keymap_to_set="swissfrench.cp850"     ;;
	swiss_french_iso)        keymap_to_set="swissfrench.iso"       ;;
	swiss_french_iso_accent) keymap_to_set="swissfrench.iso.acc"   ;;
	swiss_german_cp850)      keymap_to_set="swissgerman.cp850"     ;;
	swiss_german_iso)        keymap_to_set="swissgerman.iso"       ;;
	swiss_german_iso_accent) keymap_to_set="swissgerman.iso.acc"   ;;
	uk_cp850)                keymap_to_set="uk.cp850"              ;;
	uk_iso)                  keymap_to_set="uk.iso"                ;;
	ukrainian_koi8_u)        keymap_to_set="ua.koi8-u"             ;;
	ukrainian_koi8_u_koi8_r) keymap_to_set="ua.koi8-u.shift.alt"   ;;
	usa_capslock_ctrl)       keymap_to_set="us.pc-ctrl"            ;;
	usa_dvorak)              keymap_to_set="us.dvorak"             ;;
	usa_dvorak_left)         keymap_to_set="us.dvorakl"            ;;
	usa_dvorak_right)        keymap_to_set="us.dvorakr"            ;;
	usa_emacs)               keymap_to_set="us.emacs"              ;;
	usa_iso)                 keymap_to_set="us.iso"                ;;
	usa_unix)                keymap_to_set="us.unix"               ;;
	esac

	if [ "$keymap_to_set" ]; then
		f_sysrc_set keymap "$keymap_to_set" || f_die
		break
	else
		f_die 1 "$msg_unknown_keymap"
	fi
done

exit $SUCCESS

################################################################################
# END
################################################################################
@


1.18
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/252980
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d16 1
a16 1
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, THE
d20 1
a20 1
# DAMAGES (INLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 252980 2013-07-07 18:21:30Z dteske $
@


1.17
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/252178
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d4 1
a4 1
# All Rights Reserved.
d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 252178 2013-06-24 20:58:54Z dteske $
@


1.17.2.1
log
@file keymap was added on branch RELENG_9 on 2013-07-07 20:03:17 +0000
@
text
@d1 333
@


1.17.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/252995
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 333
#!/bin/sh
#-
# Copyright (c) 2012-2013 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: stable/9/usr.sbin/bsdconfig/console/keymap 252995 2013-07-07 19:13:34Z dteske $
#
############################################################ INCLUDES

BSDCFG_SHARE="/usr/share/bsdconfig"
. $BSDCFG_SHARE/common.subr || exit 1
f_dprintf "%s: loading includes..." "$0"
f_include $BSDCFG_SHARE/dialog.subr
f_include $BSDCFG_SHARE/mustberoot.subr
f_include $BSDCFG_SHARE/sysrc.subr

BSDCFG_LIBE="/usr/libexec/bsdconfig" APP_DIR="080.console"
f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr

ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
[ $? -eq $SUCCESS -a "$ipgm" ] && pgm="$ipgm"

############################################################ CONFIGURATION

#
# List of keymap names
#
KEYMAP_NAMES="
	belgian                  brazil_cp850             brazil_iso
	brazil_iso_accent        bulgarian_bds            bulgarian_phonetic
	central_european_iso     croatian_iso             czech_iso_accent
	danish_cp865             danish_iso               estonian_cp850
	estonian_iso             estonian_iso_15          finnish_cp850
	finnish_iso              french_iso               french_iso_accent
	french_iso_macbook       german_cp850             german_iso
	greek_101                greek_104                greek_elot
	hungarian_101            hungarian_102            icelandic
	icelandic_accent         italian                  japanese_106
	latin_american           latin_american_accent    norway_iso
	polish_iso               portuguese               portuguese_accent
	russia_koi8_r            slovak                   slovenian
	spanish                  spanish_accent           swedish_cp850
	swedish_iso              swiss_french_cp850       swiss_french_iso
	swiss_french_iso_accent  swiss_german_cp850       swiss_german_iso
	swiss_german_iso_accent  uk_cp850                 uk_iso
	ukrainian_koi8_u         ukrainian_koi8_u_koi8_r  usa_capslock_ctrl
	usa_dvorak               usa_dvorak_left          usa_dvorak_right
	usa_emacs                usa_iso                  usa_unix
" # END-QUOTE

############################################################ FUNCTIONS

# dialog_menu_main
#
# Display the dialog(1)-based application main menu.
#
dialog_menu_main()
{
	local prompt="$msg_keymap_menu_text"
	local menu_list defaultitem= # Calculated below
	local hline="$hline_choose_a_keyboard_map"

	#
	# Export variables for awk(1) ENVIRON visibility
	#
	local name
	for name in $KEYMAP_NAMES; do
		export msg_$name msg_${name}_desc
	done

	#
	# Generate a sorted list of keymaps. If the first letter of the keymap
	# name is unique (case-insensitive) then it is used as the tag to allow
	# the user to jump to that entry.
	#
	menu_list=$(
		for name in $KEYMAP_NAMES; do
			eval echo \"\$msg_$name\" msg_$name
		done | sort | awk 'BEGIN { prefix = "" }
		{
			cur_prefix = tolower(substr(ENVIRON[$NF], 1, 1))
			printf "'\''"
			if ( prefix != cur_prefix )
				prefix = cur_prefix
			else
				printf " "
			printf "%s'\'' '\''%s'\''\n",
			       ENVIRON[$NF], ENVIRON[$NF"_desc"]
		}'
	)

	local height width rows
	eval f_dialog_menu_size height width rows \
	                        \"\$DIALOG_TITLE\"     \
	                        \"\$DIALOG_BACKTITLE\" \
	                        \"\$prompt\"           \
	                        \"\$hline\"            \
	                        $menu_list

	case "$( f_sysrc_get keymap )" in
	be.iso)                defaultitem="$msg_belgian"                 ;;
	br275.cp850)           defaultitem="$msg_brazil_cp850"            ;;
	br275.iso)             defaultitem="$msg_brazil_iso"              ;;
	br275.iso.acc)         defaultitem="$msg_brazil_iso_accent"       ;;
	bg.bds.ctrlcaps)       defaultitem="$msg_bulgarian_bds"           ;;
	bg.phonetic.ctrlcaps)  defaultitem="$msg_bulgarian_phonetic"      ;;
	ce.iso2)               defaultitem="$msg_central_european_iso"    ;;
	hr.iso)                defaultitem="$msg_croatian_iso"            ;;
	cs.latin2.qwertz)      defaultitem="$msg_czech_iso_accent"        ;;
	danish.cp865)          defaultitem="$msg_danish_cp865"            ;;
	danish.iso)            defaultitem="$msg_danish_iso"              ;;
	estonian.cp850)        defaultitem="$msg_estonian_cp850"          ;;
	estonian.iso)          defaultitem="$msg_estonian_iso"            ;;
	estonian.iso15)        defaultitem="$msg_estonian_iso_15"         ;;
	finnish.cp850)         defaultitem="$msg_finnish_cp850"           ;;
	finnish.iso)           defaultitem="$msg_finnish_iso"             ;;
	fr.iso)                defaultitem="$msg_french_iso"              ;;
	fr.iso.acc)            defaultitem="$msg_french_iso_accent"       ;;
	fr.macbook.acc)        defaultitem="$msg_french_iso_macbook"      ;;
	german.cp850)          defaultitem="$msg_german_cp850"            ;;
	german.iso)            defaultitem="$msg_german_iso"              ;;
	gr.us101.acc)          defaultitem="$msg_greek_101"               ;;
	el.iso07)              defaultitem="$msg_greek_104"               ;;
	gr.elot.acc)           defaultitem="$msg_greek_elot"              ;;
	hu.iso2.101keys)       defaultitem="$msg_hungarian_101"           ;;
	hu.iso2.102keys)       defaultitem="$msg_hungarian_102"           ;;
	icelandic.iso)         defaultitem="$msg_icelandic"               ;;
	icelandic.iso.acc)     defaultitem="$msg_icelandic_accent"        ;;
	it.iso)                defaultitem="$msg_italian"                 ;;
	jp.106)                defaultitem="$msg_japanese_106"            ;;
	latinamerican)         defaultitem="$msg_latin_american"          ;;
	latinamerican.iso.acc) defaultitem="$msg_latin_american_accent"   ;;
	norwegian.iso)         defaultitem="$msg_norway_iso"              ;;
	pl_PL.ISO8859-2)       defaultitem="$msg_polish_iso"              ;;
	pt.iso)                defaultitem="$msg_portuguese"              ;;
	pt.iso.acc)            defaultitem="$msg_portuguese_accent"       ;;
	ru.koi8-r)             defaultitem="$msg_russia_koi8_r"           ;;
	sk.iso2)               defaultitem="$msg_slovak"                  ;;
	si.iso)                defaultitem="$msg_slovenian"               ;;
	spanish.iso)           defaultitem="$msg_spanish"                 ;;
	spanish.iso.acc)       defaultitem="$msg_spanish_accent"          ;;
	swedish.cp850)         defaultitem="$msg_swedish_cp850"           ;;
	swedish.iso)           defaultitem="$msg_swedish_iso"             ;;
	swissfrench.cp850)     defaultitem="$msg_swiss_french_cp850"      ;;
	swissfrench.iso)       defaultitem="$msg_swiss_french_iso"        ;;
	swissfrench.iso.acc)   defaultitem="$msg_swiss_french_iso_accent" ;;
	swissgerman.cp850)     defaultitem="$msg_swiss_german_cp850"      ;;
	swissgerman.iso)       defaultitem="$msg_swiss_german_iso"        ;;
	swissgerman.iso.acc)   defaultitem="$msg_swiss_german_iso_accent" ;;
	uk.cp850)              defaultitem="$msg_uk_cp850"                ;;
	uk.iso)                defaultitem="$msg_uk_iso"                  ;;
	ua.koi8-u)             defaultitem="$msg_ukrainian_koi8_u"        ;;
	ua.koi8-u.shift.alt)   defaultitem="$msg_ukrainian_koi8_u_koi8_r" ;;
	us.pc-ctrl)            defaultitem="$msg_usa_capslock_ctrl"       ;;
	us.dvorak)             defaultitem="$msg_usa_dvorak"              ;;
	us.dvorakl)            defaultitem="$msg_usa_dvorak_left"         ;;
	us.dvorakr)            defaultitem="$msg_usa_dvorak_right"        ;;
	us.emacs)              defaultitem="$msg_usa_emacs"               ;;
	us.iso)                defaultitem="$msg_usa_iso"                 ;;
	us.unix)               defaultitem="$msg_usa_unix"                ;;
	esac

	# The defaultitem may have to be indented to match the menu_list
	if [ "$defaultitem" ]; then
		( eval set -- $menu_list
		  while [ $# -gt 0 ]; do
		  	[ "$defaultitem" = "$1" ] && break
		  	[ " $defaultitem" = "$1" ] && exit 0
		  	shift 2 # tag/item
		  done
		  exit 1 # No modification needed
		) && defaultitem=" $defaultitem"
	fi

	local menu_choice
	menu_choice=$( eval $DIALOG \
		--title \"\$DIALOG_TITLE\"         \
		--backtitle \"\$DIALOG_BACKTITLE\" \
		--hline \"\$hline\"                \
		--ok-label \"\$msg_ok\"            \
		--cancel-label \"\$msg_cancel\"    \
		--default-item \"\$defaultitem\"   \
		--menu \"\$prompt\"                \
		$height $width $rows               \
		$menu_list                         \
		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
	)
	local retval=$?
	f_dialog_menutag_store -s "$menu_choice"
	return $retval
}

############################################################ MAIN

# Incorporate rc-file if it exists
[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc"

#
# Process command-line arguments
#
while getopts h$GETOPTS_STDARGS flag; do
	case "$flag" in
	h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm" ;;
	esac
done
shift $(( $OPTIND - 1 ))

#
# Initialize
#
f_dialog_title "$msg_system_console_keymap"
f_dialog_backtitle "${ipgm:+bsdconfig }$pgm"
f_mustberoot_init

#
# Launch application main menu
#
while :; do
	dialog_menu_main || f_die
	f_dialog_menutag_fetch mtag

	#
	# Reverse the users choice into the variable name
	#
	keymap_name=
	mtag="${mtag# }" # remove single leading-space if-present
	for name in $KEYMAP_NAMES; do
		if [ "$( eval echo \"\$msg_$name\" )" = "$mtag" ]; then
			keymap_name="$name"
			break
		fi
	done

	[ "$keymap_name" ] || continue

	keymap_to_set=
	case "$keymap_name" in
	belgian)                 keymap_to_set="be.iso"                ;;
	brazil_cp850)            keymap_to_set="br275.cp850"           ;;
	brazil_iso)              keymap_to_set="br275.iso"             ;;
	brazil_iso_accent)       keymap_to_set="br275.iso.acc"         ;;
	bulgarian_bds)           keymap_to_set="bg.bds.ctrlcaps"       ;;
	bulgarian_phonetic)      keymap_to_set="bg.phonetic.ctrlcaps"  ;;
	central_european_iso)    keymap_to_set="ce.iso2"               ;;
	croatian_iso)            keymap_to_set="hr.iso"                ;;
	czech_iso_accent)        keymap_to_set="cs.latin2.qwertz"      ;;
	danish_cp865)            keymap_to_set="danish.cp865"          ;;
	danish_iso)              keymap_to_set="danish.iso"            ;;
	estonian_cp850)          keymap_to_set="estonian.cp850"        ;;
	estonian_iso)            keymap_to_set="estonian.iso"          ;;
	estonian_iso_15)         keymap_to_set="estonian.iso15"        ;;
	finnish_cp850)           keymap_to_set="finnish.cp850"         ;;
	finnish_iso)             keymap_to_set="finnish.iso"           ;;
	french_iso)              keymap_to_set="fr.iso"                ;;
	french_iso_accent)       keymap_to_set="fr.iso.acc"            ;;
	french_iso_macbook)      keymap_to_set="fr.macbook.acc"        ;;
	german_cp850)            keymap_to_set="german.cp850"          ;;
	german_iso)              keymap_to_set="german.iso"            ;;
	greek_101)               keymap_to_set="gr.us101.acc"          ;;
	greek_104)               keymap_to_set="el.iso07"              ;;
	greek_elot)              keymap_to_set="gr.elot.acc"           ;;
	hungarian_101)           keymap_to_set="hu.iso2.101keys"       ;;
	hungarian_102)           keymap_to_set="hu.iso2.102keys"       ;;
	icelandic)               keymap_to_set="icelandic.iso"         ;;
	icelandic_accent)        keymap_to_set="icelandic.iso.acc"     ;;
	italian)                 keymap_to_set="it.iso"                ;;
	japanese_106)            keymap_to_set="jp.106"                ;;
	latin_american)          keymap_to_set="latinamerican"         ;;
	latin_american_accent)   keymap_to_set="latinamerican.iso.acc" ;;
	norway_iso)              keymap_to_set="norwegian.iso"         ;;
	polish_iso)              keymap_to_set="pl_PL.ISO8859-2"       ;;
	portuguese)              keymap_to_set="pt.iso"                ;;
	portuguese_accent)       keymap_to_set="pt.iso.acc"            ;;
	russia_koi8_r)           keymap_to_set="ru.koi8-r"             ;;
	slovak)                  keymap_to_set="sk.iso2"               ;;
	slovenian)               keymap_to_set="si.iso"                ;;
	spanish)                 keymap_to_set="spanish.iso"           ;;
	spanish_accent)          keymap_to_set="spanish.iso.acc"       ;;
	swedish_cp850)           keymap_to_set="swedish.cp850"         ;;
	swedish_iso)             keymap_to_set="swedish.iso"           ;;
	swiss_french_cp850)      keymap_to_set="swissfrench.cp850"     ;;
	swiss_french_iso)        keymap_to_set="swissfrench.iso"       ;;
	swiss_french_iso_accent) keymap_to_set="swissfrench.iso.acc"   ;;
	swiss_german_cp850)      keymap_to_set="swissgerman.cp850"     ;;
	swiss_german_iso)        keymap_to_set="swissgerman.iso"       ;;
	swiss_german_iso_accent) keymap_to_set="swissgerman.iso.acc"   ;;
	uk_cp850)                keymap_to_set="uk.cp850"              ;;
	uk_iso)                  keymap_to_set="uk.iso"                ;;
	ukrainian_koi8_u)        keymap_to_set="ua.koi8-u"             ;;
	ukrainian_koi8_u_koi8_r) keymap_to_set="ua.koi8-u.shift.alt"   ;;
	usa_capslock_ctrl)       keymap_to_set="us.pc-ctrl"            ;;
	usa_dvorak)              keymap_to_set="us.dvorak"             ;;
	usa_dvorak_left)         keymap_to_set="us.dvorakl"            ;;
	usa_dvorak_right)        keymap_to_set="us.dvorakr"            ;;
	usa_emacs)               keymap_to_set="us.emacs"              ;;
	usa_iso)                 keymap_to_set="us.iso"                ;;
	usa_unix)                keymap_to_set="us.unix"               ;;
	esac

	if [ "$keymap_to_set" ]; then
		f_sysrc_set keymap "$keymap_to_set" || f_die
		break
	else
		f_die 1 "$msg_unknown_keymap"
	fi
done

exit $SUCCESS

################################################################################
# END
################################################################################
@


1.17.2.3
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/263791
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d27 1
a27 1
# $FreeBSD: stable/9/usr.sbin/bsdconfig/console/keymap 263791 2014-03-27 03:20:47Z dteske $
d41 2
a42 2
f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" ipgm &&
	pgm="${ipgm:-$pgm}"
d249 4
a252 2
		debug= f_getvar msg_$name msg
		[ "$msg" = "$mtag" ] && keymap_name="$name" break
d322 1
a322 2
		f_eval_catch "$0" f_sysrc_set \
			'f_sysrc_set keymap "%s"' "$keymap_to_set" || f_die
@


1.16
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/251907
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 251907 2013-06-18 08:22:51Z dteske $
d224 1
a224 1
	h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
@


1.15
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/251905
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 251905 2013-06-18 07:36:09Z dteske $
d325 1
a325 1
		f_die "$msg_unknown_keymap"
@


1.14
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/251904
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 251904 2013-06-18 07:33:45Z dteske $
d257 1
d259 60
a318 180
	belgian)
		f_sysrc_set keymap "be.iso" || f_die
		break ;;
	brazil_cp850)
		f_sysrc_set keymap "br275.cp850" || f_die
		break ;;
	brazil_iso)
		f_sysrc_set keymap "br275.iso" || f_die
		break ;;
	brazil_iso_accent)
		f_sysrc_set keymap "br275.iso.acc" || f_die
		break ;;
	bulgarian_bds)
		f_sysrc_set keymap "bg.bds.ctrlcaps" || f_die
		break ;;
	bulgarian_phonetic)
		f_sysrc_set keymap "bg.phonetic.ctrlcaps" || f_die
		break ;;
	central_european_iso)
		f_sysrc_set keymap "ce.iso2" || f_die
		break ;;
	croatian_iso)
		f_sysrc_set keymap "hr.iso" || f_die
		break ;;
	czech_iso_accent)
		f_sysrc_set keymap "cs.latin2.qwertz" || f_die
		break ;;
	danish_cp865)
		f_sysrc_set keymap "danish.cp865" || f_die
		break ;;
	danish_iso)
		f_sysrc_set keymap "danish.iso" || f_die
		break ;;
	estonian_cp850)
		f_sysrc_set keymap "estonian.cp850" || f_die
		break ;;
	estonian_iso)
		f_sysrc_set keymap "estonian.iso" || f_die
		break ;;
	estonian_iso_15)
		f_sysrc_set keymap "estonian.iso15" || f_die
		break ;;
	finnish_cp850)
		f_sysrc_set keymap "finnish.cp850" || f_die
		break ;;
	finnish_iso)
		f_sysrc_set keymap "finnish.iso" || f_die
		break ;;
	french_iso)
		f_sysrc_set keymap "fr.iso" || f_die
		break ;;
	french_iso_accent)
		f_sysrc_set keymap "fr.iso.acc" || f_die
		break ;;
	french_iso_macbook)
		f_sysrc_set keymap "fr.macbook.acc" || f_die
		break ;;
	german_cp850)
		f_sysrc_set keymap "german.cp850" || f_die
		break ;;
	german_iso)
		f_sysrc_set keymap "german.iso" || f_die
		break ;;
	greek_101)
		f_sysrc_set keymap "gr.us101.acc" || f_die
		break ;;
	greek_104)
		f_sysrc_set keymap "el.iso07" || f_die
		break ;;
	greek_elot)
		f_sysrc_set keymap "gr.elot.acc" || f_die
		break ;;
	hungarian_101)
		f_sysrc_set keymap "hu.iso2.101keys" || f_die
		break ;;
	hungarian_102)
		f_sysrc_set keymap "hu.iso2.102keys" || f_die
		break ;;
	icelandic)
		f_sysrc_set keymap "icelandic.iso" || f_die
		break ;;
	icelandic_accent)
		f_sysrc_set keymap "icelandic.iso.acc" || f_die
		break ;;
	italian)
		f_sysrc_set keymap "it.iso" || f_die
		break ;;
	japanese_106)
		f_sysrc_set keymap "jp.106" || f_die
		break ;;
	latin_american)
		f_sysrc_set keymap "latinamerican" || f_die
		break ;;
	latin_american_accent)
		f_sysrc_set keymap "latinamerican.iso.acc" || f_die
		break ;;
	norway_iso)
		f_sysrc_set keymap "norwegian.iso" || f_die
		break ;;
	polish_iso)
		f_sysrc_set keymap "pl_PL.ISO8859-2" || f_die
		break ;;
	portuguese)
		f_sysrc_set keymap "pt.iso" || f_die
		break ;;
	portuguese_accent)
		f_sysrc_set keymap "pt.iso.acc" || f_die
		break ;;
	russia_koi8_r)
		f_sysrc_set keymap "ru.koi8-r" || f_die
		break ;;
	slovak) 
		f_sysrc_set keymap "sk.iso2" || f_die
		break ;;
	slovenian)
		f_sysrc_set keymap "si.iso" || f_die
		break ;;
	spanish)
		f_sysrc_set keymap "spanish.iso" || f_die
		break ;;
	spanish_accent)
		f_sysrc_set keymap "spanish.iso.acc" || f_die
		break ;;
	swedish_cp850)
		f_sysrc_set keymap "swedish.cp850" || f_die
		break ;;
	swedish_iso)
		f_sysrc_set keymap "swedish.iso" || f_die
		break ;;
	swiss_french_cp850)
		f_sysrc_set keymap "swissfrench.cp850" || f_die
		break ;;
	swiss_french_iso)
		f_sysrc_set keymap "swissfrench.iso" || f_die
		break ;;
	swiss_french_iso_accent)
		f_sysrc_set keymap "swissfrench.iso.acc" || f_die
		break ;;
	swiss_german_cp850)
		f_sysrc_set keymap "swissgerman.cp850" || f_die
		break ;;
	swiss_german_iso)
		f_sysrc_set keymap "swissgerman.iso" || f_die
		break ;;
	swiss_german_iso_accent)
		f_sysrc_set keymap "swissgerman.iso.acc" || f_die
		break ;;
	uk_cp850)
		f_sysrc_set keymap "uk.cp850" || f_die
		break ;;
	uk_iso)
		f_sysrc_set keymap "uk.iso" || f_die
		break ;;
	ukrainian_koi8_u)
		f_sysrc_set keymap "ua.koi8-u" || f_die
		break ;;
	ukrainian_koi8_u_koi8_r)
		f_sysrc_set keymap "ua.koi8-u.shift.alt" || f_die
		break ;;
	usa_capslock_ctrl)
		f_sysrc_set keymap "us.pc-ctrl" || f_die
		break ;;
	usa_dvorak)
		f_sysrc_set keymap "us.dvorak" || f_die
		break ;;
	usa_dvorak_left)
		f_sysrc_set keymap "us.dvorakl" || f_die
		break ;;
	usa_dvorak_right)
		f_sysrc_set keymap "us.dvorakr" || f_die
		break ;;
	usa_emacs)
		f_sysrc_set keymap "us.emacs" || f_die
		break ;;
	usa_iso)
		f_sysrc_set keymap "us.iso" || f_die
		break ;;
	usa_unix)
		f_sysrc_set keymap "us.unix" || f_die
		break ;;
d320 7
@


1.13
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/251264
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 251264 2013-06-02 20:02:50Z dteske $
d122 60
a181 60
	be.iso) defaultitem="$msg_belgian";;
	br275.cp850) defaultitem="$msg_brazil_cp850";;
	br275.iso) defaultitem="$msg_brazil_iso";;
	br275.iso.acc) defaultitem="$msg_brazil_iso_accent";;
	bg.bds.ctrlcaps) defaultitem="$msg_bulgarian_bds";;
	bg.phonetic.ctrlcaps) defaultitem="$msg_bulgarian_phonetic";;
	ce.iso2) defaultitem="$msg_central_european_iso";;
	hr.iso) defaultitem="$msg_croatian_iso";;
	cs.latin2.qwertz) defaultitem="$msg_czech_iso_accent";;
	danish.cp865) defaultitem="$msg_danish_cp865";;
	danish.iso) defaultitem="$msg_danish_iso";;
	estonian.cp850) defaultitem="$msg_estonian_cp850";;
	estonian.iso) defaultitem="$msg_estonian_iso";;
	estonian.iso15) defaultitem="$msg_estonian_iso_15";;
	finnish.cp850) defaultitem="$msg_finnish_cp850";;
	finnish.iso) defaultitem="$msg_finnish_iso";;
	fr.iso) defaultitem="$msg_french_iso";;
	fr.iso.acc) defaultitem="$msg_french_iso_accent";;
	fr.macbook.acc) defaultitem="$msg_french_iso_macbook";;
	german.cp850) defaultitem="$msg_german_cp850";;
	german.iso) defaultitem="$msg_german_iso";;
	gr.us101.acc) defaultitem="$msg_greek_101";;
	el.iso07) defaultitem="$msg_greek_104";;
	gr.elot.acc) defaultitem="$msg_greek_elot";;
	hu.iso2.101keys) defaultitem="$msg_hungarian_101";;
	hu.iso2.102keys) defaultitem="$msg_hungarian_102";;
	icelandic.iso) defaultitem="$msg_icelandic";;
	icelandic.iso.acc) defaultitem="$msg_icelandic_accent";;
	it.iso) defaultitem="$msg_italian";;
	jp.106) defaultitem="$msg_japanese_106";;
	latinamerican) defaultitem="$msg_latin_american";;
	latinamerican.iso.acc) defaultitem="$msg_latin_american_accent";;
	norwegian.iso) defaultitem="$msg_norway_iso";;
	pl_PL.ISO8859-2) defaultitem="$msg_polish_iso";;
	pt.iso) defaultitem="$msg_portuguese";;
	pt.iso.acc) defaultitem="$msg_portuguese_accent";;
	ru.koi8-r) defaultitem="$msg_russia_koi8_r";;
	sk.iso2) defaultitem="$msg_slovak";;
	si.iso) defaultitem="$msg_slovenian";;
	spanish.iso) defaultitem="$msg_spanish";;
	spanish.iso.acc) defaultitem="$msg_spanish_accent";;
	swedish.cp850) defaultitem="$msg_swedish_cp850";;
	swedish.iso) defaultitem="$msg_swedish_iso";;
	swissfrench.cp850) defaultitem="$msg_swiss_french_cp850";;
	swissfrench.iso) defaultitem="$msg_swiss_french_iso";;
	swissfrench.iso.acc) defaultitem="$msg_swiss_french_iso_accent";;
	swissgerman.cp850) defaultitem="$msg_swiss_german_cp850";;
	swissgerman.iso) defaultitem="$msg_swiss_german_iso";;
	swissgerman.iso.acc) defaultitem="$msg_swiss_german_iso_accent";;
	uk.cp850) defaultitem="$msg_uk_cp850";;
	uk.iso) defaultitem="$msg_uk_iso";;
	ua.koi8-u) defaultitem="$msg_ukrainian_koi8_u";;
	ua.koi8-u.shift.alt) defaultitem="$msg_ukrainian_koi8_u_koi8_r";;
	us.pc-ctrl) defaultitem="$msg_usa_capslock_ctrl";;
	us.dvorak) defaultitem="$msg_usa_dvorak";;
	us.dvorakl) defaultitem="$msg_usa_dvorak_left";;
	us.dvorakr) defaultitem="$msg_usa_dvorak_right";;
	us.emacs) defaultitem="$msg_usa_emacs";;
	us.iso) defaultitem="$msg_usa_iso";;
	us.unix) defaultitem="$msg_usa_unix";;
@


1.12
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/251236
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 251236 2013-06-01 23:58:44Z dteske $
d80 2
a81 1
	local menu_list defaultitem=
a82 1
	local prompt="$msg_keymap_menu_text"
@


1.11
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/251190
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 251190 2013-05-31 19:07:17Z dteske $
d196 2
a197 2
	local dialog_menu
	dialog_menu=$( eval $DIALOG \
d210 1
a210 1
	setvar DIALOG_MENU_$$ "$dialog_menu"
d240 2
a241 5
	dialog_menu_main
	retval=$?
	mtag=$( f_dialog_menutag )

	[ $retval -eq 0 ] || f_die
@


1.10
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/250633
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 250633 2013-05-14 03:21:13Z dteske $
d80 1
a80 1
	local menu_list size defaultitem=
d113 7
a119 6
	size=$( eval f_dialog_menu_size \
	        	\"\$DIALOG_TITLE\"     \
	        	\"\$DIALOG_BACKTITLE\" \
	                \"\$prompt\"           \
	        	\"\$hline\"            \
	        	$menu_list             )
d204 2
a205 1
		--menu \"\$prompt\" $size          \
@


1.9
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/249751
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 249751 2013-04-22 05:52:06Z dteske $
d220 1
a220 1
while getopts dD:hSX flag; do
@


1.8
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/249746
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 249746 2013-04-22 05:02:34Z dteske $
d80 1
a80 1
	local menu_list size
d120 75
d197 1
a197 1
		--clear --title \"\$DIALOG_TITLE\" \
d202 1
@


1.7
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/244675
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d3 1
a3 1
# Copyright (c) 2012 Devin Teske
d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 244675 2012-12-25 10:47:45Z dteske $
d144 1
a144 1
while getopts hSX flag; do
@


1.6
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/244674
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 244674 2012-12-25 09:30:25Z dteske $
d33 1
@


1.5
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/243112
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r243112 | dteske | 2012-11-16 00:59:11 +0000 (Fri, 16 Nov 2012) | 11 lines
## SVN ##
## SVN ## Replicate a feature from sysinstall documented in
## SVN ## stable/9/usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## To get a list of modules you can link to, see `bsdconfig -h' output.
## SVN ##
## SVN ## Approved by:	adrian (co-mentor) (implicit)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 243112 2012-11-16 00:59:11Z dteske $
a152 1
f_dialog_init
@


1.4
log
@Switching exporter and resync
@
text
@d27 1
a27 1
# $FreeBSD: head/usr.sbin/bsdconfig/console/keymap 240768 2012-09-20 23:44:13Z dteske $
d40 1
a40 1
ipgm=$( f_index_menu_selection $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
@


1.3
log
@SVN rev 240768 on 2012-09-20 23:44:13Z by dteske

Change all invocations of dialog(1) to no-longer require temporary files.
This allows bsdconfig to -- like bsdinstall -- operate from read-only media.

Reviewed by:	adrian (co-mentor)
Approved by:	adrian (co-mentor)
@
text
@d27 1
a27 1
# $FreeBSD$
@


1.2
log
@SVN rev 240684 on 2012-09-18 22:28:42Z by dteske

Move major includes into /usr/share/bsdconfig for easy external access.

Reviewed by:	adrian (co-mentor)
Approved by:	adrian (co-mentor)
@
text
@d119 2
a120 1
	eval $DIALOG \
d128 5
a132 1
		2> "$DIALOG_TMPDIR/dialog.menu.$$"
@


1.1
log
@SVN rev 238438 on 2012-07-14 03:16:57Z by dteske

Import bsdconfig(8) as a replacement for the post-install abilities of
deprecated sysinstall(8). NOTE: WITH_BSDCONFIG is currently required.

Submitted by:	Devin Teske (dteske), Ron McDowell <rcm@@fuzzwad.org>
Reviewed by:	Ron McDowell <rcm@@fuzzwad.org>
Approved by:	Ed Maste (emaste)
@
text
@d31 5
a35 5
BSDCFG_LIBE="/usr/libexec/bsdconfig"
. $BSDCFG_LIBE/include/common.subr || exit 1
f_include $BSDCFG_LIBE/include/dialog.subr
f_include $BSDCFG_LIBE/include/mustberoot.subr
f_include $BSDCFG_LIBE/include/sysrc.subr
d37 1
a37 1
APP_DIR="080.console"
@

