! LSE$EVE_ADVANCED.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 LSE that relate to the contents ! of the EVE$ADVANCED.TPU file. ! ! ENVIRONMENT: ! ! VAX/VMS ! ! Author: Duane A Smith, Technical Languages and Environments ! ! CREATION DATE: 28-Mar-1990 ! ! MODIFIED BY: ! ! X3.1 DAS 28-Mar-90 Use CREATE/TERM if on DECwindows V2 in the ! SPAWN command. ! X3.1-1 DAS 13-Apr-90 Use nested if on decwindwos_v1 and not AND ! X3.2 NMC 13-Jul-90 Remove lse$$decwindows_v1 support in ! eve_spawn procedure lse$eve_advanced_module_ident return "X3.2"; endprocedure; ! ! LSE supercedes this procedure to do a CREATE /TERMINAL on a DECwindows spawn. ! procedure eve_spawn (; the_command) ! Spawn a subprocess ! Spawn a new DCL subprocess and go to that subprocess. Logging out of ! the subprocess will resume the Eve session. Useful for running ! screen-oriented programs that can't go through VMS mailboxes. on_error [TPU$_CREATEFAIL]: if eve$x_decwindows_active then eve$popup_message (message_text (EVE$_CANTCREADCL, 1)); else eve$message (EVE$_CANTCREADCL); endif; eve$learn_abort; return (FALSE); [OTHERWISE]: endon_error; eve$clear_message; ! Clear out old message if eve$x_decwindows_active then ! ! Create a subprocess to do the CREATE/TERMINAL ! if (get_info (eve$x_dcl_process, "type") = UNSPECIFIED) or (eve$x_dcl_process = 0) then eve$x_dcl_process := create_process (eve$dcl_buffer, "$ set noon"); endif; ! ! We'll wait based on a command being supplied. This will mimic the ! current behavior in character cell. ! if the_command = "" then send ('CREA/TERM/NOWAIT/WIND=(TITL="Spawn Window",ICON="Spawn")', eve$x_dcl_process); else send ('CREA/TERM/WAIT/WIND=(TITL="Spawn Window",ICON="Spawn") ' + the_command, eve$x_dcl_process); endif; else if the_command = "" then spawn; else spawn (the_command); endif; endif; return (TRUE); endprocedure; ! eve_spawn