!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! file containing TPU procedures for useful erasures not included in the ! EVE interface: erase REST-OF-WORD, REST-OF-LINE, WITHOUT performing ! LINE-JOINS; erase ENTIRE line (including line-end) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! PROCEDURE cjc_erase_rest_of_word LOCAL pat , this_buffer , start_position, end_position , erase_range ; this_buffer := current_buffer ; start_position := mark ( NONE ) ; if ( current_window = eve$command_window ) or ( start_position = end_of ( this_buffer ) ) or ( index ( eve$x_whitespace, current_character ) <> 0 ) then return ; endif ; ! mark end-of-word: pat := '' & any ( eve$x_word_separators ) ; position ( search ( pat , FORWARD ) ) ; if ( search ( ANCHOR & LINE_END , FORWARD ) <> 0 ) then move_horizontal ( -1 ) ; endif ; end_position := mark ( NONE ) ; erase_range := create_range ( start_position , end_position , NONE ) ; position ( start_position ) ; eve$x_restore_text := erase_character ( length ( erase_range ) ) ; eve$x_restoring_line := 0 ; ENDPROCEDURE ; PROCEDURE cjc_erase_rest_of_line LOCAL this_buffer , start_position, end_position , erase_range ; this_buffer := current_buffer ; start_position := mark ( NONE ) ; if ( current_window = eve$command_window ) or ( start_position = end_of ( this_buffer ) ) then return ; endif ; position ( search ( LINE_END , FORWARD ) ) ; end_position := mark ( NONE ) ; if ( end_position <> start_position ) then move_horizontal ( -1 ) ; end_position := mark ( NONE ) ; endif ; erase_range := create_range ( start_position , end_position , NONE ) ; position ( start_position ) ; eve$x_restore_text := erase_character ( length ( erase_range ) ) ; eve$x_restoring_line := 0 ; ENDPROCEDURE ; PROCEDURE cjc_erase_entire_line eve$x_restoring_line := 1 ; eve$x_restore_text := erase_line ; ENDPROCEDURE ;