From 431e8cc84fe960ec91c3463493ce94df65ef41f2 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Thu, 26 Apr 2007 08:02:21 +0000 Subject: [PATCH] Fix early setting of font --- init.d.Linux/consolefont | 11 +++-------- init.d.Linux/keymaps | 6 +++--- sh.Linux/init.sh | 21 ++++++--------------- 3 files changed, 12 insertions(+), 26 deletions(-) diff --git a/init.d.Linux/consolefont b/init.d.Linux/consolefont index 64003fa5..dc568059 100755 --- a/init.d.Linux/consolefont +++ b/init.d.Linux/consolefont @@ -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 diff --git a/init.d.Linux/keymaps b/init.d.Linux/keymaps index eab90552..0de5833e 100755 --- a/init.d.Linux/keymaps +++ b/init.d.Linux/keymaps @@ -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 diff --git a/sh.Linux/init.sh b/sh.Linux/init.sh index 616c98d2..b8be7237 100755 --- a/sh.Linux/init.sh +++ b/sh.Linux/init.sh @@ -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