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