Annotation of coherent/g/usr/lib/ncurses/infotail.src, revision 1.1

1.1     ! root        1: /*
        !             2:  * print_name:
        !             3:  *     print name and aliases of current termcap entry.
        !             4:  */
        !             5: print_name ()
        !             6: {
        !             7:     char       name[100];
        !             8: 
        !             9:     tgetname (name);
        !            10:     printf ("%s,\n", name);
        !            11: }
        !            12: 
        !            13: /*
        !            14:  * print_bools:
        !            15:  *     print all boolean fields of current termcap entry.
        !            16:  */
        !            17: print_bools ()
        !            18: {
        !            19:     int                i, val;
        !            20:     bool       stuffprinted = FALSE;
        !            21: 
        !            22:     for (i = 0; i < MAXBOOLS; i++)
        !            23:        if (val = tgetflag (boolcaps[i].capname)) {
        !            24:            if (val == 1)
        !            25:                printf ("\t%s,", boolcaps[i].infoname);
        !            26:            else
        !            27:                printf ("\t%s@,", boolcaps[i].infoname);
        !            28:            stuffprinted = TRUE;
        !            29:        }
        !            30:     if (stuffprinted)
        !            31:        (void) putchar ('\n');
        !            32: }
        !            33: 
        !            34: /*
        !            35:  * print_nums:
        !            36:  *     print all numeric fields of current termcap entry.
        !            37:  */
        !            38: print_nums ()
        !            39: {
        !            40:     int                i, capval;
        !            41:     bool       stuffprinted = FALSE;
        !            42: 
        !            43:     for (i = 0; i < MAXNUMS; i++)
        !            44:        if ((capval = tgetnum (numcaps[i].capname)) >= 0) {
        !            45:            printf ("\t%s#%d,", numcaps[i].infoname, capval);
        !            46:            stuffprinted = TRUE;
        !            47:        }
        !            48:        else if (capval == -2) {
        !            49:            printf ("\t%s@,", numcaps[i].infoname);
        !            50:            stuffprinted = TRUE;
        !            51:        }
        !            52:     if (stuffprinted)
        !            53:        (void) putchar ('\n');
        !            54: }
        !            55: 
        !            56: /*
        !            57:  * print_strs:
        !            58:  *     print all string fields of current termcap entry.
        !            59:  */
        !            60: print_strs ()
        !            61: {
        !            62:     int                i, count = 0;
        !            63:     char       capval[100];
        !            64: 
        !            65:     for (i = 0; i < MAXSTRS; i++) {
        !            66:        tgetstr (strcaps[i].capname, capval);
        !            67:        if (!capval[0]) {
        !            68:            if (strcmp (strcaps[i].capname, "le") == 0) {
        !            69:                tgetstr ("bc", capval);
        !            70:            }
        !            71:            else if (strcmp (strcaps[i].capname, "ta") == 0) { 
        !            72:                if (tgetflag ("pt")) {
        !            73:                    capval[0] = '\t';
        !            74:                    capval[1] = '\0';
        !            75:                }
        !            76:            }
        !            77:        }
        !            78:        if ((!capval[0]) && (strcaps[i].dflt))
        !            79:            (void) strcpy (capval, strcaps[i].dflt);
        !            80:        if (capval[0]) {
        !            81:            if (strcmp (capval, "@") != 0) {
        !            82:                printf ("\t%s=", strcaps[i].infoname);
        !            83:                if (strcmp(strcaps[i].infoname,"use") != 0) {
        !            84:                    put_str (capval);
        !            85:                    printf (",");
        !            86:                }
        !            87:                else
        !            88:                    printf ("%s,", capval);
        !            89:            }
        !            90:            else
        !            91:                printf ("\t%s@,", strcaps[i].infoname);
        !            92:            count++;
        !            93:            if (!(count %= 3))
        !            94:                putchar ('\n');
        !            95:        }
        !            96:     }
        !            97:     if (count)
        !            98:        (void) putchar ('\n');
        !            99: }
        !           100: 
        !           101: /*
        !           102:  * put_str:
        !           103:  *     translate strings to printable format and print them.
        !           104:  */
        !           105: put_str (s)
        !           106: char   *s;
        !           107: {
        !           108:     bool       rflag = FALSE;  /* % codes */
        !           109:     char       *c;
        !           110:     int                parm;
        !           111: 
        !           112:     if ((isdigit (*s)) || (*s == '.')) {       /* handle padding */
        !           113:        printf ("$<");
        !           114:        while ((isdigit (*s)) || (*s == '.')) {
        !           115:            (void) putchar (*s);
        !           116:            s++;
        !           117:        }
        !           118:        if (*s == '*') {
        !           119:            (void) putchar (*s);
        !           120:            s++;
        !           121:        }
        !           122:        (void) putchar ('>');
        !           123:     }
        !           124:     for (c = s; *c; c++) {     /* scan for % codes (needs work) */
        !           125:        if (*c == '%') {
        !           126:            c++;
        !           127:            switch (*c) {
        !           128:                case 'r':
        !           129:                    rflag = TRUE;
        !           130:                    break;
        !           131:                default:
        !           132:                    break;      /* ignore */
        !           133:            }
        !           134:        }
        !           135:     }
        !           136:     parm = 0;
        !           137:     while (*s) {               /* print the string */
        !           138:        switch (*s) {
        !           139:            case '%':
        !           140:                s++;
        !           141:                switch (*s) {
        !           142:                    case '%':
        !           143:                        printf ("%%%%");
        !           144:                        break;
        !           145:                    case 'i':
        !           146:                        printf ("%%i");
        !           147:                        break;
        !           148:                    case 'd':
        !           149:                        parm++;
        !           150:                        if ((rflag) && (parm <= 2)) {
        !           151:                            if (parm == 1)
        !           152:                                printf ("%%p2%%d");
        !           153:                            else
        !           154:                                printf ("%%p1%%d");
        !           155:                        }
        !           156:                        else
        !           157:                            printf ("%%p%d%%d", parm);
        !           158:                        break;
        !           159:                    case '2':
        !           160:                        parm++;
        !           161:                        if ((rflag) && (parm <= 2)) {
        !           162:                            if (parm == 1)
        !           163:                                printf ("%%p2%%02d");
        !           164:                            else
        !           165:                                printf ("%%p1%%02d");
        !           166:                        }
        !           167:                        else
        !           168:                            printf ("%%p%d%%02d", parm);
        !           169:                        break;
        !           170:                    case '3':
        !           171:                        parm++;
        !           172:                        if ((rflag) && (parm <= 2)) {
        !           173:                            if (parm == 1)
        !           174:                                printf ("%%p2%%03d");
        !           175:                            else
        !           176:                                printf ("%%p1%%03d");
        !           177:                        }
        !           178:                        else
        !           179:                            printf ("%%p%d%%03d", parm);
        !           180:                        break;
        !           181:                    case '.':
        !           182:                        parm++;
        !           183:                        if ((rflag) && (parm <= 2)) {
        !           184:                            if (parm == 1)
        !           185:                                printf ("%%p2%%c");
        !           186:                            else
        !           187:                                printf ("%%p1%%c");
        !           188:                        }
        !           189:                        else
        !           190:                            printf ("%%p%d%%c", parm);
        !           191:                        break;
        !           192:                    case '+':
        !           193:                        s++;
        !           194:                        parm++;
        !           195:                        if ((rflag) && (parm <= 2)) {
        !           196:                            if (parm == 1)
        !           197:                                printf ("%%p2%%'%c'%%+%%c", *s);
        !           198:                            else
        !           199:                                printf ("%%p1%%'%c'%%+%%c", *s);
        !           200:                        }
        !           201:                        else
        !           202:                            printf ("%%p%d%%'%c'%%+%%c", parm, *s);
        !           203:                        break;
        !           204:                    default:
        !           205:                        break;  /* ignore */
        !           206:                }
        !           207:                break;
        !           208:            case '\200':
        !           209:                printf ("\\0");
        !           210:                break;
        !           211:            case '\177':
        !           212:                printf ("^?");
        !           213:                break;
        !           214:            case ',':
        !           215:                printf ("\\,");
        !           216:                break;
        !           217:            case '\\':
        !           218:                printf ("\\\\");
        !           219:                break;
        !           220:            case '^':
        !           221:                printf ("\^");
        !           222:                break;
        !           223:            case ':':
        !           224:                printf ("\\:");
        !           225:                break;
        !           226:            case '\033':
        !           227:                printf ("\\E");
        !           228:                break;
        !           229:            case '\n':
        !           230:                printf ("\\n");
        !           231:                break;
        !           232:            case '\r':
        !           233:                printf ("\\r");
        !           234:                break;
        !           235:            case '\t':
        !           236:                printf ("\\t");
        !           237:                break;
        !           238:            case '\b':
        !           239:                printf ("\\b");
        !           240:                break;
        !           241:            case '\f':
        !           242:                printf ("\\f");
        !           243:                break;
        !           244:            case ' ':
        !           245:                printf ("\\s");
        !           246:                break;
        !           247:            default:
        !           248:                if (*s < ' ')
        !           249:                    printf ("^%c", *s + 'A' - 1);
        !           250:                else
        !           251:                    (void) putchar (*s);
        !           252:                break;
        !           253:        }
        !           254:        s++;
        !           255:     }
        !           256: }

unix.superglobalmegacorp.com

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