! LSE$INITIALIZE.TPU ! !************************************************************************* ! * ! © Copyright 2005 Hewlett-Packard Development Company, L.P. * ! * ! Confidential computer software. Valid license from HP required for * ! possession, use or copying. Consistent with FAR 12.211 and 12.212, * ! Commercial Computer Software, Computer Software Documentation, and * ! Technical Data for Commercial Items are licensed to the U.S. * ! Government under vendor's standard commercial license. * ! * !************************************************************************* ! !++ ! FACILITY: ! VAX Language-Sensitive Editor ! ! ABSTRACT: ! This file contains TPU procedures for initializing LSE ! global variables at startup time. ! ! ENVIRONMENT: ! VAX/VMS ! ! AUTHOR: ! Scot Aurenz ! ! CREATION DATE: ! 13-Nov-1991 ! ! MODIFIED BY: ! X4.0-1 SAA 13-Nov-91 New module. ! X4.0-2 DAS 15-Nov-91 More variables from LSE$HIGHLIGHT.TPU ! X4.0-3 WC3 12-Dec-91 Move all runtime initialization here ! X4.0-4 WC3 17-Dec-91 Make the $DEFAULTS buffer writable ! X4.0-5 WC3 03-Jan-91 Separate command prompt display from data ! Separate stalled prompt display from data ! X4.0-6 WC3 13-Jan-92 Re-write Extended attribute support. ! X4.0-7 WC3 24-Jan-92 Fix scroll margin call to use percentages ! X4.0-8 SHE 11-Feb-92 Don't save what we get from the system env. file ! X4.0-9 WC3 20-Feb-91 Fix first time in command buffer internal error ! X4.0-10 NMC 24-Feb-92 Reimplement copyright removal during initialization ! X4.0-11 WC3 27-Feb-92 Add prompt expandmenu ! X4.0-12 WC3 27-Feb-92 Set the input focus grab procedure ! X4.0-13 SAA 28-Feb-92 Add lse$init_prefix_stack ! X4.0-14 SHE 03-Mar-92 Search patterns on ULTRIX should default to ULTRIX ! X4.0-15 WC3 03-Mar-92 Remove pre/post key processing on the command line ! X4.0-16 WC3 02-APR-92 Replace pre/post key procedures on the V3.1 command ! buffer ! X4.0-17 SHE 06-Apr-92 Initialize lse$compile_output_buffer ! X4.0-18 SHE 10-Apr-92 Set widget_resource_type for unitType ! X4.0-19 AVH 16-Apr-92 Add comments to lse$$system_mode_settings ! X4.0-20 SHE 19-Apr-92 Changed VMSLSE to LSE, LSE to PLSE. ! Apply default extension of .PLSE for init files ! if the command language is "portable". ! X4.0-21 WC3 27-Apr-92 Add buffers $PROMPT_LSE_SAVED, $COMMAND_LSE_SAVED ! X4.0-22 DAS 28-Apr-92 Fix set commands after creating those buffers ! X4.0-23 DEC 28-Apr-92 Enable VMSHELP_ prefix by default ! X4.0-24 SHE 28-Apr-92 Set lse$save_related_buffers to be ON ! X4.0-25 SHE 11-May-92 Set SAVE RELATED BUFFERS in the system_settings. ! X4.0-26 WC3 28-May-92 Define key synonyms ! X4.0-27 SHE 25-Aug-92 Call lse$$$set_repeat_count. ! X4.0-28 SHE 02-Sep-92 Check for OPEN_VMS_ALPHA operating_system ! X4.3-1 RAM 29-Aug-94 Added initialization of hyperhelp package support ! variables. ! X4.3-2 RKB 18-Nov-94 Add initialization for UNDO command buffers ! 4.5-1 CJH 14-Aug-96 DECset V12.2 GUI Enhancements ! 4.6-1 JBL 10-Nov-97 Add initialisation for TABS_HARD and UNDO procedure lse$initialize_module_ident return "4.7-4"; endprocedure; ! There are EVE variables we need to poke before EVE uses them during ! initialization. We poke them here. ! procedure lse$initialize_module_pre_init !+ ! Set the EVE$ variables that are used to create some of the system buffers. !- eve$x_buf_str_choices := "$CHOICES"; eve$x_buf_str_matches := "$MATCHES"; eve$x_buf_str_recall_line := "$RECALL_LINE"; eve$x_buf_str_insert_here := "$PASTE"; eve$x_buf_str_show := "$SHOW"; eve$x_buf_str_messages := "$MESSAGES"; eve$x_buf_str_commands := "$COMMANDS"; eve$x_buf_str_prompts := "$PROMPTS"; eve$x_buf_str_main := "$MAIN"; eve$x_buf_str_buffer_list := "$BUFFERS"; eve$x_buf_str_help := "$HELP"; eve$x_buf_str_defaults := "$DEFAULTS"; eve$x_buf_str_restore_select := "$ERASED_SELECTION"; eve$x_buf_str_restore_char := "$ERASED_CHARACTER"; eve$x_buf_str_restore_word := "$ERASED_WORD"; eve$x_buf_str_restore_line := "$ERASED_LINE"; eve$x_buf_str_restore := "$ERASED"; eve$x_buf_str_restore_sent := "$ERASED_SENT"; eve$x_buf_str_dcl := "$CLI"; eve$$x_buf_str_spell := "$SPELL"; eve$x_buf_str_scratch := "$SCRATCH$"; eve$x_buf_str_caption := "$CAPTION$"; eve$x_buf_str_help_prompt := "$HELP$PROMPT$"; ! Allow platform-specific overrides of file backup command and format string. ! if eve$x_ultrix_active then eve$x_backup_string := message_text (lse$_backup_string_rultrix, tpu$k_message_text); eve$x_backup_command := message_text (lse$_backup_command_rultrix, tpu$k_message_text) endif; !+ ! Establish LSE-specific sizes for the message window and command window. !- eve$set_message_window_size(lse$$k_message_window_size); eve$set_command_window_size(lse$$k_command_window_size); endprocedure; procedure tpu$init_procedure local saved_init_flag, screen_length, the_file_name, the_temp, user_start_row, user_start_col, open_failed, input_file_flag; ON_ERROR [TPU$_OPENIN, LSE$_FILEOPENFAIL]: message (error, 0, the_file_name); open_failed := true; [LSE$_COMMANDCANCEL, LSE$_NOCMSCREATE]: if input_file_flag then open_failed := true; message (error_text); message ('Initialization of input file canceled'); else eve$$x_state_array {eve$$k_in_init_file} := saved_init_flag; message( error_text ); message( lse$_errdurint ); endif; [OTHERWISE]: eve$$x_state_array {eve$$k_in_init_file} := saved_init_flag; message( error_text ); message( lse$_errdurint ); ENDON_ERROR; input_file_flag := false; ! EVE's initialization, copied from eve$init_procedure, we were superceeding ! if anyway, so we'd never pick up changes any way. ! eve$$init_variables; eve$$init_settings; eve$$pre_init_modules; eve$$init_modules; eve$$restore_settings; saved_init_flag := eve$$x_state_array {eve$$k_in_init_file}; eve$$x_state_array {eve$$k_in_init_file} := TRUE; eve$set_section_attributes; eve$$x_state_array {eve$$k_in_init_file} := saved_init_flag; eve$$x_attrs_modified := FALSE; ! Key synonyms are based on help topics. We've changed some thus ! we need to define them as synopnyms ! eve$$x_synonym_array{'find'} := 'search'; eve$$x_synonym_array{'do'} := 'goto_command'; eve$$x_synonym_array{'specins'} := 'enter_special'; eve$$x_synonym_array{'next_screen'} := 'next_screen'; eve$$x_synonym_array{'previous_screen'} := 'previous_screen'; eve$$x_synonym_array{'move_up'} := 'move_up'; eve$$x_synonym_array{'move_down'} := 'move_down'; eve$$x_synonym_array{'reverse'} := 'set_buffer_direction'; eve$$x_synonym_array{'forward'} := 'set_buffer_direction'; eve$$x_synonym_array{'move_right'} := 'next_character'; eve$$x_synonym_array{'move_left'} := 'previous_character'; ! Various variables ! lse$x_cmd_key_map_list := "LSE$CMD_KEY_MAP_LIST"; lse$$hlt_range_array := create_array( 10 ); lse$$hlt_range_array_flags := create_array( 10 ); lse$$hlt_range_array_count := 0; lse$$word_term_string := ascii(32) + ascii(09) + ascii(12) + ascii(13) + ascii(11) + ascii(10); lse$$replace_string := ""; lse$$case_matching_prog := ""; lse$$actual_replacement_string := ""; lse$$subs_qual_string :="CONFIRM"; ! lse$select_range := 0; lse$pkg_rout_name := ""; lse$pkg_rout_lang := ""; lse$pkg_rout_desc := ""; lse$pkg_rout_top := ""; lse$pkg_rout_pack := ""; lse$pkg_rout_parm := ""; lse$pkg_rout_opt := ""; lse$pkg_rout_mech := ""; lse$pkg_rout_book := ""; lse$pkg_rout_bookreference := ""; lse$pkg_para_name := ""; lse$pkg_para_lang := ""; lse$$$set_repeat_count (1); !+ ! Set repository access !- IF GET_INFO( lse$system, 'lse$integrated' ) = 1 THEN set (lse$repository, lse$system, 'Cohesion' ); ELSE IF eve$x_ultrix_active THEN set (lse$repository, lse$system, 'NONE' ); ELSE set (lse$repository, lse$system, 'CMS' ); ENDIF; ENDIF; ! V3.1 Compatible prompting ! eve$set_key_procedure (TRUE, 'LSE$CMD_WINDOW_KEY_MAP_LIST', "eve$$command_pre_filter", eve$$k_cmd_pre_filter_id); eve$set_key_procedure (FALSE, 'LSE$CMD_WINDOW_KEY_MAP_LIST', "eve$$command_post_filter", eve$$k_cmd_post_filter_id); !+ ! initialize lse$$key which will contain the key having an EVE key name !- lse$$key := NULL_KEY; !+ ! initialize lse$$keyname which will contain the eve keyname for a key ! get defined in BLISS !- lse$$keyname := 'NULL'; lse$sca_command_context:=0; lse$$x_function_key_list := "LSE$$FUNCTION_KEY_LIST"; lse$$edt_function_keys := "LSE$$EDT_FUNCTION_KEYS"; lse$$eve_function_keys := "LSE$$EVE_FUNCTION_KEYS"; lse$$x_erase_object := erase_k_nothing; ! ! Search variables ! lse$$search_string := ""; lse$$x_search_type := 0; ! 0: no wildcard search, 2: wildcard search lse$$x_replacement := 0; ! 0: search next, 1: allow a match here ! 1: call from eve_find eve$x_find_no_exact := 0; eve$x_find_exact := 0; lse$$x_search_how_exact := eve$x_find_no_exact; lse$$x_wild_patterns := eve$$x_wild_patterns; !+ ! Supply default values for the EXPAND window location top and length. !- lse$$expand_window_top := 1; lse$$expand_window_length := 2; ! lse$$push/pop_position global data. ! lse$$position_array_index := lse$$k_position_array_index_min - 1; lse$$position_array := CREATE_ARRAY( 50, lse$$k_position_array_index_min ); ! Change the EVE variable holding the LSE prompt name ! eve$x_command_prompt := "LSE Command> "; eve$x_command_prompt_length := length (eve$x_command_prompt); lse$method_executing := 0; ! This initialization changes what the eve module initialization set for the ! action routines for reverse and forward. ! eve$define_indicator( "lse_set_buffer_direction(REVERSE)", message_text( EVE$_FORWARD , 1 ), "reverse" ); eve$define_indicator( "lse_set_buffer_direction(FORWARD)", message_text( EVE$_REVERSE , 1 ), "forward"); ! DECwindows active stuff ! if eve$x_decwindows_active then set (INPUT_FOCUS_GRAB, SCREEN, "LSE$$INPUT_FOCUS_GRAB"); set (RESIZE_ACTION, "lse$$resize_action"); eve$set_cs_help (369 * 65536, WIDGET); eve$set_cs_help (548 * 65536, WIDGET); ! Remove copyright from title bar upon first keystroke or mouse event. ! set (FIRST_INPUT_ACTION, "lse$$cleanup_copyright"); ! Timer off ! set (timer, off); ! Mouse on ! set (mouse, on); set (widget_resource_types, "int", "unitType"); else if NOT get_info( COMMAND_LINE, "display" ) then set( timer, off ); else set( timer, on, "Working..." ); endif; ! Mouse off ! set (mouse, off); endif; lse$$x_buf_str_clipboard := "$CLIPBOARD"; !+ ! $DEFAULTS. The variable EVE$DEFAULT_BUFFER will point at this buffer. ! We create the $DEFAULTS buffer and save a pointer to the buffer in an ! Eve variable because Eve creates it in EVE$INIT_POSTPROCEDURE, which ! we superseed. In our copy of EVE$INIT_POSTPROCEDURE, we have commented ! out the creation of EVE$DEFAULT_BUFFER. !- eve$default_buffer := create_buffer( eve$x_buf_str_defaults ); set( EOB_TEXT, eve$default_buffer, message_text(eve$_eobtext, 0) ); set( NO_WRITE, eve$default_buffer, off ); set( SYSTEM, eve$default_buffer ); set( PERMANENT, eve$default_buffer ); set( right_margin_action, eve$default_buffer, "lse$$right_margin_action" ); eve$x_source_for_default_buffer := eve$default_buffer; ! $CMS. ! the_temp := create_buffer( '$CMS' ); set( EOB_TEXT, the_temp, eve$x_null ); set( NO_WRITE, the_temp ); set( SYSTEM, the_temp ); set( PERMANENT, the_temp ); set( lse$overviews, the_temp, off ); ! $ERASED_PLACEHOLDER ! the_temp := create_buffer( '$ERASED_PLACEHOLDER' ); set( EOB_TEXT, the_temp, eve$x_null ); set( NO_WRITE, the_temp ); set( SYSTEM, the_temp ); set( PERMANENT, the_temp ); ! $EXPAND ! lse$$expand_buffer := create_buffer( '$EXPAND' ); set( EOB_TEXT, lse$$expand_buffer, eve$x_null ); set( NO_WRITE, lse$$expand_buffer ); set( SYSTEM, lse$$expand_buffer ); set( PERMANENT, lse$$expand_buffer ); ! $LEARN ! lse$$learn_buffer := create_buffer( '$LEARN' ); set( EOB_TEXT, lse$$learn_buffer, eve$x_null ); set( NO_WRITE, lse$$learn_buffer ); set( SYSTEM, lse$$learn_buffer ); set( PERMANENT, lse$$learn_buffer ); set( lse$overviews, lse$$learn_buffer, off ); ! $PROMPT_LIST_BUFFER ! lse$prompt_list_buff := create_buffer( '$PROMPT_LIST_BUFFER' ); set( EOB_TEXT, lse$prompt_list_buff, eve$x_null ); set( NO_WRITE, lse$prompt_list_buff ); set( SYSTEM, lse$prompt_list_buff ); set( PERMANENT, lse$prompt_list_buff ); set( lse$overviews, lse$prompt_list_buff, off ); set( key_map_list, 'LSE$PROMPT_KEY_MAP_LIST', lse$prompt_list_buff ); ! $PROMPT_LSE ! lse$prompt_buffer := create_buffer( '$PROMPT_LSE' ); set( EOB_TEXT, lse$prompt_buffer, eve$x_null ); set( NO_WRITE, lse$prompt_buffer ); set( SYSTEM, lse$prompt_buffer ); set( PERMANENT, lse$prompt_buffer ); set( REVERSE, lse$prompt_buffer ); set( lse$overviews, lse$prompt_buffer, off ); set( key_map_list, 'LSE$PROMPT_KEY_MAP_LIST', lse$prompt_buffer ); position( lse$prompt_buffer ); split_line; move_horizontal( -1 ); ! $PROMPT_LSE_DISPLAY ! lse$prompt_buffer_display := create_buffer( '$PROMPT_LSE_DISPLAY' ); set( EOB_TEXT, lse$prompt_buffer_display, eve$x_null ); set( NO_WRITE, lse$prompt_buffer_display ); set( SYSTEM, lse$prompt_buffer_display ); set( PERMANENT, lse$prompt_buffer_display ); set( lse$overviews, lse$prompt_buffer_display, off ); position( lse$prompt_buffer_display ); split_line; move_horizontal( -1 ); ! $PROMPT_LSE_SAVED ! lse$prompt_buffer_saved := create_buffer( '$PROMPT_LSE_saved' ); set( EOB_TEXT, lse$prompt_buffer_saved, eve$x_null ); set( NO_WRITE, lse$prompt_buffer_saved ); set( SYSTEM, lse$prompt_buffer_saved ); set( PERMANENT, lse$prompt_buffer_saved ); set( lse$overviews, lse$prompt_buffer_saved, off ); ! $COMMAND_LSE ! lse$command_buffer := create_buffer( '$COMMAND_LSE' ); set( EOB_TEXT, lse$command_buffer, eve$x_null ); set( NO_WRITE, lse$command_buffer ); set( SYSTEM, lse$command_buffer ); set( PERMANENT, lse$command_buffer ); set( REVERSE, lse$command_buffer ); set( lse$overviews, lse$command_buffer, off ); set( key_map_list, 'LSE$COMMAND_KEY_MAP_LIST', lse$command_buffer ); position( lse$command_buffer ); split_line; move_horizontal( -1 ); ! $COMMAND_LSE_DISPLAY ! lse$command_buffer_display := create_buffer( '$COMMAND_LSE_DISPLAY' ); set( EOB_TEXT, lse$command_buffer_display, eve$x_null ); set( NO_WRITE, lse$command_buffer_display ); set( SYSTEM, lse$command_buffer_display ); set( PERMANENT, lse$command_buffer_display ); set( lse$overviews, lse$command_buffer_display, off ); set( key_map_list, 'LSE$COMMAND_DISPLAY_KEY_MAP_LIST', lse$command_buffer_display ); position( lse$command_buffer_display ); split_line; move_horizontal( -1 ); ! $COMMAND_LSE_SAVED ! lse$command_buffer_saved := create_buffer( '$COMMAND_LSE_SAVED' ); set( EOB_TEXT, lse$command_buffer_saved, eve$x_null ); set( NO_WRITE, lse$command_buffer_saved ); set( SYSTEM, lse$command_buffer_saved ); set( PERMANENT, lse$command_buffer_saved ); set( lse$overviews, lse$command_buffer_saved, off ); ! $HELP - use eve's buffer ! set (lse$overviews, help_buffer, off); ! $COMPILE_OUTPUT ! lse$compile_output_buffer := create_buffer ("$COMPILE_OUTPUT"); set( EOB_TEXT, lse$compile_output_buffer, '[EOB]' ); set( NO_WRITE, lse$compile_output_buffer ); set( SYSTEM, lse$compile_output_buffer ); set( PERMANENT, lse$compile_output_buffer ); set( lse$overviews, lse$compile_output_buffer, off ); ! $REVIEW ! lse$$x_buf_str_review := "$REVIEW"; the_temp := create_buffer( lse$$x_buf_str_review ); set( EOB_TEXT, the_temp, '[EOB]' ); set( NO_WRITE, the_temp ); set( SYSTEM, the_temp ); set( PERMANENT, the_temp ); set( lse$overviews, the_temp, off ); ! Create LSE$$ pointers to buffers which were created by Eve. ! lse$$cut_paste_buffer := paste_buffer; ! We want to change the "how_to_invoke" fields associated with EVE and TPU to ! get rid of what EVE has already put there. ! eve$$x_help_invoke_array {"eve"} := ""; eve$$x_help_invoke_array {"tpu"} := ""; eve$x_enable_parser_lse$parser := 1; ! lse_set_command_language( 'VMS' ) ! set (lse$cli_parser, lse$system, 1 ); lse$$x_use_keypad := lse$$k_pkeypad_vmslse; if get_info ('LSE', 'lse$language_type') <> TPU$K_UNSPECIFIED then set (lse$language, lse$prompt_buffer, 'LSE'); set (lse$language, lse$command_buffer, 'LSE'); endif; ! Help libraries ! lse$init_prefix_stack("LSE_", lse$$k_help_lsecmd_vms); ! These help libraries are not accessed by the parser ! eve$declare_help_library("LSEKEYPAD", lse$$k_help_keypad_vms, "", EVE$_INVOKEKEYHELP); eve$declare_help_library("LSEMENU", lse$$k_help_menu_vms, "", ""); eve$declare_help_library("LSECLIHELP", lse$$k_help_clicmd_vms, "", ""); ! VMS only indicators ! eve$define_indicator( "lse$do_command(""NEXT QUERY"")", "Query", "next_query"); eve$define_indicator( "lse$do_command(""SHOW QUERY"")", "Command", "show_query"); ! Change default EVE's caption for help diagram to LSE's ! eve$define_keyboard ("vt100", "LSEKEYPAD", "vt100_template"); eve$define_keyboard ("lk201", "LSEKEYPAD", "lk201_template"); eve$define_keyboard ("lk201 wide", "LSEKEYPAD", "lk201_wide_template"); eve$set_keypad_captions("LSEKEYPAD"); ! Initialize variables used in LSE$$GET_SELECTION ! lse$$x_select_do_messages := 0; lse$$x_select_found_range := 0; lse$$x_select_global := 0; lse$$x_select_null_range := 0; lse$$x_select_return_null := 0; lse$$x_select_cancel := 0; ! init the variable needed for drawing keypad help ! eve$$x_help_showing_keys := false; ! Set startup flag that lasts from end of eve$init_procedure until ! end of eve$init_postprocedure (spans /COMMAND and /INIT files) ! eve$x_post_starting_up := TRUE; ! The value of eve$x_application_name is prefixed to any title for a ! dialog box. This is required for MOTIF. ! eve$x_application_name := "LSE"; ! ! True if