|
|
1.1 ! root 1: /* ! 2: * ti4 [term] ! 3: * dummy program to test termlib. ! 4: * gets entry, counts it, and prints it. ! 5: */ ! 6: #include <stdio.h> ! 7: #include "curses.h" ! 8: #include "term.h" ! 9: ! 10: #define prb(name) if (name) printf("name\n") ! 11: #define prn(name) if (name != -1) printf("name = %d\n", name) ! 12: #define prs(name) if (name) {printf("name = '"); pr(name); printf("'\n");} ! 13: ! 14: char buf[1024]; ! 15: char *getenv(); ! 16: ! 17: main(argc, argv) char **argv; { ! 18: char *p; ! 19: int rc; ! 20: ! 21: if (argc < 2) ! 22: p = getenv("TERM"); ! 23: else ! 24: p = argv[1]; ! 25: printf("Terminal type %s\n", p); ! 26: setupterm(p,1,0); ! 27: ! 28: printf("flags\n"); ! 29: ! 30: prb(auto_left_margin) ; ! 31: prb(auto_right_margin) ; ! 32: prb(beehive_glitch) ; ! 33: prb(ceol_standout_glitch) ; ! 34: prb(eat_newline_glitch) ; ! 35: prb(erase_overstrike) ; ! 36: prb(generic_type) ; ! 37: prb(hard_copy) ; ! 38: prb(has_meta_key) ; ! 39: prb(has_status_line) ; ! 40: prb(insert_null_glitch) ; ! 41: prb(memory_above) ; ! 42: prb(memory_below) ; ! 43: prb(move_insert_mode) ; ! 44: prb(move_standout_mode) ; ! 45: prb(over_strike) ; ! 46: prb(status_line_esc_ok) ; ! 47: prb(teleray_glitch) ; ! 48: prb(tilde_glitch) ; ! 49: prb(transparent_underline) ; ! 50: prb(xon_xoff) ; ! 51: ! 52: printf("\nnumbers\n"); ! 53: ! 54: prn(columns) ; ! 55: prn(init_tabs) ; ! 56: prn(lines) ; ! 57: prn(lines_of_memory) ; ! 58: prn(magic_cookie_glitch) ; ! 59: prn(padding_baud_rate) ; ! 60: prn(virtual_terminal) ; ! 61: prn(width_status_line) ; ! 62: ! 63: printf("\nstrings\n"); ! 64: ! 65: prs(back_tab) ; ! 66: prs(bell) ; ! 67: prs(carriage_return) ; ! 68: prs(change_scroll_region) ; ! 69: prs(clear_all_tabs) ; ! 70: prs(clear_screen) ; ! 71: prs(clr_eol) ; ! 72: prs(clr_eos) ; ! 73: prs(column_address) ; ! 74: prs(command_character) ; ! 75: prs(cursor_address) ; ! 76: prs(cursor_down) ; ! 77: prs(cursor_home) ; ! 78: prs(cursor_invisible) ; ! 79: prs(cursor_left) ; ! 80: prs(cursor_mem_address) ; ! 81: prs(cursor_normal) ; ! 82: prs(cursor_right) ; ! 83: prs(cursor_to_ll) ; ! 84: prs(cursor_up) ; ! 85: prs(cursor_visible) ; ! 86: prs(delete_character) ; ! 87: prs(delete_line) ; ! 88: prs(dis_status_line) ; ! 89: prs(down_half_line) ; ! 90: prs(enter_alt_charset_mode) ; ! 91: prs(enter_blink_mode) ; ! 92: prs(enter_bold_mode) ; ! 93: prs(enter_ca_mode) ; ! 94: prs(enter_delete_mode) ; ! 95: prs(enter_dim_mode) ; ! 96: prs(enter_insert_mode) ; ! 97: prs(enter_secure_mode) ; ! 98: prs(enter_protected_mode) ; ! 99: prs(enter_reverse_mode) ; ! 100: prs(enter_standout_mode) ; ! 101: prs(enter_underline_mode) ; ! 102: prs(erase_chars) ; ! 103: prs(exit_alt_charset_mode) ; ! 104: prs(exit_attribute_mode) ; ! 105: prs(exit_ca_mode) ; ! 106: prs(exit_delete_mode) ; ! 107: prs(exit_insert_mode) ; ! 108: prs(exit_standout_mode) ; ! 109: prs(exit_underline_mode) ; ! 110: prs(flash_screen) ; ! 111: prs(form_feed) ; ! 112: prs(from_status_line) ; ! 113: prs(init_1string) ; ! 114: prs(init_2string) ; ! 115: prs(init_3string) ; ! 116: prs(init_file) ; ! 117: prs(insert_character) ; ! 118: prs(insert_line) ; ! 119: prs(insert_padding) ; ! 120: prs(key_backspace) ; ! 121: prs(key_catab) ; ! 122: prs(key_clear) ; ! 123: prs(key_ctab) ; ! 124: prs(key_dc) ; ! 125: prs(key_dl) ; ! 126: prs(key_down) ; ! 127: prs(key_eic) ; ! 128: prs(key_eol) ; ! 129: prs(key_eos) ; ! 130: prs(key_f0) ; ! 131: prs(key_f1) ; ! 132: prs(key_f10) ; ! 133: prs(key_f2) ; ! 134: prs(key_f3) ; ! 135: prs(key_f4) ; ! 136: prs(key_f5) ; ! 137: prs(key_f6) ; ! 138: prs(key_f7) ; ! 139: prs(key_f8) ; ! 140: prs(key_f9) ; ! 141: prs(key_home) ; ! 142: prs(key_ic) ; ! 143: prs(key_il) ; ! 144: prs(key_left) ; ! 145: prs(key_ll) ; ! 146: prs(key_npage) ; ! 147: prs(key_ppage) ; ! 148: prs(key_right) ; ! 149: prs(key_sf) ; ! 150: prs(key_sr) ; ! 151: prs(key_stab) ; ! 152: prs(key_up) ; ! 153: prs(keypad_local) ; ! 154: prs(keypad_xmit) ; ! 155: prs(lab_f0) ; ! 156: prs(lab_f1) ; ! 157: prs(lab_f10) ; ! 158: prs(lab_f2) ; ! 159: prs(lab_f3) ; ! 160: prs(lab_f4) ; ! 161: prs(lab_f5) ; ! 162: prs(lab_f6) ; ! 163: prs(lab_f7) ; ! 164: prs(lab_f8) ; ! 165: prs(lab_f9) ; ! 166: prs(meta_off) ; ! 167: prs(meta_on) ; ! 168: prs(newline) ; ! 169: prs(pad_char) ; ! 170: prs(parm_dch) ; ! 171: prs(parm_delete_line) ; ! 172: prs(parm_down_cursor) ; ! 173: prs(parm_ich) ; ! 174: prs(parm_index) ; ! 175: prs(parm_insert_line) ; ! 176: prs(parm_left_cursor) ; ! 177: prs(parm_right_cursor) ; ! 178: prs(parm_rindex) ; ! 179: prs(parm_up_cursor) ; ! 180: prs(pkey_key) ; ! 181: prs(pkey_local) ; ! 182: prs(pkey_xmit) ; ! 183: prs(print_screen) ; ! 184: prs(prtr_off) ; ! 185: prs(prtr_on) ; ! 186: prs(repeat_char) ; ! 187: prs(reset_1string) ; ! 188: prs(reset_2string) ; ! 189: prs(reset_3string) ; ! 190: prs(reset_file) ; ! 191: prs(restore_cursor) ; ! 192: prs(row_address) ; ! 193: prs(save_cursor) ; ! 194: prs(scroll_forward) ; ! 195: prs(scroll_reverse) ; ! 196: prs(set_attributes) ; ! 197: prs(set_tab) ; ! 198: prs(set_window) ; ! 199: prs(tab) ; ! 200: prs(to_status_line) ; ! 201: prs(underline_char) ; ! 202: prs(up_half_line) ; ! 203: prs(init_prog) ; ! 204: prs(key_a1) ; ! 205: prs(key_a3) ; ! 206: prs(key_b2) ; ! 207: prs(key_c1) ; ! 208: prs(key_c3) ; ! 209: prs(prtr_non) ; ! 210: ! 211: printf("end of strings\n"); ! 212: reset_shell_mode(); ! 213: exit(0); ! 214: } ! 215: ! 216: pr(p) ! 217: register char *p; ! 218: { ! 219: char *rdchar(); ! 220: ! 221: for (; *p; p++) ! 222: printf("%s", rdchar(*p)); ! 223: } ! 224: ! 225: /* ! 226: * rdchar: returns a readable representation of an ASCII char, using ^ notation. ! 227: */ ! 228: #include <ctype.h> ! 229: char *rdchar(c) ! 230: char c; ! 231: { ! 232: static char ret[4]; ! 233: register char *p; ! 234: ! 235: /* ! 236: * Due to a bug in isprint, this prints spaces as ^`, but this is OK ! 237: * because we want something to show up on the screen. ! 238: */ ! 239: ret[0] = ((c&0377) > 0177) ? '\'' : ' '; ! 240: c &= 0177; ! 241: ret[1] = isprint(c) ? ' ' : '^'; ! 242: ret[2] = isprint(c) ? c : c^0100; ! 243: ret[3] = 0; ! 244: for (p=ret; *p==' '; p++) ! 245: ; ! 246: return (p); ! 247: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.