!Last Modified: 19-DEC-1988 11:41:44.22, By: RLB ! EVE$FILE.TPU 23-OCT-1987 10:27 Page 13 ! Procedure called by eve_get_file to create a new buffer and map it ! to the current window. Returns the created buffer, or zero if error. ! ! Parameters: ! buffer_name Name of new buffer - input ! requested_file_name Full VMS filespec to use - input ! actual_file_name From file_search; "" if not on disk - input procedure eve$create_buffer (buffer_name, ! Create a buffer requested_file_name, actual_file_name) local new_buffer, ! Buffer created create_failed, default_exists; on_error [TPU$_DUPBUFNAME]: eve$message (EVE$_BUFEXIST, 0, substr (buffer_name, 1, eve$x_max_buffer_name_length)); return (FALSE); [TPU$_OPENIN]: eve$message (error_text, error); create_failed := TRUE; [TPU$_TRUNCATE]: eve$message (error_text, error); [OTHERWISE]: endon_error; ! default buffer not created until after end of startup ! (after /INIT processing in procedure TPU$INIT_POSTPROCEDURE) default_exists := (get_info (eve$default_buffer, "type") = BUFFER); if actual_file_name = "" then if not default_exists ! i.e., during startup then new_buffer := create_buffer (buffer_name); set (LEFT_MARGIN, new_buffer, eve$x_default_left_margin, CHARACTERS); if get_info (COMMAND_LINE, "display") then set (RIGHT_MARGIN, new_buffer, (get_info (eve$main_window, "width", CHARACTERS) - eve$x_default_right_margin), CHARACTERS); set (RIGHT_MARGIN_ACTION, new_buffer, eve$kt_word_wrap_routine); endif; else new_buffer := create_buffer (buffer_name, "", eve$default_buffer); set (MODIFIABLE, new_buffer, ON); ! override default buffer set (NO_WRITE, new_buffer, OFF); ! override default buffer endif; if create_failed then delete (new_buffer); return (FALSE); endif; eve$message (EVE$_FILENOTFOUND, 0, requested_file_name); set (OUTPUT_FILE, new_buffer, requested_file_name); else if not default_exists then new_buffer := create_buffer (buffer_name, actual_file_name); set (LEFT_MARGIN, new_buffer, eve$x_default_left_margin, CHARACTERS); if get_info (COMMAND_LINE, "display") then set (RIGHT_MARGIN, new_buffer, (get_info (eve$main_window, "width", CHARACTERS) - eve$x_default_right_margin), CHARACTERS); set (RIGHT_MARGIN_ACTION, new_buffer, eve$kt_word_wrap_routine); endif; else new_buffer := create_buffer (buffer_name, actual_file_name, eve$default_buffer); set (MODIFIABLE, new_buffer, ON); ! override default buffer set (NO_WRITE, new_buffer, OFF); ! override default buffer endif; if create_failed then delete (new_buffer); return (FALSE); endif; if eve$x_starting_up and get_info(command_line,"output") then set (OUTPUT_FILE, new_buffer, get_info(command_line,"output_file")); else set (OUTPUT_FILE, new_buffer, actual_file_name); endif; endif; if not default_exists then set (EOB_TEXT, new_buffer, message_text (EVE$_EOBTEXT, 1)); set (LEFT_MARGIN, new_buffer, eve$x_default_left_margin, CHARACTERS); set (RIGHT_MARGIN, new_buffer, (get_info (current_window, "width", CHARACTERS) - eve$x_default_right_margin), CHARACTERS); set (RIGHT_MARGIN_ACTION, new_buffer, eve$kt_word_wrap_routine); endif; map (current_window, new_buffer); return (new_buffer); endprocedure;