← man/system_admin
infocmp — man infocmp — 80×24
ugur@toprak:~/man/system_admin$man infocmp
Bölüm 1 Sistem Yönetimi

infocmp

terminfo açıklamalarını karşılaştırır veya yazdırır

Özet

        infocmp [-1CDEFGIKLTUVcdegilnpqrtux]
             [-v n] [-s d| i| l| c] [-R alt_küme]
             [-w genişlik] [-A dizin] [-B dizin]
             [terminal_adı...]

Açıklama

infocmp; ikili (binary) bir terminfo girdisini diğer terminfo girdileriyle karşılaştırmak, use= terminfo alanından yararlanmak için bir terminfo açıklamasını yeniden yazmak veya ikili dosyadan (term) gelen bir terminfo açıklamasını çeşitli formatlarda yazdırmak için kullanılabilir. Tüm durumlarda, önce mantıksal (boolean) alanlar yazdırılacak, ardından sayısal alanlar ve son olarak dizgi (string) alanları yazdırılacaktır.

Varsayılan Seçenekler Hiçbir seçenek belirtilmemişse ve sıfır veya bir terminal adı (terminal_adı) belirtilmişse, -I seçeneği varsayılacaktır. Birden fazla terminal adı belirtilmişse, -d seçeneği varsayılacaktır.

Karşılaştırma Seçenekleri [-d] [-c] [-n] infocmp, ilk terminal adının (terminal_adı) terminfo açıklamasını, diğer terminalin adları için verilen girdilerdeki açıklamaların her biriyle karşılaştırır. Eğer bir özellik (capability) terminallerden yalnızca biri için tanımlanmışsa, döndürülen değer özelliğin türüne bağlı olacaktır: mantıksal değişkenler için F, tamsayı değişkenler için -1 ve dizgi değişkenleri için NULL.

-d seçeneği, iki girdi arasında farklı olan her bir özelliğin listesini üretir. Bu seçenek, aynı veya benzer terminaller için farklı kişiler tarafından oluşturulan iki girdi arasındaki farkı göstermek için yararlıdır.

-c seçeneği, iki veya daha fazla girdi arasında ortak olan her bir özelliğin listesini üretir. Ayarlanmamış olan özellikler yoksayılır. Bu seçenek, -u seçeneğini kullanmaya değip değmeyeceğini hızlıca kontrol etmek için kullanılabilir.

-n seçeneği, verilen girdilerin hiçbirinde bulunmayan özelliklerin bir listesini üretir. Eğer terminal adı verilmezse, her iki terminal adı için de TERM çevre değişkeni kullanılacaktır. Bu, bir açıklamada herhangi bir şeyin eksik bırakılıp bırakılmadığını hızlıca kontrol etmek için kullanılabilir.

Kaynak Listeleme Seçenekleri [-I] [-L] [-C] [-r] -I, -L ve -C seçenekleri, adı belirtilen her terminal için bir kaynak listesi üretir.

  • -I: terminfo adlarını kullanır
  • -L: <term.h> içinde listelenen uzun C değişken adını kullanır
  • -C: termcap adlarını kullanır
  • -r: -C seçeneği kullanıldığında tüm özellikleri termcap formunda çıktı olarak verir
  • -K: -C seçeneğini değiştirerek BSD uyumluluğunu iyileştirir.

Eğer terminal adı verilmezse, terminal adı için TERM çevre değişkeni kullanılacaktır.

-C seçeneği tarafından üretilen kaynak doğrudan bir termcap girdisi olarak kullanılabilir, ancak parametreli tüm dizgiler termcap biçimine dönüştürülemez. infocmp parametreli bilgilerin çoğunu dönüştürmeye çalışacaktır; dönüştürülemeyen her şey çıktıda açıkça işaretlenecek ve yorum satırı haline getirilecektir. Bunların elle düzenlenmesi gerekir.

