static bool entryeq(TERMTYPE *t1, TERMTYPE *t2) /* are two entries equivalent? */ { unsigned i; for (i = 0; i < NUM_BOOLEANS(t1); i++) if (t1->Booleans[i] != t2->Booleans[i]) return (FALSE); for (i = 0; i < NUM_NUMBERS(t1); i++) if (t1->Numbers[i] != t2->Numbers[i]) return (FALSE); for (i = 0; i < NUM_STRINGS(t1); i++) if (capcmp((PredIdx) i, t1->Strings[i], t2->Strings[i])) return (FALSE); return (TRUE); }
static void demo_terminfo(char *name) { unsigned n; NCURSES_CONST char *cap; printf("Terminal type \"%s\"\n", name); setupterm(name, 1, (int *) 0); if (b_opt) { for (n = 0;; ++n) { cap = f_opt ? boolfnames[n] : boolnames[n]; if (cap == 0) break; dumpit(cap); } } if (n_opt) { for (n = 0;; ++n) { cap = f_opt ? numfnames[n] : numnames[n]; if (cap == 0) break; dumpit(cap); } } if (s_opt) { for (n = 0;; ++n) { cap = f_opt ? strfnames[n] : strnames[n]; if (cap == 0) break; dumpit(cap); } } #ifdef NCURSES_VERSION if (x_opt) { int mod; if (f_opt) { #if NCURSES_XNAMES TERMTYPE *term = &(cur_term->type); if (term != 0 && ((NUM_BOOLEANS(term) != BOOLCOUNT) || (NUM_NUMBERS(term) != NUMCOUNT) || (NUM_STRINGS(term) != STRCOUNT))) { for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) { dumpit(ExtBoolname(term, (int) n, boolnames)); } for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) { dumpit(ExtNumname(term, (int) n, numnames)); } for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) { dumpit(ExtStrname(term, (int) n, strnames)); } } #endif } else { char temp[10]; static const char *xterm_keys[] = { "kDC", "kDN", "kEND", "kHOM", "kIC", "kLFT", "kNXT", "kPRV", "kRIT", "kUP", }; for (n = 0; n < SIZEOF(xterm_keys); ++n) { for (mod = 0; mod < 8; ++mod) { if (mod == 0) strcpy(temp, xterm_keys[n]); else sprintf(temp, "%s%d", xterm_keys[n], mod); dumpit(temp); } } } } #endif }