BMS Terminfo Overview

  • Terminfo man page
  • Cumulative attributes.
  • SMIT braindamage
  • TinyTerm braindamage
  • Terminfo entries used by BMS pscreen
  • Common mistakes
  • Beginning May 20, the /bms/lib/1.4 library on bmsaix looks for TERMINFO in a different place than TERMINFO.

    1. If BMSINFO is defined, it uses that.
    2. Otherwise, if BMS is defined it uses $BMS/terminfo.
    3. Otherwise, it uses /bms/terminfo.
    This allows us to use work around SMIT and InfoExplorer braindamage while allowing full attribute support for BMS programs. The Java programs running under tuipeer already make extensive use of text attributes.

    Cumulative attributes.

    Cumulative attributes can be turned on and off without affecting other attributes. Non-cumulative attributes can only be set in combination with other non-cumulative attributes. For instance, on a wyse 60, ESC G 4 turns on reverse video and turns off underline, blink, and blank. On some models, including TinyTerm, it turns off dim as well. These non-cumulative attributes can only be set with the sgr entry in terminfo. On the other hand, vt100 attributes are cumulative.

    Some terminals have non-cumulative attributes that affect an area of the screen rather that subsequent characters received. These are called "cookies" and are used primarily with televideo terminals.

    Some newer terminals have an escape sequence to change the attributes of an area on the screen just once. Terminfo does not support this capability.

    Attributes defined with "enter_*_mode" and "exit_*_mode" are cumulative, whereas attributes defined with sgr are not. In addition, cookies are never cumulative. Terminfo doesn't tell us which attributes are cookies, but we assume that if magic_cookie_glitch >= 0, then all attributes set with sgr are cookies. sgr is assumed to set any attributes not set with an enter_*_mode command. I.e., we try to use enter_*_mode first.

    sgr0 must be defined to turn off any enter_*_mode attributes that have no corresponding exit_*_mode command. sgr0 should turn off *all* such cumulative attributes, but should not affect attributes set by sgr.

    SMIT braindamage

    For some reason, the AIX utility smit does not use the system curses library. The only attribute that smit can use is smso. If a terminal has only non-cumulative attributes, then standout is the only attribute you can have since smit will not use sgr.

    TinyTerm braindamage

    You must use write protect mode for the dim attribute and it must always come *after* any other attribute commands to take effect. The best solution is to add this at the end of sgr:

    \E%?%p5%t)%e(%;
    
    See the man page if the above is greek to you.

    Common Mistakes