Title: | DECWINDOWS 26-JAN-89 to 29-NOV-90 |
Notice: | See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit |
Moderator: | STAR::VATNE |
Created: | Mon Oct 30 1989 |
Last Modified: | Mon Dec 31 1990 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 3726 |
Total number of notes: | 19516 |
In the command procedure VUE$SUBPROCESS_INIT.COM the logicals VUE$INPUT and VUE$OUTPUT are defined by parameters 1 and 2, respectively. Does anyone know what calls VUE$SUBPROCESS_INIT.COM? How are the values for the parameters derived? ---------------- <<< VUE$LIBRARY:VUE$SUBPROCESS_INIT.COM >>> ----------------------- $ set noverify $! Copyright (c) 1988 Digital Equipment Corporation. All rights reserved. $! $ on control_y then abort_task = 1 $ set control_y $ abort_task = 0 $ set term/dev=vt200 $ set term/nobroadcast $ if "''p1'" .eqs. "" then goto vue$start_loop $ open/read vue$input 'p1 $ open/write vue$output 'p2 $ vue$read == "read vue$input" $ vue$popup == "write vue$output ""VUE$C_POPUP""" $ vue$popup_focus == "write vue$output ""VUE$C_POPUP_FOCUS""" $ vue$popdown == "write vue$output ""VUE$C_POPDOWN""" $ vue$get_command == "write vue$output ""VUE$C_GET_COMMAND ""'" $ vue$get_next_selection == "write vue$output ""VUE$C_GET_NEXT_SELECTION""" $ vue$get_all_selections == "write vue$output ""VUE$C_GET_ALL_SELECTIONS""" $ vue$get_selection_count == "write vue$output ""VUE$C_GET_SELECTION_COUNT""" $ vue$get_auxiliary_files == "write vue$output ""VUE$C_GET_AUXILIARY_FILES""" $ vue$get_symbol == "write vue$output ""VUE$C_GET_SYMBOL ""'" $ vue$set_symbol == "write vue$output ""VUE$C_SET_SYMBOL ""," $ vue$set_task_label == "write vue$output ""VUE$C_SET_TASK_LABEL ""," $ vue$set_done_label == "write vue$output ""VUE$C_SET_DONE_LABEL ""," $ vue$inquire == "write vue$output ""VUE$C_INQUIRE ""," $ vue$inquire_symbol == "write vue$output ""VUE$C_INQUIRE_SYMBOL ""," $ vue$highlight_update == "write vue$output ""VUE$C_HIGHLIGHT_UPDATE""" $ vue$update_fileview == "write vue$output ""VUE$C_UPDATE_FILEVIEW""" $ vue$exit_command_loop == "write vue$output ""VUE$C_EXIT_COMMAND_LOOP""" $ vue$set_error_status == "write vue$output ""VUE$C_SET_ERROR_STATUS""" $ vue$popup_help == "write vue$output ""VUE$C_POPUP_HELP ""," $ vue$suppress_output_popup=="write vue$output ""VUE$C_SUPPRESS_OUTPUT_POPUP""" $ vue$popup_progress_box == "write vue$output ""VUE$C_POPUP_PROGRESS_BOX ""'" $ vue$popup_message == "write vue$output ""VUE$C_POPUP_MESSAGE ""," $ vue$popup_confirm == "write vue$output ""VUE$C_POPUP_CONFIRM ""," $ vue$escape_char[0,8] == 27 $ vue$begin_bold_string == "''vue$escape_char'[1m" $ vue$end_bold_string == "''vue$escape_char'[0m" $ vue$begin_bold == "write sys$output ""''vue$begin_bold_string'""" $ vue$end_bold == "write sys$output ""''vue$end_bold_string'""" $vue$start_loop: $ on control_y then goto vue$task_exit $ if abort_task .eq. 1 then goto vue$task_exit $vue$command_loop: $ set term/dev=vt200 $ on severe then goto vue$task_exit $ vue$read vue$command ! Accept SET DEFAULT command $ vue$current_directory :== "''f$extract(12, 256, vue$command)'" $ 'vue$command $ vue$read vue$command ! Accept SET PROC/PRIV command $ 'vue$command $ vue$read vue$command ! Accept verb command $ if f$locate("vue$current_file", f$edit(vue$command, "lowercase")) .eq. - f$length(vue$command) then goto vue$execute_command $ vue$get_next_selection $ vue$read vue$current_file $vue$execute_command: $ 'vue$command $vue$task_exit: $ set noverify $ if "''f$logical(""sys$input"")'" .nes. "''f$logical(""sys$command"")'" then - deassign sys$input $vue$read_typeahead_loop: ! Consume any terminal or mailbox "typeahead" $ read/timeout=0/error=vue$read_mailbox_loop/prompt="" sys$input vue$typeahead $ goto vue$read_typeahead_loop $vue$read_mailbox_loop: $ read/timeout=0/error=vue$task_complete/prompt="" vue$input vue$typeahead $ goto vue$read_mailbox_loop $vue$task_complete: $ write vue$output "VUE$C_TASK_COMPLETE" $ goto vue$command_loop
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
1169.1 | STAR::BENSON | Wed Jul 26 1989 12:07 | 7 | ||
VUE$SUBPROCESS_INIT is the startup command file used when FileView creates it subprocesses. They are IDs of mailboxes used to pass Task Messages and data back and forth. Tom | |||||
1169.2 | Warning | STAR::BENSON | Wed Jul 26 1989 12:41 | 32 | |
Let me see if I can save you some time. Based on your earlier note, I suspect you're going to try to pass this info to a subprocess created by CHILD so it can talk to FileView. It will sometimes work, but not enough that you'll want to depend on it. FileView knows what subprocess the mailboxes are associated with. As long as it is active and idle, using reading/writing to the mailboxes from another subprocess will generally work. However, as soon as FileView thinks the process is "done," it will start ignoring input in that mailbox. It's ignored because normally the only way a message is received from an inactive process is if it sent a message just before it was stopped. So the message is useless. Also, if FileView re-uses that subprocess, it will be using those same mailboxes. If your CHILD subprocess is reading/writing at the same time, one or the other is bound to get an incorrect response to a task message. And if the FileView subprocess is deleted for some reason, FileView will attempt to deassign the mailboxes. This could happen either because FileView saw that the subprocess was idle for a long time, and there are enough idle procs hanging around, or because the task was re-used and something was done to explicitly kill it. You'd be better off letting the FileView process send the task messages, and then send the data to your CHILD process in some other way. Tom | |||||
1169.3 | Oh well... | SOJU::POZZETTA | Henry Pozzetta - SWSE/ACES Commercial CASE Technology | Wed Jul 26 1989 14:18 | 7 |
Oh well, it looks like that approcach is a dead-end. Is there was a way to create terminal windows from within FileView? If there is, I don't need CHILD. HP | |||||
1169.4 | DECterm from FileView in V2 | DECWIN::KLEIN | Wed Jul 26 1989 16:51 | 9 | |
>>Oh well, it looks like that approcach is a dead-end. Is there was a way >>to create terminal windows from within FileView? If there is, I don't need >>CHILD. Yes, in V2. DECterm now has a DCL command (CREATE/TERMINAL) and FileView has a "DECterm" verb on its application menu. -steve- |