[comp.os.vms] Message of 15-Nov-87 22:01:01

Mailer@CU20B.COLUMBIA.EDU (The Mailer Daemon) (11/16/87)

Message failed for the following:
Info-VAX@CU20B.COLUMBIA.EDU: Can't forward - unknown host "CUTCV1"
	    ------------
Received: from KL.SRI.COM by CU20B.COLUMBIA.EDU with TCP; Sun 15 Nov 87 22:01:03-EST
Received: from UWAVM.ACS.WASHINGTON.EDU by KL.SRI.COM with TCP; Thu 12 Nov 87 19:06:20-PST
P1-Message-Id: US**EDU;UWAVM.ACS.WASHINGTON.EDU:LxLvArj2
Date:         Tue, 10 Nov 87 03:42-0800
X400-Trace:   US**EDU; arrival Tue, 10 Nov 87 03:42-0800 action Relayed
X400-Trace:   US**EDU; arrival Tue, 10 Nov 87 07:25-0800 action Relayed
From:         The Mail Server<Postmaster@VAX1.ACS.WASHINGTON.EDU>
To:           <INFO-VAX@KL.SRI.COM>
Subject:      Undeliverable mail
Message-Id:   <UWAVM.ACS.WASHINGTON.EDU:LxLvArj2*>

Message had a bad or missing To address.
The entire text of the message follows:

Received: by OREGON1 (Mailer X1.25) id 4127; Tue, 10 Nov 87 03:42:12 PST
Date: Fri,  6 Nov 87 20:11 EST
From: Undetermined origin c/o Postmaster <POSTMASTER@MARIST>
Subject: SYMBOL - Part 2 of 2
Sender: INFO-VAX Discussion <INFO-VAX@VTVM2>
To: Pete Pulliam <PETE@UWAV1>
Reply-to: INFO-VAX@KL.SRI.COM
Comments:     <Parser> E: Mail origin cannot be determined.
Comments:     <Parser> E: Original tag was FROM: Bill Costa,
 University Computing <W_COSTA@UNHH>
Comments:     Warning -- RSCS tag indicates an origin of W_COSTA@UNHH

