From: Kenan Dogan (kndogan@yahoo.com)
Date: Sun 14 Sep 2003 - 12:12:28 EDT
Merhabalar,
Serdar bey, saniyorum asagidaki denemeyi Slackware'de
degil de bocekli :)) bir dagitimda yapmissiniz.
Cunku Slackware'de duzgun calisan komutu merak edip
bir de Mandrake'de denedim, ayni sizin aldiginiz
sonucu aldim. Help'inde goruldugu gibi 3 ayri tarzda
calisabiliyor, 3'unde de ayni tepkiyi veriyor.
> Buyrun putty uzerinden resizecols ne yapabiliyor:
>
> [root@kale char]# resizecons --help
> Usage: resizecons COLSxROWS
> resizecons COLS ROWS
> resizecons -lines ROWS, with ROWS one of 25, 28, 30, 34, 36, 40, 44, 50, 60
> [root@kale char]# resizecons 132 25
> resizecons: bad number of arguments
> [root@kale char]#
>
Zaten "resizcons" un orjinal kaynak kodunda
"bad number of arguments" diye bir hata iletisi de
bulunmuyor. Mandrake bir seyleri karistirmis sanirim.
Diger yandan, eger bu komutu hazirlik asamasini
atlayarak kullanirsaniz yine calismayacakti. Cunku
oncesinde "80x25" , "132x25" isimleriyle dosyalar
yaratilmis ve ilgili dizinlere yerlestirilmis olmasi
gerekiyor. Komut bu dosyalari okuyarak is goruyor.
---------------------------------------
> Hadi stty deneyelim:
>
> stty cols 132
>
> Hic bir sey yok.. Pencere ayni kaliyor,
> 80. kolondan sonrasi ortada yok :))
>
stty cols 132 bu isin tamamlayici ogelerinden biri
yoksa temel ogesi degil. Zaten "resizecons" komutu
isin :
* fiziksel yanini (register)
* font tarafini (icinden "restorefont" u isletiyor)
* stty tarafini (IOCTL ile)
hallediyor. Bir tek TERM degerinin ayarlanmasini
kullaniciya birakiyor. O da belki zorunlu olmaz,
uygulama programi icinden terminfo/tput yontemi
ile cozulebilmesi gerekir.
Bir seyi ozellikle vurguluyorum : Bu calismakta olan
bir cozum bicimi. Eger yerine gececek yine calisan
bir cozum onerilmezse, bazi sakincalarina karsin
gecerliligini korur.
Uygulamanin donanima bagimli hale gelmesi konusundaki
endisenize katiliyorum. Ama bu sakinca, uygulamanin
koduna "terminal secici" (if) kosullar koyarak
ustesinden gelinebilecek bir sey. (En basitinden
linux termcap/terminfo tanimindan linux1 turetilir,
karsi makinaya bu TERM degeri ile baglanilir.
Uygulama yazilimi da bu TERM degerini dikkate alir.
Zaten bu is <Linux konsolun desteklemedigi> escape
kodlari ile yapiliyor olsaydi da, degisik model
terminaller icin yine boyle bir yola basvurulmasi
gerekirdi.)
Simdi gelelim isin hazin tarafina : Ben de bir seyi
gozden kacirdim. Uygulama programi ana (uzak) makinada
calisiyor, 132 kolona gecmesi gereken yerel makina...
Diyelim ki telnet'le baglandik, bu baglanti uzerinden
uzak makinadaki uygulama terminale bir karakter dizisi
ya da bir kontrol karakteri gonderecek, yerel makina
bunu nasil yakalayip bir "kabuk komutu icrasina"
donusturecek ? ("trap" benzeri bir mekanizmaya gerek
var, veya transparent print'in mekanizmasinin benzeri).
Telnet'in man sayfasinda bu amacla kullanilabilecek
gibi gorunen seyler var, ama verilen bilgiler bana
yeterli gorunmedi. Belki de internetten daha marifetli
bir telnet istemcisi aramak gerekir.
Eger siz ya da baska bir liste uyesi telnet uzerinden,
ana-makinadan-tetiklemeli <> yerel-makinada-uygulamali
karakter/komut iletme isi ile ugrastiysaniz, hazir bu
kadar inceleyip denemisken bu yontemi sonuca ulastirip
oyle biraksam diyorum... Bugun olmasa yarin, bir
penguenin isine yarayabilir, hic degilse arsivde kaydi
bulunmus olur.
Toparlarsak; su anki hali ile Linux konsolu 132 kolon
olarak kullanilabiliyor. Eger bunun telnet ile
butunlesmesi saglanabilirse, var olan yarim cozum
tam cozum haline gelecek.
Sorunu listeye ileten arkadastan simdilik ses cikmadigi
icin, ben konuyu burada kesiyorum. Telnet tarafi ile
ilgili bir katki gelirse, onu deneyebilirim.
Esen kalin.
---------------------------------
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software