MODULE XVALID ( IDENT = 'X00.03' %TITLE 'XPO$VALID_IOB - IOB File-spec Validation' %BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) ) %BLISS36( ,ENTRY( XPO$VALID_IOB ),OTS='' ) ) = BEGIN ! ! COPYRIGHT (c) 1980 BY ! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ! ! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ! TRANSFERRED. ! ! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ! CORPORATION. ! ! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. ! !++ ! ! FACILITY: BLISS Library ! ! ABSTRACT: ! ! This module implements XPORT IOB File-spec validation. ! ! ENVIRONMENT: User mode - multiple host operating/file systems ! ! AUTHOR: Ward Clark, CREATION DATE: 10 March 1980 ! !-- ! ! TABLE OF CONTENTS: ! FORWARD ROUTINE XPO$VALID_IOB; ! IOB file-spec validation routine ! ! INCLUDE FILES: ! LIBRARY 'XPORT' ; ! Public XPORT control block and macro definitions LIBRARY 'XPOSYS' ; ! Internal XPORT macro definitions $XPO_SYS_TEST( $ALL ) ! ! MACROS: ! MACRO setup_string( string, primary ) = IF .string EQL 0 THEN string = XST$NULL_STRING ELSE $XPO_IF_NOT( $STR_VALIDATE( .string ) ) THEN $XPO_RETURN( primary, (.$XPO_STATUS) ) %; ! ! EQUATED SYMBOLS: ! ! ! PSECT DECLARATIONS: ! $XPO_PSECTS ! Declare XPORT PSECT names and attributes ! ! OWN STORAGE: ! ! ! EXTERNAL REFERENCES: ! EXTERNAL XST$NULL_STRING : $STR_DESCRIPTOR(); ! FIXED null string GLOBAL ROUTINE XPO$VALID_IOB( iob ) = !++ ! ! FUNCTIONAL DESCRIPTION: ! ! This routine validates all IOB file-spec and prompt strings provided ! by the user. Missing strings are replaced by null strings to simplify ! subsequent processing. ! ! FORMAL PARAMETERS: ! ! iob - address of an IOB ! ! IMPLICIT INPUTS: ! ! None ! ! IMPLICIT OUTPUTS: ! ! None ! ! COMPLETION CODES: ! ! XPO$_NORMAL - the tested IOB strings are valid ! ! XPO$_BAD_SPEC - the primary file-spec is invalid ! (IOB$G_2ND_CODE = completion code from $STR_VALIDATE) ! XPO$_BAD_DFLT - the default file-spec is invalid ! (IOB$G_2ND_CODE = completion code from $STR_VALIDATE) ! XPO$_BAD_RLTD - the related file-spec is invalid ! (IOB$G_2ND_CODE = completion code from $STR_VALIDATE) ! XPO$_BAD_PROMPT - the input prompt is invalid ! (IOB$G_2ND_CODE = completion code from $STR_VALIDATE) ! ! SIDE EFFECTS: ! ! None ! !-- BEGIN MAP iob : REF $XPO_IOB(); ! ! Validate or default each IOB string passed by the caller. ! setup_string( iob[IOB$A_FILE_SPEC], BAD_SPEC ); setup_string( iob[IOB$A_DEFAULT], BAD_DFLT ); setup_string( iob[IOB$A_RELATED], BAD_RLTD ); setup_string( iob[IOB$A_PROMPT], BAD_PROMPT ); ! ! Return to the caller. ! RETURN XPO$_NORMAL END; END ELUDOM