man/network
man · Ağ

$ tic

Bölüm 1 ·

terminfo giriş açıklaması derleyicisi

Sözdizimi

       tic [-01CDGIKLNTUVacfgrstx] [-e adlar] [-o dizin] [-R altküme] [-v[n]] [-w[n]] dosya

Açıklama

tic komutu, bir terminfo dosyasını kaynak biçiminden derlenmiş biçime çevirir. Derlenmiş biçim, ncurses(3X) içindeki kütüphane rutinleriyle kullanım için gereklidir.

term(5) içinde açıklandığı gibi, veritabanı bir dizin ağacı (terminal girişi başına bir dosya) veya karma (hashed) bir veritabanı (giriş başına bir kayıt) olabilir. tic komutu, nasıl yapılandırıldığına bağlı olarak yalnızca bir tür giriş yazar:

• Dizin ağaçları için, üst düzey dizin (örneğin /usr/share/terminfo) veritabanının konumunu belirtir.

• Karma veritabanları için bir dosya adı gereklidir. Verilen dosya bu adla bulunamazsa ancak sonuna ".db" uzantısı eklenerek bulunabiliyorsa, bu uzantılı dosya kullanılır.

Karma veritabanı için varsayılan ad, varsayılan dizin adıyla aynıdır (yalnızca ".db" uzantısı eklenir).

Her iki durumda da (dizin veya karma veritabanı), tic eğer mevcut değilse kapsayıcıyı oluşturacaktır. Bir dizin için bu, "terminfo.db" dosyasına karşılık bir "terminfo" yaprağı olacaktır.

Sonuçlar normalde /usr/share/terminfo sistem terminfo veritabanına yerleştirilir. Derlenmiş terminal açıklaması farklı bir terminfo veritabanına da yerleştirilebilir. Bunu başarmanın iki yolu vardır:

• İlk olarak, -o seçeneğini kullanarak veya kabuk ortamınızdaki TERMINFO değişkenini geçerli bir veritabanı konumuna ayarlayarak sistem varsayılanını geçersiz kılabilirsiniz.

• İkinci olarak, tic /usr/share/terminfo dizinine veya TERMINFO değişkeniniz kullanılarak belirtilen konuma yazamazsa, $HOME/.terminfo dizinini (veya $HOME/.terminfo.db karma veritabanını) arar; eğer bu konum mevcutsa, giriş oraya yerleştirilir.

terminfo girişlerini okuyan kütüphanelerin sırasıyla şunları kontrol etmesi beklenir:

• TERMINFO ortam değişkeni ile belirtilen bir konum,

• $HOME/.terminfo,

• TERMINFO_DIRS ortam değişkeninde listelenen dizinler,

• derleme sırasında içine dahil edilmiş dizinlerin listesi (@TERMINFO_DIRS@) ve

• sistem terminfo veritabanı (/usr/share/terminfo).

SEÇENEKLER

  • -0: çıktıyı tek bir satırla sınırlandırır

  • -1: çıktıyı tek bir sütunla sınırlandırır

  • -a: tic'e yorum satırı haline getirilmiş yetenekleri (capabilities) göz ardı etmek yerine korumasını söyler. Yetenekler, başlarına bir nokta getirilerek yorum satırı yapılır. Bu seçenek, yorum satırı yapılmış girişleri kullanıcı tanımlı adlar olarak ele aldığı için -x seçeneğini de ayarlar. Eğer kaynak termcap ise, sürüm 6 tarafından zorunlu kılınan 2 karakterli adları kabul eder. Aksi takdirde bunlar göz ardı edilir.

  • -C: Kaynak çevirisini termcap biçimine zorlar. Not: Bu seçenek infocmp(1M)'in -C seçeneğinden farklıdır; çünkü yalnızca yetenek adlarını çevirmekle kalmaz, aynı zamanda terminfo dizgilerini de termcap biçimine çevirir. Çevrilemeyen yetenekler, giriş içinde kendi terminfo adlarıyla bırakılır ancak önlerine iki nokta konularak yorum satırı haline getirilir. Kullanılan asıl biçim, terminfo biçimindeki kaçış karakterleri için bazı geliştirmeler içerir. Daha katı bir BSD uyumlu çeviri için -K seçeneğini ekleyin.

