Copyright Digital Equipment Corp. All rights reserved.

Curses_and_Socket_Compatibility_Macros

   The following feature-test macros are used to control the Curses
   and Socket subsets of the C RTL library:

   o  _BSD44_CURSES

      This macro selects the Curses package from the 4.4BSD Berkeley
      Software Distribution.

   o  _VMS_CURSES

      This macro selects a Curses package based on the VAX C
      compiler. This is the default Curses package.

   o  _SOCKADDR_LEN

      This macro is used to select 4.4BSD-compatible and XPG4 V2-
      compatible socket interfaces. These interfaces require support
      in your underlying TCP/IP software. Contact your TCP/IP vendor
      to inquire if the version of TCP/IP software you run supports
      4.4BSD sockets.

   Strict XPG4 V2 compliance requires the 4.4BSD-compatible socket
   interface. Therefore, if _XOPEN_SOURCE_EXTENDED is defined on
   OpenVMS Version 7.0 or higher, _SOCKADDR_LEN is defined to be 1.

   The following examples help clarify the use of these macros:

   o  Symbolic constants like AE, AL, AS, AM, BC, which represent
      pointers to termcap fields used by the BSD Curses package, are
      only visible in <curses.h> if _BSD44_CURSES is defined.

   o  The <socket.h> header file defines a 4.4BSD sockaddr structure
      only if _SOCKADDR_LEN or _XOPEN_SOURCE_EXTENDED is defined.
      Otherwise, <socket.h> defines a pre-4.4BSD sockaddr structure.
      If _SOCKADDR_LEN is defined and _XOPEN_SOURCE_EXTENDED is not
      defined,

      The <socket.h> header file also defines an osockaddr
      structure, which is a 4.3BSD sockaddr structure to be used
      for compatibility purposes. Since XPG4 V2 does not define
      an osockaddr structure, it is not visible in _XOPEN_SOURCE_
      EXTENDED mode.