Termcap biçimine dönüştürürken en iyi sonuçları elde etmek için hem -C hem de -r seçeneklerini kullanmalısınız. Normalde bir termcap açıklaması 1023 bayt ile sınırlıdır. infocmp, sığmasını sağlamak için daha az önemli kısımları kırpar. Sınırsız termcap boyutunu kabul eden (nadir) termcap uygulamalarından birine dönüştürme yapıyorsanız, -T seçeneğini eklemek isteyebilirsiniz. Ancak daha sık olarak, termcap uygulamasına yardımcı olmalı ve fazla boşlukları kırpmalısınız (bunun için -0 seçeneğini kullanın).

Dizgiler için tüm dolgu (padding) bilgileri bir araya toplanacak ve dizginin başında, termcap'in beklediği yere yerleştirilecektir. Zorunlu dolgu (sonunda '/' olan dolgu bilgisi) isteğe bağlı hale gelecektir.

Artık terminfo tarafından desteklenmeyen ancak diğer terminfo değişkenlerinden türetilebilen tüm termcap değişkenleri çıktı olarak verilecektir. Tüm terminfo özellikleri çevrilmeyecektir; normalde yalnızca termcap'in bir parçası olan değişkenler çıktı olarak verilecektir. -r seçeneğinin belirtilmesi bu kısıtlamayı kaldırarak tüm özelliklerin termcap formunda çıktı olarak verilmesini sağlar. Normalde hem -C hem de -r seçeneklerini kullanırsınız. Kullanılan fiili biçim, terminfo biçimindeki kaçış karakterleri (escaped characters) için bazı iyileştirmeler içerir. Daha katı bir BSD uyumlu çeviri için -C yerine -K seçeneğini kullanın.

Dolgu bilgisinin özelliğin başına toplanması nedeniyle tüm özelliklerin çıktı olarak verilmediğini unutmayın. Zorunlu dolgu desteklenmez. Termcap dizgileri o kadar esnek olmadığından, bir terminfo dizgi özelliğini eşdeğer bir termcap biçimine dönüştürmek her zaman mümkün olmaz. Termcap dosyasının daha sonra tekrar terminfo biçimine dönüştürülmesi, orijinal terminfo kaynağını mutlaka yeniden üretmeyecektir.

Bazı yaygın terminfo parametre dizilimleri, bunların termcap eşdeğerleri ve bu tür dizilimlere yaygın olarak sahip olan bazı terminal türleri şunlardır:

terminfo termcap Temsili Terminaller ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ %p1%c %. adm %p1%d %d hp, ANSI standardı, vt100 %p1%'x'%+%c %+x concept %i %iq ANSI standardı, vt100 %p1%?%'x'%>%t%p1%'y'%+%; %>xy concept %p2, %p1'den önce yazdırılır %r hp

use= Seçeneği [-u] -u seçeneği, ilk terminal adının, diğer terminallerin girdileri tarafından verilen açıklamaların toplamına göreceli olan bir terminfo kaynak açıklaması üretir. Bunu, ilk terminal adı ile diğer terminal adları arasındaki farkları analiz ederek ve diğer terminaller için use= alanları içeren bir açıklama üreterek yapar. Bu şekilde, genel terminfo girdilerini bir terminalin açıklamasına uyarlamak (retrofit) mümkündür. Veya benzer iki terminal varsa ancak farklı zamanlarda veya farklı kişiler tarafından kodlandıkları için her bir açıklama tam bir açıklama niteliğindeyse, infocmp kullanılması bir açıklamayı diğerine göreceli hale getirmek için ne yapılabileceğini gösterecektir.

Bir özellik artık ilk terminal adında mevcut değilse ancak diğer terminal adı girdilerinden biri onun için bir değer içeriyorsa, özellik bir et işareti (@) ile yazdırılır. İlk terminal adındaki değer diğer terminal adı girdilerinin hiçbirinde bulunamazsa veya bu özelliğe sahip olan diğer terminal adı girdilerinden ilki özellik için ilk terminal adındakinden farklı bir değer veriyorsa, özelliğin değeri yazdırılır.

