bash
es una aplicación de termcap a través de readline
, como screen
y algunos otros programas. En la mayoría de los sistemas basados en Linux (aparte de Slackware), es probable que vea ncurses como la implementación subyacente de termcap .
La página del manual paratgetent
(llamado curs_termcap porque así se hizo en SVr4 ...) dice:
Estas rutinas se incluyen como una ayuda de conversión para programas que usan la biblioteca termcap . Sus parámetros son los mismos y las rutinas se emulan utilizando la base de
datos terminfo . Por lo tanto, solo se pueden usar para consultar las capacidades de las entradas para las que se ha compilado una entrada terminfo .
Es decir, si el programa que realiza la llamada no examina de cerca los datos devueltos y utiliza la interfaz de termcap convencional para leer la descripción del terminal y escribir datos en la pantalla, funciona igual que el termcap original.
La mayoría de las aplicaciones de termcap no se ven tan de cerca (xterm es una excepción rara; consulte las preguntas frecuentes ) Entonces bash
funciona con ncurses.
Sin embargo, la biblioteca termcap es más pequeña que ncurses. Hace bastante tiempo, eso importaba, y desde 1997 ncurses ha tenido una opción de configuración --with-termlib
que lo hace construir las partes específicas de termincap y terminfo como una biblioteca separada de las funciones necesarias en la biblioteca de curses de nivel superior. Pasaron algunos años y algunas de las distribuciones basadas en Linux lo incorporaron a sus paquetes.
Como bash
no usa ninguna de las funciones de maldiciones (libncurses, etc.), es razonable vincular solo contra el libtinfo
.
readline
es la parte específica de termcap de bash
(en realidad, cuando me encontré por primera vez bash
, sus partes de termcap estaban codificadas , a pesar de que la fuente oficial usó termcap, tal vez para ahorrar unos pocos bytes más). Cuando bash
se compila con el paquete readline
, no lo verá readline
como una biblioteca separada porque no tendría sentido hacer que la readline
instalación empaquetada sea una biblioteca compartida (posiblemente conflictiva). Pero (dependiendo de su sistema), es posible que vea libtinfo
porque ncurses se construye de una forma u otra (dividida o no), no ambas.
TERM
? Ah, no importa, veo que el paquete fuente esncurses
.