If this is combined with -c, tic makes additional checks to report cases where the terminfo values do not have an exact equivalent in termcap form. For example:

• sgr genellikle dönüştürülemez; çünkü termcap ikiden fazla parametre ile çalışma yeteneğinden yoksundur ve termcap, terminfo'da kullanılan birçok aritmetiksel/mantıksal operatörden yoksundur.

• birden fazla gecikme içeren veya dizginin sonundan önce gecikmeleri olan yetenekler tamamen dönüştürülemez.

  • -c: tic'e dosyayı yalnızca sözdizimi sorunları ve hatalı "use" bağlantıları dahil olmak üzere hatalara karşı kontrol etmesini söyler. Bu seçenekle birlikte -C (-I) belirtirseniz, kod, "use" çözümlemesinden sonra uzunluğu 1023 (4096) bayttan fazla olan girişler hakkında uyarılar yazdıracaktır. Eski termcap kütüphanelerindeki sabit arabellek uzunluğunun yanı sıra arabellek uzunluğunun hatalı kontrol edilmesi (ve terminfo'da belgelenmiş bir sınır) nedeniyle, bu girişler diğer uygulamalarda bellek dökümlerine (core dump) neden olabilir.

tic, parametreli dizgi yeteneklerinin geçerli ifadeler olmasını sağlamak için bunları kontrol eder. Bu kontrolü yalnızca önceden tanımlanmış dizgi yetenekleri için yapar; -x seçeneğiyle tanımlananlar ise göz ardı edilir.

  • -D: tic'e bildiği veritabanı konumlarını yazdırmasını ve çıkmasını söyler. Gösterilen ilk konum, derlenmiş terminal açıklamalarını yazacağı konumdur. tic, yukarıda özetlenen kurallara göre yazılabilir bir veritabanı konumu bulamazsa, veritabanı konumlarının bir listesini yazdırmak yerine bir tanı mesajı yazdırır ve hata vererek çıkar.