Diğer terminal adı girdilerinin sırası önemlidir. terminfo derleyicisi tic özellikleri soldan sağa taradığından, aynı özellikler için farklı girdiler içeren iki use= girdisinin belirtilmesi, girdilerin verilme sırasına bağlı olarak farklı sonuçlar üretecektir. infocmp, diğer terminal adı girdileri arasında tespit edilen bu tür tutarsızlıkları işaretleyecektir.

Alternatif olarak, o özelliği içeren bir use= girdisinden sonra bir özelliğin belirtilmesi, ikinci belirtimin yoksayılmasına neden olacaktır. Bir açıklamayı yeniden oluşturmak için infocmp kullanılması, orijinal kaynak açıklamasında her şeyin doğru belirtildiğinden emin olmak için yararlı bir kontrol olabilir.

Hatalı derlenmiş dosyalara yol açmayan ancak derleme süresini yavaşlatacak bir diğer hata da gereksiz olan fazladan use= alanlarının belirtilmesidir. infocmp, ihtiyaç duyulmayan diğer terminal adı use= alanlarını işaretleyecektir.

Veritabanlarını Değiştirme [-A dizin] [-B dizin] Diğer ncurses yardımcı programları gibi, infocmp de terminal açıklamalarını birkaç yerde arar. Arama yapılacak derlenmiş varsayılan yerler listesini geçersiz kılmak için TERMINFO ve TERMINFO_DIRS çevre değişkenlerini kullanabilirsiniz (ayrıntılar için curses(3X) sayfasına bakın).

Terminal açıklamalarını karşılaştırırken arama yapılacak yerler listesini geçersiz kılmak için -A ve -B seçeneklerini de kullanabilirsiniz:

• -A seçeneği, ilk terminal adı için konumu ayarlar

• -B seçeneği, diğer terminal adları için konumu ayarlar.

Bu seçenekleri kullanarak, iki farklı veritabanında bulunan aynı ada sahip bir terminalin açıklamalarını karşılaştırmak mümkündür. Örneğin, bu özelliği farklı kişiler tarafından oluşturulan aynı terminale ait açıklamaları karşılaştırmak için kullanabilirsiniz.

Diğer Seçenekler

  • -0: alanların satır kaydırma yapılmadan tek bir satırda yazdırılmasına neden olur.

  • -1: alanların her satıra bir tane gelecek şekilde yazdırılmasına neden olur. Aksi takdirde alanlar, maksimum 60 karakter genişliğinde olacak şekilde bir satıra birkaç tane yazdırılacaktır.

  • -a: infocmp'e yorum satırı yapılmış özellikleri atmak yerine tutmasını söyler. Özellikler, başlarına bir nokta konularak yorum satırı haline getirilir.

  • -D: infocmp'e bildiği veritabanı konumlarını yazdırmasını ve çıkmasını söyler.

  • -E: Verilen terminalin özelliklerini, bir TERMTYPE yapısı (<term.h> içindeki terminal özellik yapısı) için C başlatıcısında (C initializer) ihtiyaç duyulan tablolar olarak döker. Bu seçenek, curses kütüphanesinin belirli bir terminal türüne donanımsal olarak bağlanmış (hardwired) sürümlerini hazırlamak için yararlıdır. Tabloların tümü static olarak bildirilir ve ilgili terminal girdisinin türüne ve adına göre adlandırılır.

