!++ ! FILENAME: KEYDEF_EVEDT.TPU ! FUNCTION: EVEDT key definitions to resemble my EDT keypad definitions. ! AUTHOR: Steven K. Shapiro, (C) Copyright SKS Enterprises, Austin TX. ! All Rights Reserved. ! ! The format, structure and contents of this file are the sole ! property of Steven K. Shapiro and are copyrighted to SKS ! Enterprises, Austin Texas. ! ! The information may be freely distributed, used and modified ! provided that the information in this header block is not ! changed, altered, disturbed or modified in any way. ! ! DATE: 18-NOV-1986 Original. ! HISTORY: current. ! CONTENTS: ! evedt_define_keys ! eve_describe_key ! eve_display_character ! !23456789A123456789B123456789C123456789D123456789E123456789F123456789G123456789H !-- !*----------------------------------------------------------------------------*! ! Described in General User Release Notes, page 7-15. constant user_kt_handler := "ON_ERROR" + " [TPU$_CONTROLC]:" + " EVE$LEARN_ABORT;" + " ABORT;" + " [OTHERWISE]:" + " ENDON_ERROR;"; ! This constant should be used with all define keys which do not return a ! result. For example: ! ! DEFINE_KEY (USER_KT_HANDLER + "eve_xrecall ('')",kp7, "recall",evedt_key_map); ! ! I'm taking a wait and see attitude. I haven't needed it yet. 29-NOV-1988 !*----------------------------------------------------------------------------*! procedure keydef_evedt_module_ident local file_date, module_vers; file_date := "-<( 29-DEC-1988 11:56:31.12 )>-"; module_vers := substr(file_date,5,2) + substr(file_date,8,3) + substr(file_date,14,2) + substr(file_date,17,5) ; return module_vers; endprocedure; !---------------------------------------------------------------------------- ! procedure evedt_define_keys ! evedt_key_map := create_key_map ("evedt_key_map"); ! ! the keys and key sequences. This procedure is deleted after initialization. ! ! KEYPAD KEYS: ! define_key ("eve_change_mode", enter, "change_mode",evedt_key_map); define_key ("eve_get_file('')", kp3, "get_file",evedt_key_map); define_key ("eve_xrecall ('')",kp7, "recall",evedt_key_map); define_key ("eve_prv_buffer", kp9, "prv_buffer",evedt_key_map); define_key ("eve_toggle_winum_get", pf2, "toggle_winum_get",evedt_key_map); define_key ("evedt_find_next", pf3, "find_next", evedt_key_map); ! ! GOLD SHIFTED KEYPAD KEYS: ! define_key ("eve_rectangular_select", key_name(period,shift_key), "rectangular_select",evedt_key_map); define_key ("eve_print_buffer", key_name(enter,shift_key),"print_buffer",evedt_key_map); define_key ("eve_learn", key_name(kp1,shift_key), "learn",evedt_key_map); define_key ("eve_prior_buffer", key_name(kp3,shift_key), "prior_buffer",evedt_key_map); define_key ("eve_repeat('')", key_name(kp8,shift_key), "repeat",evedt_key_map); define_key ("eve_nxt_buffer",key_name(kp9,shift_key), "nxt_buffer",evedt_key_map); define_key ("eve_other_window", key_name(pf2,shift_key), "other_window",evedt_key_map); ! ! LK201 VT200 editing keypad keys ! define_key ("eve_find_this", key_name(e1,shift_key), " find_this",evedt_key_map); ! ! LK201 Top row function keys ! define_key ("eve_exit", f10, " exit",evedt_key_map); ! define_key ("eve_update_file", f17, "update_file",evedt_key_map); define_key ("eve_xtpu", f18, "extend_tpu",evedt_key_map); define_key ("attach", f19, "Attach", evedt_key_map); define_key ("eve$x_dcl_process := 0;", key_name(f19,shift_key), "stop_subprocs", evedt_key_map); ! ! GOLD SHIFTED ALPHA KEYS: ! define_key ("eve_specins('')", key_name("A",shift_key),"specins",evedt_key_map); define_key ("eve_show_system_buffers", key_name("B",shift_key),"show_system_buffers",evedt_key_map); define_key ("eve_center_line", key_name("C",shift_key),"center_line",evedt_key_map); define_key ("eve_draw_box", key_name("D",shift_key), "draw_box",evedt_key_map); define_key ("eve_exit", key_name("E",shift_key), "exit",evedt_key_map); define_key ("eve_fill_rectangular", key_name("F",shift_key),"fill_rectangular",evedt_key_map); define_key ("eve_line('','')", key_name("G",shift_key),"line",evedt_key_map); define_key ("eve_what_col", key_name("H",shift_key),"what_col",evedt_key_map); define_key ("eve_include_file('')", key_name("I",shift_key),"include_file",evedt_key_map); define_key ("eve_fill_paragraph", key_name("J",shift_key),"fill_paragraph",evedt_key_map); define_key ("eve_define_key('','')", key_name("K",shift_key),"define_key",evedt_key_map); define_key ("eve_lowercase_word", key_name("L",shift_key),"lowercase_word",evedt_key_map); define_key ("eve_set_matching('')", key_name("M",shift_key), "set_matching",evedt_key_map); define_key ("eve_label_file", key_name("N",shift_key), "label_file",evedt_key_map); define_key ("eve_write_file('')", key_name ("O", shift_key), "write_file",evedt_key_map); define_key ("eve_go_col", key_name("P",shift_key), "go_col",evedt_key_map); define_key ("eve_quit", key_name("Q",shift_key), "quit",evedt_key_map); define_key ("evedt$ruler", key_name("R",shift_key), "ruler",evedt_key_map); define_key ("eve_spawn('')", key_name("S",shift_key), "spawn",evedt_key_map); define_key ("eve_time_message", key_name("T",shift_key), "time_message",evedt_key_map); define_key ("eve_uppercase_word", key_name("U",shift_key), "uppercase_word",evedt_key_map); define_key ("eve_dcl('')", key_name("V",shift_key), "dcl",evedt_key_map); define_key ("eve_wildcard_find('')", key_name("W",shift_key),"wilcard_find",evedt_key_map); define_key ("eve_toggle_width", key_name("X",shift_key), "toggle_width",evedt_key_map); define_key ("eve_dts", key_name("Y",shift_key), "dts",evedt_key_map); define_key ("eve_date_stamp", key_name("Z",shift_key), "date_stamp",evedt_key_map); ! ! GOLD SHIFTED NUMERIC KEYS: ! define_key ("eve_pas_begend", key_name("1",shift_key), "pas_begend",evedt_key_map); define_key ("eve_pas_ifthenelse",key_name("2",shift_key),"pas_ifthenelse",evedt_key_map); define_key ("eve_pas_caseof", key_name("3",shift_key), "pas_caseof",evedt_key_map); define_key ("eve_pas_while", key_name("4",shift_key), "pas_while",evedt_key_map); define_key ("eve_pas_repeat", key_name("5",shift_key), "pas_repeat",evedt_key_map); define_key ("eve_pas_for", key_name("6",shift_key), "pas_for",evedt_key_map); define_key ("eve_pas_with", key_name("7",shift_key), "pas_with",evedt_key_map); define_key ("eve_pas_goto", key_name("8",shift_key), "pas_goto",evedt_key_map); define_key ("message(""UNDEFINED"")",key_name("9",shift_key),"undefined",evedt_key_map); define_key ("eve_select_construct", key_name("0",shift_key),"select_construct",evedt_key_map); ! ! CONTROL KEYS: ! !define_key ("eve ", ctrl_a_key, " ",evedt_key_map); define_key ("eve_put_bs",ctrl_b_key,"put_bs",evedt_key_map); define_key ("message(""KEY UNDEFINED"")",ctrl_d_key,"def_key",evedt_key_map); define_key ("eve_put_esc",ctrl_e_key,"put_esc",evedt_key_map); define_key ("eve_put_crlf",ctrl_f_key,"put_crlf",evedt_key_map); define_key ("eve_put_cr",ctrl_g_key,"put_cr",evedt_key_map); define_key ("eve_start_of_line", ctrl_h_key, " start_of_line",evedt_key_map); define_key ("message(""KEY UNDEFINED"")",ctrl_i_key,"def_key",evedt_key_map); define_key ("eve_put_lf",ctrl_j_key,"put_lf",evedt_key_map); define_key ("eve_remember", ctrl_k_key, "remember",evedt_key_map); define_key ("eve_put_ff",ctrl_l_key,"put_ff",evedt_key_map); !define_key ("eve_",ctrl_n_key," ",evedt_key_map); define_key ("evedt$goto_sel_position", ctrl_p_key, "goto_sel_position",evedt_key_map); define_key ("eve_refresh", ctrl_r_key, "refresh",evedt_key_map); define_key ("eve_erase_start_of_line", ctrl_u_key, " erase_start_of_line",evedt_key_map); define_key ("eve_quote", ctrl_v_key, " quote",evedt_key_map); define_key ("eve_refresh", ctrl_w_key, " refresh",evedt_key_map); define_key ("eve_exit", ctrl_z_key, " exit",evedt_key_map); ! ! ARROW KEYS: ! define_key ("eve_move_left_wrap", left,"move_left_wrap",evedt_key_map); ! ! SHIFTED ARROW KEYS: ! define_key ("eve_shift_right(60)", key_name(right,shift_key), "shift_right",evedt_key_map); define_key ("eve_shift_left(60)", key_name(left,shift_key), "shift_left",evedt_key_map); define_key ("eve_mess_up", key_name(up,shift_key), "mess_up",evedt_key_map); define_key ("eve_mess_down", key_name(down,shift_key), "mess_down",evedt_key_map); ! ! MOUSE KEYS: ! define_key (eve$$kt_return + "eve_select", m2down, "Select", evedt_key_map); define_key ("eve_rectangular_select", key_name(m2down,shift_key), "rectangular_select",evedt_key_map); define_key (eve$$kt_return + "eve_remove", m3down, "remove", evedt_key_map); define_key ("eve_insert_here", key_name(m3down,shift_key), "insert_here",evedt_key_map); ! ! MISC. KEYS: ! define_key ("eve_first_user_buffer",key_name(ret_key,shift_key),"first_user_buffer",evedt_key_map); define_key ("evedt$cancel_gold",key_name(key_name(" "),shift_key),"cancel_gold",evedt_key_map); define_key ("eve_faa", key_name("]",shift_key), "faa",evedt_key_map); define_key ("eve_name_file", key_name("[",shift_key),"name_file",evedt_key_map); define_key ("evedt$sl1_list", key_name("<",shift_key), "sl1_list",evedt_key_map); define_key ("evedt$el1_list", key_name(">",shift_key), "el1_list",evedt_key_map); define_key ("evedt$list_entry", key_name(",",shift_key), "list_entry",evedt_key_map); ! define_key ("eve_space_tab", tab_key, "space_tab",evedt_key_map); define_key ("eve_skip_tab", key_name(tab_key,shift_key), "skip_tab",evedt_key_map); ! define_key ("eve_find_matching", key_name("(",shift_key), "find_matching",evedt_key_map); define_key ("eve_count_page", key_name(")",shift_key), "count_page",evedt_key_map); define_key ("eve_raa", key_name("&",shift_key), "raa",evedt_key_map); define_key ("eve_filter_buffer", key_name("%",shift_key), "filter_buffer",evedt_key_map); define_key ("eve_display_character", key_name("^",shift_key),"display_character",evedt_key_map); define_key ("eve_eliminate_tabs", key_name("$",shift_key),"eliminate_tabs",evedt_key_map); define_key ("eve_select_capitalize", key_name("@",shift_key),"select_capitalize",evedt_key_map); define_key ("eve_show", key_name("#",shift_key),"show",evedt_key_map); define_key ("eve_fix_crlfs", key_name("~",shift_key), "fix_crlfs",evedt_key_map); define_key ("eve_find_be_match", key_name("!",shift_key),"find_be_match ",evedt_key_map); define_key ("eve_replace('','')", key_name("/",shift_key),"replace",evedt_key_map); define_key ("eve_clist", key_name("*",shift_key),"clist",evedt_key_map); define_key ("eve_show_buffers", key_name("=",shift_key),"list_buffers",evedt_key_map); define_key ("eve_ccb", key_name("\",shift_key),"ccb",evedt_key_map); define_key ("eve_version(1)", key_name(".",shift_key),"version",evedt_key_map); define_key ("eve_sort_buffer('')", key_name("'",shift_key),"sort_buffer",evedt_key_map); define_key ("eve_draw_comment_box", key_name(";",shift_key),"draw_comment_box",evedt_key_map); define_key ("eve_capitalize_word", key_name("""",shift_key),"capitalize_word",evedt_key_map); define_key ("eve$trim_line", key_name("_",shift_key),"trim_line",evedt_key_map); define_key ("eve_trim_buffer", key_name("-",shift_key),"trim_buffer",evedt_key_map); define_key ("eve_dbuffer", key_name("`",shift_key),"dbuffer",evedt_key_map); define_key ("eve_toggle_nowrite", key_name("{",shift_key),"toggle_nowrite",evedt_key_map); define_key ("eve_toggle_nomodify", key_name("}",shift_key),"toggle_nomodify",evedt_key_map); define_key ("eve_comment_line", key_name(":",shift_key),"comment_line",evedt_key_map); define_key ("eve_toggle_traceback", key_name("?",shift_key),"toggle_traceback",evedt_key_map); define_key ("eve_ecb", key_name("|",shift_key),"ecb",evedt_key_map); define_key ("eve_open",key_name("+",shift_key),"open file",evedt_key_map); add_key_map(eve$x_key_map_list, eve$kt_first, evedt_key_map); eve_set_keypad_edt; ! ALL keys MUST be defined BEFORE you call this procedure endprocedure; !*----------------------------------------------------------------------------*! ! This procedure will prompt for a key stroke or shift sequence and look ! up the comment that was attributed to the keystroke when it was defined. ! If there was no comment given, the message "Key Function Not Described" is ! displayed in the message area at the bottom of the screen. Otherwise, ! the key's function is displayed. ! PROCEDURE eve_describe_key LOCAL key_to_describe, key_description; MESSAGE("Press Key to Describe:"); key_to_describe := READ_KEY; key_description := LOOKUP_KEY(key_to_describe,COMMENT); IF key_description <> "" THEN MESSAGE("Function Description : " + key_description); ELSE MESSAGE("Key Function Not Described"); ENDIF; ENDPROCEDURE; !*----------------------------------------------------------------------------*! ! PROCEDURE eve_display_character ! ! This procedure writes a one line message describing the current ! character in terms of Octal, Decimal, Hexadecimal and if an ASCII ! control character, in terms of the ^ notation. ! LOCAL i, mn_char_pat, mn_char, as_char_pat, as_char, cur_char; ! Handle end-of-buffer condition IF MARK( NONE ) = END_OF( CURRENT_BUFFER ) THEN MESSAGE( 'At end of buffer, no current character.' ); RETURN; ENDIF; ! Convert the character to an integer the hard way (no builtin yet) i := 0; LOOP; EXITIF i > 255; EXITIF CURRENT_CHARACTER = ASCII(i); i := i + 1; ENDLOOP; IF i > 255 THEN i := 0; ENDIF; ! On overflow, reset to NULL ! Provide ^ notation for ASCII control characters IF i < 32 THEN as_char_pat := ASCII(i); cur_char := ', ASCII CTRL: ^' + ASCII(i+64) + ', ' + ep$xlate_controls (as_char_pat); ELSE IF i > 126 THEN mn_char_pat := ASCII(i); cur_char := ', Multinational: ' + ep$xlate_multinationals (mn_char_pat); ELSE cur_char := ''; ENDIF; ENDIF; ! Format and output the results MESSAGE( FAO( "Current Character is '!AS', Octal=!OB, Decimal=!-!UB, " + "Hex=!-!XB!AS", CURRENT_CHARACTER, i, cur_char ) ); ENDPROCEDURE; ! eve_display_character !*----------------------------------------------------------------------------*! ! Dynamically execute the define keys procedure at build time. evedt_define_keys;