  | 
		
Compaq C V6.4 for OpenVMS VAX Release Notes
 
 
7.9 New Features in DEC C V5.2
     
  - The command line switch /STANDARD=ISOC94 has been added 
 This
  qualifier enables digraph processing and pre-defines the macro
  __STDC_VERSION__ to the value 199409L. The macro __STDC_VERSION__ is
  used in certain header files to enable the declaration of additional
  wide character functions as specified in Amendment 1 to ISO/ANSI C.
  (Amendment 1, which specifies digraphs, alternate spellings for certain
  operators, and a number of new wide character functions, was officially
  adopted by ISO in November of 1994.)  The meaning of /STANDARD with
  no keywords has been changed from /STANDARD=ANSI89 to
  /STANDARD=(ANSI89, ISOC94), i.e. strict conformance to the full new
  standard. The default mode of the compiler (/NOSTANDARD) is still
  RELAXED_ANSI89. The meaning of /STANDARD=ISOC94 is
  /STANDARD=(RELAXED_ANSI, ISOC94), i.e. requesting just the additional
  features from the amendment builds on the default mode. The ISOC94
  keyword may be used with any of the other keywords to the /STANDARD
  qualifier except VAXC.  
   -  New builtins for DEC C on OpenVMS/VAX 
 Four new builtins
  (_HALT, _MFTR, _MTPR, _READ_GPR) are now supported by DEC C for OpenVMS
  VAX for use by privileged applications. These builtins were adapted
  from the VAX C builtins by the same name, and generally work the same
  as the VAX C builtins. As with the other builtins on DEC C for VAX,
  they are used in conjuction with the header file builtins.h, which
  describes their interfaces. _READ_GPR is unprivileged. The other three
  will all generate a reserved opcode fault if executed in a mode other
  than Kernel.
   - #pragma extern_prefix {SAVE | RESTORE | __save | __restore |
  "prefix_to_use"} 
  This feature is for use by RTL header file
  developers only to prefix function entry points with "prefix_to_use".
  Please note that the generated symbol name is all uppercase. The
  functionality should match that of the extern_prefix pragma in DEC C++.
  Like the other pragmas with save/restore options, the state of this
  pragma is also controlled by #pragma environment.   Note there is
  one known limitation with this feature: If a function is implicitly
  declared (ie, no prototype) then it does not get prefixed.
   - Implicit processing of prologue/epilogue files before and after
  each #include. 
  When the compiler encounters a #include
  preprocessing directive, it first determines the location of the file
  or text library module to be included. It then checks to see if one or
  both of the two following specially named files or modules exist in the
  same location: __DECC_INCLUDE_PROLOGUE.H, __DECC_INCLUDE_EPILOGUE.H (in
  the case of a text library, the .H is stripped off). If they do, then
  the content of each is read into memory. The text of the prologue file
  (if it exists) is processed JUST BEFORE the text of the file specified
  by the #include, and the text of the epilogue file (if it exists) is
  processed JUST AFTER the text of the file specified by the #include.
  Subsequent #includes that refer to files from the same location use the
  saved text from any prologue/epilogue file found there. The
  prologue/epilogue files are otherwise treated as if they had been
  #included explicitly, and #line directives are generated for them if
  /prepoc output is produced, and they appear as dependencies if
  /mms_dependency output is produced.   The "location" is the VMS
  directory containing the #included file or the text library file
  containing the #included module. For this purpose, "directory" means
  the result of using the $PARSE/$SEARCH system services with concealed
  device name logicals translated. So if a #included file is found
  through a concealed device logical that hides a search list, the check
  for prologue/epilogue files is still specific to the individual
  directories making up the search list.   This feature is primarily
  for compatibility with the DEC C and DEC C++ compilers for Alpha, where
  the addition of features to select 32-bit or 64-bit pointers has
  created a demand for a mechanism to address the short-term problem of
  automatically establishing a system-default compilation environment for
  the processing of system header files without having to edit all such
  files (which come from a number of different sources). The introduction
  of #pragma environment in V5.0 simplified the process of establishing a
  known compilation environment for an individual header file, which
  would not be changed by (and would not change) the environment of other
  header files or the main source file, without having to list explicitly
  each pragma implemented in the particular compiler version of interest.
  But that mechanism requires editing each header file needing to have
  that kind of stable compilation environment. The implicit processing of
  prologue/epilogue files is intended to support a prologue file
  containing "#pragma environment save" followed by one or more pragmas
  to establish the desired environment (typically either "#pragma
  environment header_defaults" or "#pragma environment command_line"),
  and an epilogue file containing "#pragma environment restore". By
  copying these two specially-named files or modules to a directory or
  text library, all of the header files or modules in that directory or
  library can be made to have the same compilation environment
  independent of command line switches and enclosing files or modules.
  
7.10 Changes in DEC C RTL Header Files for V5.2 of DEC C/C++
The release notes in this section describe changes to the header files
shipped with DEC C V5.2 for OpenVMS Systems. These header files contain
enhancements and changes made to the DEC C Run-Time Library for OpenVMS
Systems.
 
New function prototypes and structure definitions which define new
functionality in the DEC C Run-Time Library correspond to new
functionality added to the DEC C Run-Time Library which is shipped with
OpenVMS V7.0.  
 
  - New Header Files Added 
 A total of 20 new header files were
  added to the DEC C RTL suite of header files. Header files were added
  for implementation of Amendment 1 of the ISO C standard, compatibility
  with UNIX systems, and for introduction of new functions. Table 1
  lists those headers added for DEC C V5.2.   
 
  Table 1 New DEC C V5.2 Header Files
  
    | Header File  | 
    Description  | 
   
  
    | 
      <dirent.h>
     | 
    
      Directory Manipulation Functions
     | 
   
  
    | 
      <ftw.h>
     | 
    
      File Tree Walking
     | 
   
  
    | 
      <if.h>
     | 
    
      Socket Packet Transport Mechanism
     | 
   
  
    | 
      <if_arp.h>
     | 
    
      Socket Address Resolution Protocol
     | 
   
  
    | 
      <ioctl.h>
     | 
    
      I/O Controls for Special Files
     | 
   
  
    | 
      <iso646.h>
     | 
    
      Alternative Spelling for Language Tokens
     | 
   
  
    | 
      <libgen.h>
     | 
    
      Filename Manipulation
     | 
   
  
    | 
      <memory.h>
     | 
    
      String Handling
     | 
   
  
    | 
      <mman.h>
     | 
    
      Mapping Pages of Memory
     | 
   
  
    | 
      <nameser.h>
     | 
    
      Maximum Domain Name Size
     | 
   
  
    | 
      <pwd.h>
     | 
    
      Password File Access Functions
     | 
   
  
    | 
      <resolv.h>
     | 
    
      Resolver Configuration File
     | 
   
  
    | 
      <resource.h>
     | 
    
      Declarations for Resource Operations
     | 
   
  
    | 
      <strings.h>
     | 
    
      String Handling
     | 
   
  
    | 
      <timers.h>
     | 
    
      Clock and Timer Functions
     | 
   
  
    | 
      <times.h>
     | 
    
      File Access and Modifications Times Structure
     | 
   
  
    | 
      <tzfile.h>
     | 
    
      Time Zone Information
     | 
   
  
    | 
      <utsname.h>
     | 
    
      User Information
     | 
   
  
    | 
      <wait.h>
     | 
    
      Declarations for Process Waiting
     | 
   
  
    | 
      <wctype.h>
     | 
    
      Wide Character Classification and Mapping
     | 
   
 
   - New Functions Defined In Header Files 
 OpenVMS V7.0 introduces
  many new DEC C RTL functions which have been added to fulfill the
  request of application developers and to implement those functions
  defined by ISO C Amendment 1. These functions have been implemented on
  both OpenVMS Alpha V7.0 and OpenVMS VAX V7.0. These functions are
  documented in the DEC C Run-time Library Reference Manual for
  OpenVMS Systems.
 
  
    
       
      
basename()      herror()        seed48()       sysconf()
bcmp()          hostalias()     seekdir()      telldir()
bcopy()         hstrerror()     setenv()       tempnam()
btowc()         index()         sethostent()   towctrans()
bzero()         initstate()     setitimer()    truncate()
closedir()      ioctl()         setnetent()    tzset()
confstr()       jrand48()       setprotoent()  ualarm()
dirname()       lcong48()       setservent()   uname()
drand48()       lrand48()       setstate()     unlink()
endhostent()    mbrlen()        sigaction()    unsetenv()
endnetent()     mbrtowc()       sigaddset()    usleep()
endprotoent()   mbsinit()       sigdelset()    vfwprintf()
endservent()    mbsrtowcs()     sigemptyset()  vswprintf()
erand48()       memccpy()       sigfillset()   vwprintf()
ffs()           mkstemp()       sigismember()  wait3()
fpathconf()     mmap()          siglongjmp()   wait4()
ftruncate()     mprotect()      sigmask()      waitpid()
ftw()           mrand48()       sigpending()   wcrtomb()
fwide()         msync()         sigprocmask()  wcsrtombs()
fwprintf()      munmap()        sigsetjmp()    wcsstr()
fwscanf()       nrand48()       sigsuspend()   wctob()
getclock()      opendir()       socket_fd()    wctrans()
getdtablesize() pathconf()      srand48()      wmemchr()
gethostent()    pclose()        srandom()      wmemcmp()
getitimer()     popen()         strcasecmp()   wmemcpy()
getlogin()      putenv()        strdup()       wmemmove()
getpagesize()   random()        strncasecmp()  wmemset()
getpwnam()      readdir()       strsep()       wprintf()
getpwuid()      rewinddir()     swab()         wscanf()
getservent()    rindex()        swprintf()
gettimeofday()  rmdir()         swscanf()
 
 |   
     The following functions are specific to OpenVMS Alpha V7.0. These
    functions are the implementations specific to 64-bit pointers.
    (Alpha only.)
 
  
    
       
      
_basename64()  _mbsrtowcs64()  _strpbrk64()   _wcsncat64()
_bsearch64()   _memccpy64()    _strptime64()  _wcsncpy64()
_calloc64()    _memchr64()     _strrchr64()   _wcspbrk64()
_catgets64()   _memcpy64()     _strsep64()    _wcsrchr64()
_ctermid64()   _memmove64()    _strstr64()    _wcsrtombs64()
_cuserid64()   _memset64()     _strtod64()    _wcsstr64()
_dirname64()   _mktemp64()     _strtok64()    _wcstok64()
_fgetname64()  _mmap64()       _strtol64()    _wcstol64()
_fgets64()     _qsort64()      _strtoll64()   _wcstoul64()
_fgetws64()    _realloc64()    _strtoq64()    _wcswcs64()
_gcvt64()      _rindex64()     _strtoul64()   _wmemchr64()
_getcwd64()    _strcat64()     _strtoull64()  _wmemcpy64()
_getname64()   _strchr64()     _strtouq64()   _wmemmove64()
_gets64()      _strcpy64()     _tmpnam64()    _wmemset64()
_index64()     _strdup64()     _wcscat64()
_longname64()  _strncat64()    _wcschr64()
_malloc64()    _strncpy64()    _wcscpy64()
 
 |   
     While each of these functions are defined in the DEC C V5.2 header
    files, those definitions are protected by using if __VMS_VER >=
    70000000 conditional compilation.
   - Usage of Feature-Test Macros 
 The header files shipped with DEC
  C V5.2 have been enhanced to support feature test macros for selecting
  standards for APIs, multiple version support and for compatibility with
  old versions of DEC C or OpenVMS. Please see the DEC C Run-time Library
  Reference Manual, section 1.5 "Feature-Test Macros for Header-File
  Control", for a complete description of the feature test macros that
  are available.
   - Different Default Behavior After OpenVMS V7.0 
 The functions
  wait(), kill(), exit(), geteuid(),
  and getuid() have new default behavior for programs which are
  recompiled under OpenVMS V7.0 or later. To the retain the old behavior,
  use the _VMS_V6_SOURCE feature-test macro, as described in the
  reference manual.
   - Upgrade to Support 4.4BSD Sockets 
 As of OpenVMS V7.0, the
  socket definitions in the socket family of header files has added
  support for 4.4BSD sockets. To instruct the header files to use this
  support, define either _SOCKADDR_LEN or
  _XOPEN_SOURCE_EXTENDED during the compilation.  The
  functions gethostbyaddr(), gethostbyname(),
  recvmsg(), sendmsg(), accept(),
  bind(), connect(), getpeername(),
  getsockname(), recvfrom(), and sendto() have
  a second implementation which uses a new sockaddr structure
  defined in <socket.h>.
   - Integration of Timezone Support 
 The DEC C RTL on OpenVMS V7.0
  has added full support for Universal Coordinated Time using a public
  domain timezone package. When compiling on OpenVMS V7.0, the functions
  gmtime() and localtime() have a second implementation
  which use extensions to the tm structure defined in
  <time.h>. To retain the ANSI C definition of this structure,
  define either _ANSI_C_SOURCE or _DECC_V4_SOURCE. Note
  that compiling with the /standard=ansi qualifier implies
  _ANSI_C_SOURCE.
   - Integration of ISO C Amendment 1 Behavior 
 The DEC C RTL on
  OpenVMS V7.0 has added full support for Amendment 1 of the ISO C
  Standard. When compiling on OpenVMS V7.0, the functions
  wcfstime() and wcstok() have a second implementation
  which implement the semantic changes required by this amendment. To
  retain the XPG4 semantics of these functions, define either
  _XOPEN_SOURCE or _DECC_V4_SOURCE.
   - Upgrade to Support 4.4BSD Curses 
 Document changes to
  curses.h...
 
  Note 
The default definitions used during compilation for OpenVMS Alpha have
been changed to __VMS_CURSES which is the same as OpenVMS VAX.
To restore the original default curses package, the user must define
__BSD44_CURSES. 
     | 
   
 
   - FILE Structure Changed to Increase Open File Limit 
 Changes were
  made to the FILE type definition in <stdio.h> to support an
  extended open file limit in the DEC C RTL. As of OpenVMS V7.0, the
  number of files which can be open simultaneously will be raised from
  256 to 65535 on OpenVMS AXP and 2047 on OpenVMS VAX. This number is
  based on the OpenVMS sysgen CHANNELCNT parameter which specifies the
  number of permanent I/O channels available to the system. The maximum
  CHANNELCNT on OpenVMS AXP is 65535. On OpenVMS VAX it is 2047.  In
  order to support more than 256 open files, the field in the FILE type
  containing the file descriptor "_file" had to be changed from a char
  type to an int type.  The definition of the FILE type in stdio.h
  changed from:
 
  
    
       
      
typedef struct _iobuf {
    int      _cnt;            // bytes remaining in buffer
    char    *_ptr;            // I/O buffer ptr
    char    *_base;           // buffer address
    unsigned char   _flag;    // flags
    unsigned char   _file;    // file descriptor number
    unsigned char   _pad1;    // modifiable buffer flags
    unsigned char   _pad2;    // pad for longword alignment
} *FILE;
 |   
     to:
 
  
    
       
      
typedef struct _iobuf {
    int      _cnt;            // bytes remaining in buffer
    char    *_ptr;            // I/O buffer ptr
    char    *_base;           // buffer address
    unsigned char   _flag;    // flags
    unsigned char   _padfile; // old file descriptor numbe
    unsigned char   _pad1;    // modifiable buffer flags
    unsigned char   _pad2;    // pad for longword alignment
    int             _file;    // file descriptor number
} *FILE;
 |   
     This change was coded using the __VMS_VER macro. As such programs
    compiled with a version of stdio.h containing support for an increased
    open file limit can be linked with a version of the DEC C RTL which
    either does or does not contain this support. Programs compiled with a
    version of stdio.h providing the new FILE type definition which link on
    earlier OpenVMS versions obviously not be able to make use of this new
    functionality.
   - Header <stdlib.h> No Longer Includes <types.h> 
 As
  part of feature test macro work, <stdlib.h> no longer includes
  <types.h>. This will affect some DEC C V5.0 programs that
  included stdlib.h and expected a type such as pid_t to be defined. The
  user must change their source to explicitly include <types.h>.
  
7.11 New Features in DEC C V5.0
     
 
  -  Change to the documentation of /standard=portable 
 The meaning
  of /standard=portable was previously documented as putting the compiler
  in VAX C mode and enabling the portability group of messages. The DEC C
  compiler for OpenVMS Alpha prior to V5.0 implemented this behavior,
  while the DEC C compiler for OpenVMS VAX implemented this qualifier by
  putting the compiler in relaxed ANSI mode and enabling the portability
  group. Feedback from users overwhelmingly indicated a preference for
  the behavior of the VAX compiler. Therefore the V5.0 compiler for
  OpenVMS Alpha has been changed to behave the same as the VAX compiler,
  and the documentation for both platforms is being updated to reflect
  this.  
   - Major upgrade to the preprocessor 
 The part of the compiler that
  implements preprocessing constructs has undergone a major upgrade. In
  most ways, the effect of this change should be invisible. Unless you
  have encountered problems with the preprocessor in previous releases
  that are now fixed, you should not expect to see much change except
  perhaps some additional compile-time improvement if you use heavily
  redundant #includes, or if you use #pragma message to control message
  reporting for preprocessor constructs. Because of the nature of the
  changes made, errors and warnings that are detected during
  preprocessing will typically be reported with different message text
  and different message identifiers from previous releases. If your code
  relies on the identifiers or text for messages issued by the
  preprocessor, you will have to assess the new messages and their
  identifiers to get equivalent behavior.  The general nature of the
  changes to the preprocessor are to improve its reliability and its
  compatibility with traditional UNIX C compilers, without compromising
  its ANSI C adherence. In particular:  
  
    -  Explicit .I file ouput 
 Much more attention has been given to
    the content of .I files produced by the /preprocess_only qualifier,
    such that compiling a .I file should more closely mimic the effect of
    compiling the original source. This includes issues such as the
    following:  
    
      -  Generation of whitespace to separate tokens only where necessary
      to prevent accidental token pasting when the .I file is compiled.
      
 -  Generation of # num directives and blank lines to keep a better
      correspondence to the original source.
      
 -  Processing of pragmas and directives (including builtins and
      dictionary) such that compiling the .I file in the absence of the
      original header files and/or CDD repository will produce the same
      effect as compiling the original source in its own environment of
      header files and repositories.
      
 -  #pragma message, standard, and nostandard are now also respected
      under /preprocess_only, so that spurious diagnostics are not produced
      when making a .I file.
    
  
     -  Token pasting 
 More natural treatment of token-pasting
    operators that do not produce valid tokens: the pasting is simply
    ignored.
     -  Preprocessing directives within macro invocations 
 More
    flexible treatment of the appearance of #if, #ifdef, #ifndef, #else,
    #elif, and #endif directives within the actual parameter list of a
    function-like macro invocation that spans multiple lines: the
    directives take effect. There is no ANSI-required behavior for such
    constructs, and they can easily appear when a function is changed to a
    function-like macro. Formerly an E-level diagnostic complaining about
    the syntax of the directive was issued.
     -  Missing macro parameters 
 More natural treatment of
    function-like macro invocations with missing actual parameters: each
    missing parameter is treated like an object-like macro with an empty
    replacement list.
     -  Macro expansions in #include and #line 
 More complete treatment
    of preprocessing directives like #include and #line, in the cases where
    a sequence of tokens requiring macro expansion occurs, and the result
    of the macro expansion is to be matched against one of the "fixed"
    forms.
     -  Error recovery 
 Better error recovery for
    preprocessor-generated diagnostics. In some cases the severity of a
    similar condition diagnosed by the previous version of the preprocessor
    has been reduced from an error to a warning or informational because
    the repair is what would be expected at that level. In particular, C
    preprocessors are sometimes applied to source code that is not really C
    code - the expectation is that the preprocessor would give at most a
    warning or informational, and the detection of an error condition
    resulting from the fixup made by the preprocessor can safely be left to
    the compiler's syntactic and semantic analysis phases.
     -  Macro expansions in #pragma 
 More usual treatment of #pragma
    directives: the tokens are not subject to macro expansion. For pragmas
    that already have a well-established and documented behavior under DEC
    C, macro expansion is still performed. But for new DEC C pragmas and
    pragmas offering compatibility with other C compilers, macro expansion
    is not performed (since most other C compilers do not perform it). If
    an identifier used as the name of a pragma matches the name of a pragma
    that is defined not to have macro expansion performed, then no
    expansion will be performed. But if the identifier is not the name of
    such a pragma, and it is the name of a currently-defined macro, then
    that macro gets expanded and the resulting token is compared to the
    following list of pragma names to determine if the rest of the pragma
    tokens should be macro expanded. This gives maximum compatibility with
    existing code, but allows the general behavior to be brought more in
    line with common practice. The pragmas that will continue to be subject
    to macro expansion are listed below.  
    
      -  _KAP
      
 -  standard
      
 -  nostandard
      
 -  member_alignment
      
 -  nomember_alignment
      
 -  dictionary
      
 -  inline
      
 -  noinline
      
 -  module
      
 -  message
      
 -  extern_model
      
 -  builtins
      
 -  linkage (Alpha-only)
      
 -  use_linkage (Alpha-only)
      
 -  define_template (C++ only)
    
  
    
     
   -  #pragma environment 
 This new pragma allows saving and
  restoring the state of all pragmas for which the compiler supports a
  save/restore stack. It has two additional keywords to specify a state
  that is consistent with the needs of system header files, or to specify
  a state that is the same as what was established by command line
  switches at the start of compilation. The primary purpose is to allow
  the authors of header files describing data structures that will be
  accessible to library code to establish a consistent compilation
  environment in which their headers will be compiled, without
  interfering with the compilation environment of the user. The syntax is:
 
  
    
       
      
        #pragma environment save
        #pragma environment restore
        #pragma environment header_defaults
        #pragma environment command_line
 |   
     The save and restore keywords cause every other pragma that accepts
    save and restore keywords to perform a save or restore operation. The
    header_defaults keyword sets the state of all those pragmas to what is
    generally desirable in system header files. This corresponds to the
    state the compiler would be in with no command line options specified
    and no pragmas processed - except that #pragma nostandard is enabled.
    The command_line keyword sets the state of all such pragmas to what was
    specified by the command line options. See the Users's Guide and help
    files for a description of pragmas that accept save and restore
    keywords, and for command line options that control behaviors that are
    also controllable by pragmas.  
   -  __unaligned type qualifier 
 A new type qualifier called
  "__unaligned" has been introduced which can be used in exactly the same
  contexts as the ANSI C "volatile" and "const" type qualifiers. It can
  be used either on a declaration or in a cast to tell the compiler
  specific places where it should not assume natural alignment on a
  pointer dereference, without making it apply to all dereferences. This
  qualifier is provided on OpenVMS VAX only for compatibility with the
  Alpha platforms. On OpenVMS VAX it is parsed but, has no effect upon
  code generation. However, it is fully functional on OpenVMS Alpha and
  Digital UNIX.  
   - New Predefined Macros 
 There are two new predefined macros
  __DECC_VER and __VMS_VER, which map compiler version numbers and VMS
  version numbers respectively into an unsigned long int. The compiler
  version number is extracted from the compiler ident and the VMS version
  macro is obtained by calling sys$getsyiw(SYI$_VERSION), these string
  values are then changed into an integer in an implementation defined
  manner. However, newer versions of the compiler and VMS will always
  have larger values for these macros. If the VMS version string or the
  compiler's ident string can not be obtained (or analyzed), then the
  corresponding macro will be defined with the value zero. Please note
  that pre-5.0 compilers do not define these macros so it is useful to
  surround any version tests with #ifdef tests.  
 
  
    
       
      
/*__DECC_VER is not defined before V5.0
  to test for a the compiler V5.1 or higher */
#ifdef __DECC_VER
    #if (__DECC_VER >= 50100000)
        / *Code */
    #endif
#endif
/* to test for VMS 6.2 or higher */
#ifdef __VMS_VER
        #if __VMS_VER >= 60200000
                /* code */
        #endif
#endif
 |   
     Defining __VMS_VER to 60100000 (or lower) is useful if you wish to
    build your application on VMS 6.2 or higher and link your application
    with pre-6.2 libraries so that the application can be run by customers
    running pre6.2 systems. If you define __VMS_VER, you may want to
    compile with the command line option /WARNINGS=DISABLE= MACROREDEF to
    suppress that warning message.  
   - Compile Time Performance Improvements 
 Some compile-time
  improvements have been made for V5.0. The most notable improvement is
  that the preprocessor is now sometimes able to determine that a
  particular #include file has already been processed once, if the
  contents were guarded by a #ifndef FILE_SEEN, #define FILE_SEEN
  sequence, and if the FILE_SEEN macro is still defined. When the
  compiler detects this case, that include file will not be reopened and
  reread.  
   - XPG4 Support 
  DEC C V5.0 supports the worldwide portability
  interfaces described in the X/Open CAE Specifications: System
  Interfaces and Headers, Issue 4; System Interfaces Definitions, Issue
  4; and Commands and Utilities, Issue 4. These interfaces allow an
  application to be written for international markets from common source
  code. This model of internationalization is the same as found on many
  UNIX systems, including Digital's UNIX.  
   - /NESTED_INCLUDE_DIRECTORY=(PRIMARY_FILE, INCLUDE_FILE, NONE) has
  been extended. 
  It now accepts the NONE keyword. This specifies
  that the compiler skips the first step of processing #include "file.h"
  directives. It starts looking for the included file in the
  /INCLUDE_DIRECTORY directories. It does not start by looking in the
  directory containing the including file nor in the directory containing
  the top level source file.
  
  
  
		   |