ncurses 5.0'dan önce, -e ve -E seçenekleri arasındaki ayrım gerekli değildi; ancak genişletilmiş isimler desteği, terminal özellikleri dizilerinin TERMTYPE yapısından ayrı tutulmasını gerektirdi.

  • -e: Verilen terminalin özelliklerini, bir TERMTYPE yapısı (<term.h> içindeki terminal özellik yapısı) için bir C başlatıcısı olarak döker. Bu seçenek, curses kütüphanesinin belirli bir terminal türüne donanımsal olarak bağlanmış (hardwired) sürümlerini hazırlamak için yararlıdır.

  • -F: terminfo dosyalarını karşılaştırır. Bu seçenek, sonraki iki argümanın dosya adı olduğunu varsayar. Dosyalar, girdiler arasında ikili eşleşmeler için aranır; adlarından herhangi biri eşleşiyorsa iki girdinin eşleştiği kabul edilir. Standart çıktıya yazdırılan rapor, diğer dosyada eşleşmesi olmayan girdileri ve birden fazla eşleşmesi olan girdileri listeler. Tam olarak bir eşleşmesi olan girdiler için bir fark raporu içerir. Normalde, rapor hacmini azaltmak için farklar aranmadan önce use referansları çözümlenmez, ancak -r seçeneği de belirtilerek çözümleme yapılması zorlanabilir.

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

  • -G: Karakter eşdeğerleri yerine sabit değerleri (constant literals) ondalık (decimal) biçimde görüntüler.

  • -g: Sabit karakter değerlerini ondalık eşdeğerleri yerine tırnak içine alınmış biçimde görüntüler.

  • -i: Girdideki başlatma (is1, is2, is3) ve sıfırlama (rs1, rs2, rs3) dizgilerinin yanı sıra imleç konumlandırma modunu başlatmak/durdurmak (smcup, rmcup) ve klavye eşleme modunu başlatmak/durdurmak (smkx, rmkx) için kullanılan dizgileri analiz eder.

Her bir dizgi için kod, girdideki diğer özellikler, belirli X3.64/ISO 6429/ECMA-48 özellikleri ve belirli DEC VT serisi özel modları cinsinden dizgiyi eylemlere ayırmaya çalışır (tanınan özel dizilimler kümesi, mevcut terminfo veritabanı üzerinde eksiksizlik sağlamak amacıyla seçilmiştir). Her rapor satırı özellik adından, ardından bir iki nokta üst üste ve boşluktan, ardından özellik dizgisinin yazdırılabilir bir açılımından oluşur; burada tanınan eylemlerle eşleşen bölümler süslü parantez {} içindeki açıklamalara dönüştürülür.

Tanınan DEC/ANSI özel dizilimlerinin bir listesi aşağıda verilmiştir:

Eylem Anlamı ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ RIS tam sıfırlama SC imleci kaydet RC imleci geri yükle LL home-down (en alta git) RSR kaydırma bölgesini sıfırla ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ DECSTR yumuşak sıfırlama (soft reset) (VT320) S7C1T 7-bit kontroller (VT220) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ISO DEC G0 G0 için DEC grafiklerini etkinleştir ISO UK G0 G0 için Birleşik Krallık (UK) karakterlerini etkinleştir ISO US G0 G0 için ABD (US) karakterlerini etkinleştir ISO DEC G1 G1 için DEC grafiklerini etkinleştir ISO UK G1 G1 için Birleşik Krallık (UK) karakterlerini etkinleştir ISO US G1 G1 için ABD (US) karakterlerini etkinleştir ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ DECPAM uygulama tuş takımı modu (application keypad mode) DECPNM normal tuş takımı modu DECANSI ANSI moduna gir ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ECMA[+-]AM klavye eylem modu ECMA[+-]IRM araya ekleme/değiştirme modu (insert replace mode) ECMA[+-]SRM gönderme/alma modu (send receive mode) ECMA[+-]LNM satır besleme modu (linefeed mode) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ DEC[+-]CKM uygulama imleç tuşları DEC[+-]ANM VT52 modunu ayarla DEC[+-]COLM 132 sütun modu DEC[+-]SCLM yumuşak kaydırma (smooth scroll) DEC[+-]SCNM ters video modu (reverse video mode) DEC[+-]OM başlangıç noktası modu (origin mode) DEC[+-]AWM satır sonu katlama modu (wraparound mode) DEC[+-]ARM otomatik yineleme modu (auto-repeat mode)

Ayrıca, NORMAL, BOLD, UNDERLINE, BLINK ve REVERSE değerlerine sahip ANSI/ISO 6429/ECMA Grafik Sunumunu Ayarlama (Set Graphics Rendition - SGR) eylemini de tanır. NORMAL hariç tüm değerlerin önüne +' (etkinleştir) veya -' (devre dışı bırak) eklenebilir.

