aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2007-04-26 08:02:21 +0000
committerRoy Marples <roy@marples.name>2007-04-26 08:02:21 +0000
commit431e8cc84fe960ec91c3463493ce94df65ef41f2 (patch)
treea80360e058a6fc33d5040c3fc19541cf7023d87b
parentc1d6bfc721eff57798317036004b0d87ce85a068 (diff)
Fix early setting of font
-rwxr-xr-xinit.d.Linux/consolefont11
-rwxr-xr-xinit.d.Linux/keymaps6
-rwxr-xr-xsh.Linux/init.sh21
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