/* * ti4 [term] * dummy program to test termlib. * gets entry, counts it, and prints it. */ #include <stdio.h> #include "curses.h" #include "term.h" #define prb(name) if (name) printf("name\n") #define prn(name) if (name != -1) printf("name = %d\n", name) #define prs(name) if (name) {printf("name = '"); pr(name); printf("'\n");} char buf[1024]; char *getenv(); main(argc, argv) char **argv; { char *p; int rc; if (argc < 2) p = getenv("TERM"); else p = argv[1]; printf("Terminal type %s\n", p); setupterm(p,1,0); printf("flags\n"); prb(auto_left_margin) ; prb(auto_right_margin) ; prb(beehive_glitch) ; prb(ceol_standout_glitch) ; prb(eat_newline_glitch) ; prb(erase_overstrike) ; prb(generic_type) ; prb(hard_copy) ; prb(has_meta_key) ; prb(has_status_line) ; prb(insert_null_glitch) ; prb(memory_above) ; prb(memory_below) ; prb(move_insert_mode) ; prb(move_standout_mode) ; prb(over_strike) ; prb(status_line_esc_ok) ; prb(teleray_glitch) ; prb(tilde_glitch) ; prb(transparent_underline) ; prb(xon_xoff) ; printf("\nnumbers\n"); prn(columns) ; prn(init_tabs) ; prn(lines) ; prn(lines_of_memory) ; prn(magic_cookie_glitch) ; prn(padding_baud_rate) ; prn(virtual_terminal) ; prn(width_status_line) ; printf("\nstrings\n"); prs(back_tab) ; prs(bell) ; prs(carriage_return) ; prs(change_scroll_region) ; prs(clear_all_tabs) ; prs(clear_screen) ; prs(clr_eol) ; prs(clr_eos) ; prs(column_address) ; prs(command_character) ; prs(cursor_address) ; prs(cursor_down) ; prs(cursor_home) ; prs(cursor_invisible) ; prs(cursor_left) ; prs(cursor_mem_address) ; prs(cursor_normal) ; prs(cursor_right) ; prs(cursor_to_ll) ; prs(cursor_up) ; prs(cursor_visible) ; prs(delete_character) ; prs(delete_line) ; prs(dis_status_line) ; prs(down_half_line) ; prs(enter_alt_charset_mode) ; prs(enter_blink_mode) ; prs(enter_bold_mode) ; prs(enter_ca_mode) ; prs(enter_delete_mode) ; prs(enter_dim_mode) ; prs(enter_insert_mode) ; prs(enter_secure_mode) ; prs(enter_protected_mode) ; prs(enter_reverse_mode) ; prs(enter_standout_mode) ; prs(enter_underline_mode) ; prs(erase_chars) ; prs(exit_alt_charset_mode) ; prs(exit_attribute_mode) ; prs(exit_ca_mode) ; prs(exit_delete_mode) ; prs(exit_insert_mode) ; prs(exit_standout_mode) ; prs(exit_underline_mode) ; prs(flash_screen) ; prs(form_feed) ; prs(from_status_line) ; prs(init_1string) ; prs(init_2string) ; prs(init_3string) ; prs(init_file) ; prs(insert_character) ; prs(insert_line) ; prs(insert_padding) ; prs(key_backspace) ; prs(key_catab) ; prs(key_clear) ; prs(key_ctab) ; prs(key_dc) ; prs(key_dl) ; prs(key_down) ; prs(key_eic) ; prs(key_eol) ; prs(key_eos) ; prs(key_f0) ; prs(key_f1) ; prs(key_f10) ; prs(key_f2) ; prs(key_f3) ; prs(key_f4) ; prs(key_f5) ; prs(key_f6) ; prs(key_f7) ; prs(key_f8) ; prs(key_f9) ; prs(key_home) ; prs(key_ic) ; prs(key_il) ; prs(key_left) ; prs(key_ll) ; prs(key_npage) ; prs(key_ppage) ; prs(key_right) ; prs(key_sf) ; prs(key_sr) ; prs(key_stab) ; prs(key_up) ; prs(keypad_local) ; prs(keypad_xmit) ; prs(lab_f0) ; prs(lab_f1) ; prs(lab_f10) ; prs(lab_f2) ; prs(lab_f3) ; prs(lab_f4) ; prs(lab_f5) ; prs(lab_f6) ; prs(lab_f7) ; prs(lab_f8) ; prs(lab_f9) ; prs(meta_off) ; prs(meta_on) ; prs(newline) ; prs(pad_char) ; prs(parm_dch) ; prs(parm_delete_line) ; prs(parm_down_cursor) ; prs(parm_ich) ; prs(parm_index) ; prs(parm_insert_line) ; prs(parm_left_cursor) ; prs(parm_right_cursor) ; prs(parm_rindex) ; prs(parm_up_cursor) ; prs(pkey_key) ; prs(pkey_local) ; prs(pkey_xmit) ; prs(print_screen) ; prs(prtr_off) ; prs(prtr_on) ; prs(repeat_char) ; prs(reset_1string) ; prs(reset_2string) ; prs(reset_3string) ; prs(reset_file) ; prs(restore_cursor) ; prs(row_address) ; prs(save_cursor) ; prs(scroll_forward) ; prs(scroll_reverse) ; prs(set_attributes) ; prs(set_tab) ; prs(set_window) ; prs(tab) ; prs(to_status_line) ; prs(underline_char) ; prs(up_half_line) ; prs(init_prog) ; prs(key_a1) ; prs(key_a3) ; prs(key_b2) ; prs(key_c1) ; prs(key_c3) ; prs(prtr_non) ; printf("end of strings\n"); reset_shell_mode(); exit(0); } pr(p) register char *p; { char *rdchar(); for (; *p; p++) printf("%s", rdchar(*p)); } /* * rdchar: returns a readable representation of an ASCII char, using ^ notation. */ #include <ctype.h> char *rdchar(c) char c; { static char ret[4]; register char *p; /* * Due to a bug in isprint, this prints spaces as ^`, but this is OK * because we want something to show up on the screen. */ ret[0] = ((c&0377) > 0177) ? '\'' : ' '; c &= 0177; ret[1] = isprint(c) ? ' ' : '^'; ret[2] = isprint(c) ? c : c^0100; ret[3] = 0; for (p=ret; *p==' '; p++) ; return (p); }