-e adlar Yazma ve çevirme işlemlerini virgülle ayrılmış aşağıdaki terminal listesiyle sınırlandırır. Bir terminalin herhangi bir adı veya takma adı listedeki adlardan biriyle eşleşirse, giriş normal şekilde yazılır veya çevrilir. Aksi takdirde bunun için hiçbir çıktı üretilmez. Seçenek değeri bir '/' içeriyorsa, listeyi içeren bir dosya olarak yorumlanır. (Not: tic'in nasıl derlendiğine bağlı olarak, bu seçenek -I veya -C gerektirebilir.)

  • -f: Okunabilirliği artırmak için girintilenmiş if/then/else/endif ifadeleri içeren karmaşık terminfo dizgilerini görüntüler.

  • -G: Sabit sabitleri (constant literals) karakter karşılıkları yerine ondalık (decimal) biçimde görüntüler.

  • -g: Sabit karakter sabitlerini ondalık karşılıkları yerine tırnak içine alınmış biçimde görüntüler.

  • -I: Kaynak çevirisini terminfo biçimine zorlar.

  • -K: termcap biçimine yönelik bazı eski ncurses uzantılarını bastırır, örneğin boşluk için "\s".

  • -L: <term.h> içinde listelenen uzun C değişken adlarını kullanarak kaynak çevirisini terminfo biçimine zorlar.

  • -N: Akıllı varsayılanları devre dışı bırakır. Normalde, termcap'ten terminfo'ya çeviri yaparken derleyici; reset1_string, carriage_return, cursor_left, cursor_down, scroll_forward, tab, newline, key_backspace, key_left ve key_down dizgi yeteneklerinin varsayılanları hakkında bir dizi varsayımda bulunur, ardından doğru değerleri çıkarsamak için artık kullanılmayan (obsolete) termcap yeteneklerini kullanmaya çalışır. Ayrıca normalde bs gibi artık kullanılmayan termcap yeteneklerinin çıktısını bastırır. Bu seçenek, artık kullanılmayan yetenekleri de koruyan daha birebir bir çeviriyi zorlar.

  • -o dizin: Derlenmiş girişleri verilen veritabanı konumuna yazar. TERMINFO ortam değişkenini geçersiz kılar.

-R altküme Çıktıyı belirli bir alt kümeyle sınırlandırır. Bu seçenek, SVr4/XSI Curses terminfo'nun tam setini desteklemeyen SVr1, Ultrix veya HP/UX üzerindekiler gibi eski terminfo sürümleriyle ve SVr4/XSI ile uyumsuz kendi uzantılarına sahip AIX 3.x gibi tamamen bozuk bağlantı noktalarıyla (ports) kullanım içindir. Kullanılabilir alt kümeler "SVr1", "Ultrix", "HP", "BSD" ve "AIX"tir; ayrıntılar için terminfo(5)'e bakın.

  • -r: termcap biçimine çeviri yaparken bile giriş çözümlemesini zorlar (böylece geriye hiçbir tc yeteneği kalmaz). Bu, giriş başına birden fazla tc yeteneğini işlemeyen bir termcap kütüphanesi (sürüm 1.3'e kadar GNU termcap veya 4.3BSD'ye kadar BSD termcap gibi) için bir termcap dosyası hazırlıyorsanız gerekli olabilir.

  • -s: Girişlerin yazıldığı veritabanı konumunu ve derlenen girişlerin sayısını göstererek derlemeyi özetler.

  • -T: Üretilen metin üzerindeki boyut sınırlamalarını kaldırır. Derlenmiş açıklamalar sınırlı olduğundan (örneğin, termcap için 1023, terminfo için 4096) bu seçenek esas olarak test ve analiz için kullanışlıdır.

  • -t: tic'e yorum satırı haline getirilmiş yetenekleri göz ardı etmesini söyler. Normalde terminfo'dan termcap'e çeviri yaparken, çevrilemeyen yetenekler yorum satırı haline getirilir.

  • -U: tic'e kaynak dosyayı ayrıştırdıktan sonra verileri son işlemden (post-process) geçirmemesini söyler. Normalde tic, eski terminfo verilerinde veya termcap'lerde yaygın olarak eksik olan verileri çıkarsar.

  • -V: bu programda kullanılan ncurses sürümünü bildirir ve çıkar.

  • -vn: tic'in ilerleyişini gösteren ayrıntılı (verbose) çıktı izleme bilgilerinin standart hataya (standard error) yazılacağını belirtir. İsteğe bağlı n parametresi, bilginin istenen ayrıntı düzeyini gösteren, 1 ile 10 (dahil) arasında bir sayıdır. Eğer n belirtilmezse, varsayılan düzey 1'dir. Eğer n belirtilir ve 1'den büyük olursa, ayrıntı düzeyi artırılır.

Hata ayıklama (debug) bayrak düzeyleri aşağıdaki gibidir:

1 Oluşturulan ve bağlanan dosyaların adları

2 "use" özelliğiyle ilgili bilgiler

3 Karma (hashing) algoritmasından elde edilen istatistikler

5 Dizgi tablosu (string-table) bellek tahsisleri

7 Dizgi tablosuna yapılan girişler

8 Tarayıcı (scanner) tarafından karşılaşılan simgelerin (tokens) listesi

9 Karma tablosunun oluşturulmasında hesaplanan tüm değerler

Eğer hata ayıklama düzeyi n verilmezse, bir olarak kabul edilir.

  • -wn: çıktının genişliğini belirtir. Parametre isteğe bağlıdır. Belirtilmezse varsayılan değer 60'tır.

  • -x: Bilinmeyen yetenekleri kullanıcı tanımlı olarak ele alır. Yani, tic'in tanımadığı bir yetenek adı sağlarsanız, bunun türünü (boolean, sayı veya dizgi) sözdiziminden çıkarsayacak ve bunun için genişletilmiş bir tablo girişi yapacaktır. Adı “k” ile başlayan kullanıcı tanımlı yetenek dizgileri işlev tuşları (function keys) olarak kabul edilir.

PARAMETRELER dosya kaynak biçiminde bir veya daha fazla terminfo terminal açıklaması içerir [bkz. terminfo(5)]. Dosyadaki her açıklama, belirli bir terminalin yeteneklerini açıklar.

Eğer dosya “-” ise, veriler standart girdiden okunur. Dosya parametresi bir karakter aygıtının (character-device) yolu da olabilir.

İŞLEME tic tarafından tanınan yeteneklerin biri hariç hepsi terminfo(5) içinde belgelenmiştir. İstisna, "use" yeteneğidir.

Şu anda derlenmekte olan bir terminal girişinde bir use=giriş-adı alanı keşfedildiğinde, tic girişi tamamlamak için /usr/share/terminfo dizinindeki ikiliyi (binary) okur. (Öncelikle dosyadan oluşturulan girişler kullanılacaktır. tic, geçerli giriş içinde açıkça tanımlanmış olan yetenekler hariç olmak üzere, giriş-adı içindeki yetenekleri geçerli giriş için yineler.

Bir giriş, örneğin giriş_adı_1, bir use=giriş_adı_2 alanı içerdiğinde, giriş_adı_2 içindeki iptal edilmiş herhangi bir yeteneğin, bu yeteneklerin giriş_adı_1 içinde iptal edilebilmesi için use='den önce giriş_adı_1 içinde de görünmesi gerekir.

Toplam derlenmiş girişler 4096 baytı aşamaz. Ad alanı 512 baytı aşamaz. Maksimum takma ad uzunluğunu (uzun dosya adlarına sahip sistemlerde 32 karakter, aksi takdirde 14 karakter) aşan terminal adları maksimum takma ad uzunluğuna kırpılacak ve bir uyarı mesajı yazdırılacaktır.

Uyumluluk

Geçmişteki bazı tic uygulamalarının, içinde boşluk bulunmayan açıklama alanlarını ek takma adlar veya kısa adlar olarak ele aldığına dair bazı kanıtlar vardır. Bu tic bunu yapmaz, ancak açıklama alanlarının bu şekilde ele alınabileceği durumlarda uyarır ve bunları tehlikeli karakterlere karşı kontrol eder.

Uzantılar

SVr4 tic komutunun aksine, bu uygulama aslında termcap kaynaklarını derleyebilir. Hatta, terminfo ve termcap sözdizimindeki girişler tek bir kaynak dosyada karıştırılabilir. terminfo adlarına eşdeğer kabul edilen termcap adlarının listesi için terminfo(5)'e bakın.

SVr4 kılavuz sayfaları, "use" yeteneklerinin çözümleme kuralları konusunda net değildir. tic'in bu uygulaması; use hedeflerini kaynak dosyasının herhangi bir yerinde veya TERMINFO köklü dosya ağacının herhangi bir yerinde (eğer TERMINFO tanımlanmışsa) veya kullanıcının $HOME/.terminfo veritabanında (eğer mevcutsa) veya (son olarak) sistemin derlenmiş girişlerden oluşan dosya ağacının herhangi bir yerinde bulacaktır.

Bu tic'ten kaynaklanan hata mesajları, GNU C hata mesajlarıyla aynı biçime sahiptir ve GNU Emacs'in derleme (compile) özelliği tarafından ayrıştırılabilir.

-0, -1, -C, -G, -I, -N, -R, -T, -V, -a, -e, -f, -g, -o, -r, -s, -t ve -x seçenekleri SVr4 altında desteklenmez. SVr4 -c modu hatalı use bağlantılarını bildirmez.

System V, TERMINFO açıkça bu konuma ayarlanmadığı sürece girişleri $HOME/.terminfo veritabanınıza derlemez veya bu veritabanından girişleri okumaz.

Dosyalar

/usr/share/terminfo/?/* Derlenmiş terminal açıklaması veritabanı.

Ayrıca Bakınız

infocmp(1M), captoinfo(1M), infotocap(1M), toe(1M), curses(3X), term(5), terminfo(5).

Bu belgede ncurses sürüm 5.7 (yama 20081102) açıklanmaktadır.

Yazar

Eric S. Raymond esr@snark.thyrsus.com ve Thomas E. Dickey dickey@invisible-island.net