[comp.std.mumps] $WRITE FUNCTION PROPOSAL FOR MDC

BROWN%FORUM.VA.GOV@plus5.UUCP (04/24/87)

                  PROPOSAL FOR $WRITE FUNCTION
 
By: David B. Brown, COMP Consultants, MGlobal
 
Many times  it is  desirable to  generate pre-formatted text into
MUMPS globals.  Currently this must  be done  by concatenation of
various items  or use  of a  non-standard "pipe" and write to one
device and read from the corresponding device.
 
The situation will become more accentuated if we proceed with the
device handling proposals.
 
The following proposal allows capture of output sequences for all
arguments of a WRITE command.    These  include  format arguments
such as  tab (?)  and CRLF  (!) as  well as  future items such as
/CUP:y:x to position the cursor.
 
Note that any  limitations  on  the  WRITE  command  (e.g. device
doesn't  allow  cursor  positioning),  would  also be true of the
$WRITE function.
 
 
PROPOSAL:
 
add in section 1.2.7:
 
$WRITE     returns a string
 
 
add in section 3.2.8:
 
$WRITE({U}L{u} {U}writeargument{u})
 
returns the processed results of the  {U}writeargument{u}s.  Each
{U}writeargument{u} is  processed one at a time, in left-to-right
order.  Each form of argument defines an output operation  to the
accumulating result.   The  particular character output sequences
generated by each {U}writeargument{u} is  the  same  as  would be
output to the current I/O device as specified in section 3.6.18.
 
 
change the first paragraph of 3.5.4 to read:
 
3.5.4  {U}format{u} in READ and WRITE
 
The {U}format{u}, which can appear in READ and WRITE commands and
in the $WRITE function, specifies  output  format  control.   The
parameters of  {U}format{u} are processed one at a time, in left-
to-right order.
 
 
EXAMPLES:
 
S ^XXX(I)=$WRITE(#!?20,"THIS IS A HEADING",!)
S ZZZ=$WRITE(/CUP:12:22,"Put this in the middle of the screen")