!Last Modified: 11-DEC-1988 21:55:54.09, By: FLEMING procedure eve$$store_remove (the_paste_buffer, delete_range) ! Store/remove text local remove_range, ! Range being removed saved_mark, ! Marker for current cursor position done_message; ! Id of announcement message on_error [TPU$_CONTROLC]: eve$$restore_position (saved_mark); eve$learn_abort; abort; [OTHERWISE]: eve$$restore_position (saved_mark); eve$learn_abort; endon_error; remove_range := eve$selection (TRUE); if remove_range <> 0 then saved_mark := mark (NONE); ! OK to pad now erase (the_paste_buffer); position (the_paste_buffer); if delete_range then done_message := EVE$_REMCOMPL; move_text (remove_range); else done_message := EVE$_COPYCOMPL; copy_text (remove_range); endif; if mark (NONE) = end_of (the_paste_buffer) then split_line; endif; position (saved_mark); remove_range := 0; eve$message (done_message); return (TRUE); endif; eve$learn_abort; return (FALSE); endprocedure; ! MOD 8-Dec-1988 allow selection independent of buffer location procedure eve$selection (do_messages) ! Get the select range or implied SR local possible_range,save_buffer,selected_buffer; on_error [TPU$_SELRANGEZERO]: [OTHERWISE]: endon_error; if eve$x_select_position <> 0 then !!!! MOD to get selected region no matter which buffer it's in save_buffer := current_buffer; ! save our home selected_buffer := get_info (eve$x_select_position, "buffer"); if selected_buffer <> current_buffer then !there is a select on but it's in another buffer so !position there position(selected_buffer); endif; possible_range := select_range; eve$x_select_position := 0; if possible_range = 0 then !