procedure eve_copytext local this_position, ! Marker for current cursor position remove_range; ! Range being removed this_position := mark (none); if eve$x_select_position <> 0 then if get_info (eve$x_select_position, "buffer") <> current_buffer then message ("Remove must be used in the same buffer as Select."); else remove_range := select_range; ! Select & Remove in same spot => erase this character if remove_range = 0 then if this_position = end_of (current_buffer) then message ("Nothing to copy"); eve$x_select_position := 0; return; else remove_range := create_range (mark (none), mark (none), none); endif; endif; erase (paste_buffer); position (paste_buffer); split_line; move_vertical (-1); copy_text (remove_range); position (this_position); eve$x_select_position := 0; remove_range := 0; message ("Copy to paste buffer completed."); endif; else message ("Use Select before using Copytext."); endif; endprocedure;