dosemu - konfiguracja xdos
Jakub Bogusz
qboosh w pld.org.pl
Nie, 12 Maj 2002, 21:33:20 CEST
Trafiło mnie przy próbach testowania fontów z XFree86-fonts-dos.
W /var/lib/dosemu/global.conf jest taki kwiatek:
#v+
## Note GNU sh-utils >= 2.0 changed the default behaviour such
# that it doesn't display the peer for remote connections anymore.
# We need -l option to get this. As GNU sh-utils 1.16 doesn't
# have this option, we detect this case via shell return value.
$xxx = shell("who -l am i 2>/dev/null")
if ($DOSEMU_SHELL_RETURN)
# we have GNU sh-utils < 2.0
$xxx = shell("who am i")
endif
if ( ($DOSEMU_STDIN_IS_CONSOLE eq "1")
|| ( strlen($xxx) && (strchr($xxx, "(" ) < 0 )))
$BEING_ON = "console"
else
if (strstr($xxx, "(:") < 0)
$BEING_ON = "remote"
$REMOTE_HOST = strsplit($xxx, strchr($xxx,"(")+1,99)
$REMOTE_HOST = strdel($REMOTE_HOST, strchr($REMOTE_HOST,")"),99)
else
$BEING_ON = ""
endif
if ( (strchr($DOSEMU_OPTIONS,"X") >=0) && ($DISPLAY ne "") )
$USING_X = (1)
endif
#v-
Ten warunek z uznawaniem braku '(' w wyjściu `who` za uruchomienie
z konsoli jest bez sensu - who pod X nie podaje niczego w nawiasie,
od who na konsoli różni się tylko terminalem.
Zresztą warunek STDIN_IS_CONSOLE tutaj też jest bez sensu - przed chwilą
znalazłem kontrprzykład: "DISPLAY=coś xdos" z konsoli - uruchamia xdosa
pod X, ale xdos to traktuje jako konsolę i olewa zmienne $_X_*
z /etc/dosemu.conf.
Powinno wystarczyć sprawdzanie _najpierw_ opcji -X i $DISPLAY - jeśli są
obie, to należy to uznać za uruchomienie wersji X.
Jeśli nie ma jednej z nich, to sprawdzić STDIN_IS_CONSOLE - jeśli jest
1, to należy uznać za uruchomienie na konsoli.
W przeciwnym wypadku - sesja zdalna.
Ma ktoś lepsze propozycje?
Ktoś jest chętny do zaimplementowania tego w global.conf? :)
--
Jakub Bogusz http://prioris.mini.pw.edu.pl/~qboosh/
Więcej informacji o liście dyskusyjnej pld-devel-pl