| 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 11: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 11: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 13: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 15: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- | |||||