$Part2:
$ File_is="SYMBOL.PAS"
$ Check_Sum_is=772795442
$ Copy SYS$Input VMS_SHAR_DUMMY.DUMMY
X{=============================================================================
}
X{
X        File: SYMBOL.PAS
X      System: VAX/VMS version 4.5
X    Language: Pascal V3.5
X      Author: Bill Costa (with help from a few friends)
X  Created on: 6-NOV-1987
X    Requires: SYMBOL_MESS.MSG - Condition Value Definitions
X
X    Comments: Demonstrates use of....
X
X                - the Command Definition Utility
X                - the Message Facility
X                - use of VAX/VMS Runtime Library Functions
X
X              from within a VAX Pascal program.
X
X
X    Given a symbol name as the first and only parameter, this program
X    returns the symbol's value if it is found in the local or global
X    symbol table.  Remember, this program does not claim the show the
X    'best' way to do this task, or how you would want such a program to
X    behave, but rather it attempts to illustrate several of the mechanisms
X    available to the VAX Pascal programmer for taking advantage of VMS's
X    rich set of system services.
X
X
X    To recompile this program:
X
X        $ PASCAL SYMBOL
X        $ MESSAGE SYMBOL_MESS
X        $ LINK/NOTRACEBACK SYMBOL,SYMBOL_MESS
X
X    To define this program as a command:
X
X        $ DEFINE WORKAREA 'F$ENVIROMENT("DEFAULT")'     ! Assumes current
X        $ SET COMMAND SYMBOL                            ! default is where
X                                                        ! the EXE is.
X    Usage is:
X
X        $ SYMBOL symbolname
X
X
X    Revisions:
X    -----------------------------------------------------------------
X    6-NOV-1987  WFC - None to date.
X
X}
X{=============================================================================
}
X`012
X{=============================================================================
}
X
XPROGRAM Symbol(INPUT,OUTPUT);
X
XCONST                                           {-----------------------------
}
X    Local = 1;                                  { Indicates we got either the
}
X    Global = 2;                                 { local or global symbol table
}
X                                                {-----------------------------
}
X
XTYPE                                            {-----------------------------
}
X    UnSignedWord = [WORD] 0..65535;             { A small positive number.
}
X                                                {-----------------------------
}
X
XVAR                                             {-----------------------------
}
X    SYM_LocVal,                                 { Condition Values supplied
}
X    SYM_GlobVal,                                { by our own MSG file. Values
}
X    SYM_ErrSym,                                 { are picked up at link time.
}
X    SYM_Abort    : [EXTERNAL,VALUE] INTEGER;    {-----------------------------
}
X
X                                                {-----------------------------
}
X    SymName     : VARYING [255] OF CHAR;        { User supplied symbol name.
}
X    SVal        : PACKED ARRAY [1..255] OF CHAR;{ Value of the symbol.
}
X    InLen       : UnSignedWord;                 { Length of value returned.
}
X    Table,                                      { Table symbol found in.
}
X    Stat        : INTEGER;                      { Returned stat from RTL rout.
}
X                                                {-----------------------------
}
X`012
X{-----------------------------------------------------------------------------
}
X{ Declare External Routines  -------------------------------------------------
}
X{-----------------------------------------------------------------------------
}
X
X[EXTERNAL,ASYNCHRONOUS]FUNCTION LIB$STOP(
X
X     Cond_Value : [IMMEDIATE,READONLY] INTEGER := %IMMED 1;
X     FAO_Params : [IMMEDIATE,READONLY,LIST,UNSAFE] INTEGER := %IMMED 0 )
X     {RETURNS}  : INTEGER;
X
X
X    EXTERNAL;
X
X{-----------------------------------------------------------------------------
}
X
X[EXTERNAL,ASYNCHRONOUS]FUNCTION LIB$SIGNAL(
X
X     Cond_Value : [IMMEDIATE,READONLY] INTEGER := %IMMED 1;
X     FAO_Params : [IMMEDIATE,READONLY,LIST,UNSAFE] INTEGER := %IMMED 0 )
X     {RETURNS}  : INTEGER;
X
X
X    EXTERNAL;
X
X{-----------------------------------------------------------------------------
}
X
X[EXTERNAL,ASYNCHRONOUS]FUNCTION LIB$GET_SYMBOL(
X
X         Symbol : [READONLY,CLASS_S] PACKED ARRAY [SL..SH: INTEGER] OF CHAR;
X    VAR Ret_Val : [WRITEONLY,CLASS_S] PACKED ARRAY [RL..RH: INTEGER] OF CHAR;
X    VAR Ret_Len : [WRITEONLY] UnsignedWord := %IMMED 0;
X    VAR Table   : [WRITEONLY] INTEGER := %IMMED 0 )
X    {RETURNS}   : INTEGER;
X
X
X    EXTERNAL;
X
X{-----------------------------------------------------------------------------
}
X
X[EXTERNAL,ASYNCHRONOUS]FUNCTION CLI$GET_VALUE(
X
X           Name : [READONLY,CLASS_S] PACKED ARRAY [L1..U1:INTEGER] OF CHAR;
X      VAR Value : [WRITEONLY] VARYING [ML2] OF CHAR)
X      {RETURNS} : INTEGER;
X
X
X        EXTERNAL;
X
X{-----------------------------------------------------------------------------
}
X`012
X{-----------------------------------------------------------------------------
}
X{ Main Line  -----------------------------------------------------------------
}
X{-----------------------------------------------------------------------------
}
X
XBEGIN
X     Stat := CLI$Get_Value('P1', SymName);
X     IF (NOT ODD(Stat))
X          THEN LIB$STOP(SYM_Abort,0,Stat);           {...and don't come back.
}
X
X     Stat := LIB$GET_SYMBOL(%STDESCR(SymName),SVal,InLen,Table);
X     IF (NOT ODD(Stat))
X          THEN LIB$STOP(SYM_Abort,0,                             { same here.
}
X                        SYM_ErrSym,1,%STDESCR(SymName),
X                        Stat);
X
X     IF (Table = Local)
X          THEN LIB$SIGNAL(SYM_LocVal,2,%STDESCR(SymName),InLen,IADDRESS(SVal))
V          ELSE LIB$SIGNAL(SYM_GlobVal,2,%STDESCR(SymName),InLen,IADDRESS(SVal)
)
X;
X
XEND.  {SYMBOL}
X
X{=============================================================================
}
X
$ GoSub Convert_File
$ File_is="SYMBOL_MESS.MSG"
$ Check_Sum_is=1532052332
$ Copy SYS$Input VMS_SHAR_DUMMY.DUMMY
X.TITLE  Condition Value Messages for "SYMBOL, the program".
X.IDENT  'V 1.0'
X.FACILITY       SYM, 2001 /prefix=SYM_
X
X.SEVERITY`009SUCCESS
X                LocVal  <Value of local symbol: !AS is "!AD">/FAO_COUNT=3
X`009`009GlobVal`009<Value of global symbol: !AS is "!AD">/FAO_COUNT=3
X
X.SEVERITY       ERROR
X`009   `009ErrSym`009<Error fetching symbol: !AS>/FAO_COUNT=1
X
X.SEVERITY`009FATAL
X`009`009Abort`009<SYMBOL execution aborted.>
X.END
$ GoSub Convert_File
$ Exit
-------