Annotation of coherent/g/usr/lib/ncurses/putinfo.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * putinfo.c
                      3:  * This file is generated by MKinfo.awk.
                      4:  * Do not make any changes directly to this file
                      5:  */
                      6: #include <stdio.h>
                      7: #include <string.h>
                      8: #include <ctype.h>
                      9: 
                     10: #define        bool    char
                     11: #define        TRUE    1
                     12: #define        FALSE   0
                     13: 
                     14: #define        MAXINDEX(array) (sizeof(array)/sizeof(array[0]))
                     15: 
                     16: /*
                     17:  * bools and boolcaps;
                     18:  * lookup translate table for boolean fields.
                     19:  */
                     20: 
                     21: struct bools {
                     22:        char    *capname;       /* termcap name */
                     23:        char    *infoname;      /* terminfo name */
                     24: };
                     25: 
                     26: struct bools   boolcaps[] = {
                     27:                { "bw", "bw" },
                     28:                { "am", "am" },
                     29:                { "xb", "xsb" },
                     30:                { "xs", "xhp" },
                     31:                { "xn", "xenl" },
                     32:                { "eo", "eo" },
                     33:                { "gn", "gn" },
                     34:                { "hc", "hc" },
                     35:                { "km", "km" },
                     36:                { "hs", "hs" },
                     37:                { "in", "in" },
                     38:                { "da", "da" },
                     39:                { "db", "db" },
                     40:                { "mi", "mir" },
                     41:                { "ms", "msgr" },
                     42:                { "os", "os" },
                     43:                { "es", "eslok" },
                     44:                { "xt", "xt" },
                     45:                { "hz", "hz" },
                     46:                { "ul", "ul" },
                     47:                { "xo", "xon" },
                     48:                { "nx", "nxon" },
                     49:                { "5i", "mc5i" },
                     50:                { "HC", "chts" },
                     51:                { "NR", "nrrmc" },
                     52:                { "NP", "npc" },
                     53:                { "ND", "ndscr" },
                     54:                { "cc", "ccc" },
                     55:                { "be", "bce" },
                     56:                { "hl", "hls" },
                     57:                { "YA", "xhpa" },
                     58:                { "YB", "crxm" },
                     59:                { "YC", "daisy" },
                     60:                { "YD", "xvpa" },
                     61:                { "YE", "sam" },
                     62:                { "YF", "cpix" },
                     63:                { "YG", "lpix" },
                     64: };
                     65: 
                     66: #define        MAXBOOLS        MAXINDEX(boolcaps)
                     67: 
                     68: /*
                     69:  * nums and numcaps;
                     70:  * lookuptranslate table for numeric capabilities.
                     71:  */
                     72: struct nums {
                     73:        char    *capname;       /* termcap name */
                     74:        char    *infoname;      /* terminfo name */
                     75: };
                     76: 
                     77: struct nums    numcaps[] = {
                     78:                { "co", "cols" },
                     79:                { "it", "it" },
                     80:                { "li", "lines" },
                     81:                { "lm", "lm" },
                     82:                { "sg", "xmc" },
                     83:                { "pb", "pb" },
                     84:                { "vt", "vt" },
                     85:                { "ws", "wsl" },
                     86:                { "Nl", "nlab" },
                     87:                { "lh", "lh" },
                     88:                { "lw", "lw" },
                     89:                { "ma", "ma" },
                     90:                { "MW", "wnum" },
                     91:                { "Co", "colors" },
                     92:                { "pa", "pairs" },
                     93:                { "NC", "ncv" },
                     94:                { "Ya", "bufsz" },
                     95:                { "Yb", "spinv" },
                     96:                { "Yc", "spinh" },
                     97:                { "Yd", "maddr" },
                     98:                { "Ye", "mjump" },
                     99:                { "Yf", "mcs" },
                    100:                { "Yg", "mls" },
                    101:                { "Yh", "npins" },
                    102:                { "Yi", "orc" },
                    103:                { "Yj", "orl" },
                    104:                { "Yk", "orhi" },
                    105:                { "Yl", "orvi" },
                    106:                { "Ym", "cps" },
                    107:                { "Yn", "widcs" },
                    108: };
                    109: 
                    110: #define        MAXNUMS MAXINDEX(numcaps)
                    111: 
                    112: /*
                    113:  * sts and strcaps;
                    114:  * lookuptranslate table for string capabilities.
                    115:  */
                    116: struct strs {
                    117:        char    *capname;       /* termcap name */
                    118:        char    *infoname;      /* terminfo name */
                    119:        char    *dflt;          /* default value */
                    120: };
                    121: 
                    122: struct strs    strcaps[] = {
                    123:                { "bt", "cbt", ((char *)0) },
                    124:                { "bl", "bel", "^G" },
                    125:                { "cr", "cr", "\r" },
                    126:                { "cs", "csr", ((char *)0) },
                    127:                { "ct", "tbc", ((char *)0) },
                    128:                { "cl", "clear", ((char *)0) },
                    129:                { "ce", "el", ((char *)0) },
                    130:                { "cd", "ed", ((char *)0) },
                    131:                { "ch", "hpa", ((char *)0) },
                    132:                { "CC", "cmdch", ((char *)0) },
                    133:                { "cm", "cup", ((char *)0) },
                    134:                { "do", "cud1", "\n" },
                    135:                { "ho", "home", ((char *)0) },
                    136:                { "vi", "civis", ((char *)0) },
                    137:                { "le", "cub1", "\b" },
                    138:                { "CM", "mrcup", ((char *)0) },
                    139:                { "ve", "cnorm", ((char *)0) },
                    140:                { "nd", "cuf1", ((char *)0) },
                    141:                { "ll", "ll", ((char *)0) },
                    142:                { "up", "cuu1", ((char *)0) },
                    143:                { "vs", "cvvis", ((char *)0) },
                    144:                { "dc", "dch1", ((char *)0) },
                    145:                { "dl", "dl1", ((char *)0) },
                    146:                { "ds", "dsl", ((char *)0) },
                    147:                { "hd", "hd", ((char *)0) },
                    148:                { "as", "smacs", ((char *)0) },
                    149:                { "mb", "blink", ((char *)0) },
                    150:                { "md", "bold", ((char *)0) },
                    151:                { "ti", "smcup", ((char *)0) },
                    152:                { "dm", "smdc", ((char *)0) },
                    153:                { "mh", "dim", ((char *)0) },
                    154:                { "im", "smir", ((char *)0) },
                    155:                { "mk", "invis", ((char *)0) },
                    156:                { "mp", "prot", ((char *)0) },
                    157:                { "mr", "rev", ((char *)0) },
                    158:                { "so", "smso", ((char *)0) },
                    159:                { "us", "smul", ((char *)0) },
                    160:                { "ec", "ech", ((char *)0) },
                    161:                { "ae", "rmacs", ((char *)0) },
                    162:                { "me", "sgr0", ((char *)0) },
                    163:                { "te", "rmcup", ((char *)0) },
                    164:                { "ed", "rmdc", ((char *)0) },
                    165:                { "ei", "rmir", ((char *)0) },
                    166:                { "se", "rmso", ((char *)0) },
                    167:                { "ue", "rmul", ((char *)0) },
                    168:                { "vb", "flash", ((char *)0) },
                    169:                { "ff", "ff", ((char *)0) },
                    170:                { "fs", "fsl", ((char *)0) },
                    171:                { "i1", "is1", ((char *)0) },
                    172:                { "is", "is2", ((char *)0) },
                    173:                { "i3", "is3", ((char *)0) },
                    174:                { "if", "if", ((char *)0) },
                    175:                { "ic", "ich1", ((char *)0) },
                    176:                { "il", "il1", ((char *)0) },
                    177:                { "ip", "ip", ((char *)0) },
                    178:                { "kb", "kbs", ((char *)0) },
                    179:                { "ka", "ktbc", ((char *)0) },
                    180:                { "kC", "kclr", ((char *)0) },
                    181:                { "kt", "kctab", ((char *)0) },
                    182:                { "kD", "kdch1", ((char *)0) },
                    183:                { "kL", "kdl1", ((char *)0) },
                    184:                { "kd", "kcud1", ((char *)0) },
                    185:                { "kM", "krmir", ((char *)0) },
                    186:                { "kE", "kel", ((char *)0) },
                    187:                { "kS", "ked", ((char *)0) },
                    188:                { "k0", "kf0", ((char *)0) },
                    189:                { "k1", "kf1", ((char *)0) },
                    190:                { "k;", "kf10", ((char *)0) },
                    191:                { "k2", "kf2", ((char *)0) },
                    192:                { "k3", "kf3", ((char *)0) },
                    193:                { "k4", "kf4", ((char *)0) },
                    194:                { "k5", "kf5", ((char *)0) },
                    195:                { "k6", "kf6", ((char *)0) },
                    196:                { "k7", "kf7", ((char *)0) },
                    197:                { "k8", "kf8", ((char *)0) },
                    198:                { "k9", "kf9", ((char *)0) },
                    199:                { "kh", "khome", ((char *)0) },
                    200:                { "kI", "kich1", ((char *)0) },
                    201:                { "kA", "kil1", ((char *)0) },
                    202:                { "kl", "kcub1", ((char *)0) },
                    203:                { "kH", "kll", ((char *)0) },
                    204:                { "kN", "knp", ((char *)0) },
                    205:                { "kP", "kpp", ((char *)0) },
                    206:                { "kr", "kcuf1", ((char *)0) },
                    207:                { "kF", "kind", ((char *)0) },
                    208:                { "kR", "kri", ((char *)0) },
                    209:                { "kT", "khts", ((char *)0) },
                    210:                { "ku", "kcuu1", ((char *)0) },
                    211:                { "ke", "rmkx", ((char *)0) },
                    212:                { "ks", "smkx", ((char *)0) },
                    213:                { "l0", "lf0", ((char *)0) },
                    214:                { "l1", "lf1", ((char *)0) },
                    215:                { "la", "lf10", ((char *)0) },
                    216:                { "l2", "lf2", ((char *)0) },
                    217:                { "l3", "lf3", ((char *)0) },
                    218:                { "l4", "lf4", ((char *)0) },
                    219:                { "l5", "lf5", ((char *)0) },
                    220:                { "l6", "lf6", ((char *)0) },
                    221:                { "l7", "lf7", ((char *)0) },
                    222:                { "l8", "lf8", ((char *)0) },
                    223:                { "l9", "lf9", ((char *)0) },
                    224:                { "mo", "rmm", ((char *)0) },
                    225:                { "mm", "smm", ((char *)0) },
                    226:                { "nw", "nel", ((char *)0) },
                    227:                { "pc", "pad", ((char *)0) },
                    228:                { "DC", "dch", ((char *)0) },
                    229:                { "DL", "dl", ((char *)0) },
                    230:                { "DO", "cud", ((char *)0) },
                    231:                { "IC", "ich", ((char *)0) },
                    232:                { "SF", "indn", ((char *)0) },
                    233:                { "AL", "il", ((char *)0) },
                    234:                { "LE", "cub", ((char *)0) },
                    235:                { "RI", "cuf", ((char *)0) },
                    236:                { "SR", "rin", ((char *)0) },
                    237:                { "UP", "cuu", ((char *)0) },
                    238:                { "pk", "pfkey", ((char *)0) },
                    239:                { "pl", "pfloc", ((char *)0) },
                    240:                { "px", "pfx", ((char *)0) },
                    241:                { "ps", "mc0", ((char *)0) },
                    242:                { "pf", "mc4", ((char *)0) },
                    243:                { "po", "mc5", ((char *)0) },
                    244:                { "rp", "rep", ((char *)0) },
                    245:                { "r1", "rs1", ((char *)0) },
                    246:                { "r2", "rs2", ((char *)0) },
                    247:                { "r3", "rs3", ((char *)0) },
                    248:                { "rf", "rf", ((char *)0) },
                    249:                { "rc", "rc", ((char *)0) },
                    250:                { "cv", "vpa", ((char *)0) },
                    251:                { "sc", "sc", ((char *)0) },
                    252:                { "sf", "ind", "\n" },
                    253:                { "sr", "ri", ((char *)0) },
                    254:                { "sa", "sgr", ((char *)0) },
                    255:                { "st", "hts", ((char *)0) },
                    256:                { "wi", "wind", ((char *)0) },
                    257:                { "ta", "ht", ((char *)0) },
                    258:                { "ts", "tsl", ((char *)0) },
                    259:                { "uc", "uc", ((char *)0) },
                    260:                { "hu", "hu", ((char *)0) },
                    261:                { "iP", "iprog", ((char *)0) },
                    262:                { "K1", "ka1", ((char *)0) },
                    263:                { "K3", "ka3", ((char *)0) },
                    264:                { "k2", "kb2", ((char *)0) },
                    265:                { "K4", "kc1", ((char *)0) },
                    266:                { "K5", "kc3", ((char *)0) },
                    267:                { "pO", "mc5p", ((char *)0) },
                    268:                { "rP", "rmp", ((char *)0) },
                    269:                { "ac", "acsc", ((char *)0) },
                    270:                { "pn", "pln", ((char *)0) },
                    271:                { "kB", "kcbt", ((char *)0) },
                    272:                { "SX", "smxon", ((char *)0) },
                    273:                { "RX", "rmxon", ((char *)0) },
                    274:                { "SA", "smam", ((char *)0) },
                    275:                { "RA", "rmam", ((char *)0) },
                    276:                { "XN", "xonc", ((char *)0) },
                    277:                { "XF", "xoffc", ((char *)0) },
                    278:                { "eA", "enacs", ((char *)0) },
                    279:                { "LO", "smln", ((char *)0) },
                    280:                { "LF", "rmln", ((char *)0) },
                    281:                { "@1", "kbeg", ((char *)0) },
                    282:                { "@2", "kcan", ((char *)0) },
                    283:                { "@3", "kclo", ((char *)0) },
                    284:                { "@4", "kcmd", ((char *)0) },
                    285:                { "@5", "kcpy", ((char *)0) },
                    286:                { "@6", "kcrt", ((char *)0) },
                    287:                { "@7", "kend", ((char *)0) },
                    288:                { "@8", "kent", ((char *)0) },
                    289:                { "@9", "kext", ((char *)0) },
                    290:                { "@0", "kfnd", ((char *)0) },
                    291:                { "%1", "khlp", ((char *)0) },
                    292:                { "%2", "kmrk", ((char *)0) },
                    293:                { "%3", "kmsg", ((char *)0) },
                    294:                { "%4", "kmov", ((char *)0) },
                    295:                { "%5", "knxt", ((char *)0) },
                    296:                { "%6", "kopn", ((char *)0) },
                    297:                { "%7", "kopt", ((char *)0) },
                    298:                { "%8", "kprv", ((char *)0) },
                    299:                { "%9", "kprt", ((char *)0) },
                    300:                { "0", "krdo", ((char *)0) },
                    301:                { "&1", "kref", ((char *)0) },
                    302:                { "&2", "krfr", ((char *)0) },
                    303:                { "&3", "krpl", ((char *)0) },
                    304:                { "&4", "krst", ((char *)0) },
                    305:                { "&5", "kres", ((char *)0) },
                    306:                { "&6", "ksav", ((char *)0) },
                    307:                { "&7", "kspd", ((char *)0) },
                    308:                { "&8", "kund", ((char *)0) },
                    309:                { "&9", "kBEG", ((char *)0) },
                    310:                { "&0", "kCAN", ((char *)0) },
                    311:                { "*1", "kCMD", ((char *)0) },
                    312:                { "*2", "kCPY", ((char *)0) },
                    313:                { "*3", "kCRT", ((char *)0) },
                    314:                { "*4", "kDC", ((char *)0) },
                    315:                { "*5", "kDL", ((char *)0) },
                    316:                { "*6", "kslt", ((char *)0) },
                    317:                { "*7", "kEND", ((char *)0) },
                    318:                { "*8", "kEOL", ((char *)0) },
                    319:                { "*9", "kEXT", ((char *)0) },
                    320:                { "*0", "kFND", ((char *)0) },
                    321:                { "#1", "kHLP", ((char *)0) },
                    322:                { "#2", "kHOM", ((char *)0) },
                    323:                { "#3", "kIC", ((char *)0) },
                    324:                { "#4", "kLFT", ((char *)0) },
                    325:                { "%a", "kMSG", ((char *)0) },
                    326:                { "%b", "kMOV", ((char *)0) },
                    327:                { "%c", "kNXT", ((char *)0) },
                    328:                { "%d", "kOPT", ((char *)0) },
                    329:                { "%e", "kPRV", ((char *)0) },
                    330:                { "%f", "kPRT", ((char *)0) },
                    331:                { "%g", "kRDO", ((char *)0) },
                    332:                { "%h", "kRPL", ((char *)0) },
                    333:                { "%i", "kRIT", ((char *)0) },
                    334:                { "%j", "kRES", ((char *)0) },
                    335:                { "!1", "kSAV", ((char *)0) },
                    336:                { "!2", "kSPD", ((char *)0) },
                    337:                { "!3", "kUND", ((char *)0) },
                    338:                { "RF", "rfi", ((char *)0) },
                    339:                { "F1", "kf11", ((char *)0) },
                    340:                { "F2", "kf12", ((char *)0) },
                    341:                { "F3", "kf13", ((char *)0) },
                    342:                { "F4", "kf14", ((char *)0) },
                    343:                { "F5", "kf15", ((char *)0) },
                    344:                { "F6", "kf16", ((char *)0) },
                    345:                { "F7", "kf17", ((char *)0) },
                    346:                { "F8", "kf18", ((char *)0) },
                    347:                { "F9", "kf19", ((char *)0) },
                    348:                { "FA", "kf20", ((char *)0) },
                    349:                { "FB", "kf21", ((char *)0) },
                    350:                { "FC", "kf22", ((char *)0) },
                    351:                { "FD", "kf23", ((char *)0) },
                    352:                { "FE", "kf24", ((char *)0) },
                    353:                { "FF", "kf25", ((char *)0) },
                    354:                { "FG", "kf26", ((char *)0) },
                    355:                { "FH", "kf27", ((char *)0) },
                    356:                { "FI", "kf28", ((char *)0) },
                    357:                { "FJ", "kf29", ((char *)0) },
                    358:                { "FK", "kf30", ((char *)0) },
                    359:                { "FL", "kf31", ((char *)0) },
                    360:                { "FM", "kf32", ((char *)0) },
                    361:                { "FN", "kf33", ((char *)0) },
                    362:                { "FO", "kf34", ((char *)0) },
                    363:                { "FP", "kf35", ((char *)0) },
                    364:                { "FQ", "kf36", ((char *)0) },
                    365:                { "FR", "kf37", ((char *)0) },
                    366:                { "FS", "kf38", ((char *)0) },
                    367:                { "FT", "kf39", ((char *)0) },
                    368:                { "FU", "kf40", ((char *)0) },
                    369:                { "FV", "kf41", ((char *)0) },
                    370:                { "FW", "kf42", ((char *)0) },
                    371:                { "FX", "kf43", ((char *)0) },
                    372:                { "FY", "kf44", ((char *)0) },
                    373:                { "FZ", "kf45", ((char *)0) },
                    374:                { "Fa", "kf46", ((char *)0) },
                    375:                { "Fb", "kf47", ((char *)0) },
                    376:                { "Fc", "kf48", ((char *)0) },
                    377:                { "Fd", "kf49", ((char *)0) },
                    378:                { "Fe", "kf50", ((char *)0) },
                    379:                { "Ff", "kf51", ((char *)0) },
                    380:                { "Fg", "kf52", ((char *)0) },
                    381:                { "Fh", "kf53", ((char *)0) },
                    382:                { "Fi", "kf54", ((char *)0) },
                    383:                { "Fj", "kf55", ((char *)0) },
                    384:                { "Fk", "kf56", ((char *)0) },
                    385:                { "Fl", "kf57", ((char *)0) },
                    386:                { "Fm", "kf58", ((char *)0) },
                    387:                { "Fn", "kf59", ((char *)0) },
                    388:                { "Fo", "kf60", ((char *)0) },
                    389:                { "Fp", "kf61", ((char *)0) },
                    390:                { "Fq", "kf62", ((char *)0) },
                    391:                { "Fr", "kf63", ((char *)0) },
                    392:                { "cb", "el1", ((char *)0) },
                    393:                { "MC", "mgc", ((char *)0) },
                    394:                { "ML", "smgl", ((char *)0) },
                    395:                { "MR", "smgr", ((char *)0) },
                    396:                { "Lf", "fln", ((char *)0) },
                    397:                { "SC", "sclk", ((char *)0) },
                    398:                { "DK", "dclk", ((char *)0) },
                    399:                { "RC", "rmclk", ((char *)0) },
                    400:                { "CW", "cwin", ((char *)0) },
                    401:                { "GW", "wingo", ((char *)0) },
                    402:                { "HU", "hup", ((char *)0) },
                    403:                { "DI", "dial", ((char *)0) },
                    404:                { "QD", "qdial", ((char *)0) },
                    405:                { "TO", "tone", ((char *)0) },
                    406:                { "PU", "pulse", ((char *)0) },
                    407:                { "fh", "hook", ((char *)0) },
                    408:                { "PA", "pause", ((char *)0) },
                    409:                { "WA", "wait", ((char *)0) },
                    410:                { "u0", "u0", ((char *)0) },
                    411:                { "u1", "u1", ((char *)0) },
                    412:                { "u2", "u2", ((char *)0) },
                    413:                { "u3", "u3", ((char *)0) },
                    414:                { "u4", "u4", ((char *)0) },
                    415:                { "u5", "u5", ((char *)0) },
                    416:                { "u6", "u6", ((char *)0) },
                    417:                { "u7", "u7", ((char *)0) },
                    418:                { "u8", "u8", ((char *)0) },
                    419:                { "u9", "u9", ((char *)0) },
                    420:                { "op", "op", ((char *)0) },
                    421:                { "oc", "oc", ((char *)0) },
                    422:                { "Ic", "initc", ((char *)0) },
                    423:                { "Ip", "initp", ((char *)0) },
                    424:                { "sp", "scp", ((char *)0) },
                    425:                { "Sf", "setf", ((char *)0) },
                    426:                { "Sb", "setb", ((char *)0) },
                    427:                { "ZA", "cpi", ((char *)0) },
                    428:                { "ZB", "lpi", ((char *)0) },
                    429:                { "ZC", "chr", ((char *)0) },
                    430:                { "ZD", "cvr", ((char *)0) },
                    431:                { "dc", "defc", ((char *)0) },
                    432:                { "ZF", "swidm", ((char *)0) },
                    433:                { "ZG", "sdrfq", ((char *)0) },
                    434:                { "ZH", "sitm", ((char *)0) },
                    435:                { "ZI", "slm", ((char *)0) },
                    436:                { "ZJ", "smicm", ((char *)0) },
                    437:                { "ZK", "snlq", ((char *)0) },
                    438:                { "ZL", "snrmq", ((char *)0) },
                    439:                { "ZM", "sshm", ((char *)0) },
                    440:                { "ZN", "ssubm", ((char *)0) },
                    441:                { "ZO", "ssupm", ((char *)0) },
                    442:                { "ZP", "sum", ((char *)0) },
                    443:                { "ZQ", "rwidm", ((char *)0) },
                    444:                { "ZR", "ritm", ((char *)0) },
                    445:                { "ZS", "rlm", ((char *)0) },
                    446:                { "ZT", "rmicm", ((char *)0) },
                    447:                { "ZU", "rshm", ((char *)0) },
                    448:                { "ZV", "rsubm", ((char *)0) },
                    449:                { "ZW", "rsupm", ((char *)0) },
                    450:                { "ZX", "rum", ((char *)0) },
                    451:                { "ZY", "mhpa", ((char *)0) },
                    452:                { "ZZ", "mcud1", ((char *)0) },
                    453:                { "Za", "mcub1", ((char *)0) },
                    454:                { "Zb", "mcuf1", ((char *)0) },
                    455:                { "Zc", "mvpa", ((char *)0) },
                    456:                { "Zd", "mcuu1", ((char *)0) },
                    457:                { "Ze", "porder", ((char *)0) },
                    458:                { "Zf", "mcud", ((char *)0) },
                    459:                { "Zg", "mcub", ((char *)0) },
                    460:                { "Zh", "mcuf", ((char *)0) },
                    461:                { "Zi", "mcuu", ((char *)0) },
                    462:                { "Zj", "scs", ((char *)0) },
                    463:                { "Zk", "smgb", ((char *)0) },
                    464:                { "Zl", "smgbp", ((char *)0) },
                    465:                { "Zm", "smglp", ((char *)0) },
                    466:                { "Zn", "smgrp", ((char *)0) },
                    467:                { "Zo", "smgt", ((char *)0) },
                    468:                { "Zp", "smgtp", ((char *)0) },
                    469:                { "Zq", "sbim", ((char *)0) },
                    470:                { "Zr", "scsd", ((char *)0) },
                    471:                { "Zs", "rbim", ((char *)0) },
                    472:                { "Zt", "rcsd", ((char *)0) },
                    473:                { "Zu", "subcs", ((char *)0) },
                    474:                { "Zv", "supcs", ((char *)0) },
                    475:                { "Zw", "docr", ((char *)0) },
                    476:                { "Zx", "zerom", ((char *)0) },
                    477:                { "Zy", "csnm", ((char *)0) },
                    478: };
                    479: 
                    480: #define        MAXSTRS MAXINDEX(strcaps)
                    481: 
                    482: /*
                    483:  * print_name:
                    484:  *     print name and aliases of current termcap entry.
                    485:  */
                    486: print_name ()
                    487: {
                    488:     char       name[100];
                    489: 
                    490:     tgetname (name);
                    491:     printf ("%s,\n", name);
                    492: }
                    493: 
                    494: /*
                    495:  * print_bools:
                    496:  *     print all boolean fields of current termcap entry.
                    497:  */
                    498: print_bools ()
                    499: {
                    500:     int                i, val;
                    501:     bool       stuffprinted = FALSE;
                    502: 
                    503:     for (i = 0; i < MAXBOOLS; i++)
                    504:        if (val = tgetflag (boolcaps[i].capname)) {
                    505:            if (val == 1)
                    506:                printf ("\t%s,", boolcaps[i].infoname);
                    507:            else
                    508:                printf ("\t%s@,", boolcaps[i].infoname);
                    509:            stuffprinted = TRUE;
                    510:        }
                    511:     if (stuffprinted)
                    512:        (void) putchar ('\n');
                    513: }
                    514: 
                    515: /*
                    516:  * print_nums:
                    517:  *     print all numeric fields of current termcap entry.
                    518:  */
                    519: print_nums ()
                    520: {
                    521:     int                i, capval;
                    522:     bool       stuffprinted = FALSE;
                    523: 
                    524:     for (i = 0; i < MAXNUMS; i++)
                    525:        if ((capval = tgetnum (numcaps[i].capname)) >= 0) {
                    526:            printf ("\t%s#%d,", numcaps[i].infoname, capval);
                    527:            stuffprinted = TRUE;
                    528:        }
                    529:        else if (capval == -2) {
                    530:            printf ("\t%s@,", numcaps[i].infoname);
                    531:            stuffprinted = TRUE;
                    532:        }
                    533:     if (stuffprinted)
                    534:        (void) putchar ('\n');
                    535: }
                    536: 
                    537: /*
                    538:  * print_strs:
                    539:  *     print all string fields of current termcap entry.
                    540:  */
                    541: print_strs ()
                    542: {
                    543:     int                i, count = 0;
                    544:     char       capval[100];
                    545: 
                    546:     for (i = 0; i < MAXSTRS; i++) {
                    547:        tgetstr (strcaps[i].capname, capval);
                    548:        if (!capval[0]) {
                    549:            if (strcmp (strcaps[i].capname, "le") == 0) {
                    550:                tgetstr ("bc", capval);
                    551:            }
                    552:            else if (strcmp (strcaps[i].capname, "ta") == 0) { 
                    553:                if (tgetflag ("pt")) {
                    554:                    capval[0] = '\t';
                    555:                    capval[1] = '\0';
                    556:                }
                    557:            }
                    558:        }
                    559:        if ((!capval[0]) && (strcaps[i].dflt))
                    560:            (void) strcpy (capval, strcaps[i].dflt);
                    561:        if (capval[0]) {
                    562:            if (strcmp (capval, "@") != 0) {
                    563:                printf ("\t%s=", strcaps[i].infoname);
                    564:                if (strcmp(strcaps[i].infoname,"use") != 0) {
                    565:                    put_str (capval);
                    566:                    printf (",");
                    567:                }
                    568:                else
                    569:                    printf ("%s,", capval);
                    570:            }
                    571:            else
                    572:                printf ("\t%s@,", strcaps[i].infoname);
                    573:            count++;
                    574:            if (!(count %= 3))
                    575:                putchar ('\n');
                    576:        }
                    577:     }
                    578:     if (count)
                    579:        (void) putchar ('\n');
                    580: }
                    581: 
                    582: /*
                    583:  * put_str:
                    584:  *     translate strings to printable format and print them.
                    585:  */
                    586: put_str (s)
                    587: char   *s;
                    588: {
                    589:     bool       rflag = FALSE;  /* % codes */
                    590:     char       *c;
                    591:     int                parm;
                    592: 
                    593:     if ((isdigit (*s)) || (*s == '.')) {       /* handle padding */
                    594:        printf ("$<");
                    595:        while ((isdigit (*s)) || (*s == '.')) {
                    596:            (void) putchar (*s);
                    597:            s++;
                    598:        }
                    599:        if (*s == '*') {
                    600:            (void) putchar (*s);
                    601:            s++;
                    602:        }
                    603:        (void) putchar ('>');
                    604:     }
                    605:     for (c = s; *c; c++) {     /* scan for % codes (needs work) */
                    606:        if (*c == '%') {
                    607:            c++;
                    608:            switch (*c) {
                    609:                case 'r':
                    610:                    rflag = TRUE;
                    611:                    break;
                    612:                default:
                    613:                    break;      /* ignore */
                    614:            }
                    615:        }
                    616:     }
                    617:     parm = 0;
                    618:     while (*s) {               /* print the string */
                    619:        switch (*s) {
                    620:            case '%':
                    621:                s++;
                    622:                switch (*s) {
                    623:                    case '%':
                    624:                        printf ("%%%%");
                    625:                        break;
                    626:                    case 'i':
                    627:                        printf ("%%i");
                    628:                        break;
                    629:                    case 'd':
                    630:                        parm++;
                    631:                        if ((rflag) && (parm <= 2)) {
                    632:                            if (parm == 1)
                    633:                                printf ("%%p2%%d");
                    634:                            else
                    635:                                printf ("%%p1%%d");
                    636:                        }
                    637:                        else
                    638:                            printf ("%%p%d%%d", parm);
                    639:                        break;
                    640:                    case '2':
                    641:                        parm++;
                    642:                        if ((rflag) && (parm <= 2)) {
                    643:                            if (parm == 1)
                    644:                                printf ("%%p2%%02d");
                    645:                            else
                    646:                                printf ("%%p1%%02d");
                    647:                        }
                    648:                        else
                    649:                            printf ("%%p%d%%02d", parm);
                    650:                        break;
                    651:                    case '3':
                    652:                        parm++;
                    653:                        if ((rflag) && (parm <= 2)) {
                    654:                            if (parm == 1)
                    655:                                printf ("%%p2%%03d");
                    656:                            else
                    657:                                printf ("%%p1%%03d");
                    658:                        }
                    659:                        else
                    660:                            printf ("%%p%d%%03d", parm);
                    661:                        break;
                    662:                    case '.':
                    663:                        parm++;
                    664:                        if ((rflag) && (parm <= 2)) {
                    665:                            if (parm == 1)
                    666:                                printf ("%%p2%%c");
                    667:                            else
                    668:                                printf ("%%p1%%c");
                    669:                        }
                    670:                        else
                    671:                            printf ("%%p%d%%c", parm);
                    672:                        break;
                    673:                    case '+':
                    674:                        s++;
                    675:                        parm++;
                    676:                        if ((rflag) && (parm <= 2)) {
                    677:                            if (parm == 1)
                    678:                                printf ("%%p2%%'%c'%%+%%c", *s);
                    679:                            else
                    680:                                printf ("%%p1%%'%c'%%+%%c", *s);
                    681:                        }
                    682:                        else
                    683:                            printf ("%%p%d%%'%c'%%+%%c", parm, *s);
                    684:                        break;
                    685:                    default:
                    686:                        break;  /* ignore */
                    687:                }
                    688:                break;
                    689:            case '\200':
                    690:                printf ("\\0");
                    691:                break;
                    692:            case '\177':
                    693:                printf ("^?");
                    694:                break;
                    695:            case ',':
                    696:                printf ("\\,");
                    697:                break;
                    698:            case '\\':
                    699:                printf ("\\\\");
                    700:                break;
                    701:            case '^':
                    702:                printf ("\^");
                    703:                break;
                    704:            case ':':
                    705:                printf ("\\:");
                    706:                break;
                    707:            case '\033':
                    708:                printf ("\\E");
                    709:                break;
                    710:            case '\n':
                    711:                printf ("\\n");
                    712:                break;
                    713:            case '\r':
                    714:                printf ("\\r");
                    715:                break;
                    716:            case '\t':
                    717:                printf ("\\t");
                    718:                break;
                    719:            case '\b':
                    720:                printf ("\\b");
                    721:                break;
                    722:            case '\f':
                    723:                printf ("\\f");
                    724:                break;
                    725:            case ' ':
                    726:                printf ("\\s");
                    727:                break;
                    728:            default:
                    729:                if (*s < ' ')
                    730:                    printf ("^%c", *s + 'A' - 1);
                    731:                else
                    732:                    (void) putchar (*s);
                    733:                break;
                    734:        }
                    735:        s++;
                    736:     }
                    737: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.