[PATCH] kbd.init - numlock dla textmode
Przemysław Białek
lobo w chello.pl
Pon, 11 Paź 2004, 20:48:33 CEST
On Mon, Oct 11, 2004 at 08:19:21PM +0200, Michal Kochanowicz wrote:
> Hej
>
> Będę się trochę czepiał, nie widzę że takie rozwiązania już były w tym
> pliku, więc nie bierz do siebie.
>
> On Mon, Oct 11, 2004 at 08:05:00PM +0200, Przemysław Białek wrote:
> >
> > + # check if devfs (workaround: -a option don't work at all)
> > + if [ -d /dev/vc ]; then
> > + DEVICES="`ls /dev/vc/* | sed 's|/dev/vc/||g'`"
> Hej, no ale z tym sed'em tutaj to lekkie przegięcie :/ Nie lepiej zrobić
> tak:
> DEVICES="`cd /dev/vc; ls `"
> ?
Tutaj akurat przeniosłem kawałek który występował wewnątrz if'a.
>
>
> > + pattern="s/\/dev\/vc\///g"
> > + VC_PATH="/dev/vc/"
> > + else
> > + DEVICES="`cat /etc/inittab | grep '^[0-9]*:' | cut -f1 -d :`"
> > + pattern="s/\/dev\/tty//g"
> > + VC_PATH="/dev/tty"
> > + fi
> > +
> > # don't initialize on multiple terminals if we use fbset
> > # (assume that, in this case fb is loaded as a module)
> > if [ ! -z "$FB" ]; then
> > - # Check for devfs (workaround: -a option don't work at all)
> To też można bez sed:
j.w.
> > - if [ -d /dev/vc ]; then
> > - pattern="s/\/dev\/vc\///g"
> pattern='/dev/vc'
> > - else
> > - pattern="s/\/dev\/tty//g"
> pattern='/dev/tty'
> > - fi
> > -
> > # save old tty number
> > tty=`/usr/bin/tty | sed $pattern`
> tty=`/usr/bin/tty`
> tty=${tty#$pattern}
>
> Albo wogóle tak:
> tty=`/usr/bin/tty`
> tty=${tty##/*/}
Można, tylko już w takie rzeczy się nie bawiłem, nie byłem pewien jak takie
rzeczy się poza bashem zachowują, więc nawet nie próbowałem eksperymentować.
>
> BTW, ciekawe czy i powyższego nie da się uprościć.
>
> itd... trochę nie chce mi się całości przeglądać, ale myślę że używanie
> sed'a do tak prostych rzeczy, to overkill - i strata czasu (procesora).
Teraz masz też w ten sposób robione i nie narzekasz ;).
W załączeniu diffy z twoimi poprawkami :).
--
Pozdrawiam
Przemysław Białek
-------------- następna część ---------
--- kbd.init.orig 2004-06-28 21:24:23.000000000 +0200
+++ kbd.init 2004-10-11 20:44:49.378048752 +0200
@@ -49,36 +49,30 @@
show "Loading console font and map"
busy
+ # check if devfs (workaround: -a option don't work at all)
+ if [ -d /dev/vc ]; then
+ DEVICES="`cd /dev/vc; ls `"
+ VC_PATH="/dev/vc/"
+ else
+ DEVICES="`cat /etc/inittab | grep '^[0-9]*:' | cut -f1 -d :`"
+ VC_PATH="/dev/tty"
+ fi
+
# don't initialize on multiple terminals if we use fbset
# (assume that, in this case fb is loaded as a module)
if [ ! -z "$FB" ]; then
- # Check for devfs (workaround: -a option don't work at all)
- if [ -d /dev/vc ]; then
- pattern="s/\/dev\/vc\///g"
- else
- pattern="s/\/dev\/tty//g"
- fi
-
# save old tty number
- tty=`/usr/bin/tty | sed $pattern`
-
- # check if devfs (workaround: -a option don't work at all)
- if [ -d /dev/vc ]; then
- DEVICES="`ls /dev/vc/* | sed 's|/dev/vc/||g'`"
- else
- DEVICES="`cat /etc/inittab | grep '^[0-9]*:' | cut -f1 -d :`"
- fi
+ tty=`/usr/bin/tty`
+ tty=${tty##/*/}
[ -z "$SET_FONT_TERMINALS" ] && SET_FONT_TERMINALS="$DEVICES"
for cons in $SET_FONT_TERMINALS; do
/usr/bin/open -c $cons -s -w -- $CMD
- if [ "$NUM_LOCK" ]; then
- if [ $NUM_LOCK = "on" ]; then
- /usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D +num
- else
- /usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D -num
- fi
+ if is_yes "$NUM_LOCK"; then
+ /usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D +num
+ else
+ /usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D -num
fi
done
@@ -87,6 +81,11 @@
fi
/usr/bin/switchto $tty
else
+ if is_yes "$NUM_LOCK"; then
+ for cons in $DEVICES; do
+ /usr/bin/setleds -D +num < $VC_PATH$cons
+ done
+ fi
$CMD
fi
ok
-------------- następna część ---------
--- kbd.init.orig 2004-06-28 21:24:23.000000000 +0200
+++ kbd.init 2004-10-11 20:41:07.852725720 +0200
@@ -49,36 +49,30 @@
show "Loading console font and map"
busy
+ # check if devfs (workaround: -a option don't work at all)
+ if [ -d /dev/vc ]; then
+ DEVICES="`cd /dev/vc; ls `"
+ VC_PATH="/dev/vc/"
+ else
+ DEVICES="`cat /etc/inittab | grep '^[0-9]*:' | cut -f1 -d :`"
+ VC_PATH="/dev/tty"
+ fi
+
+ [ -z "$SET_FONT_TERMINALS" ] && SET_FONT_TERMINALS="$DEVICES"
+
# don't initialize on multiple terminals if we use fbset
# (assume that, in this case fb is loaded as a module)
if [ ! -z "$FB" ]; then
- # Check for devfs (workaround: -a option don't work at all)
- if [ -d /dev/vc ]; then
- pattern="s/\/dev\/vc\///g"
- else
- pattern="s/\/dev\/tty//g"
- fi
-
# save old tty number
- tty=`/usr/bin/tty | sed $pattern`
-
- # check if devfs (workaround: -a option don't work at all)
- if [ -d /dev/vc ]; then
- DEVICES="`ls /dev/vc/* | sed 's|/dev/vc/||g'`"
- else
- DEVICES="`cat /etc/inittab | grep '^[0-9]*:' | cut -f1 -d :`"
- fi
-
- [ -z "$SET_FONT_TERMINALS" ] && SET_FONT_TERMINALS="$DEVICES"
+ tty=`/usr/bin/tty`
+ tty=${tty##/*/}
for cons in $SET_FONT_TERMINALS; do
/usr/bin/open -c $cons -s -w -- $CMD
- if [ "$NUM_LOCK" ]; then
- if [ $NUM_LOCK = "on" ]; then
- /usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D +num
- else
- /usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D -num
- fi
+ if is_yes "$NUM_LOCK"; then
+ /usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D +num
+ else
+ /usr/bin/open -c $cons -s -w -- /usr/bin/setleds -D -num
fi
done
@@ -87,6 +81,11 @@
fi
/usr/bin/switchto $tty
else
+ if is_yes "$NUM_LOCK"; then
+ for cons in $SET_FONT_TERMINALS; do
+ /usr/bin/setleds -D +num < $VC_PATH$cons
+ done
+ fi
$CMD
fi
ok
Więcej informacji o liście dyskusyjnej pld-devel-pl