Bir SGR0, boş bir vurgulama dizilimini belirtir ({SGR:NORMAL} değerine eşdeğerdir).

  • -l: Çıktı biçimini terminfo olarak ayarlar.

  • -p: Dizgileri karşılaştırırken dolgu (padding) belirtimlerini yoksayar.

  • -q: Alt başlıkları atlayarak ve mevcut olmayan özellikler için "-", iptal edilenler için "NULL" yerine "@" kullanarak karşılaştırma listesini daha kısa hale getirir.

-Ralt_küme Restrike çıktıyı belirli bir alt küme ile sınırlandırır. Bu seçenek, SVR4/XSI Curses terminfo'nun tam kümesini desteklemeyen SVr1, Ultrix veya HP/UX üzerindeki eski terminfo sürümleriyle ve SVr4/XSI ile uyumsuz kendi uzantılarına sahip AIX gibi varyantlarla kullanım içindir.

Kullanılabilir terminfo alt kümeleri "SVr1", "Ultrix", "HP" ve "AIX"tir; ayrıntılar için terminfo(5) sayfasına bakın. Ayrıca, yalnızca 4.4BSD tarafından tanınan termcap eşdeğerlerine sahip özellikleri seçen "BSD" alt kümesini de seçebilirsiniz.

-s [d|i|l|c] -s seçeneği, her bir tür içindeki alanları aşağıdaki argümana göre sıralar:

d alanları terminfo veritabanında saklandıkları sırada bırakır.

i terminfo adına göre sıralar.

l uzun C değişken adına göre sıralar.

c termcap adına göre sıralar.

Eğer -s seçeneği verilmezse, yazdırılan alanlar, sırasıyla termcap adına veya uzun C değişken adına göre sıralama yapılmasını sağlayan -C veya -L seçenekleri hariç olmak üzere, her bir tür içinde terminfo adına göre alfabetik olarak sıralanacaktır.

  • -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 yararlıdır.

  • -t: tic aracına yorum satırı yapılmış özellikleri atmasını söyler. Normalde terminfo'dan termcap'e çeviri yaparken çevrilemeyen özellikler yorum satırı haline getirilir.

  • -U: infocmp aracına kaynak dosyayı ayrıştırdıktan sonra verilere son işlem (post-process) uygulamamasını söyler. Bu özellik, infocmp'in eksik verileri doldurmak için yaptığı çıkarımları hariç tuttuğundan, iki kaynak dosyanın gerçek içeriklerini karşılaştırırken yardımcı olur.

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

  • -v n program çalışırken standart hataya izleme bilgisi yazdırır.: n değerinin yüksek olması daha fazla ayrıntı üretilmesini sağlar.

-w genişlik çıktıyı genişlik değerindeki karakter sayısına göre değiştirir.

  • -x: Kullanıcı tanımlı özellikler için bilgileri yazdırır. Bunlar, tic'in -x seçeneği kullanılarak yüklenebilen terminfo repertuarı uzantılarıdır.

Dosyalar

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

Uzantılar

-0, -1, -E, -F, -G, -R, -T, -V, -a, -e, -f, -g, -i, -l, -p, -q ve -t seçenekleri SVr4 curses içinde desteklenmez.

-r seçeneğinin termcap özellikleri anlayışı System V Release 4'e aittir. Gerçek BSD curses sürümleri daha kısıtlı bir kümeye sahip olacaktır. Yalnızca 4.4BSD kümesini görmek için -r -RBSD seçeneğini kullanın.

Hatalar

infocmp(1M)'in -F seçeneği bir toe(1M) modu olmalıdır.

Ayrıca Bakınız

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

http://invisible-island.net/ncurses/tctest.html

Bu, ncurses sürüm 5.7'yi (yama 20081102) açıklamaktadır.

Yazar

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

infocmp(1M)