Fix early setting of font

This commit is contained in:
Roy Marples 2007-04-26 08:02:21 +00:00
parent c1d6bfc721
commit 431e8cc84f
3 changed files with 12 additions and 26 deletions

View File

@ -72,14 +72,9 @@ start() {
if [ ${retval} -eq 0 -a -w "${RC_LIBDIR}" ] ; then
mkdir -p "${RC_LIBDIR}"/console
# Pipe errors to null as maps may not be in use
/bin/setfont -o "${RC_LIBDIR}"/console/font 2>/dev/null \
|| rm -f "${RC_LIBDIR}"/console/font
/bin/setfont -om "${RC_LIBDIR}"/console/map 2>/dev/null \
|| rm -f "${RC_LIBDIR}"/console/map
/bin/setfont -ou "${RC_LIBDIR}"/console/unimap 2>/dev/null \
|| rm -f "${RC_LIBDIR}"/console/unimap
for font in /usr/share/consolefonts/"${CONSOLEFONT}".* ; do : ; done
cp "${font}" "${RC_LIBDIR}"/console
echo "$(basename "${font}")" > "${RC_LIBDIR}"/console/font
if [ "${UNICODE}" = "yes" ] ; then
touch "${RC_LIBDIR}"/console/unicode
else

View File

@ -58,10 +58,10 @@ start() {
[ -n "${DUMPKEYS_CHARSET}" ] && dumpkey_opts="-c ${DUMPKEYS_CHARSET}"
dumpkeys ${dumpkey_opts} | loadkeys --unicode
termencoding='\033%%G'
termencoding="%G"
termmsg="UTF-8"
else
termencoding='\033(K'
termencoding="(K"
termmsg="ASCII"
fi
local n=1 ttydev=
@ -70,7 +70,7 @@ start() {
|| ttydev=/dev/tty
ebegin "Setting terminal encoding to" ${termmsg}
while [ ${n} -le "${RC_TTY_NUMBER}" ] ; do
printf "${termencoding}" >"${ttydev}${n}"
printf "\033%s" "${termencoding}" >"${ttydev}${n}"
n=$((${n} + 1))
done
eend 0

View File

@ -87,22 +87,13 @@ get_KV() {
}
# Try and set a font as early as we can
ttydev=${CONSOLE:-/dev/tty1}
if [ ! -c "${ttydev}" ] ; then
[ -c /dev/vc/1 ] && ttydev="/dev/vc/1" || ttydev=
termencoding="(K"
[ -e "${RC_LIBDIR}"/console/unicode ] && termencoding="%G"
printf "\033%s" "${termencoding}" >/dev/console
if [ -r "${RC_LIBDIR}"/console/font ] ; then
font="$(cat "${RC_LIBDIR}"/console/font)"
setfont -C /dev/console "${RC_LIBDIR}"/console/"${font}"
fi
[ -r "${RC_LIBDIR}"/console/font ] \
&& /bin/setfont ${ttydev:+-C} ${ttydev} "${RC_LIBDIR}"/console/font
[ -r "${RC_LIBDIR}"/console/map ] \
&& /bin/setfont ${ttydev:+-C} ${ttydev} -m "${RC_LIBDIR}"/console/map
[ -r "${RC_LIBDIR}"/console/unimap ] \
&& /bin/setfont ${ttydev:+-C} ${ttydev} -u "${RC_LIBDIR}"/console/unimap
if [ -e "${RC_LIBDIR}"/console/unicode ] ; then
eval printf '"\033%%G"' ${ttydev:+>} ${ttydev}
else
eval printf '"\033(K"' ${ttydev:+>} ${ttydev}
fi
unset ttydev
. /etc/init.d/functions.sh
. "${RC_LIBDIR}"/sh/init-functions.sh