# val

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           val — validate SCCS files (**DEVELOPMENT**)
    


## SYNOPSIS



           val -
    
           val **[** -s**] [** -m _name_**] [** -r _SID_**] [** -y _type_**]**_file_...
    


## DESCRIPTION



           The _val_ utility shall determine whether the specified _file_ is an
           SCCS file meeting the characteristics specified by the options.
    


## OPTIONS



           The _val_ utility shall conform to the Base Definitions volume of
           POSIX.1‐2017, _Section 12.2_ , _Utility Syntax Guidelines_ , except that
           the usage of the **'-'** operand is not strictly as intended by the
           guidelines (that is, reading options and operands from standard
           input).
    
           The following options shall be supported:
    
           **-m** _name_   Specify a _name_ , which is compared with the SCCS %**M** %
                     keyword in _file_ ; see get(1p).
    
           **-r** _SID_    Specify a _SID_ (SCCS Identification String), an SCCS
                     delta number. A check shall be made to determine whether
                     the _SID_ is ambiguous (for example, **-r 1** is ambiguous
                     because it physically does not exist but implies 1.1,
                     1.2, and so on, which may exist) or invalid (for
                     example, **-r 1.0** or **-r 1.1.0** are invalid because neither
                     case can exist as a valid delta number).  If the _SID_ is
                     valid and not ambiguous, a check shall be made to
                     determine whether it actually exists.
    
           **-s** Silence the diagnostic message normally written to
                     standard output for any error that is detected while
                     processing each named file on a given command line.
    
           **-y** _type_   Specify a _type_ , which shall be compared with the SCCS
                     %**Y** % keyword in _file_ ; see get(1p).
    


## OPERANDS



           The following operands shall be supported:
    
           _file_      A pathname of an existing SCCS file. If exactly one _file_
                     operand appears, and it is **'-'** , the standard input shall
                     be read: each line shall be independently processed as
                     if it were a command line argument list. (However, the
                     line is not subjected to any of the shell word
                     expansions, such as parameter expansion or quote
                     removal.)
    


## STDIN



           The standard input shall be a text file used only when the _file_
           operand is specified as **'-'**.
    


## INPUT FILES



           Any SCCS files processed shall be files of an unspecified format.
    


## ENVIRONMENT VARIABLES



           The following environment variables shall affect the execution of
           _val_ :
    
           _LANG_      Provide a default value for the internationalization
                     variables that are unset or null. (See the Base
                     Definitions volume of POSIX.1‐2017, _Section 8.2_ ,
                     _Internationalization Variables_ for the precedence of
                     internationalization variables used to determine the
                     values of locale categories.)
    
           _LC_ALL_    If set to a non-empty string value, override the values
                     of all the other internationalization variables.
    
           _LC_CTYPE_  Determine the locale for the interpretation of sequences
                     of bytes of text data as characters (for example,
                     single-byte as opposed to multi-byte characters in
                     arguments and input files).
    
           _LC_MESSAGES_
                     Determine the locale that should be used to affect the
                     format and contents of diagnostic messages written to
                     standard error, and informative messages written to
                     standard output.
    
           _NLSPATH_   Determine the location of message catalogs for the
                     processing of _LC_MESSAGES_.
    


## ASYNCHRONOUS EVENTS



           Default.
    


## STDOUT



           The standard output shall consist of informative messages about
           either:
    
            1. Each file processed
    
            2. Each command line read from standard input
    
           If the standard input is not used, for each _file_ operand yielding
           a discrepancy, the output line shall have the following format:
    
               "%s: %s\n", <_pathname_ >, <_unspecified string_ >
    
           If the standard input is used, for each input line yielding a
           discrepancy, the output shall have the following format:
    
               "%s\n\n %s: %s\n", <_input_ >, <_pathname_ >, <_unspecified string_ >
    
           where <_input_ > is the input line minus its terminating <newline>.
    


## STDERR



           Not used.
    


## OUTPUT FILES



           None.
    


## EXTENDED DESCRIPTION



           None.
    


## EXIT STATUS



           The 8-bit code returned by _val_ shall be a disjunction of the
           possible errors; that is, it can be interpreted as a bit string
           where set bits are interpreted as follows:
           0x80   =   Missing file argument.
           0x40   =   Unknown or duplicate option.
           0x20   =   Corrupted SCCS file.
           0x10   =   Cannot open file or file not SCCS.
           0x08   =   _SID_ is invalid or ambiguous.
           0x04   =   _SID_ does not exist.
           0x02   =   %**Y** %, **-y** mismatch.
           0x01   =   %**M** %, **-m** mismatch.
    
           Note that _val_ can process two or more files on a given command
           line and can process multiple command lines (when reading the
           standard input). In these cases an aggregate code shall be
           returned: a logical OR of the codes generated for each command
           line and file processed.
    


## CONSEQUENCES OF ERRORS



           Default.
    
           _The following sections are informative._
    


## APPLICATION USAGE



           Since the _val_ exit status sets the 0x80 bit, shell applications
           checking **"$?"** cannot tell if it terminated due to a missing file
           argument or receipt of a signal.
    


## EXAMPLES



           In a directory with three SCCS files—**s.x**(of **t** type ``text''),
           **s.y** , and **s.z**(a corrupted file)—the following command could
           produce the output shown:
    
               val - <<EOF
               -y source s.x
               -m y s.y
               s.z
               EOF
               -y source s.x
    
                   s.x: %Y%, -y mismatch
               s.z
    
                   s.z: corrupted SCCS file
    


## RATIONALE



           None.
    


## FUTURE DIRECTIONS



           None.
    


* * *