procedure eve_next_window local this_one, last_one, temp, target; if eve$x_number_of_windows = 1 then message("Only one window on screen."); return; endif; this_one := get_info(windows,"current"); target := get_info(windows,"next"); loop if get_info(target,"visible") then temp := get_info(target,"buffer"); if temp <> 0 then exitif NOT get_info(temp,"system"); ! Any non-system buffer OK exitif (target <> eve$command_window) ! Don't move to these special and (target <> eve$prompt_window) ! windows; system buffers in and (target <> message_window) ! other windows are OK. and (target <> eag_map_window); endif; endif; target := get_info(windows,"next"); if target = 0 then target := get_info(windows,"first"); endif; exitif target = 0; exitif target = this_one; ! We've looked at all windows endloop; if target = 0 then position(get_info(windows,"first")); else if target = this_one then message("No eligible window to move to"); else position(target); endif; endif; endprocedure;