procedure eve_newout(the_arg) local this_buffer, ! Current buffer mode_string, ! String version of current mode direction_string, ! String version of current direction buffer_name, ! String containing name of current buffer new_file, ! String containing new output file spec prompt_string; ! Scratch string for prompt prompt_string := fao("New output file for buffer !AS : ", get_info(current_buffer,"name")); new_file := the_arg; if new_file = "" then new_file := read_line(prompt_string); endif; if new_file = "" then return; else set(output_file,current_buffer,new_file); this_buffer := get_info (current_window, "buffer"); ! Don't add a status line to windows without a status line if (this_buffer = 0) or (get_info (current_window, "status_line") = 0) then return; endif; if get_info (this_buffer, "mode") = insert then mode_string := "Insert "; else mode_string := "Overstrike"; endif; if get_info (this_buffer, "direction") = reverse then direction_string := "Reverse"; else direction_string := "Forward"; endif; buffer_name := get_info (this_buffer, "name") + " (OUTPUT ALTERED)"; if length (buffer_name) > eve$x_max_buffer_name_length then buffer_name := substr (buffer_name, 1, eve$x_max_buffer_name_length); else buffer_name := buffer_name + substr (eve$x_spaces, 1, eve$x_max_buffer_name_length - length (buffer_name)); endif; set (status_line, current_window, reverse, " Buffer " + buffer_name + " " + mode_string + " " + direction_string); endif; endprocedure; procedure tpu$local_init eve$arg1_newout := eve$arg1_buffer; endprocedure;