! ----- [LOMASKY.EVE]NO_FOUND_REVERSE.TPU$COMMAND ----- ! ! ----- Modified eve$find_target in EVE$CORE.TPU to skip the ----- ! ----- "Found in reverse direction - Go there?" prompt ----- ! procedure eve$find_target ! Find subprocedure (how_exact, replacing, move_flag; old_find) ! Search for eve$x_target in the current direction. If not found in the ! current direction look in the opposite direction, but do not go ! there without prompting the user. ! Returns range if eve$x_target found, otherwise returns false. ! ! Parameters: ! how_exact eve$x_find_exact or eve$x_find_no_exact - input ! replacing 1 = called by eve_replace: allow a ! match at current cursor position and ! return if no string found ! 2 = called by wildcard_find ! 0 = called by eve_find - input ! move_flag 1 = position to found string ! 0 = don't position to found string - input ! old_find 1 = called by eve$find - optional input local saved_mark, ! Marker for current cursor position text_mark, ! Marker for current text position other_direction, ! Keyword for opposite direction find_range, ! Range returned by search status, ! Result of set (widget) leading_whitespace, ! Boolean for including leading whitespace the_prompt, ! Prompt for going in other direction find_reply, ! Reply to inquiry about changing direction change_direction_key, ! Keyword for key used to end find_reply saved_direction; ! Direction upon entry on_error [TPU$_CONTROLC]: if (saved_direction <> current_direction) and (get_info (saved_direction, "type") = KEYWORD) then set (saved_direction, current_buffer); endif; eve$$restore_position (saved_mark); eve$learn_abort; abort; [OTHERWISE]: if (saved_direction <> current_direction) and (get_info (saved_direction, "type") = KEYWORD) then set (saved_direction, current_buffer); endif; eve$$restore_position (saved_mark); endon_error; saved_direction := current_direction; saved_mark := mark (FREE_CURSOR); ! mark original position position (TEXT); ! snap cursor to text text_mark := mark (NONE); if current_direction = FORWARD then if saved_mark <> end_of (current_buffer) then find_range := eve$search (eve$x_target, FORWARD, how_exact, eve$$x_state_array {eve$$k_leading_whitespace}, replacing); else find_range := 0; endif; else if saved_mark <> beginning_of (current_buffer) then find_range := eve$search (eve$x_target, REVERSE, how_exact, eve$$x_state_array {eve$$k_leading_whitespace}, replacing); else find_range := 0; endif; endif; if find_range = 0 ! didn't find in original direction then if replacing = 1 then position (saved_mark); return (FALSE); else if learn_abort ! Don't look in opposite dir if in LEARN SEQ then eve$message (EVE$_FINDFAIL); eve$message (EVE$_LEARNABORTBIG); position (saved_mark); return (FALSE); endif; if get_info (eve$x_target, "type") = STRING then eve$message (EVE$_STRNOTFOUND, 0, eve$x_target); else eve$message (EVE$_STRNOTFOUND, 0, eve$x_printable_target); endif; position (saved_mark); return (0); endif; else %if eve$x_option_decwindows %then if eve$x_decwindows_active then eve$$set_responder (eve$$k_find_each_yes, "eve$invalid_event(" + str (eve$$k_find_each_yes) + ")"); endif; %endif if move_flag then eve$position_in_middle (beginning_of (find_range)); endif; return (find_range); endif; endprocedure;