(1 / 1)
Date: February 05, 1987 14:38
From: CHARM::ROTBERG
To: @SYS$MAIL:ENGINEER
Yo! Here are some definitions to (further) customize TPU to add a few features that I have grown to love on other EDT systems. The funtions added are: GOLD/Q quit GOLD/ctrl_Z exit GOLD/ctrl_W toggle between 80 columns and 132 columns GOLD/B go to buffer ( = ) GOLD/backspace flip the preceeding two characters Here is the code to add to your local TPUINI.TPU file: ! procedure edr$flip !flip preceeding 2 characters move_horizontal(-1); edt$delete_char; move_horizontal(-1); edt$undelete_char; move_horizontal(2); endprocedure ! procedure edr$set_screen !toggle screen size if edr$scr_size = 80 then edr$scr_size := 132; else edr$scr_size := 80; endif; set(width,main_window,edr$scr_size); set(width,aux_window,edr$scr_size); set(width,message_window,edr$scr_size); endprocedure ! procedure edr$buffer ! support routine for GOLD/ctrl_B LOCAL buffer_ptr , create_variable_string, term_char, buffer_name ; ! This is to move to a new buffer and map it to the main window. If ! the buffer does not exist, create it with the NO_WRITE attribute. ! Get the name from the user. buffer_name:=read_line('Buffer: '); ! get line from user edit (buffer_name, trim, upper, OFF); !bite off all white space if (buffer_name = edt$x_empty) then message ('No buffer specified'); return 0; endif; ! IF it exists just map to it. buffer_ptr := edt$find_buffer(buffer_name); if buffer_ptr = 0 then edt$x_make_buf_var := buffer_name; create_variable_string := edt$x_make_buf_var + "_buffer := create_buffer(edt$x_make_buf_var)"; execute (create_variable_string); ! Now get the pointer back, we know it is the last buffer in the list buffer_ptr := get_info (buffers,'last'); ! SET (NO_WRITE, buffer_ptr, ON); set(eob_text, buffer_ptr, '[End of '+buffer_name+']'); endif; map(current_window,buffer_ptr); return 1; endprocedure ! ! edr$scr_size := 80; ! ! define_key('edr$buffer',key_name('B',shift_key),"switch buffer"); define_key('quit',key_name('Q',shift_key),"quick quit"); define_key('edr$flip',key_name(bs_key,shift_key),"flip"); define_key('dms$exit',key_name(ctrl_z_key,shift_key),"quick exit"); define_key('edr$set_screen', key_name(ctrl_w_key,shift_key),"toggle size"); ! Good Luck -- Ed R.
Feb 05, 1987