/*
 *  DO NOT EDIT THIS FILE - it has been generated
 *
 * Install modified versions of certain ANSI-incompatible system header
 * files which are fixed to work correctly with ANSI C and placed in a
 * directory that GNU C will search.
 *
 * This file contains 138 fixup descriptions.
 *
 * See README for more information.
 *
 *  inclhack copyright (c) 1998, 1999, 2000, 2001
 *  The Free Software Foundation, Inc.
 *
  *  inclhack is free software.
 *  
 *  You may redistribute it and/or modify it under the terms of the
 *  GNU General Public License, as published by the Free Software
 *  Foundation; either version 2, or (at your option) any later version.
 *  
 *  inclhack is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *  See the GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License
 *  along with inclhack.  See the file "COPYING".  If not,
 *  write to:  The Free Software Foundation, Inc.,
 *             59 Temple Place - Suite 330,
 *             Boston,  MA  02111-1307, USA.
 */

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Dgux_Int_Varargs fix
 */
tSCC zAab_Dgux_Int_VarargsName[] =
     "AAB_dgux_int_varargs";

/*
 *  File name selection pattern
 */
tSCC zAab_Dgux_Int_VarargsList[] =
  "|_int_varargs.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAab_Dgux_Int_VarargsMachs (const char**)NULL
#define AAB_DGUX_INT_VARARGS_TEST_CT  0
#define aAab_Dgux_Int_VarargsTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Dgux_Int_Varargs
 */
static const char* apzAab_Dgux_Int_VarargsPatch[] = {
"#ifndef __INT_VARARGS_H\n\
#define __INT_VARARGS_H\n\n\
/********************************************************/\n\
/*  Define the common stuff for varargs/stdarg/stdio.   */\n\
/********************************************************/\n\n\
/*\n\
** This file is a DG internal header.  Never include this\n\
** file directly.\n\
*/\n\n\
#ifndef ___int_features_h\n\
#include <sys/_int_features.h>\n\
#endif\n\n\
#if !(defined(_VA_LIST) || defined(_VA_LIST_))\n\
#define _VA_LIST\n\
#define _VA_LIST_\n\n\
#ifdef __LINT__\n\n\
#ifdef __STDC__\n\
typedef void * va_list;\n\
#else\n\
typedef char * va_list;\n\
#endif\n\n\
#else\n\
#if _M88K_ANY\n\n\
#if defined(__DCC__)\n\n\
typedef struct {\n\
      int     next_arg;\n\
      int     *mem_ptr;\n\
      int     *reg_ptr;\n\
} va_list;\n\n\
#else  /* ! defined(__DCC__) */\n\n\
typedef struct {\n\
      int  __va_arg;       /* argument number */\n\
      int *__va_stk;       /* start of args passed on stack */\n\
      int *__va_reg;       /* start of args passed in regs */\n\
} va_list;\n\n\
#endif  /* ! defined(__DCC__) */\n\n\
#elif _IX86_ANY\n\n\
#if defined(__GNUC__) || defined(__STDC__)\n\
typedef void * va_list;\n\
#else\n\
typedef char * va_list;\n\
#endif\n\n\
#endif  /*  _IX86_ANY */\n\n\
#endif /* __LINT__ */\n\
#endif /*  !(defined(_VA_LIST) || defined(_VA_LIST_)) */\n\
#endif /*  #ifndef __INT_VARARGS_H  */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Fd_Zero_Asm_Posix_Types_H fix
 */
tSCC zAab_Fd_Zero_Asm_Posix_Types_HName[] =
     "AAB_fd_zero_asm_posix_types_h";

/*
 *  File name selection pattern
 */
tSCC zAab_Fd_Zero_Asm_Posix_Types_HList[] =
  "|asm/posix_types.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Fd_Zero_Asm_Posix_Types_HMachs[] = {
        "i[34567]86-*-linux*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAab_Fd_Zero_Asm_Posix_Types_HBypass0[] =
       "} while";

#define    AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT  1
static tTestDesc aAab_Fd_Zero_Asm_Posix_Types_HTests[] = {
  { TT_NEGREP,   zAab_Fd_Zero_Asm_Posix_Types_HBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aab_Fd_Zero_Asm_Posix_Types_H
 */
static const char* apzAab_Fd_Zero_Asm_Posix_Types_HPatch[] = {
"/* This file fixes a bug in the __FD_ZERO macro\n\
   for older versions of the Linux kernel. */\n\
#ifndef _POSIX_TYPES_H_WRAPPER\n\
#include <features.h>\n\
 #include_next <asm/posix_types.h>\n\n\
#if defined(__FD_ZERO) && !defined(__GLIBC__)\n\
#undef __FD_ZERO\n\
#define __FD_ZERO(fdsetp) \\\n\
  do { \\\n\
    int __d0, __d1; \\\n\
__asm__ __volatile__(\"cld ; rep ; stosl\" \\\n\
: \"=&c\" (__d0), \"=&D\" (__d1) \\\n\
: \"a\" (0), \"0\" (__FDSET_LONGS), \\\n\
  \"1\" ((__kernel_fd_set *) (fdsetp)) :\"memory\"); \\\n\
  } while (0)\n\
#endif\n\n\
#define _POSIX_TYPES_H_WRAPPER\n\
#endif /* _POSIX_TYPES_H_WRAPPER */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Fd_Zero_Gnu_Types_H fix
 */
tSCC zAab_Fd_Zero_Gnu_Types_HName[] =
     "AAB_fd_zero_gnu_types_h";

/*
 *  File name selection pattern
 */
tSCC zAab_Fd_Zero_Gnu_Types_HList[] =
  "|gnu/types.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Fd_Zero_Gnu_Types_HMachs[] = {
        "i[34567]86-*-linux*",
        (const char*)NULL };
#define AAB_FD_ZERO_GNU_TYPES_H_TEST_CT  0
#define aAab_Fd_Zero_Gnu_Types_HTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Fd_Zero_Gnu_Types_H
 */
static const char* apzAab_Fd_Zero_Gnu_Types_HPatch[] = {
"/* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */\n\
#ifndef _TYPES_H_WRAPPER\n\
#include <features.h>\n\
 #include_next <gnu/types.h>\n\n\
#if defined(__FD_ZERO) && !defined(__GLIBC__)\n\
#undef __FD_ZERO\n\
# define __FD_ZERO(fdsetp) \\\n\
  do { \\\n\
    int __d0, __d1; \\\n\
\t__asm__ __volatile__(\"cld ; rep ; stosl\" \\\n\
        \t: \"=&c\" (__d0), \"=&D\" (__d1) \\\n\
        \t: \"a\" (0), \"0\" (__FDSET_LONGS), \\\n\
\t\t  \"1\" ((__fd_set *) (fdsetp)) :\"memory\"); \\\n\
  } while (0)\n\
#endif\n\n\
#define _TYPES_H_WRAPPER\n\
#endif /* _TYPES_H_WRAPPER */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Fd_Zero_Selectbits_H fix
 */
tSCC zAab_Fd_Zero_Selectbits_HName[] =
     "AAB_fd_zero_selectbits_h";

/*
 *  File name selection pattern
 */
tSCC zAab_Fd_Zero_Selectbits_HList[] =
  "|selectbits.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Fd_Zero_Selectbits_HMachs[] = {
        "i[34567]86-*-linux*",
        (const char*)NULL };
#define AAB_FD_ZERO_SELECTBITS_H_TEST_CT  0
#define aAab_Fd_Zero_Selectbits_HTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Fd_Zero_Selectbits_H
 */
static const char* apzAab_Fd_Zero_Selectbits_HPatch[] = {
"/* This file fixes a bug in the __FD_ZERO macro present in glibc 2.0.x. */\n\
#ifndef _SELECTBITS_H_WRAPPER\n\
#include <features.h>\n\
 #include_next <selectbits.h>\n\n\
#if defined(__FD_ZERO) && defined(__GLIBC__) \\\n\
\t&& defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \\\n\
\t&& __GLIBC_MINOR__ == 0\n\
#undef __FD_ZERO\n\
#define __FD_ZERO(fdsetp) \\\n\
  do { \\\n\
    int __d0, __d1; \\\n\
  __asm__ __volatile__ (\"cld; rep; stosl\" \\\n\
                        : \"=&c\" (__d0), \"=&D\" (__d1) \\\n\
                        : \"a\" (0), \"0\" (sizeof (__fd_set) \\\n\
                                        / sizeof (__fd_mask)), \\\n\
                          \"1\" ((__fd_mask *) (fdsetp)) \\\n\
                        : \"memory\"); \\\n\
  } while (0)\n\
#endif\n\n\
#define _SELECTBITS_H_WRAPPER\n\
#endif /* _SELECTBITS_H_WRAPPER */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Sun_Memcpy fix
 */
tSCC zAab_Sun_MemcpyName[] =
     "AAB_sun_memcpy";

/*
 *  File name selection pattern
 */
tSCC zAab_Sun_MemcpyList[] =
  "|memory.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAab_Sun_MemcpyMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAab_Sun_MemcpySelect0[] =
       "/\\*\t@\\(#\\)(head/memory.h\t50.1\t |memory\\.h 1\\.[2-4] 8./../.. SMI; from S5R2 1\\.2\t)\\*/";

#define    AAB_SUN_MEMCPY_TEST_CT  1
static tTestDesc aAab_Sun_MemcpyTests[] = {
  { TT_EGREP,    zAab_Sun_MemcpySelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aab_Sun_Memcpy
 */
static const char* apzAab_Sun_MemcpyPatch[] = {
"/* This file was generated by fixincludes */\n\
#ifndef __memory_h__\n\
#define __memory_h__\n\n\
#ifdef __STDC__\n\
extern void *memccpy();\n\
extern void *memchr();\n\
extern void *memcpy();\n\
extern void *memset();\n\
#else\n\
extern char *memccpy();\n\
extern char *memchr();\n\
extern char *memcpy();\n\
extern char *memset();\n\
#endif /* __STDC__ */\n\n\
extern int memcmp();\n\n\
#endif /* __memory_h__ */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Svr4_Replace_Byteorder fix
 */
tSCC zAab_Svr4_Replace_ByteorderName[] =
     "AAB_svr4_replace_byteorder";

/*
 *  File name selection pattern
 */
tSCC zAab_Svr4_Replace_ByteorderList[] =
  "|sys/byteorder.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Svr4_Replace_ByteorderMachs[] = {
        "*-*-sysv4*",
        "i[34567]86-*-sysv5*",
        "i[34567]86-*-udk*",
        "i[34567]86-*-solaris2.[0-4]",
        "powerpcle-*-solaris2.[0-4]",
        "sparc-*-solaris2.[0-4]",
        (const char*)NULL };
#define AAB_SVR4_REPLACE_BYTEORDER_TEST_CT  0
#define aAab_Svr4_Replace_ByteorderTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Svr4_Replace_Byteorder
 */
static const char* apzAab_Svr4_Replace_ByteorderPatch[] = {
"#ifndef _SYS_BYTEORDER_H\n\
#define _SYS_BYTEORDER_H\n\n\
/* Functions to convert `short' and `long' quantities from host byte order\n\
   to (internet) network byte order (i.e. big-endian).\n\n\
   Written by Ron Guilmette (rfg@ncd.com).\n\n\
   This isn't actually used by GCC.  It is installed by fixinc.svr4.\n\n\
   For big-endian machines these functions are essentially no-ops.\n\n\
   For little-endian machines, we define the functions using specialized\n\
   asm sequences in cases where doing so yields better code (e.g. i386).  */\n\n\
#if !defined (__GNUC__) && !defined (__GNUG__)\n\
#error You lose!  This file is only useful with GNU compilers.\n\
#endif\n\n\
#ifndef __BYTE_ORDER__\n\
/* Byte order defines.  These are as defined on UnixWare 1.1, but with\n\
   double underscores added at the front and back.  */\n\
#define __LITTLE_ENDIAN__   1234\n\
#define __BIG_ENDIAN__      4321\n\
#define __PDP_ENDIAN__      3412\n\
#endif\n\n\
#ifdef __STDC__\n\
static __inline__ unsigned long htonl (unsigned long);\n\
static __inline__ unsigned short htons (unsigned int);\n\
static __inline__ unsigned long ntohl (unsigned long);\n\
static __inline__ unsigned short ntohs (unsigned int);\n\
#endif /* defined (__STDC__) */\n\n\
#if defined (__i386__)\n\n\
#ifndef __BYTE_ORDER__\n\
#define __BYTE_ORDER__ __LITTLE_ENDIAN__\n\
#endif\n\n\
/* Convert a host long to a network long.  */\n\n\
/* We must use a new-style function definition, so that this will also\n\
   be valid for C++.  */\n\
static __inline__ unsigned long\n\
htonl (unsigned long __arg)\n\
{\n\
  register unsigned long __result;\n\n\
  __asm__ (\"xchg%B0 %b0,%h0\n\
\tror%L0 $16,%0\n\
\txchg%B0 %b0,%h0\" : \"=q\" (__result) : \"0\" (__arg));\n\
  return __result;\n\
}\n\n\
/* Convert a host short to a network short.  */\n\n\
static __inline__ unsigned short\n\
htons (unsigned int __arg)\n\
{\n\
  register unsigned short __result;\n\n\
  __asm__ (\"xchg%B0 %b0,%h0\" : \"=q\" (__result) : \"0\" (__arg));\n\
  return __result;\n\
}\n\n\
#elif ((defined (__i860__) && !defined (__i860_big_endian__))\t\\\n\
       || defined (__ns32k__) || defined (__vax__)\t\t\\\n\
       || defined (__spur__) || defined (__arm__))\n\n\
#ifndef __BYTE_ORDER__\n\
#define __BYTE_ORDER__ __LITTLE_ENDIAN__\n\
#endif\n\n\
/* For other little-endian machines, using C code is just as efficient as\n\
   using assembly code.  */\n\n\
/* Convert a host long to a network long.  */\n\n\
static __inline__ unsigned long\n\
htonl (unsigned long __arg)\n\
{\n\
  register unsigned long __result;\n\n\
  __result = (__arg >> 24) & 0x000000ff;\n\
  __result |= (__arg >> 8) & 0x0000ff00;\n\
  __result |= (__arg << 8) & 0x00ff0000;\n\
  __result |= (__arg << 24) & 0xff000000;\n\
  return __result;\n\
}\n\n\
/* Convert a host short to a network short.  */\n\n\
static __inline__ unsigned short\n\
htons (unsigned int __arg)\n\
{\n\
  register unsigned short __result;\n\n\
  __result = (__arg << 8) & 0xff00;\n\
  __result |= (__arg >> 8) & 0x00ff;\n\
  return __result;\n\
}\n\n\
#else /* must be a big-endian machine */\n\n\
#ifndef __BYTE_ORDER__\n\
#define __BYTE_ORDER__ __BIG_ENDIAN__\n\
#endif\n\n\
/* Convert a host long to a network long.  */\n\n\
static __inline__ unsigned long\n\
htonl (unsigned long __arg)\n\
{\n\
  return __arg;\n\
}\n\n\
/* Convert a host short to a network short.  */\n\n\
static __inline__ unsigned short\n\
htons (unsigned int __arg)\n\
{\n\
  return __arg;\n\
}\n\n\
#endif /* big-endian */\n\n\
/* Convert a network long to a host long.  */\n\n\
static __inline__ unsigned long\n\
ntohl (unsigned long __arg)\n\
{\n\
  return htonl (__arg);\n\
}\n\n\
/* Convert a network short to a host short.  */\n\n\
static __inline__ unsigned short\n\
ntohs (unsigned int __arg)\n\
{\n\
  return htons (__arg);\n\
}\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Ultrix_Ansi_Compat fix
 */
tSCC zAab_Ultrix_Ansi_CompatName[] =
     "AAB_ultrix_ansi_compat";

/*
 *  File name selection pattern
 */
tSCC zAab_Ultrix_Ansi_CompatList[] =
  "|ansi_compat.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAab_Ultrix_Ansi_CompatMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAab_Ultrix_Ansi_CompatSelect0[] =
       "ULTRIX";

#define    AAB_ULTRIX_ANSI_COMPAT_TEST_CT  1
static tTestDesc aAab_Ultrix_Ansi_CompatTests[] = {
  { TT_EGREP,    zAab_Ultrix_Ansi_CompatSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aab_Ultrix_Ansi_Compat
 */
static const char* apzAab_Ultrix_Ansi_CompatPatch[] = {
"/* This file intentionally left blank.  */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Ultrix_Limits fix
 */
tSCC zAab_Ultrix_LimitsName[] =
     "AAB_ultrix_limits";

/*
 *  File name selection pattern
 */
tSCC zAab_Ultrix_LimitsList[] =
  "|limits.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Ultrix_LimitsMachs[] = {
        "*-*-ultrix4.3",
        (const char*)NULL };
#define AAB_ULTRIX_LIMITS_TEST_CT  0
#define aAab_Ultrix_LimitsTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Ultrix_Limits
 */
static const char* apzAab_Ultrix_LimitsPatch[] = {
"#ifndef _LIMITS_INCLUDED\n\
#define _LIMITS_INCLUDED\n\
#include <sys/limits.h>\n\
#endif /* _LIMITS_INCLUDED */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Ultrix_Memory fix
 */
tSCC zAab_Ultrix_MemoryName[] =
     "AAB_ultrix_memory";

/*
 *  File name selection pattern
 */
tSCC zAab_Ultrix_MemoryList[] =
  "|memory.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Ultrix_MemoryMachs[] = {
        "*-*-ultrix4.3",
        (const char*)NULL };
#define AAB_ULTRIX_MEMORY_TEST_CT  0
#define aAab_Ultrix_MemoryTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Ultrix_Memory
 */
static const char* apzAab_Ultrix_MemoryPatch[] = {
"#ifndef _MEMORY_INCLUDED\n\
#define _MEMORY_INCLUDED\n\
#include <strings.h>\n\
#endif /* _MEMORY_INCLUDED */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Ultrix_String fix
 */
tSCC zAab_Ultrix_StringName[] =
     "AAB_ultrix_string";

/*
 *  File name selection pattern
 */
tSCC zAab_Ultrix_StringList[] =
  "|string.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Ultrix_StringMachs[] = {
        "*-*-ultrix4.3",
        (const char*)NULL };
#define AAB_ULTRIX_STRING_TEST_CT  0
#define aAab_Ultrix_StringTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Ultrix_String
 */
static const char* apzAab_Ultrix_StringPatch[] = {
"#ifndef _STRING_INCLUDED\n\
#define _STRING_INCLUDED\n\
#include <strings.h>\n\
#endif /* _STRING_INCLUDED */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Pthread fix
 */
tSCC zAix_PthreadName[] =
     "aix_pthread";

/*
 *  File name selection pattern
 */
tSCC zAix_PthreadList[] =
  "|pthread.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAix_PthreadMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_PthreadSelect0[] =
       "(#define [A-Za-z_0-9]+)(\\\\\n\
[^A-Za-z_0-9 \t\n\
(])";

#define    AIX_PTHREAD_TEST_CT  1
static tTestDesc aAix_PthreadTests[] = {
  { TT_EGREP,    zAix_PthreadSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Pthread
 */
static const char* apzAix_PthreadPatch[] = {
    "format",
    "%1 %2",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Sysmachine fix
 */
tSCC zAix_SysmachineName[] =
     "aix_sysmachine";

/*
 *  File name selection pattern
 */
tSCC zAix_SysmachineList[] =
  "|sys/machine.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAix_SysmachineMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_SysmachineSelect0[] =
       "\\\\ +\n";

#define    AIX_SYSMACHINE_TEST_CT  1
static tTestDesc aAix_SysmachineTests[] = {
  { TT_EGREP,    zAix_SysmachineSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Sysmachine
 */
static const char* apzAix_SysmachinePatch[] = {
    "format",
    "\\\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Syswait fix
 */
tSCC zAix_SyswaitName[] =
     "aix_syswait";

/*
 *  File name selection pattern
 */
tSCC zAix_SyswaitList[] =
  "|sys/wait.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAix_SyswaitMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_SyswaitSelect0[] =
       "^extern pid_t wait3\\(\\);\n";
tSCC zAix_SyswaitSelect1[] =
       "bos325,";

#define    AIX_SYSWAIT_TEST_CT  2
static tTestDesc aAix_SyswaitTests[] = {
  { TT_EGREP,    zAix_SyswaitSelect0, (regex_t*)NULL },
  { TT_EGREP,    zAix_SyswaitSelect1, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Syswait
 */
static const char* apzAix_SyswaitPatch[] = {
    "format",
    "struct rusage;\n\
%0",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aix_Volatile fix
 */
tSCC zAix_VolatileName[] =
     "aix_volatile";

/*
 *  File name selection pattern
 */
tSCC zAix_VolatileList[] =
  "|sys/signal.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAix_VolatileMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_VolatileSelect0[] =
       "typedef volatile int sig_atomic_t";

#define    AIX_VOLATILE_TEST_CT  1
static tTestDesc aAix_VolatileTests[] = {
  { TT_EGREP,    zAix_VolatileSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aix_Volatile
 */
static const char* apzAix_VolatilePatch[] = {
    "format",
    "typedef int sig_atomic_t",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha___Assert fix
 */
tSCC zAlpha___AssertName[] =
     "alpha___assert";

/*
 *  File name selection pattern
 */
tSCC zAlpha___AssertList[] =
  "|assert.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAlpha___AssertMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha___AssertSelect0[] =
       "__assert\\(char \\*, char \\*, int\\)";

#define    ALPHA___ASSERT_TEST_CT  1
static tTestDesc aAlpha___AssertTests[] = {
  { TT_EGREP,    zAlpha___AssertSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha___Assert
 */
static const char* apzAlpha___AssertPatch[] = {
    "format",
    "__assert(const char *, const char *, int)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_Getopt fix
 */
tSCC zAlpha_GetoptName[] =
     "alpha_getopt";

/*
 *  File name selection pattern
 */
tSCC zAlpha_GetoptList[] =
  "|stdio.h|stdlib.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAlpha_GetoptMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_GetoptSelect0[] =
       "getopt\\(int, char \\*\\[\\], *char \\*\\)";

#define    ALPHA_GETOPT_TEST_CT  1
static tTestDesc aAlpha_GetoptTests[] = {
  { TT_EGREP,    zAlpha_GetoptSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_Getopt
 */
static const char* apzAlpha_GetoptPatch[] = {
    "format",
    "getopt(int, char *const[], const char *)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_Parens fix
 */
tSCC zAlpha_ParensName[] =
     "alpha_parens";

/*
 *  File name selection pattern
 */
tSCC zAlpha_ParensList[] =
  "|sym.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAlpha_ParensMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_ParensSelect0[] =
       "#ifndef\\(__mips64\\)";

#define    ALPHA_PARENS_TEST_CT  1
static tTestDesc aAlpha_ParensTests[] = {
  { TT_EGREP,    zAlpha_ParensSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_Parens
 */
static const char* apzAlpha_ParensPatch[] = {
    "format",
    "#ifndef __mips64",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_Sbrk fix
 */
tSCC zAlpha_SbrkName[] =
     "alpha_sbrk";

/*
 *  File name selection pattern
 */
tSCC zAlpha_SbrkList[] =
  "|unistd.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAlpha_SbrkMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_SbrkSelect0[] =
       "char[ \t]*\\*[\t ]*sbrk[ \t]*\\(";

#define    ALPHA_SBRK_TEST_CT  1
static tTestDesc aAlpha_SbrkTests[] = {
  { TT_EGREP,    zAlpha_SbrkSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_Sbrk
 */
static const char* apzAlpha_SbrkPatch[] = {
    "format",
    "void *sbrk(",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Arm_Norcroft_Hint fix
 */
tSCC zArm_Norcroft_HintName[] =
     "arm_norcroft_hint";

/*
 *  File name selection pattern
 */
tSCC zArm_Norcroft_HintList[] =
  "|X11/Intrinsic.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzArm_Norcroft_HintMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zArm_Norcroft_HintSelect0[] =
       "___type p_type";

#define    ARM_NORCROFT_HINT_TEST_CT  1
static tTestDesc aArm_Norcroft_HintTests[] = {
  { TT_EGREP,    zArm_Norcroft_HintSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Arm_Norcroft_Hint
 */
static const char* apzArm_Norcroft_HintPatch[] = {
    "format",
    "p_type",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Arm_Wchar fix
 */
tSCC zArm_WcharName[] =
     "arm_wchar";

/*
 *  File name selection pattern
 */
tSCC zArm_WcharList[] =
  "|stdlib.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzArm_WcharMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zArm_WcharSelect0[] =
       "#[ \t]*define[ \t]*__wchar_t";

#define    ARM_WCHAR_TEST_CT  1
static tTestDesc aArm_WcharTests[] = {
  { TT_EGREP,    zArm_WcharSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Arm_Wchar
 */
static const char* apzArm_WcharPatch[] = {
    "format",
    "%1_GCC_WCHAR_T",
    "(#[ \t]*(ifndef|define)[ \t]+)__wchar_t",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aux_Asm fix
 */
tSCC zAux_AsmName[] =
     "aux_asm";

/*
 *  File name selection pattern
 */
tSCC zAux_AsmList[] =
  "|sys/param.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAux_AsmMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAux_AsmSelect0[] =
       "#ifndef NOINLINE";

#define    AUX_ASM_TEST_CT  1
static tTestDesc aAux_AsmTests[] = {
  { TT_EGREP,    zAux_AsmSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aux_Asm
 */
static const char* apzAux_AsmPatch[] = {
    "format",
    "#if !defined(NOINLINE) && !defined(__GNUC__)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Avoid_Bool_Define fix
 */
tSCC zAvoid_Bool_DefineName[] =
     "avoid_bool_define";

/*
 *  File name selection pattern
 */
tSCC zAvoid_Bool_DefineList[] =
  "|curses.h|curses_colr/curses.h|term.h|tinfo.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAvoid_Bool_DefineMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAvoid_Bool_DefineSelect0[] =
       "#[ \t]*define[ \t]+bool[ \t]";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAvoid_Bool_DefineBypass0[] =
       "we must use the C\\+\\+ compiler's type";

#define    AVOID_BOOL_DEFINE_TEST_CT  2
static tTestDesc aAvoid_Bool_DefineTests[] = {
  { TT_NEGREP,   zAvoid_Bool_DefineBypass0, (regex_t*)NULL },
  { TT_EGREP,    zAvoid_Bool_DefineSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Avoid_Bool_Define
 */
static const char* apzAvoid_Bool_DefinePatch[] = {
    "format",
    "#ifndef __cplusplus\n\
%0\n\
#endif",
    "^[ \t]*#[ \t]*define[ \t]+bool[ \t].*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Avoid_Bool_Type fix
 */
tSCC zAvoid_Bool_TypeName[] =
     "avoid_bool_type";

/*
 *  File name selection pattern
 */
tSCC zAvoid_Bool_TypeList[] =
  "|curses.h|curses_colr/curses.h|term.h|tinfo.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzAvoid_Bool_TypeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAvoid_Bool_TypeSelect0[] =
       "^[ \t]*typedef[ \t].*[ \t]bool[ \t]*;";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAvoid_Bool_TypeBypass0[] =
       "we must use the C\\+\\+ compiler's type";

#define    AVOID_BOOL_TYPE_TEST_CT  2
static tTestDesc aAvoid_Bool_TypeTests[] = {
  { TT_NEGREP,   zAvoid_Bool_TypeBypass0, (regex_t*)NULL },
  { TT_EGREP,    zAvoid_Bool_TypeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Avoid_Bool_Type
 */
static const char* apzAvoid_Bool_TypePatch[] = {
    "format",
    "#ifndef __cplusplus\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Avoid_Wchar_T_Type fix
 */
tSCC zAvoid_Wchar_T_TypeName[] =
     "avoid_wchar_t_type";

/*
 *  File name selection pattern
 */
#define zAvoid_Wchar_T_TypeList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzAvoid_Wchar_T_TypeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAvoid_Wchar_T_TypeSelect0[] =
       "^[ \t]*typedef[ \t].*[ \t]wchar_t[ \t]*;";

#define    AVOID_WCHAR_T_TYPE_TEST_CT  1
static tTestDesc aAvoid_Wchar_T_TypeTests[] = {
  { TT_EGREP,    zAvoid_Wchar_T_TypeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Avoid_Wchar_T_Type
 */
static const char* apzAvoid_Wchar_T_TypePatch[] = {
    "format",
    "#ifndef __cplusplus\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Bad_Lval fix
 */
tSCC zBad_LvalName[] =
     "bad_lval";

/*
 *  File name selection pattern
 */
tSCC zBad_LvalList[] =
  "|libgen.h|dirent.h|ftw.h|grp.h|ndbm.h|pthread.h|pwd.h|signal.h|standards.h|stdlib.h|string.h|stropts.h|time.h|unistd.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzBad_LvalMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBad_LvalSelect0[] =
       "^[ \t]*#[ \t]*pragma[ \t]+extern_prefix";

#define    BAD_LVAL_TEST_CT  1
static tTestDesc aBad_LvalTests[] = {
  { TT_EGREP,    zBad_LvalSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Bad_Lval
 */
static const char* apzBad_LvalPatch[] = { "sed",
    "-e", "s/^[ \t]*#[ \t]*define[ \t][ \t]*\\([^(]*\\)\\(([^)]*)\\)[ \t]*\\(_.*\\)\\1\\2[ \t]*$/#define \\1 \\3\\1/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Bad_Struct_Term fix
 */
tSCC zBad_Struct_TermName[] =
     "bad_struct_term";

/*
 *  File name selection pattern
 */
tSCC zBad_Struct_TermList[] =
  "|curses.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzBad_Struct_TermMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBad_Struct_TermSelect0[] =
       "^[ \t]*typedef[ \t]+struct[ \t]+term[ \t]*;";

#define    BAD_STRUCT_TERM_TEST_CT  1
static tTestDesc aBad_Struct_TermTests[] = {
  { TT_EGREP,    zBad_Struct_TermSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Bad_Struct_Term
 */
static const char* apzBad_Struct_TermPatch[] = {
    "format",
    "struct term;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Badquote fix
 */
tSCC zBadquoteName[] =
     "badquote";

/*
 *  File name selection pattern
 */
tSCC zBadquoteList[] =
  "|sundev/vuid_event.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzBadquoteMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBadquoteSelect0[] =
       "doesn't";

#define    BADQUOTE_TEST_CT  1
static tTestDesc aBadquoteTests[] = {
  { TT_EGREP,    zBadquoteSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Badquote
 */
static const char* apzBadquotePatch[] = {
    "format",
    "does not",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Broken_Assert_Stdio fix
 */
tSCC zBroken_Assert_StdioName[] =
     "broken_assert_stdio";

/*
 *  File name selection pattern
 */
tSCC zBroken_Assert_StdioList[] =
  "|assert.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzBroken_Assert_StdioMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBroken_Assert_StdioSelect0[] =
       "stderr";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zBroken_Assert_StdioBypass0[] =
       "include.*stdio\\.h";

#define    BROKEN_ASSERT_STDIO_TEST_CT  2
static tTestDesc aBroken_Assert_StdioTests[] = {
  { TT_NEGREP,   zBroken_Assert_StdioBypass0, (regex_t*)NULL },
  { TT_EGREP,    zBroken_Assert_StdioSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Broken_Assert_Stdio
 */
static const char* apzBroken_Assert_StdioPatch[] = {
    "wrap",
    "#include <stdio.h>\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Broken_Assert_Stdlib fix
 */
tSCC zBroken_Assert_StdlibName[] =
     "broken_assert_stdlib";

/*
 *  File name selection pattern
 */
tSCC zBroken_Assert_StdlibList[] =
  "|assert.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzBroken_Assert_StdlibMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBroken_Assert_StdlibSelect0[] =
       "exit *\\(|abort *\\(";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zBroken_Assert_StdlibBypass0[] =
       "include.*stdlib\\.h";

#define    BROKEN_ASSERT_STDLIB_TEST_CT  2
static tTestDesc aBroken_Assert_StdlibTests[] = {
  { TT_NEGREP,   zBroken_Assert_StdlibBypass0, (regex_t*)NULL },
  { TT_EGREP,    zBroken_Assert_StdlibSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Broken_Assert_Stdlib
 */
static const char* apzBroken_Assert_StdlibPatch[] = {
    "wrap",
    "#ifdef __cplusplus\n\
#include <stdlib.h>\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Broken_Cabs fix
 */
tSCC zBroken_CabsName[] =
     "broken_cabs";

/*
 *  File name selection pattern
 */
tSCC zBroken_CabsList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzBroken_CabsMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBroken_CabsSelect0[] =
       "^extern[ \\t]+double[ \\t]+cabs";

#define    BROKEN_CABS_TEST_CT  1
static tTestDesc aBroken_CabsTests[] = {
  { TT_EGREP,    zBroken_CabsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Broken_Cabs
 */
static const char* apzBroken_CabsPatch[] = {
    "format",
    "",
    "^extern[ \t]+double[ \t]+cabs\\((struct dbl_hypot|)\\);",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ctrl_Quotes_Def fix
 */
tSCC zCtrl_Quotes_DefName[] =
     "ctrl_quotes_def";

/*
 *  File name selection pattern
 */
#define zCtrl_Quotes_DefList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzCtrl_Quotes_DefMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zCtrl_Quotes_DefSelect0[] =
       "define[ \t]+[A-Z0-9_]+CTRL\\([a-zA-Z][,)]";

#define    CTRL_QUOTES_DEF_TEST_CT  1
static tTestDesc aCtrl_Quotes_DefTests[] = {
  { TT_EGREP,    zCtrl_Quotes_DefSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ctrl_Quotes_Def
 */
static const char* apzCtrl_Quotes_DefPatch[] = {
    "char_macro_def",
    "CTRL",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ctrl_Quotes_Use fix
 */
tSCC zCtrl_Quotes_UseName[] =
     "ctrl_quotes_use";

/*
 *  File name selection pattern
 */
#define zCtrl_Quotes_UseList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzCtrl_Quotes_UseMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zCtrl_Quotes_UseSelect0[] =
       "define[ \t]+[A-Z0-9_]+[ \t]+[A-Z0-9_]+CTRL[ \t]*\\( *[^,']";

#define    CTRL_QUOTES_USE_TEST_CT  1
static tTestDesc aCtrl_Quotes_UseTests[] = {
  { TT_EGREP,    zCtrl_Quotes_UseSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ctrl_Quotes_Use
 */
static const char* apzCtrl_Quotes_UsePatch[] = {
    "char_macro_use",
    "CTRL",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Cxx_Unready fix
 */
tSCC zCxx_UnreadyName[] =
     "cxx_unready";

/*
 *  File name selection pattern
 */
tSCC zCxx_UnreadyList[] =
  "|sys/mman.h|rpc/types.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzCxx_UnreadyMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zCxx_UnreadySelect0[] =
       "[^#]+malloc.*;";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zCxx_UnreadyBypass0[] =
       "\"C\"|__BEGIN_DECLS";

#define    CXX_UNREADY_TEST_CT  2
static tTestDesc aCxx_UnreadyTests[] = {
  { TT_NEGREP,   zCxx_UnreadyBypass0, (regex_t*)NULL },
  { TT_EGREP,    zCxx_UnreadySelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Cxx_Unready
 */
static const char* apzCxx_UnreadyPatch[] = {
    "wrap",
    "#ifdef __cplusplus\n\
extern \"C\" {\n\
#endif\n",
    "#ifdef __cplusplus\n\
}\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Dec_Intern_Asm fix
 */
tSCC zDec_Intern_AsmName[] =
     "dec_intern_asm";

/*
 *  File name selection pattern
 */
tSCC zDec_Intern_AsmList[] =
  "|c_asm.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzDec_Intern_AsmMachs (const char**)NULL
#define DEC_INTERN_ASM_TEST_CT  0
#define aDec_Intern_AsmTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Dec_Intern_Asm
 */
static const char* apzDec_Intern_AsmPatch[] = { "sed",
    "-e", "/^[ \t]*float[ \t]*fasm/i\\\n\
#ifdef __DECC\n",
    "-e", "/^[ \t]*#[ \t]*pragma[ \t]*intrinsic([ \t]*dasm/a\\\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Djgpp_Wchar_H fix
 */
tSCC zDjgpp_Wchar_HName[] =
     "djgpp_wchar_h";

/*
 *  File name selection pattern
 */
#define zDjgpp_Wchar_HList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzDjgpp_Wchar_HMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDjgpp_Wchar_HSelect0[] =
       "__DJ_wint_t";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zDjgpp_Wchar_HBypass0[] =
       "sys/djtypes.h";

#define    DJGPP_WCHAR_H_TEST_CT  2
static tTestDesc aDjgpp_Wchar_HTests[] = {
  { TT_NEGREP,   zDjgpp_Wchar_HBypass0, (regex_t*)NULL },
  { TT_EGREP,    zDjgpp_Wchar_HSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Djgpp_Wchar_H
 */
static const char* apzDjgpp_Wchar_HPatch[] = {
    "format",
    "%0\n\
#include <sys/djtypes.h>",
    "#include <stddef.h>",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ecd_Cursor fix
 */
tSCC zEcd_CursorName[] =
     "ecd_cursor";

/*
 *  File name selection pattern
 */
tSCC zEcd_CursorList[] =
  "|sunwindow/win_lock.h|sunwindow/win_cursor.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzEcd_CursorMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zEcd_CursorSelect0[] =
       "ecd\\.cursor";

#define    ECD_CURSOR_TEST_CT  1
static tTestDesc aEcd_CursorTests[] = {
  { TT_EGREP,    zEcd_CursorSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ecd_Cursor
 */
static const char* apzEcd_CursorPatch[] = {
    "format",
    "ecd_cursor",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Fix_Header_Breakage fix
 */
tSCC zFix_Header_BreakageName[] =
     "fix_header_breakage";

/*
 *  File name selection pattern
 */
tSCC zFix_Header_BreakageList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzFix_Header_BreakageMachs[] = {
        "m88k-motorola-sysv3*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zFix_Header_BreakageSelect0[] =
       "extern double floor\\(\\), ceil\\(\\), fmod\\(\\), fabs\\(\\);";

#define    FIX_HEADER_BREAKAGE_TEST_CT  1
static tTestDesc aFix_Header_BreakageTests[] = {
  { TT_EGREP,    zFix_Header_BreakageSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Fix_Header_Breakage
 */
static const char* apzFix_Header_BreakagePatch[] = {
    "format",
    "extern double floor(), ceil(), fmod(), fabs _PARAMS((double));",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Freebsd_Gcc3_Breakage fix
 */
tSCC zFreebsd_Gcc3_BreakageName[] =
     "freebsd_gcc3_breakage";

/*
 *  File name selection pattern
 */
tSCC zFreebsd_Gcc3_BreakageList[] =
  "|sys/cdefs.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzFreebsd_Gcc3_BreakageMachs[] = {
        "*-*-freebsd*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zFreebsd_Gcc3_BreakageSelect0[] =
       "^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7$";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zFreebsd_Gcc3_BreakageBypass0[] =
       "__GNUC__[ \\t]*([>=]=[ \\t]*[3-9]|>[ \\t]*2)";

#define    FREEBSD_GCC3_BREAKAGE_TEST_CT  2
static tTestDesc aFreebsd_Gcc3_BreakageTests[] = {
  { TT_NEGREP,   zFreebsd_Gcc3_BreakageBypass0, (regex_t*)NULL },
  { TT_EGREP,    zFreebsd_Gcc3_BreakageSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Freebsd_Gcc3_Breakage
 */
static const char* apzFreebsd_Gcc3_BreakagePatch[] = {
    "format",
    "%0 || __GNUC__ >= 3",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Gnu_Types fix
 */
tSCC zGnu_TypesName[] =
     "gnu_types";

/*
 *  File name selection pattern
 */
tSCC zGnu_TypesList[] =
  "|sys/types.h|stdlib.h|sys/stdtypes.h|stddef.h|memory.h|unistd.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzGnu_TypesMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGnu_TypesSelect0[] =
       "^[ \t]*typedef[ \t]+.*[ \t](ptrdiff|size|wchar)_t;";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zGnu_TypesBypass0[] =
       "_GCC_(PTRDIFF|SIZE|WCHAR)_T";

#define    GNU_TYPES_TEST_CT  2
static tTestDesc aGnu_TypesTests[] = {
  { TT_NEGREP,   zGnu_TypesBypass0, (regex_t*)NULL },
  { TT_EGREP,    zGnu_TypesSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Gnu_Types
 */
static const char* apzGnu_TypesPatch[] = {
    "gnu_type",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hp_Inline fix
 */
tSCC zHp_InlineName[] =
     "hp_inline";

/*
 *  File name selection pattern
 */
tSCC zHp_InlineList[] =
  "|sys/spinlock.h|machine/machparam.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzHp_InlineMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHp_InlineSelect0[] =
       "[ \t]*#[ \t]*include[ \t]+\"\\.\\./machine/";

#define    HP_INLINE_TEST_CT  1
static tTestDesc aHp_InlineTests[] = {
  { TT_EGREP,    zHp_InlineSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hp_Inline
 */
static const char* apzHp_InlinePatch[] = {
    "format",
    "%1<machine/%2.h>",
    "([ \t]*#[ \t]*include[ \t]+)\"\\.\\./machine/([a-z]+)\\.h\"",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hp_Sysfile fix
 */
tSCC zHp_SysfileName[] =
     "hp_sysfile";

/*
 *  File name selection pattern
 */
tSCC zHp_SysfileList[] =
  "|sys/file.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzHp_SysfileMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHp_SysfileSelect0[] =
       "HPUX_SOURCE";

#define    HP_SYSFILE_TEST_CT  1
static tTestDesc aHp_SysfileTests[] = {
  { TT_EGREP,    zHp_SysfileSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hp_Sysfile
 */
static const char* apzHp_SysfilePatch[] = {
    "format",
    "(struct file *, ...)",
    "\\(\\.\\.\\.\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux10_Cpp_Pow_Inline fix
 */
tSCC zHpux10_Cpp_Pow_InlineName[] =
     "hpux10_cpp_pow_inline";

/*
 *  File name selection pattern
 */
tSCC zHpux10_Cpp_Pow_InlineList[] =
  "|fixinc-test-limits.h|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux10_Cpp_Pow_InlineMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux10_Cpp_Pow_InlineSelect0[] =
       "^# +ifdef +__cplusplus\n\
 +}\n\
 +inline +double +pow\\(double +__d,int +__expon\\) +{\n\
[ \t]+return +pow\\(__d,\\(double\\)__expon\\);\n\
 +}\n\
 +extern +\"C\" +{\n\
#else\n\
# +endif";

#define    HPUX10_CPP_POW_INLINE_TEST_CT  1
static tTestDesc aHpux10_Cpp_Pow_InlineTests[] = {
  { TT_EGREP,    zHpux10_Cpp_Pow_InlineSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux10_Cpp_Pow_Inline
 */
static const char* apzHpux10_Cpp_Pow_InlinePatch[] = {
    "format",
    "",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Cpp_Pow_Inline fix
 */
tSCC zHpux11_Cpp_Pow_InlineName[] =
     "hpux11_cpp_pow_inline";

/*
 *  File name selection pattern
 */
tSCC zHpux11_Cpp_Pow_InlineList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux11_Cpp_Pow_InlineMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Cpp_Pow_InlineSelect0[] =
       " +inline double pow\\(double d,int expon\\) {\n\
 +return pow\\(d, \\(double\\)expon\\);\n\
 +}\n";

#define    HPUX11_CPP_POW_INLINE_TEST_CT  1
static tTestDesc aHpux11_Cpp_Pow_InlineTests[] = {
  { TT_EGREP,    zHpux11_Cpp_Pow_InlineSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Cpp_Pow_Inline
 */
static const char* apzHpux11_Cpp_Pow_InlinePatch[] = {
    "format",
    "",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Fabsf fix
 */
tSCC zHpux11_FabsfName[] =
     "hpux11_fabsf";

/*
 *  File name selection pattern
 */
tSCC zHpux11_FabsfList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux11_FabsfMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_FabsfSelect0[] =
       "^[ \t]*#[ \t]*define[ \t]+fabsf\\(.*";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHpux11_FabsfBypass0[] =
       "__cplusplus";

#define    HPUX11_FABSF_TEST_CT  2
static tTestDesc aHpux11_FabsfTests[] = {
  { TT_NEGREP,   zHpux11_FabsfBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux11_FabsfSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Fabsf
 */
static const char* apzHpux11_FabsfPatch[] = {
    "format",
    "#ifndef __cplusplus\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Size_T fix
 */
tSCC zHpux11_Size_TName[] =
     "hpux11_size_t";

/*
 *  File name selection pattern
 */
#define zHpux11_Size_TList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux11_Size_TMachs[] = {
        "*-hp-hpux11*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Size_TSelect0[] =
       "__size_t";

#define    HPUX11_SIZE_T_TEST_CT  1
static tTestDesc aHpux11_Size_TTests[] = {
  { TT_EGREP,    zHpux11_Size_TSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Size_T
 */
static const char* apzHpux11_Size_TPatch[] = {
    "format",
    "_hpux_size_t",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Uint32_C fix
 */
tSCC zHpux11_Uint32_CName[] =
     "hpux11_uint32_c";

/*
 *  File name selection pattern
 */
tSCC zHpux11_Uint32_CList[] =
  "|inttypes.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux11_Uint32_CMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Uint32_CSelect0[] =
       "^#define UINT32_C\\(__c\\)[ \t]*__CONCAT__\\(__CONCAT_U__\\(__c\\),l\\)";

#define    HPUX11_UINT32_C_TEST_CT  1
static tTestDesc aHpux11_Uint32_CTests[] = {
  { TT_EGREP,    zHpux11_Uint32_CSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Uint32_C
 */
static const char* apzHpux11_Uint32_CPatch[] = {
    "format",
    "#define UINT32_C(__c) __CONCAT__(__c,ul)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Vsnprintf fix
 */
tSCC zHpux11_VsnprintfName[] =
     "hpux11_vsnprintf";

/*
 *  File name selection pattern
 */
tSCC zHpux11_VsnprintfList[] =
  "|stdio.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux11_VsnprintfMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_VsnprintfSelect0[] =
       "(extern int vsnprintf\\(char \\*, _[hpux]*_size_t, const char \\*,) __va__list\\);";

#define    HPUX11_VSNPRINTF_TEST_CT  1
static tTestDesc aHpux11_VsnprintfTests[] = {
  { TT_EGREP,    zHpux11_VsnprintfSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Vsnprintf
 */
static const char* apzHpux11_VsnprintfPatch[] = {
    "format",
    "%1 __va_list);",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux8_Bogus_Inlines fix
 */
tSCC zHpux8_Bogus_InlinesName[] =
     "hpux8_bogus_inlines";

/*
 *  File name selection pattern
 */
tSCC zHpux8_Bogus_InlinesList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux8_Bogus_InlinesMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux8_Bogus_InlinesSelect0[] =
       "inline";

#define    HPUX8_BOGUS_INLINES_TEST_CT  1
static tTestDesc aHpux8_Bogus_InlinesTests[] = {
  { TT_EGREP,    zHpux8_Bogus_InlinesSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux8_Bogus_Inlines
 */
static const char* apzHpux8_Bogus_InlinesPatch[] = { "sed",
    "-e", "s@inline int abs(int [a-z][a-z]*) {.*}@extern \"C\" int abs(int);@",
    "-e", "s@inline double abs(double [a-z][a-z]*) {.*}@@",
    "-e", "s@inline int sqr(int [a-z][a-z]*) {.*}@@",
    "-e", "s@inline double sqr(double [a-z][a-z]*) {.*}@@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Maxint fix
 */
tSCC zHpux_MaxintName[] =
     "hpux_maxint";

/*
 *  File name selection pattern
 */
tSCC zHpux_MaxintList[] =
  "|sys/param.h|values.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux_MaxintMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_MaxintSelect0[] =
       "^#[ \t]*define[ \t]+MAXINT[ \t]";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHpux_MaxintBypass0[] =
       "^#[ \t]*ifndef[ \t]+MAXINT";

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zHpux_MaxintTest0[] =
       "-n \"`egrep '#[ \t]*define[ \t]+MAXINT[ \t]' sys/param.h`\"";

#define    HPUX_MAXINT_TEST_CT  3
static tTestDesc aHpux_MaxintTests[] = {
  { TT_TEST,     zHpux_MaxintTest0,   0 /* unused */ },
  { TT_NEGREP,   zHpux_MaxintBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux_MaxintSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Maxint
 */
static const char* apzHpux_MaxintPatch[] = {
    "format",
    "#ifndef MAXINT\n\
%0\n\
#endif",
    "^#[ \t]*define[ \t]+MAXINT[ \t].*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Systime fix
 */
tSCC zHpux_SystimeName[] =
     "hpux_systime";

/*
 *  File name selection pattern
 */
tSCC zHpux_SystimeList[] =
  "|sys/time.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux_SystimeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_SystimeSelect0[] =
       "^extern struct sigevent;";

#define    HPUX_SYSTIME_TEST_CT  1
static tTestDesc aHpux_SystimeTests[] = {
  { TT_EGREP,    zHpux_SystimeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Systime
 */
static const char* apzHpux_SystimePatch[] = {
    "format",
    "struct sigevent;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Int_Abort_Free_And_Exit fix
 */
tSCC zInt_Abort_Free_And_ExitName[] =
     "int_abort_free_and_exit";

/*
 *  File name selection pattern
 */
tSCC zInt_Abort_Free_And_ExitList[] =
  "|stdlib.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzInt_Abort_Free_And_ExitMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zInt_Abort_Free_And_ExitSelect0[] =
       "int[ \t]+(abort|free|exit)[ \t]*\\(";

#define    INT_ABORT_FREE_AND_EXIT_TEST_CT  1
static tTestDesc aInt_Abort_Free_And_ExitTests[] = {
  { TT_EGREP,    zInt_Abort_Free_And_ExitSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Int_Abort_Free_And_Exit
 */
static const char* apzInt_Abort_Free_And_ExitPatch[] = {
    "format",
    "void\t%1(",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Io_Quotes_Def fix
 */
tSCC zIo_Quotes_DefName[] =
     "io_quotes_def";

/*
 *  File name selection pattern
 */
#define zIo_Quotes_DefList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzIo_Quotes_DefMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIo_Quotes_DefSelect0[] =
       "define[ \t]+[A-Z0-9_]+IO[A-Z]*\\([a-zA-Z][,)]";

#define    IO_QUOTES_DEF_TEST_CT  1
static tTestDesc aIo_Quotes_DefTests[] = {
  { TT_EGREP,    zIo_Quotes_DefSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Io_Quotes_Def
 */
static const char* apzIo_Quotes_DefPatch[] = {
    "char_macro_def",
    "IO",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Io_Quotes_Use fix
 */
tSCC zIo_Quotes_UseName[] =
     "io_quotes_use";

/*
 *  File name selection pattern
 */
#define zIo_Quotes_UseList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzIo_Quotes_UseMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIo_Quotes_UseSelect0[] =
       "define[ \t]+[A-Z0-9_]+[ \t]+[A-Z0-9_]+IO[A-Z]*[ \t]*\\( *[^,']";

#define    IO_QUOTES_USE_TEST_CT  1
static tTestDesc aIo_Quotes_UseTests[] = {
  { TT_EGREP,    zIo_Quotes_UseSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Io_Quotes_Use
 */
static const char* apzIo_Quotes_UsePatch[] = {
    "char_macro_use",
    "IO",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ip_Missing_Semi fix
 */
tSCC zIp_Missing_SemiName[] =
     "ip_missing_semi";

/*
 *  File name selection pattern
 */
tSCC zIp_Missing_SemiList[] =
  "|netinet/ip.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzIp_Missing_SemiMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIp_Missing_SemiSelect0[] =
       "}$";

#define    IP_MISSING_SEMI_TEST_CT  1
static tTestDesc aIp_Missing_SemiTests[] = {
  { TT_EGREP,    zIp_Missing_SemiSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ip_Missing_Semi
 */
static const char* apzIp_Missing_SemiPatch[] = { "sed",
    "-e", "/^struct/,/^};/s/}$/};/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Irix_Asm_Apostrophe fix
 */
tSCC zIrix_Asm_ApostropheName[] =
     "irix_asm_apostrophe";

/*
 *  File name selection pattern
 */
tSCC zIrix_Asm_ApostropheList[] =
  "|sys/asm.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzIrix_Asm_ApostropheMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIrix_Asm_ApostropheSelect0[] =
       "^[ \t]*#.*[Ww]e're";

#define    IRIX_ASM_APOSTROPHE_TEST_CT  1
static tTestDesc aIrix_Asm_ApostropheTests[] = {
  { TT_EGREP,    zIrix_Asm_ApostropheSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Irix_Asm_Apostrophe
 */
static const char* apzIrix_Asm_ApostrophePatch[] = {
    "format",
    "%1 are",
    "^([ \t]*#.*[Ww]e)'re",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Irix_Limits_Const fix
 */
tSCC zIrix_Limits_ConstName[] =
     "irix_limits_const";

/*
 *  File name selection pattern
 */
tSCC zIrix_Limits_ConstList[] =
  "|fixinc-test-limits.h|limits.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzIrix_Limits_ConstMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIrix_Limits_ConstSelect0[] =
       "^extern const ";

#define    IRIX_LIMITS_CONST_TEST_CT  1
static tTestDesc aIrix_Limits_ConstTests[] = {
  { TT_EGREP,    zIrix_Limits_ConstSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Irix_Limits_Const
 */
static const char* apzIrix_Limits_ConstPatch[] = {
    "format",
    "extern __const ",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Irix_Stdio_Va_List fix
 */
tSCC zIrix_Stdio_Va_ListName[] =
     "irix_stdio_va_list";

/*
 *  File name selection pattern
 */
tSCC zIrix_Stdio_Va_ListList[] =
  "|stdio.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzIrix_Stdio_Va_ListMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIrix_Stdio_Va_ListSelect0[] =
       "(printf\\(.*), /\\* va_list \\*/ char \\*";

#define    IRIX_STDIO_VA_LIST_TEST_CT  1
static tTestDesc aIrix_Stdio_Va_ListTests[] = {
  { TT_EGREP,    zIrix_Stdio_Va_ListSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Irix_Stdio_Va_List
 */
static const char* apzIrix_Stdio_Va_ListPatch[] = {
    "format",
    "%1, __gnuc_va_list",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Isc_Fmod fix
 */
tSCC zIsc_FmodName[] =
     "isc_fmod";

/*
 *  File name selection pattern
 */
tSCC zIsc_FmodList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzIsc_FmodMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIsc_FmodSelect0[] =
       "fmod\\(double\\)";

#define    ISC_FMOD_TEST_CT  1
static tTestDesc aIsc_FmodTests[] = {
  { TT_EGREP,    zIsc_FmodSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Isc_Fmod
 */
static const char* apzIsc_FmodPatch[] = {
    "format",
    "fmod(double, double)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Isc_Omits_With_Stdc fix
 */
tSCC zIsc_Omits_With_StdcName[] =
     "isc_omits_with_stdc";

/*
 *  File name selection pattern
 */
tSCC zIsc_Omits_With_StdcList[] =
  "|stdio.h|math.h|ctype.h|sys/limits.h|sys/fcntl.h|sys/dirent.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzIsc_Omits_With_StdcMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIsc_Omits_With_StdcSelect0[] =
       "!defined\\(__STDC__\\) && !defined\\(_POSIX_SOURCE\\)";

#define    ISC_OMITS_WITH_STDC_TEST_CT  1
static tTestDesc aIsc_Omits_With_StdcTests[] = {
  { TT_EGREP,    zIsc_Omits_With_StdcSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Isc_Omits_With_Stdc
 */
static const char* apzIsc_Omits_With_StdcPatch[] = {
    "format",
    "!defined(_POSIX_SOURCE)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Kandr_Concat fix
 */
tSCC zKandr_ConcatName[] =
     "kandr_concat";

/*
 *  File name selection pattern
 */
tSCC zKandr_ConcatList[] =
  "|sparc/asm_linkage.h|sun3/asm_linkage.h|sun3x/asm_linkage.h|sun4/asm_linkage.h|sun4c/asm_linkage.h|sun4m/asm_linkage.h|sun4c/debug/asm_linkage.h|sun4m/debug/asm_linkage.h|arm/as_support.h|arm/mc_type.h|arm/xcb.h|dev/chardefmac.h|dev/ps_irq.h|dev/screen.h|dev/scsi.h|sys/tty.h|Xm.acorn/XmP.h|bsd43/bsd43_.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzKandr_ConcatMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zKandr_ConcatSelect0[] =
       "/\\*\\*/";

#define    KANDR_CONCAT_TEST_CT  1
static tTestDesc aKandr_ConcatTests[] = {
  { TT_EGREP,    zKandr_ConcatSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Kandr_Concat
 */
static const char* apzKandr_ConcatPatch[] = {
    "format",
    "##",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Libc1_Ifdefd_Memx fix
 */
tSCC zLibc1_Ifdefd_MemxName[] =
     "libc1_ifdefd_memx";

/*
 *  File name selection pattern
 */
tSCC zLibc1_Ifdefd_MemxList[] =
  "|testing.h|string.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzLibc1_Ifdefd_MemxMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zLibc1_Ifdefd_MemxSelect0[] =
       "' is a built-in function for gcc 2\\.x\\. \\*/";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zLibc1_Ifdefd_MemxBypass0[] =
       "__cplusplus";

#define    LIBC1_IFDEFD_MEMX_TEST_CT  2
static tTestDesc aLibc1_Ifdefd_MemxTests[] = {
  { TT_NEGREP,   zLibc1_Ifdefd_MemxBypass0, (regex_t*)NULL },
  { TT_EGREP,    zLibc1_Ifdefd_MemxSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Libc1_Ifdefd_Memx
 */
static const char* apzLibc1_Ifdefd_MemxPatch[] = {
    "format",
    "%1",
    "/\\* `mem...' is a built-in function for gcc 2\\.x\\. \\*/\n\
#if defined\\(__STDC__\\) && __GNUC__ < 2\n\
(/\\* .* \\*/\n\
extern [a-z_]+ mem.*(\n\
[^#].*)*;)\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Limits_Ifndefs fix
 */
tSCC zLimits_IfndefsName[] =
     "limits_ifndefs";

/*
 *  File name selection pattern
 */
tSCC zLimits_IfndefsList[] =
  "|sys/limits.h|limits.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzLimits_IfndefsMachs (const char**)NULL

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zLimits_IfndefsBypass0[] =
       "ifndef[ \t]+FLT_MIN";

#define    LIMITS_IFNDEFS_TEST_CT  1
static tTestDesc aLimits_IfndefsTests[] = {
  { TT_NEGREP,   zLimits_IfndefsBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Limits_Ifndefs
 */
static const char* apzLimits_IfndefsPatch[] = {
    "format",
    "#ifndef %1\n\
%0\n\
#endif",
    "^[ \t]*#[ \t]*define[ \t]+((FLT|DBL)_(MIN|MAX|DIG))[ \t].*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Lynx_Void_Int fix
 */
tSCC zLynx_Void_IntName[] =
     "lynx_void_int";

/*
 *  File name selection pattern
 */
tSCC zLynx_Void_IntList[] =
  "|curses.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzLynx_Void_IntMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zLynx_Void_IntSelect0[] =
       "#[ \t]*define[ \t]+void[ \t]+int[ \t]*";

#define    LYNX_VOID_INT_TEST_CT  1
static tTestDesc aLynx_Void_IntTests[] = {
  { TT_EGREP,    zLynx_Void_IntSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Lynx_Void_Int
 */
static const char* apzLynx_Void_IntPatch[] = {
    "format",
    "",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Lynxos_Fcntl_Proto fix
 */
tSCC zLynxos_Fcntl_ProtoName[] =
     "lynxos_fcntl_proto";

/*
 *  File name selection pattern
 */
tSCC zLynxos_Fcntl_ProtoList[] =
  "|fcntl.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzLynxos_Fcntl_ProtoMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zLynxos_Fcntl_ProtoSelect0[] =
       "fcntl[ \t]*\\(int, int, int\\)";

#define    LYNXOS_FCNTL_PROTO_TEST_CT  1
static tTestDesc aLynxos_Fcntl_ProtoTests[] = {
  { TT_EGREP,    zLynxos_Fcntl_ProtoSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Lynxos_Fcntl_Proto
 */
static const char* apzLynxos_Fcntl_ProtoPatch[] = {
    "format",
    "%1...)",
    "(fcntl[ \t]*\\(int, int, )int\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of M88k_Bad_Hypot_Opt fix
 */
tSCC zM88k_Bad_Hypot_OptName[] =
     "m88k_bad_hypot_opt";

/*
 *  File name selection pattern
 */
tSCC zM88k_Bad_Hypot_OptList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzM88k_Bad_Hypot_OptMachs[] = {
        "m88k-motorola-sysv3*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zM88k_Bad_Hypot_OptSelect0[] =
       "^extern double hypot\\(\\);\n";

#define    M88K_BAD_HYPOT_OPT_TEST_CT  1
static tTestDesc aM88k_Bad_Hypot_OptTests[] = {
  { TT_EGREP,    zM88k_Bad_Hypot_OptSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for M88k_Bad_Hypot_Opt
 */
static const char* apzM88k_Bad_Hypot_OptPatch[] = {
    "format",
    "%0/* Workaround a stupid Motorola optimization if one\n\
   of x or y is 0.0 and the other is negative!  */\n\
#ifdef __STDC__\n\
static __inline__ double fake_hypot (double x, double y)\n\
#else\n\
static __inline__ double fake_hypot (x, y)\n\
\tdouble x, y;\n\
#endif\n\
{\n\
\treturn fabs (hypot (x, y));\n\
}\n\
#define hypot\tfake_hypot\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of M88k_Bad_S_If fix
 */
tSCC zM88k_Bad_S_IfName[] =
     "m88k_bad_s_if";

/*
 *  File name selection pattern
 */
tSCC zM88k_Bad_S_IfList[] =
  "|sys/stat.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzM88k_Bad_S_IfMachs[] = {
        "m88k-*-sysv3*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zM88k_Bad_S_IfSelect0[] =
       "#define[ \t]+S_IS[A-Z]+\\(m\\)[ \t]+\\(m[ \t]*&";

#define    M88K_BAD_S_IF_TEST_CT  1
static tTestDesc aM88k_Bad_S_IfTests[] = {
  { TT_EGREP,    zM88k_Bad_S_IfSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for M88k_Bad_S_If
 */
static const char* apzM88k_Bad_S_IfPatch[] = {
    "format",
    "#define %1(m) (((m) & S_IFMT) == %2)",
    "#define[ \t]+(S_IS[A-Z]+)\\(m\\)[ \t]+\\(m[ \t]*&[ \t]*(S_IF[A-Z][A-Z][A-Z]+|0[0-9]+)[ \t]*\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of M88k_Multi_Incl fix
 */
tSCC zM88k_Multi_InclName[] =
     "m88k_multi_incl";

/*
 *  File name selection pattern
 */
tSCC zM88k_Multi_InclList[] =
  "|time.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzM88k_Multi_InclMachs[] = {
        "m88k-tektronix-sysv3*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zM88k_Multi_InclBypass0[] =
       "#ifndef";

#define    M88K_MULTI_INCL_TEST_CT  1
static tTestDesc aM88k_Multi_InclTests[] = {
  { TT_NEGREP,   zM88k_Multi_InclBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for M88k_Multi_Incl
 */
static const char* apzM88k_Multi_InclPatch[] = {
    "wrap",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Machine_Ansi_H_Va_List fix
 */
tSCC zMachine_Ansi_H_Va_ListName[] =
     "machine_ansi_h_va_list";

/*
 *  File name selection pattern
 */
#define zMachine_Ansi_H_Va_ListList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzMachine_Ansi_H_Va_ListMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zMachine_Ansi_H_Va_ListSelect0[] =
       "define[ \t]+_BSD_VA_LIST_[ \t]";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zMachine_Ansi_H_Va_ListBypass0[] =
       "__builtin_va_list";

#define    MACHINE_ANSI_H_VA_LIST_TEST_CT  2
static tTestDesc aMachine_Ansi_H_Va_ListTests[] = {
  { TT_NEGREP,   zMachine_Ansi_H_Va_ListBypass0, (regex_t*)NULL },
  { TT_EGREP,    zMachine_Ansi_H_Va_ListSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Machine_Ansi_H_Va_List
 */
static const char* apzMachine_Ansi_H_Va_ListPatch[] = {
    "format",
    "%1__builtin_va_list",
    "(define[ \t]+_BSD_VA_LIST_[ \t]+).*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Machine_Name fix
 */
tSCC zMachine_NameName[] =
     "machine_name";

/*
 *  File name selection pattern
 */
#define zMachine_NameList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzMachine_NameMachs (const char**)NULL

/*
 *  perform the C function call test
 */
tSCC zMachine_NameFTst0[] = "machine_name";

#define    MACHINE_NAME_TEST_CT  1
static tTestDesc aMachine_NameTests[] = {
  { TT_FUNCTION, zMachine_NameFTst0,   0 /* unused */ }, };

/*
 *  Fix Command Arguments for Machine_Name
 */
static const char* apzMachine_NamePatch[] = {
    "machine_name",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Math_Exception fix
 */
tSCC zMath_ExceptionName[] =
     "math_exception";

/*
 *  File name selection pattern
 */
tSCC zMath_ExceptionList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzMath_ExceptionMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zMath_ExceptionSelect0[] =
       "struct exception";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zMath_ExceptionBypass0[] =
       "We have a problem when using C\\+\\+";

#define    MATH_EXCEPTION_TEST_CT  2
static tTestDesc aMath_ExceptionTests[] = {
  { TT_NEGREP,   zMath_ExceptionBypass0, (regex_t*)NULL },
  { TT_EGREP,    zMath_ExceptionSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Math_Exception
 */
static const char* apzMath_ExceptionPatch[] = {
    "wrap",
    "#ifdef __cplusplus\n\
#define exception __math_exception\n\
#endif\n",
    "#ifdef __cplusplus\n\
#undef exception\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Math_Huge_Val_From_Dbl_Max fix
 */
tSCC zMath_Huge_Val_From_Dbl_MaxName[] =
     "math_huge_val_from_dbl_max";

/*
 *  File name selection pattern
 */
tSCC zMath_Huge_Val_From_Dbl_MaxList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzMath_Huge_Val_From_Dbl_MaxMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zMath_Huge_Val_From_Dbl_MaxSelect0[] =
       "define[ \t]+HUGE_VAL[ \t]+DBL_MAX";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zMath_Huge_Val_From_Dbl_MaxBypass0[] =
       "define[ \t]+DBL_MAX";

#define    MATH_HUGE_VAL_FROM_DBL_MAX_TEST_CT  2
static tTestDesc aMath_Huge_Val_From_Dbl_MaxTests[] = {
  { TT_NEGREP,   zMath_Huge_Val_From_Dbl_MaxBypass0, (regex_t*)NULL },
  { TT_EGREP,    zMath_Huge_Val_From_Dbl_MaxSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Math_Huge_Val_From_Dbl_Max
 */
static const char* apzMath_Huge_Val_From_Dbl_MaxPatch[] = { "sh", "-c",
    "\tdbl_max_def=`egrep 'define[ \t]+DBL_MAX[ \t]+.*' float.h | sed 's/.*DBL_MAX[ \t]*//' 2>/dev/null`\n\n\
\tif ( test -n \"${dbl_max_def}\" ) > /dev/null 2>&1\n\
\tthen sed -e '/define[ \t]*HUGE_VAL[ \t]*DBL_MAX/s@DBL_MAX@'\"$dbl_max_def@\"\n\
\telse cat\n\
\tfi",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Math_Huge_Val_Ifndef fix
 */
tSCC zMath_Huge_Val_IfndefName[] =
     "math_huge_val_ifndef";

/*
 *  File name selection pattern
 */
tSCC zMath_Huge_Val_IfndefList[] =
  "|math.h|math/math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzMath_Huge_Val_IfndefMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zMath_Huge_Val_IfndefSelect0[] =
       "define[ \t]+HUGE_VAL";

#define    MATH_HUGE_VAL_IFNDEF_TEST_CT  1
static tTestDesc aMath_Huge_Val_IfndefTests[] = {
  { TT_EGREP,    zMath_Huge_Val_IfndefSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Math_Huge_Val_Ifndef
 */
static const char* apzMath_Huge_Val_IfndefPatch[] = {
    "format",
    "#ifndef HUGE_VAL\n\
%0\n\
#endif",
    "^[ \t]*#[ \t]*define[ \t]+HUGE_VAL[ \t].*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Nested_Auth_Des fix
 */
tSCC zNested_Auth_DesName[] =
     "nested_auth_des";

/*
 *  File name selection pattern
 */
tSCC zNested_Auth_DesList[] =
  "|rpc/rpc.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzNested_Auth_DesMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNested_Auth_DesSelect0[] =
       "(/\\*.*rpc/auth_des\\.h>.*)/\\*";

#define    NESTED_AUTH_DES_TEST_CT  1
static tTestDesc aNested_Auth_DesTests[] = {
  { TT_EGREP,    zNested_Auth_DesSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Nested_Auth_Des
 */
static const char* apzNested_Auth_DesPatch[] = {
    "format",
    "%1*/ /*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Nested_Motorola fix
 */
tSCC zNested_MotorolaName[] =
     "nested_motorola";

/*
 *  File name selection pattern
 */
tSCC zNested_MotorolaList[] =
  "|sys/limits.h|limits.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzNested_MotorolaMachs[] = {
        "m68k-motorola-sysv*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNested_MotorolaSelect0[] =
       "max # bytes atomic in write|error value returned by Math lib";

#define    NESTED_MOTOROLA_TEST_CT  1
static tTestDesc aNested_MotorolaTests[] = {
  { TT_EGREP,    zNested_MotorolaSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Nested_Motorola
 */
static const char* apzNested_MotorolaPatch[] = { "sed",
    "-e", "s@^\\(#undef[ \t][ \t]*PIPE_BUF[ \t]*/\\* max # bytes atomic in write to a\\)$@\\1 */@",
    "-e", "s@\\(/\\*#define\tHUGE_VAL\t3.[0-9e+]* \\)\\(/\\*error value returned by Math lib\\*/\\)$@\\1*/ \\2@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Nested_Sys_Limits fix
 */
tSCC zNested_Sys_LimitsName[] =
     "nested_sys_limits";

/*
 *  File name selection pattern
 */
tSCC zNested_Sys_LimitsList[] =
  "|sys/limits.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzNested_Sys_LimitsMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNested_Sys_LimitsSelect0[] =
       "CHILD_MAX";

#define    NESTED_SYS_LIMITS_TEST_CT  1
static tTestDesc aNested_Sys_LimitsTests[] = {
  { TT_EGREP,    zNested_Sys_LimitsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Nested_Sys_Limits
 */
static const char* apzNested_Sys_LimitsPatch[] = { "sed",
    "-e", "/CHILD_MAX/s,/\\* Max, Max,",
    "-e", "/OPEN_MAX/s,/\\* Max, Max,",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of News_Os_Recursion fix
 */
tSCC zNews_Os_RecursionName[] =
     "news_os_recursion";

/*
 *  File name selection pattern
 */
tSCC zNews_Os_RecursionList[] =
  "|stdlib.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzNews_Os_RecursionMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNews_Os_RecursionSelect0[] =
       "[ \t]*#include <stdlib\\.h>.*";

#define    NEWS_OS_RECURSION_TEST_CT  1
static tTestDesc aNews_Os_RecursionTests[] = {
  { TT_EGREP,    zNews_Os_RecursionSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for News_Os_Recursion
 */
static const char* apzNews_Os_RecursionPatch[] = {
    "format",
    "#ifdef BOGUS_RECURSION\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Next_Math_Prefix fix
 */
tSCC zNext_Math_PrefixName[] =
     "next_math_prefix";

/*
 *  File name selection pattern
 */
tSCC zNext_Math_PrefixList[] =
  "|ansi/math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzNext_Math_PrefixMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNext_Math_PrefixSelect0[] =
       "^extern[ \t]+double[ \t]+__const__[ \t]";

#define    NEXT_MATH_PREFIX_TEST_CT  1
static tTestDesc aNext_Math_PrefixTests[] = {
  { TT_EGREP,    zNext_Math_PrefixSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Next_Math_Prefix
 */
static const char* apzNext_Math_PrefixPatch[] = {
    "format",
    "extern double %1(",
    "^extern[ \t]+double[ \t]+__const__[ \t]+([a-z]+)\\(",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Next_Template fix
 */
tSCC zNext_TemplateName[] =
     "next_template";

/*
 *  File name selection pattern
 */
tSCC zNext_TemplateList[] =
  "|bsd/libc.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzNext_TemplateMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNext_TemplateSelect0[] =
       "[ \t]template\\)";

#define    NEXT_TEMPLATE_TEST_CT  1
static tTestDesc aNext_TemplateTests[] = {
  { TT_EGREP,    zNext_TemplateSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Next_Template
 */
static const char* apzNext_TemplatePatch[] = {
    "format",
    "(%1)",
    "\\(([^)]*)[ \t]template\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Next_Volitile fix
 */
tSCC zNext_VolitileName[] =
     "next_volitile";

/*
 *  File name selection pattern
 */
tSCC zNext_VolitileList[] =
  "|ansi/stdlib.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzNext_VolitileMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNext_VolitileSelect0[] =
       "^extern[ \t]+volatile[ \t]+void[ \t]";

#define    NEXT_VOLITILE_TEST_CT  1
static tTestDesc aNext_VolitileTests[] = {
  { TT_EGREP,    zNext_VolitileSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Next_Volitile
 */
static const char* apzNext_VolitilePatch[] = {
    "format",
    "extern void %1(",
    "^extern[ \t]+volatile[ \t]+void[ \t]+(exit|abort)\\(",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Next_Wait_Union fix
 */
tSCC zNext_Wait_UnionName[] =
     "next_wait_union";

/*
 *  File name selection pattern
 */
tSCC zNext_Wait_UnionList[] =
  "|sys/wait.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzNext_Wait_UnionMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNext_Wait_UnionSelect0[] =
       "wait\\(union wait";

#define    NEXT_WAIT_UNION_TEST_CT  1
static tTestDesc aNext_Wait_UnionTests[] = {
  { TT_EGREP,    zNext_Wait_UnionSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Next_Wait_Union
 */
static const char* apzNext_Wait_UnionPatch[] = {
    "format",
    "wait(void",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Nodeent_Syntax fix
 */
tSCC zNodeent_SyntaxName[] =
     "nodeent_syntax";

/*
 *  File name selection pattern
 */
tSCC zNodeent_SyntaxList[] =
  "|netdnet/dnetdb.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzNodeent_SyntaxMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNodeent_SyntaxSelect0[] =
       "char[ \t]*\\*na_addr[ \t]*$";

#define    NODEENT_SYNTAX_TEST_CT  1
static tTestDesc aNodeent_SyntaxTests[] = {
  { TT_EGREP,    zNodeent_SyntaxSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Nodeent_Syntax
 */
static const char* apzNodeent_SyntaxPatch[] = {
    "format",
    "%0;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Osf_Namespace_A fix
 */
tSCC zOsf_Namespace_AName[] =
     "osf_namespace_a";

/*
 *  File name selection pattern
 */
tSCC zOsf_Namespace_AList[] =
  "|reg_types.h|sys/lc_core.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzOsf_Namespace_AMachs (const char**)NULL

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zOsf_Namespace_ATest0[] =
       " -r reg_types.h";
tSCC zOsf_Namespace_ATest1[] =
       " -r sys/lc_core.h";
tSCC zOsf_Namespace_ATest2[] =
       " -n \"`grep '} regex_t;' reg_types.h`\"";
tSCC zOsf_Namespace_ATest3[] =
       " -z \"`grep __regex_t regex.h`\"";

#define    OSF_NAMESPACE_A_TEST_CT  4
static tTestDesc aOsf_Namespace_ATests[] = {
  { TT_TEST,     zOsf_Namespace_ATest0,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_ATest1,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_ATest2,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_ATest3,   0 /* unused */ }, };

/*
 *  Fix Command Arguments for Osf_Namespace_A
 */
static const char* apzOsf_Namespace_APatch[] = {
    "format",
    "__%0",
    "reg(ex|off|match)_t",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Osf_Namespace_C fix
 */
tSCC zOsf_Namespace_CName[] =
     "osf_namespace_c";

/*
 *  File name selection pattern
 */
tSCC zOsf_Namespace_CList[] =
  "|regex.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzOsf_Namespace_CMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zOsf_Namespace_CSelect0[] =
       "#include <reg_types.h>.*";

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zOsf_Namespace_CTest0[] =
       " -r reg_types.h";
tSCC zOsf_Namespace_CTest1[] =
       " -r sys/lc_core.h";
tSCC zOsf_Namespace_CTest2[] =
       " -n \"`grep '} regex_t;' reg_types.h`\"";
tSCC zOsf_Namespace_CTest3[] =
       " -z \"`grep __regex_t regex.h`\"";

#define    OSF_NAMESPACE_C_TEST_CT  5
static tTestDesc aOsf_Namespace_CTests[] = {
  { TT_TEST,     zOsf_Namespace_CTest0,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_CTest1,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_CTest2,   0 /* unused */ },
  { TT_TEST,     zOsf_Namespace_CTest3,   0 /* unused */ },
  { TT_EGREP,    zOsf_Namespace_CSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Osf_Namespace_C
 */
static const char* apzOsf_Namespace_CPatch[] = {
    "format",
    "%0\n\
typedef __regex_t\tregex_t;\n\
typedef __regoff_t\tregoff_t;\n\
typedef __regmatch_t\tregmatch_t;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Pthread_Page_Size fix
 */
tSCC zPthread_Page_SizeName[] =
     "pthread_page_size";

/*
 *  File name selection pattern
 */
tSCC zPthread_Page_SizeList[] =
  "|pthread.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzPthread_Page_SizeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zPthread_Page_SizeSelect0[] =
       "^int __page_size";

#define    PTHREAD_PAGE_SIZE_TEST_CT  1
static tTestDesc aPthread_Page_SizeTests[] = {
  { TT_EGREP,    zPthread_Page_SizeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Pthread_Page_Size
 */
static const char* apzPthread_Page_SizePatch[] = {
    "format",
    "extern %0",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Read_Ret_Type fix
 */
tSCC zRead_Ret_TypeName[] =
     "read_ret_type";

/*
 *  File name selection pattern
 */
tSCC zRead_Ret_TypeList[] =
  "|stdio.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzRead_Ret_TypeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRead_Ret_TypeSelect0[] =
       "extern int\t.*, fread\\(\\), fwrite\\(\\)";

#define    READ_RET_TYPE_TEST_CT  1
static tTestDesc aRead_Ret_TypeTests[] = {
  { TT_EGREP,    zRead_Ret_TypeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Read_Ret_Type
 */
static const char* apzRead_Ret_TypePatch[] = {
    "format",
    "extern unsigned int fread(), fwrite();\n\
%1%2",
    "(extern int\t.*), fread\\(\\), fwrite\\(\\)(.*)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Rs6000_Double fix
 */
tSCC zRs6000_DoubleName[] =
     "rs6000_double";

/*
 *  File name selection pattern
 */
tSCC zRs6000_DoubleList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzRs6000_DoubleMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRs6000_DoubleSelect0[] =
       "[^a-zA-Z_]class\\(";

#define    RS6000_DOUBLE_TEST_CT  1
static tTestDesc aRs6000_DoubleTests[] = {
  { TT_EGREP,    zRs6000_DoubleSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Rs6000_Double
 */
static const char* apzRs6000_DoublePatch[] = {
    "format",
    "#ifndef __cplusplus\n\
%0\n\
#endif",
    "^.*[^a-zA-Z_]class\\(.*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Rs6000_Fchmod fix
 */
tSCC zRs6000_FchmodName[] =
     "rs6000_fchmod";

/*
 *  File name selection pattern
 */
tSCC zRs6000_FchmodList[] =
  "|sys/stat.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzRs6000_FchmodMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRs6000_FchmodSelect0[] =
       "fchmod\\(char \\*";

#define    RS6000_FCHMOD_TEST_CT  1
static tTestDesc aRs6000_FchmodTests[] = {
  { TT_EGREP,    zRs6000_FchmodSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Rs6000_Fchmod
 */
static const char* apzRs6000_FchmodPatch[] = {
    "format",
    "fchmod(int",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Rs6000_Param fix
 */
tSCC zRs6000_ParamName[] =
     "rs6000_param";

/*
 *  File name selection pattern
 */
tSCC zRs6000_ParamList[] =
  "|stdio.h|unistd.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzRs6000_ParamMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRs6000_ParamSelect0[] =
       "rename\\(const char \\*old, const char \\*new\\)";

#define    RS6000_PARAM_TEST_CT  1
static tTestDesc aRs6000_ParamTests[] = {
  { TT_EGREP,    zRs6000_ParamSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Rs6000_Param
 */
static const char* apzRs6000_ParamPatch[] = {
    "format",
    "rename(const char *_old, const char *_new)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sco_Static_Func fix
 */
tSCC zSco_Static_FuncName[] =
     "sco_static_func";

/*
 *  File name selection pattern
 */
tSCC zSco_Static_FuncList[] =
  "|sys/stat.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSco_Static_FuncMachs[] = {
        "i?86-*-sco3.2*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSco_Static_FuncSelect0[] =
       "^static int";

#define    SCO_STATIC_FUNC_TEST_CT  1
static tTestDesc aSco_Static_FuncTests[] = {
  { TT_EGREP,    zSco_Static_FuncSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sco_Static_Func
 */
static const char* apzSco_Static_FuncPatch[] = { "sed",
    "-e", "/^static int/i\\\n\
#if __cplusplus\\\n\
extern \"C\" {\\\n\
#endif /* __cplusplus */",
    "-e", "/^}$/a\\\n\
#if __cplusplus\\\n\
 }\\\n\
#endif /* __cplusplus */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sco_Utime fix
 */
tSCC zSco_UtimeName[] =
     "sco_utime";

/*
 *  File name selection pattern
 */
tSCC zSco_UtimeList[] =
  "|sys/times.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSco_UtimeMachs[] = {
        "i?86-*-sco3.2v4*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSco_UtimeSelect0[] =
       "\\(const char \\*, struct utimbuf \\*\\);";

#define    SCO_UTIME_TEST_CT  1
static tTestDesc aSco_UtimeTests[] = {
  { TT_EGREP,    zSco_UtimeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sco_Utime
 */
static const char* apzSco_UtimePatch[] = {
    "format",
    "(const char *, const struct utimbuf *);",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Mutex_Init fix
 */
tSCC zSolaris_Mutex_InitName[] =
     "solaris_mutex_init";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Mutex_InitList[] =
  "|pthread.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Mutex_InitMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Mutex_InitSelect0[] =
       "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";

#define    SOLARIS_MUTEX_INIT_TEST_CT  1
static tTestDesc aSolaris_Mutex_InitTests[] = {
  { TT_EGREP,    zSolaris_Mutex_InitSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Mutex_Init
 */
static const char* apzSolaris_Mutex_InitPatch[] = {
    "format",
    "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\
%0\n\
#else\n\
%1, {0}}%3\n\
#endif",
    "(^#define[ \t]+PTHREAD_(MUTEX|COND)_INITIALIZER[ \t]+{.*),[ \t]*0}(|[ \t].*)$",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Statsswtch fix
 */
tSCC zStatsswtchName[] =
     "statsswtch";

/*
 *  File name selection pattern
 */
tSCC zStatsswtchList[] =
  "|rpcsvc/rstat.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzStatsswtchMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStatsswtchSelect0[] =
       "boottime$";

#define    STATSSWTCH_TEST_CT  1
static tTestDesc aStatsswtchTests[] = {
  { TT_EGREP,    zStatsswtchSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Statsswtch
 */
static const char* apzStatsswtchPatch[] = {
    "format",
    "boottime;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Stdio_Stdarg_H fix
 */
tSCC zStdio_Stdarg_HName[] =
     "stdio_stdarg_h";

/*
 *  File name selection pattern
 */
tSCC zStdio_Stdarg_HList[] =
  "|stdio.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzStdio_Stdarg_HMachs (const char**)NULL

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zStdio_Stdarg_HBypass0[] =
       "include.*(stdarg.h|machine/ansi.h)";

#define    STDIO_STDARG_H_TEST_CT  1
static tTestDesc aStdio_Stdarg_HTests[] = {
  { TT_NEGREP,   zStdio_Stdarg_HBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Stdio_Stdarg_H
 */
static const char* apzStdio_Stdarg_HPatch[] = {
    "wrap",
    "#define __need___va_list\n\
#include <stdarg.h>\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Stdio_Va_List fix
 */
tSCC zStdio_Va_ListName[] =
     "stdio_va_list";

/*
 *  File name selection pattern
 */
tSCC zStdio_Va_ListList[] =
  "|stdio.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzStdio_Va_ListMachs (const char**)NULL

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zStdio_Va_ListBypass0[] =
       "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list";

#define    STDIO_VA_LIST_TEST_CT  1
static tTestDesc aStdio_Va_ListTests[] = {
  { TT_NEGREP,   zStdio_Va_ListBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Stdio_Va_List
 */
static const char* apzStdio_Va_ListPatch[] = { "sed",
    "-e", "s@ va_list @ __gnuc_va_list @\n\
s@ va_list)@ __gnuc_va_list)@\n\
s@ _VA_LIST_));@ __gnuc_va_list));@\n\
s@ __VA_LIST__));@ __gnuc_va_list));@\n\
s@ va_list@ __not_va_list__@\n\
s@\\*va_list@*__not_va_list__@\n\
s@ __va_list)@ __gnuc_va_list)@\n\
s@typedef[ \t]\\(.*\\)[ \t]va_list[ \t]*;@typedef \\1 __not_va_list__;@\n\
s@GNUC_VA_LIST@GNUC_Va_LIST@\n\
s@_NEED___VA_LIST@_NEED___Va_LIST@\n\
s@VA_LIST@DUMMY_VA_LIST@\n\
s@_Va_LIST@_VA_LIST@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Strict_Ansi_Not fix
 */
tSCC zStrict_Ansi_NotName[] =
     "strict_ansi_not";

/*
 *  File name selection pattern
 */
#define zStrict_Ansi_NotList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzStrict_Ansi_NotMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStrict_Ansi_NotSelect0[] =
       "^([ \t]*#[ \t]*if.*)(!__STDC__|__STDC__[ \t]*==[ \t]*0|__STDC__[ \t]*!=[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zStrict_Ansi_NotBypass0[] =
       "GNU and MIPS C compilers define __STDC__ differently";

/*
 *  perform the C function call test
 */
tSCC zStrict_Ansi_NotFTst0[] = "stdc_0_in_system_headers";

#define    STRICT_ANSI_NOT_TEST_CT  3
static tTestDesc aStrict_Ansi_NotTests[] = {
  { TT_FUNCTION, zStrict_Ansi_NotFTst0,   0 /* unused */ },
  { TT_NEGREP,   zStrict_Ansi_NotBypass0, (regex_t*)NULL },
  { TT_EGREP,    zStrict_Ansi_NotSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Strict_Ansi_Not
 */
static const char* apzStrict_Ansi_NotPatch[] = {
    "format",
    "%1 !defined(__STRICT_ANSI__)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Strict_Ansi_Not_Ctd fix
 */
tSCC zStrict_Ansi_Not_CtdName[] =
     "strict_ansi_not_ctd";

/*
 *  File name selection pattern
 */
tSCC zStrict_Ansi_Not_CtdList[] =
  "|math.h|limits.h|stdio.h|signal.h|stdlib.h|sys/signal.h|time.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzStrict_Ansi_Not_CtdMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStrict_Ansi_Not_CtdSelect0[] =
       "^([ \t]*(\\(|&&|\\|\\|)([ \t(]*!*[ \t]*defined\\([a-zA-Z_0-9]+\\)[ \t]*[|&][|&])*[ \t(]*)(__STDC__[ \t]*(|-[ \t]*0[ \t]*)==[ \t]*0)";

/*
 *  perform the C function call test
 */
tSCC zStrict_Ansi_Not_CtdFTst0[] = "stdc_0_in_system_headers";

#define    STRICT_ANSI_NOT_CTD_TEST_CT  2
static tTestDesc aStrict_Ansi_Not_CtdTests[] = {
  { TT_FUNCTION, zStrict_Ansi_Not_CtdFTst0,   0 /* unused */ },
  { TT_EGREP,    zStrict_Ansi_Not_CtdSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Strict_Ansi_Not_Ctd
 */
static const char* apzStrict_Ansi_Not_CtdPatch[] = {
    "format",
    "%1 !defined(__STRICT_ANSI__)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Strict_Ansi_Only fix
 */
tSCC zStrict_Ansi_OnlyName[] =
     "strict_ansi_only";

/*
 *  File name selection pattern
 */
#define zStrict_Ansi_OnlyList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzStrict_Ansi_OnlyMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStrict_Ansi_OnlySelect0[] =
       "^([ \t]*#[ \t]*if.*)(__STDC__[ \t]*!=[ \t]*0|__STDC__[ \t]*==[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*!=[ \t]*0)";

/*
 *  perform the C function call test
 */
tSCC zStrict_Ansi_OnlyFTst0[] = "stdc_0_in_system_headers";

#define    STRICT_ANSI_ONLY_TEST_CT  2
static tTestDesc aStrict_Ansi_OnlyTests[] = {
  { TT_FUNCTION, zStrict_Ansi_OnlyFTst0,   0 /* unused */ },
  { TT_EGREP,    zStrict_Ansi_OnlySelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Strict_Ansi_Only
 */
static const char* apzStrict_Ansi_OnlyPatch[] = {
    "format",
    "%1 defined(__STRICT_ANSI__)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Struct_File fix
 */
tSCC zStruct_FileName[] =
     "struct_file";

/*
 *  File name selection pattern
 */
tSCC zStruct_FileList[] =
  "|rpc/xdr.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzStruct_FileMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStruct_FileSelect0[] =
       "^.*xdrstdio_create.*struct __file_s";

#define    STRUCT_FILE_TEST_CT  1
static tTestDesc aStruct_FileTests[] = {
  { TT_EGREP,    zStruct_FileSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Struct_File
 */
static const char* apzStruct_FilePatch[] = {
    "format",
    "struct __file_s;\n\
%0",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Struct_Sockaddr fix
 */
tSCC zStruct_SockaddrName[] =
     "struct_sockaddr";

/*
 *  File name selection pattern
 */
tSCC zStruct_SockaddrList[] =
  "|rpc/auth.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzStruct_SockaddrMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zStruct_SockaddrSelect0[] =
       "^.*authdes_create.*struct sockaddr";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zStruct_SockaddrBypass0[] =
       "<sys/socket.h>";

#define    STRUCT_SOCKADDR_TEST_CT  2
static tTestDesc aStruct_SockaddrTests[] = {
  { TT_NEGREP,   zStruct_SockaddrBypass0, (regex_t*)NULL },
  { TT_EGREP,    zStruct_SockaddrSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Struct_Sockaddr
 */
static const char* apzStruct_SockaddrPatch[] = {
    "format",
    "struct sockaddr;\n\
%0",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Auth_Proto fix
 */
tSCC zSun_Auth_ProtoName[] =
     "sun_auth_proto";

/*
 *  File name selection pattern
 */
tSCC zSun_Auth_ProtoList[] =
  "|rpc/auth.h|rpc/clnt.h|rpc/svc.h|rpc/xdr.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_Auth_ProtoMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSun_Auth_ProtoSelect0[] =
       "\\(\\*[a-z][a-z_]*\\)\\(\\)";

#define    SUN_AUTH_PROTO_TEST_CT  1
static tTestDesc aSun_Auth_ProtoTests[] = {
  { TT_EGREP,    zSun_Auth_ProtoSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sun_Auth_Proto
 */
static const char* apzSun_Auth_ProtoPatch[] = {
    "format",
    "#ifdef __cplusplus\n\
%1(...);%2\n\
#else\n\
%1();%2\n\
#endif",
    "(.*\\(\\*[a-z][a-z_]*\\))\\(\\);(.*)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Bogus_Ifdef fix
 */
tSCC zSun_Bogus_IfdefName[] =
     "sun_bogus_ifdef";

/*
 *  File name selection pattern
 */
tSCC zSun_Bogus_IfdefList[] =
  "|hsfs/hsfs_spec.h|hsfs/iso_spec.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_Bogus_IfdefMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSun_Bogus_IfdefSelect0[] =
       "#ifdef(.*\\|\\|.*)";

#define    SUN_BOGUS_IFDEF_TEST_CT  1
static tTestDesc aSun_Bogus_IfdefTests[] = {
  { TT_EGREP,    zSun_Bogus_IfdefSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sun_Bogus_Ifdef
 */
static const char* apzSun_Bogus_IfdefPatch[] = {
    "format",
    "#if%1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Catmacro fix
 */
tSCC zSun_CatmacroName[] =
     "sun_catmacro";

/*
 *  File name selection pattern
 */
tSCC zSun_CatmacroList[] =
  "|pixrect/memvar.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_CatmacroMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSun_CatmacroSelect0[] =
       "^#define[ \t]+CAT\\(a,b\\).*";

#define    SUN_CATMACRO_TEST_CT  1
static tTestDesc aSun_CatmacroTests[] = {
  { TT_EGREP,    zSun_CatmacroSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sun_Catmacro
 */
static const char* apzSun_CatmacroPatch[] = {
    "format",
    "#ifdef __STDC__\n\
#  define CAT(a,b) a##b\n\
#else\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Malloc fix
 */
tSCC zSun_MallocName[] =
     "sun_malloc";

/*
 *  File name selection pattern
 */
tSCC zSun_MallocList[] =
  "|malloc.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_MallocMachs (const char**)NULL
#define SUN_MALLOC_TEST_CT  0
#define aSun_MallocTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Sun_Malloc
 */
static const char* apzSun_MallocPatch[] = { "sed",
    "-e", "s/typedef[ \t]char \\*\tmalloc_t/typedef void \\*\tmalloc_t/g",
    "-e", "s/int[ \t][ \t]*free/void\tfree/g",
    "-e", "s/char\\([ \t]*\\*[ \t]*malloc\\)/void\\1/g",
    "-e", "s/char\\([ \t]*\\*[ \t]*realloc\\)/void\\1/g",
    "-e", "s/char\\([ \t]*\\*[ \t]*calloc\\)/void\\1/g",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Rusers_Semi fix
 */
tSCC zSun_Rusers_SemiName[] =
     "sun_rusers_semi";

/*
 *  File name selection pattern
 */
tSCC zSun_Rusers_SemiList[] =
  "|rpcsvc/rusers.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_Rusers_SemiMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSun_Rusers_SemiSelect0[] =
       "_cnt$";

#define    SUN_RUSERS_SEMI_TEST_CT  1
static tTestDesc aSun_Rusers_SemiTests[] = {
  { TT_EGREP,    zSun_Rusers_SemiSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sun_Rusers_Semi
 */
static const char* apzSun_Rusers_SemiPatch[] = { "sed",
    "-e", "/^struct/,/^};/s/_cnt$/_cnt;/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sun_Signal fix
 */
tSCC zSun_SignalName[] =
     "sun_signal";

/*
 *  File name selection pattern
 */
tSCC zSun_SignalList[] =
  "|sys/signal.h|signal.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_SignalMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSun_SignalSelect0[] =
       "^void\t\\(\\*signal\\(\\)\\)\\(\\);.*";

#define    SUN_SIGNAL_TEST_CT  1
static tTestDesc aSun_SignalTests[] = {
  { TT_EGREP,    zSun_SignalSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sun_Signal
 */
static const char* apzSun_SignalPatch[] = {
    "format",
    "#ifdef __cplusplus\n\
void\t(*signal(...))(...);\n\
#else\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sunos_Matherr_Decl fix
 */
tSCC zSunos_Matherr_DeclName[] =
     "sunos_matherr_decl";

/*
 *  File name selection pattern
 */
tSCC zSunos_Matherr_DeclList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSunos_Matherr_DeclMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSunos_Matherr_DeclSelect0[] =
       "matherr";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSunos_Matherr_DeclBypass0[] =
       "matherr.*(struct exception|__MATH_EXCEPTION)";

#define    SUNOS_MATHERR_DECL_TEST_CT  2
static tTestDesc aSunos_Matherr_DeclTests[] = {
  { TT_NEGREP,   zSunos_Matherr_DeclBypass0, (regex_t*)NULL },
  { TT_EGREP,    zSunos_Matherr_DeclSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sunos_Matherr_Decl
 */
static const char* apzSunos_Matherr_DeclPatch[] = {
    "wrap",
    "struct exception;\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sunos_Strlen fix
 */
tSCC zSunos_StrlenName[] =
     "sunos_strlen";

/*
 *  File name selection pattern
 */
tSCC zSunos_StrlenList[] =
  "|strings.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSunos_StrlenMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSunos_StrlenSelect0[] =
       "int[ \t]*strlen\\(\\);(.*)";

#define    SUNOS_STRLEN_TEST_CT  1
static tTestDesc aSunos_StrlenTests[] = {
  { TT_EGREP,    zSunos_StrlenSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sunos_Strlen
 */
static const char* apzSunos_StrlenPatch[] = {
    "format",
    "__SIZE_TYPE__ strlen();%1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Svr4__P fix
 */
tSCC zSvr4__PName[] =
     "svr4__p";

/*
 *  File name selection pattern
 */
tSCC zSvr4__PList[] =
  "|math.h|floatingpoint.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSvr4__PMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSvr4__PSelect0[] =
       "^#define[ \t]+__P.*";

#define    SVR4__P_TEST_CT  1
static tTestDesc aSvr4__PTests[] = {
  { TT_EGREP,    zSvr4__PSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4__P
 */
static const char* apzSvr4__PPatch[] = {
    "format",
    "#ifndef __P\n\
%0\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Svr4_Getcwd fix
 */
tSCC zSvr4_GetcwdName[] =
     "svr4_getcwd";

/*
 *  File name selection pattern
 */
tSCC zSvr4_GetcwdList[] =
  "|stdlib.h|unistd.h|prototypes.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSvr4_GetcwdMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSvr4_GetcwdSelect0[] =
       "getcwd\\(char \\*, int\\)";

#define    SVR4_GETCWD_TEST_CT  1
static tTestDesc aSvr4_GetcwdTests[] = {
  { TT_EGREP,    zSvr4_GetcwdSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4_Getcwd
 */
static const char* apzSvr4_GetcwdPatch[] = {
    "format",
    "getcwd(char *, size_t)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Svr4_Profil fix
 */
tSCC zSvr4_ProfilName[] =
     "svr4_profil";

/*
 *  File name selection pattern
 */
tSCC zSvr4_ProfilList[] =
  "|stdlib.h|unistd.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSvr4_ProfilMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSvr4_ProfilSelect0[] =
       "profil\\(unsigned short \\*, unsigned int, unsigned int, unsigned int\\)";

#define    SVR4_PROFIL_TEST_CT  1
static tTestDesc aSvr4_ProfilTests[] = {
  { TT_EGREP,    zSvr4_ProfilSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4_Profil
 */
static const char* apzSvr4_ProfilPatch[] = {
    "format",
    "profil(unsigned short *, size_t, int, unsigned int)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sysv68_String fix
 */
tSCC zSysv68_StringName[] =
     "sysv68_string";

/*
 *  File name selection pattern
 */
tSCC zSysv68_StringList[] =
  "|testing.h|string.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSysv68_StringMachs (const char**)NULL
#define SYSV68_STRING_TEST_CT  0
#define aSysv68_StringTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Sysv68_String
 */
static const char* apzSysv68_StringPatch[] = { "sed",
    "-e", "s/extern[ \t]*int[ \t]*strlen();/extern unsigned int strlen();/",
    "-e", "s/extern[ \t]*int[ \t]*ffs[ \t]*(long);/extern int ffs(int);/",
    "-e", "s/strdup(char \\*s1);/strdup(const char *s1);/",
    "-e", "/^extern char$/N",
    "-e", "s/^extern char\\(\\n\t\\*memccpy(),\\)$/extern void\\1/",
    "-e", "/^extern int$/N",
    "-e", "s/^extern int\\(\\n\tstrlen(),\\)/extern size_t\\1/",
    "-e", "/^\tstrncmp(),$/N",
    "-e", "s/^\\(\tstrncmp()\\),\\n\\(\tstrlen(),\\)$/\\1;\\\n\
extern unsigned int\\\n\
\\2/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sysz_Stdlib_For_Sun fix
 */
tSCC zSysz_Stdlib_For_SunName[] =
     "sysz_stdlib_for_sun";

/*
 *  File name selection pattern
 */
tSCC zSysz_Stdlib_For_SunList[] =
  "|stdlib.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzSysz_Stdlib_For_SunMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSysz_Stdlib_For_SunSelect0[] =
       "char[ \t]*\\*[ \t]*(calloc|malloc|realloc|bsearch)[ \t]*\\(";

#define    SYSZ_STDLIB_FOR_SUN_TEST_CT  1
static tTestDesc aSysz_Stdlib_For_SunTests[] = {
  { TT_EGREP,    zSysz_Stdlib_For_SunSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sysz_Stdlib_For_Sun
 */
static const char* apzSysz_Stdlib_For_SunPatch[] = {
    "format",
    "void *\t%1(",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Tinfo_Cplusplus fix
 */
tSCC zTinfo_CplusplusName[] =
     "tinfo_cplusplus";

/*
 *  File name selection pattern
 */
tSCC zTinfo_CplusplusList[] =
  "|tinfo.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzTinfo_CplusplusMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zTinfo_CplusplusSelect0[] =
       "[ \t]_cplusplus";

#define    TINFO_CPLUSPLUS_TEST_CT  1
static tTestDesc aTinfo_CplusplusTests[] = {
  { TT_EGREP,    zTinfo_CplusplusSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Tinfo_Cplusplus
 */
static const char* apzTinfo_CplusplusPatch[] = {
    "format",
    " __cplusplus",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Atexit_Param fix
 */
tSCC zUltrix_Atexit_ParamName[] =
     "ultrix_atexit_param";

/*
 *  File name selection pattern
 */
tSCC zUltrix_Atexit_ParamList[] =
  "|stdlib.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_Atexit_ParamMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_Atexit_ParamSelect0[] =
       "atexit\\(.*\\(\\)";

#define    ULTRIX_ATEXIT_PARAM_TEST_CT  1
static tTestDesc aUltrix_Atexit_ParamTests[] = {
  { TT_EGREP,    zUltrix_Atexit_ParamSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Atexit_Param
 */
static const char* apzUltrix_Atexit_ParamPatch[] = {
    "format",
    "atexit( void (*__func)( void )",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Atof_Param fix
 */
tSCC zUltrix_Atof_ParamName[] =
     "ultrix_atof_param";

/*
 *  File name selection pattern
 */
tSCC zUltrix_Atof_ParamList[] =
  "|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_Atof_ParamMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_Atof_ParamSelect0[] =
       "atof\\([ \t]*char";

#define    ULTRIX_ATOF_PARAM_TEST_CT  1
static tTestDesc aUltrix_Atof_ParamTests[] = {
  { TT_EGREP,    zUltrix_Atof_ParamSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Atof_Param
 */
static const char* apzUltrix_Atof_ParamPatch[] = {
    "format",
    "atof(const char",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Const fix
 */
tSCC zUltrix_ConstName[] =
     "ultrix_const";

/*
 *  File name selection pattern
 */
tSCC zUltrix_ConstList[] =
  "|stdio.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_ConstMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_ConstSelect0[] =
       "perror\\( char \\*";

#define    ULTRIX_CONST_TEST_CT  1
static tTestDesc aUltrix_ConstTests[] = {
  { TT_EGREP,    zUltrix_ConstSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Const
 */
static const char* apzUltrix_ConstPatch[] = {
    "format",
    "%1 const %3 *__",
    "([ \t*](perror|fputs|fwrite|scanf|fscanf)\\(.*)[ \t]+(char|void) \\*__",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Const2 fix
 */
tSCC zUltrix_Const2Name[] =
     "ultrix_const2";

/*
 *  File name selection pattern
 */
tSCC zUltrix_Const2List[] =
  "|stdio.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_Const2Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_Const2Select0[] =
       "\\*fopen\\( char \\*";

#define    ULTRIX_CONST2_TEST_CT  1
static tTestDesc aUltrix_Const2Tests[] = {
  { TT_EGREP,    zUltrix_Const2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Const2
 */
static const char* apzUltrix_Const2Patch[] = {
    "format",
    "%1( const char *%3, const char *",
    "([ \t*](fopen|sscanf|popen|tempnam))\\([ \t]*char[ \t]*\\*([^,]*),[ \t]*char[ \t]*\\*[ \t]*",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Fix_Fixproto fix
 */
tSCC zUltrix_Fix_FixprotoName[] =
     "ultrix_fix_fixproto";

/*
 *  File name selection pattern
 */
tSCC zUltrix_Fix_FixprotoList[] =
  "|sys/utsname.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_Fix_FixprotoMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_Fix_FixprotoSelect0[] =
       "ULTRIX";

#define    ULTRIX_FIX_FIXPROTO_TEST_CT  1
static tTestDesc aUltrix_Fix_FixprotoTests[] = {
  { TT_EGREP,    zUltrix_Fix_FixprotoSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Fix_Fixproto
 */
static const char* apzUltrix_Fix_FixprotoPatch[] = {
    "format",
    "struct utsname;\n\
%0",
    "^[ \t]*extern[ \t]*int[ \t]*uname\\(\\);",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Ifdef fix
 */
tSCC zUltrix_IfdefName[] =
     "ultrix_ifdef";

/*
 *  File name selection pattern
 */
tSCC zUltrix_IfdefList[] =
  "|sys/file.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_IfdefMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_IfdefSelect0[] =
       "^#ifdef KERNEL[ \t]+&&";

#define    ULTRIX_IFDEF_TEST_CT  1
static tTestDesc aUltrix_IfdefTests[] = {
  { TT_EGREP,    zUltrix_IfdefSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Ifdef
 */
static const char* apzUltrix_IfdefPatch[] = {
    "format",
    "#if defined(KERNEL) &&",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Math_Ifdef fix
 */
tSCC zUltrix_Math_IfdefName[] =
     "ultrix_math_ifdef";

/*
 *  File name selection pattern
 */
tSCC zUltrix_Math_IfdefList[] =
  "|sys/limits.h|float.h|math.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_Math_IfdefMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_Math_IfdefSelect0[] =
       "^(#if.*)\\|\\|[ \t]+CC\\$[a-z]+";

#define    ULTRIX_MATH_IFDEF_TEST_CT  1
static tTestDesc aUltrix_Math_IfdefTests[] = {
  { TT_EGREP,    zUltrix_Math_IfdefSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Math_Ifdef
 */
static const char* apzUltrix_Math_IfdefPatch[] = {
    "format",
    "%1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Nested_Ioctl fix
 */
tSCC zUltrix_Nested_IoctlName[] =
     "ultrix_nested_ioctl";

/*
 *  File name selection pattern
 */
tSCC zUltrix_Nested_IoctlList[] =
  "|sys/ioctl.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_Nested_IoctlMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_Nested_IoctlSelect0[] =
       "^/\\* #define SIOCSCREEN";

#define    ULTRIX_NESTED_IOCTL_TEST_CT  1
static tTestDesc aUltrix_Nested_IoctlTests[] = {
  { TT_EGREP,    zUltrix_Nested_IoctlSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Nested_Ioctl
 */
static const char* apzUltrix_Nested_IoctlPatch[] = { "sed",
    "-e", "/^\\/\\* #define SIOCSCREEN/s@/\\* screend@*//* screend@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Nested_Svc fix
 */
tSCC zUltrix_Nested_SvcName[] =
     "ultrix_nested_svc";

/*
 *  File name selection pattern
 */
tSCC zUltrix_Nested_SvcList[] =
  "|rpc/svc.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_Nested_SvcMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_Nested_SvcSelect0[] =
       "^ \\*[ \t]*int protocol;  */\\*";

#define    ULTRIX_NESTED_SVC_TEST_CT  1
static tTestDesc aUltrix_Nested_SvcTests[] = {
  { TT_EGREP,    zUltrix_Nested_SvcSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Nested_Svc
 */
static const char* apzUltrix_Nested_SvcPatch[] = { "sed",
    "-e", "s@^\\( \\*\tint protocol;  \\)/\\*@\\1*/ /*@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Stat fix
 */
tSCC zUltrix_StatName[] =
     "ultrix_stat";

/*
 *  File name selection pattern
 */
tSCC zUltrix_StatList[] =
  "|sys/stat.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_StatMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_StatSelect0[] =
       "@\\(#\\)stat\\.h.*6\\.1.*\\(ULTRIX\\)";

#define    ULTRIX_STAT_TEST_CT  1
static tTestDesc aUltrix_StatTests[] = {
  { TT_EGREP,    zUltrix_StatSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Stat
 */
static const char* apzUltrix_StatPatch[] = { "sed",
    "-e", "/^#define[ \t]S_IFPORT[ \t]*S_IFIFO$/a\\\n\
\\\n\
/* macro to test for symbolic link */\\\n\
#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)\\\n\n",
    "-e", "/^[ \t]*fstat(),$/a\\\n\
\tlstat(),\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Static fix
 */
tSCC zUltrix_StaticName[] =
     "ultrix_static";

/*
 *  File name selection pattern
 */
tSCC zUltrix_StaticList[] =
  "|machine/cpu.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_StaticMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_StaticSelect0[] =
       "#include \"r[34]_cpu";

#define    ULTRIX_STATIC_TEST_CT  1
static tTestDesc aUltrix_StaticTests[] = {
  { TT_EGREP,    zUltrix_StaticSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Static
 */
static const char* apzUltrix_StaticPatch[] = { "sed",
    "-e", "s/^static struct tlb_pid_state/struct tlb_pid_state/",
    "-e", "s/^#include \"r3_cpu\\.h\"$/#include <machine\\/r3_cpu\\.h>/",
    "-e", "s/^#include \"r4_cpu\\.h\"$/#include <machine\\/r4_cpu\\.h>/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Strings fix
 */
tSCC zUltrix_StringsName[] =
     "ultrix_strings";

/*
 *  File name selection pattern
 */
tSCC zUltrix_StringsList[] =
  "|strings.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_StringsMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_StringsSelect0[] =
       "@\\(#\\)strings\\.h.*6\\.1.*\\(ULTRIX\\)";

#define    ULTRIX_STRINGS_TEST_CT  1
static tTestDesc aUltrix_StringsTests[] = {
  { TT_EGREP,    zUltrix_StringsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Strings
 */
static const char* apzUltrix_StringsPatch[] = {
    "wrap",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Undefine_Null fix
 */
tSCC zUndefine_NullName[] =
     "undefine_null";

/*
 *  File name selection pattern
 */
#define zUndefine_NullList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
#define apzUndefine_NullMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUndefine_NullSelect0[] =
       "^#[ \t]*define[ \t]+NULL[ \t]";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zUndefine_NullBypass0[] =
       "#[ \t]*(ifn|un)def[ \t]+NULL($|[ \t\r])";

#define    UNDEFINE_NULL_TEST_CT  2
static tTestDesc aUndefine_NullTests[] = {
  { TT_NEGREP,   zUndefine_NullBypass0, (regex_t*)NULL },
  { TT_EGREP,    zUndefine_NullSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Undefine_Null
 */
static const char* apzUndefine_NullPatch[] = {
    "format",
    "#ifndef NULL%2\n\
#define NULL%1%2\n\
#endif%2\n",
    "^#[ \t]*define[ \t]*[ \t]NULL([^\r\n\
]+)([\r]*)\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Unicosmk_Restrict fix
 */
tSCC zUnicosmk_RestrictName[] =
     "unicosmk_restrict";

/*
 *  File name selection pattern
 */
tSCC zUnicosmk_RestrictList[] =
  "|stdio.h|stdlib.h|wchar.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzUnicosmk_RestrictMachs[] = {
        "*-*-unicosmk*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUnicosmk_RestrictSelect0[] =
       "(\\*[ \t]*)restrict([ \t]+)";

#define    UNICOSMK_RESTRICT_TEST_CT  1
static tTestDesc aUnicosmk_RestrictTests[] = {
  { TT_EGREP,    zUnicosmk_RestrictSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Unicosmk_Restrict
 */
static const char* apzUnicosmk_RestrictPatch[] = {
    "format",
    "%1__restrict__%2",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Uw7_Byteorder_Fix fix
 */
tSCC zUw7_Byteorder_FixName[] =
     "uw7_byteorder_fix";

/*
 *  File name selection pattern
 */
tSCC zUw7_Byteorder_FixList[] =
  "|arpa/inet.h|";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzUw7_Byteorder_FixMachs[] = {
        "*-*-sysv4*",
        "i?86-*-sysv5*",
        "i?86-*-udk*",
        "i?86-*-solaris2.[0-4]",
        "powerpcle-*-solaris2.[0-4]",
        "sparc-*-solaris2.[0-4]",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUw7_Byteorder_FixSelect0[] =
       "in_port_t";

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zUw7_Byteorder_FixTest0[] =
       "-f sys/byteorder.h";

#define    UW7_BYTEORDER_FIX_TEST_CT  2
static tTestDesc aUw7_Byteorder_FixTests[] = {
  { TT_TEST,     zUw7_Byteorder_FixTest0,   0 /* unused */ },
  { TT_EGREP,    zUw7_Byteorder_FixSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Uw7_Byteorder_Fix
 */
static const char* apzUw7_Byteorder_FixPatch[] = {
    "format",
    "",
    "^extern.*[ \t](htons|ntohs).*\\(in_port_t\\).*;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Va_I960_Macro fix
 */
tSCC zVa_I960_MacroName[] =
     "va_i960_macro";

/*
 *  File name selection pattern
 */
tSCC zVa_I960_MacroList[] =
  "|arch/i960/archI960.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzVa_I960_MacroMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVa_I960_MacroSelect0[] =
       "__(vsiz|vali|vpad|alignof__)";

#define    VA_I960_MACRO_TEST_CT  1
static tTestDesc aVa_I960_MacroTests[] = {
  { TT_EGREP,    zVa_I960_MacroSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Va_I960_Macro
 */
static const char* apzVa_I960_MacroPatch[] = {
    "format",
    "__vx%1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Void_Null fix
 */
tSCC zVoid_NullName[] =
     "void_null";

/*
 *  File name selection pattern
 */
tSCC zVoid_NullList[] =
  "|curses.h|dbm.h|locale.h|stdio.h|stdlib.h|string.h|time.h|unistd.h|sys/dir.h|sys/param.h|sys/types.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzVoid_NullMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVoid_NullSelect0[] =
       "^#[ \t]*define[ \t]+NULL[ \t]+\\(\\(void[ \t]*\\*\\)0\\)";

#define    VOID_NULL_TEST_CT  1
static tTestDesc aVoid_NullTests[] = {
  { TT_EGREP,    zVoid_NullSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Void_Null
 */
static const char* apzVoid_NullPatch[] = {
    "format",
    "#define NULL 0",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Gcc_Problem fix
 */
tSCC zVxworks_Gcc_ProblemName[] =
     "vxworks_gcc_problem";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Gcc_ProblemList[] =
  "|types/vxTypesBase.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzVxworks_Gcc_ProblemMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Gcc_ProblemSelect0[] =
       "__GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__";

#define    VXWORKS_GCC_PROBLEM_TEST_CT  1
static tTestDesc aVxworks_Gcc_ProblemTests[] = {
  { TT_EGREP,    zVxworks_Gcc_ProblemSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Gcc_Problem
 */
static const char* apzVxworks_Gcc_ProblemPatch[] = { "sed",
    "-e", "s/#ifdef __GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__/#if 1/",
    "-e", "/[ \t]size_t/i\\\n\
#ifndef _GCC_SIZE_T\\\n\
#define _GCC_SIZE_T\n",
    "-e", "/[ \t]size_t/a\\\n\
#endif\n",
    "-e", "/[ \t]ptrdiff_t/i\\\n\
#ifndef _GCC_PTRDIFF_T\\\n\
#define _GCC_PTRDIFF_T\n",
    "-e", "/[ \t]ptrdiff_t/a\\\n\
#endif\n",
    "-e", "/[ \t]wchar_t/i\\\n\
#ifndef _GCC_WCHAR_T\\\n\
#define _GCC_WCHAR_T\n",
    "-e", "/[ \t]wchar_t/a\\\n\
#endif\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Needs_Vxtypes fix
 */
tSCC zVxworks_Needs_VxtypesName[] =
     "vxworks_needs_vxtypes";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Needs_VxtypesList[] =
  "|time.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzVxworks_Needs_VxtypesMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Needs_VxtypesSelect0[] =
       "uint_t([ \t]+_clocks_per_sec)";

#define    VXWORKS_NEEDS_VXTYPES_TEST_CT  1
static tTestDesc aVxworks_Needs_VxtypesTests[] = {
  { TT_EGREP,    zVxworks_Needs_VxtypesSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Needs_Vxtypes
 */
static const char* apzVxworks_Needs_VxtypesPatch[] = {
    "format",
    "unsigned int%1",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Needs_Vxworks fix
 */
tSCC zVxworks_Needs_VxworksName[] =
     "vxworks_needs_vxworks";

/*
 *  File name selection pattern
 */
tSCC zVxworks_Needs_VxworksList[] =
  "|sys/stat.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzVxworks_Needs_VxworksMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_Needs_VxworksSelect0[] =
       "#[ \t]define[ \t]+__INCstath";

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zVxworks_Needs_VxworksTest0[] =
       " -r types/vxTypesOld.h";
tSCC zVxworks_Needs_VxworksTest1[] =
       " -n \"`egrep '#include' $file`\"";
tSCC zVxworks_Needs_VxworksTest2[] =
       " -n \"`egrep ULONG $file`\"";

#define    VXWORKS_NEEDS_VXWORKS_TEST_CT  4
static tTestDesc aVxworks_Needs_VxworksTests[] = {
  { TT_TEST,     zVxworks_Needs_VxworksTest0,   0 /* unused */ },
  { TT_TEST,     zVxworks_Needs_VxworksTest1,   0 /* unused */ },
  { TT_TEST,     zVxworks_Needs_VxworksTest2,   0 /* unused */ },
  { TT_EGREP,    zVxworks_Needs_VxworksSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Needs_Vxworks
 */
static const char* apzVxworks_Needs_VxworksPatch[] = { "sed",
    "-e", "/#[ \t]define[ \t][ \t]*__INCstath/a\\\n\
#include <types/vxTypesOld.h>\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Vxworks_Time fix
 */
tSCC zVxworks_TimeName[] =
     "vxworks_time";

/*
 *  File name selection pattern
 */
tSCC zVxworks_TimeList[] =
  "|time.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzVxworks_TimeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zVxworks_TimeSelect0[] =
       "#[ \t]*define[ \t]+VOIDFUNCPTR[ \t].*";

/*
 *  perform the 'test' shell command - do fix on success
 */
tSCC zVxworks_TimeTest0[] =
       " -r vxWorks.h";

#define    VXWORKS_TIME_TEST_CT  2
static tTestDesc aVxworks_TimeTests[] = {
  { TT_TEST,     zVxworks_TimeTest0,   0 /* unused */ },
  { TT_EGREP,    zVxworks_TimeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Vxworks_Time
 */
static const char* apzVxworks_TimePatch[] = {
    "format",
    "#ifndef __gcc_VOIDFUNCPTR_defined\n\
#ifdef __cplusplus\n\
typedef void (*__gcc_VOIDFUNCPTR) (...);\n\
#else\n\
typedef void (*__gcc_VOIDFUNCPTR) ();\n\
#endif\n\
#define __gcc_VOIDFUNCPTR_defined\n\
#endif\n\
#define VOIDFUNCPTR __gcc_VOIDFUNCPTR",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of X11_Class fix
 */
tSCC zX11_ClassName[] =
     "x11_class";

/*
 *  File name selection pattern
 */
tSCC zX11_ClassList[] =
  "|X11/ShellP.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzX11_ClassMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zX11_ClassSelect0[] =
       "^([ \t]*char \\*)class;(.*)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zX11_ClassBypass0[] =
       "__cplusplus";

#define    X11_CLASS_TEST_CT  2
static tTestDesc aX11_ClassTests[] = {
  { TT_NEGREP,   zX11_ClassBypass0, (regex_t*)NULL },
  { TT_EGREP,    zX11_ClassSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for X11_Class
 */
static const char* apzX11_ClassPatch[] = {
    "format",
    "#ifdef __cplusplus\n\
%1c_class;%2\n\
#else\n\
%1class;%2\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of X11_Class_Usage fix
 */
tSCC zX11_Class_UsageName[] =
     "x11_class_usage";

/*
 *  File name selection pattern
 */
tSCC zX11_Class_UsageList[] =
  "|Xm/BaseClassI.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzX11_Class_UsageMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zX11_Class_UsageSelect0[] =
       " class\\)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zX11_Class_UsageBypass0[] =
       "__cplusplus";

#define    X11_CLASS_USAGE_TEST_CT  2
static tTestDesc aX11_Class_UsageTests[] = {
  { TT_NEGREP,   zX11_Class_UsageBypass0, (regex_t*)NULL },
  { TT_EGREP,    zX11_Class_UsageSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for X11_Class_Usage
 */
static const char* apzX11_Class_UsagePatch[] = {
    "format",
    " c_class)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of X11_New fix
 */
tSCC zX11_NewName[] =
     "x11_new";

/*
 *  File name selection pattern
 */
tSCC zX11_NewList[] =
  "|Xm/Traversal.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzX11_NewMachs (const char**)NULL

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zX11_NewBypass0[] =
       "__cplusplus";

#define    X11_NEW_TEST_CT  1
static tTestDesc aX11_NewTests[] = {
  { TT_NEGREP,   zX11_NewBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for X11_New
 */
static const char* apzX11_NewPatch[] = { "sed",
    "-e", "/Widget\told, new;/i\\\n\
#ifdef __cplusplus\\\n\
\tWidget\told, c_new;\\\n\
#else\n",
    "-e", "/Widget\told, new;/a\\\n\
#endif\n",
    "-e", "s/Widget new,/Widget c_new,/g",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of X11_Sprintf fix
 */
tSCC zX11_SprintfName[] =
     "x11_sprintf";

/*
 *  File name selection pattern
 */
tSCC zX11_SprintfList[] =
  "|X11/Xmu.h|X11/Xmu/Xmu.h|";
/*
 *  Machine/OS name selection pattern
 */
#define apzX11_SprintfMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zX11_SprintfSelect0[] =
       "^extern char \\*\tsprintf\\(\\);$";

#define    X11_SPRINTF_TEST_CT  1
static tTestDesc aX11_SprintfTests[] = {
  { TT_EGREP,    zX11_SprintfSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for X11_Sprintf
 */
static const char* apzX11_SprintfPatch[] = {
    "format",
    "#ifndef __STDC__\n\
%0\n\
#endif /* !defined __STDC__ */",
    (char*)NULL };


/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  List of all fixes
 */
#define REGEX_COUNT          147
#define MACH_LIST_SIZE_LIMIT 279
#define FIX_COUNT            138

/*
 *  Enumerate the fixes
 */
typedef enum {
    AAB_DGUX_INT_VARARGS_FIXIDX,
    AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX,
    AAB_FD_ZERO_GNU_TYPES_H_FIXIDX,
    AAB_FD_ZERO_SELECTBITS_H_FIXIDX,
    AAB_SUN_MEMCPY_FIXIDX,
    AAB_SVR4_REPLACE_BYTEORDER_FIXIDX,
    AAB_ULTRIX_ANSI_COMPAT_FIXIDX,
    AAB_ULTRIX_LIMITS_FIXIDX,
    AAB_ULTRIX_MEMORY_FIXIDX,
    AAB_ULTRIX_STRING_FIXIDX,
    AIX_PTHREAD_FIXIDX,
    AIX_SYSMACHINE_FIXIDX,
    AIX_SYSWAIT_FIXIDX,
    AIX_VOLATILE_FIXIDX,
    ALPHA___ASSERT_FIXIDX,
    ALPHA_GETOPT_FIXIDX,
    ALPHA_PARENS_FIXIDX,
    ALPHA_SBRK_FIXIDX,
    ARM_NORCROFT_HINT_FIXIDX,
    ARM_WCHAR_FIXIDX,
    AUX_ASM_FIXIDX,
    AVOID_BOOL_DEFINE_FIXIDX,
    AVOID_BOOL_TYPE_FIXIDX,
    AVOID_WCHAR_T_TYPE_FIXIDX,
    BAD_LVAL_FIXIDX,
    BAD_STRUCT_TERM_FIXIDX,
    BADQUOTE_FIXIDX,
    BROKEN_ASSERT_STDIO_FIXIDX,
    BROKEN_ASSERT_STDLIB_FIXIDX,
    BROKEN_CABS_FIXIDX,
    CTRL_QUOTES_DEF_FIXIDX,
    CTRL_QUOTES_USE_FIXIDX,
    CXX_UNREADY_FIXIDX,
    DEC_INTERN_ASM_FIXIDX,
    DJGPP_WCHAR_H_FIXIDX,
    ECD_CURSOR_FIXIDX,
    FIX_HEADER_BREAKAGE_FIXIDX,
    FREEBSD_GCC3_BREAKAGE_FIXIDX,
    GNU_TYPES_FIXIDX,
    HP_INLINE_FIXIDX,
    HP_SYSFILE_FIXIDX,
    HPUX10_CPP_POW_INLINE_FIXIDX,
    HPUX11_CPP_POW_INLINE_FIXIDX,
    HPUX11_FABSF_FIXIDX,
    HPUX11_SIZE_T_FIXIDX,
    HPUX11_UINT32_C_FIXIDX,
    HPUX11_VSNPRINTF_FIXIDX,
    HPUX8_BOGUS_INLINES_FIXIDX,
    HPUX_MAXINT_FIXIDX,
    HPUX_SYSTIME_FIXIDX,
    INT_ABORT_FREE_AND_EXIT_FIXIDX,
    IO_QUOTES_DEF_FIXIDX,
    IO_QUOTES_USE_FIXIDX,
    IP_MISSING_SEMI_FIXIDX,
    IRIX_ASM_APOSTROPHE_FIXIDX,
    IRIX_LIMITS_CONST_FIXIDX,
    IRIX_STDIO_VA_LIST_FIXIDX,
    ISC_FMOD_FIXIDX,
    ISC_OMITS_WITH_STDC_FIXIDX,
    KANDR_CONCAT_FIXIDX,
    LIBC1_IFDEFD_MEMX_FIXIDX,
    LIMITS_IFNDEFS_FIXIDX,
    LYNX_VOID_INT_FIXIDX,
    LYNXOS_FCNTL_PROTO_FIXIDX,
    M88K_BAD_HYPOT_OPT_FIXIDX,
    M88K_BAD_S_IF_FIXIDX,
    M88K_MULTI_INCL_FIXIDX,
    MACHINE_ANSI_H_VA_LIST_FIXIDX,
    MACHINE_NAME_FIXIDX,
    MATH_EXCEPTION_FIXIDX,
    MATH_HUGE_VAL_FROM_DBL_MAX_FIXIDX,
    MATH_HUGE_VAL_IFNDEF_FIXIDX,
    NESTED_AUTH_DES_FIXIDX,
    NESTED_MOTOROLA_FIXIDX,
    NESTED_SYS_LIMITS_FIXIDX,
    NEWS_OS_RECURSION_FIXIDX,
    NEXT_MATH_PREFIX_FIXIDX,
    NEXT_TEMPLATE_FIXIDX,
    NEXT_VOLITILE_FIXIDX,
    NEXT_WAIT_UNION_FIXIDX,
    NODEENT_SYNTAX_FIXIDX,
    OSF_NAMESPACE_A_FIXIDX,
    OSF_NAMESPACE_C_FIXIDX,
    PTHREAD_PAGE_SIZE_FIXIDX,
    READ_RET_TYPE_FIXIDX,
    RS6000_DOUBLE_FIXIDX,
    RS6000_FCHMOD_FIXIDX,
    RS6000_PARAM_FIXIDX,
    SCO_STATIC_FUNC_FIXIDX,
    SCO_UTIME_FIXIDX,
    SOLARIS_MUTEX_INIT_FIXIDX,
    STATSSWTCH_FIXIDX,
    STDIO_STDARG_H_FIXIDX,
    STDIO_VA_LIST_FIXIDX,
    STRICT_ANSI_NOT_FIXIDX,
    STRICT_ANSI_NOT_CTD_FIXIDX,
    STRICT_ANSI_ONLY_FIXIDX,
    STRUCT_FILE_FIXIDX,
    STRUCT_SOCKADDR_FIXIDX,
    SUN_AUTH_PROTO_FIXIDX,
    SUN_BOGUS_IFDEF_FIXIDX,
    SUN_CATMACRO_FIXIDX,
    SUN_MALLOC_FIXIDX,
    SUN_RUSERS_SEMI_FIXIDX,
    SUN_SIGNAL_FIXIDX,
    SUNOS_MATHERR_DECL_FIXIDX,
    SUNOS_STRLEN_FIXIDX,
    SVR4__P_FIXIDX,
    SVR4_GETCWD_FIXIDX,
    SVR4_PROFIL_FIXIDX,
    SYSV68_STRING_FIXIDX,
    SYSZ_STDLIB_FOR_SUN_FIXIDX,
    TINFO_CPLUSPLUS_FIXIDX,
    ULTRIX_ATEXIT_PARAM_FIXIDX,
    ULTRIX_ATOF_PARAM_FIXIDX,
    ULTRIX_CONST_FIXIDX,
    ULTRIX_CONST2_FIXIDX,
    ULTRIX_FIX_FIXPROTO_FIXIDX,
    ULTRIX_IFDEF_FIXIDX,
    ULTRIX_MATH_IFDEF_FIXIDX,
    ULTRIX_NESTED_IOCTL_FIXIDX,
    ULTRIX_NESTED_SVC_FIXIDX,
    ULTRIX_STAT_FIXIDX,
    ULTRIX_STATIC_FIXIDX,
    ULTRIX_STRINGS_FIXIDX,
    UNDEFINE_NULL_FIXIDX,
    UNICOSMK_RESTRICT_FIXIDX,
    UW7_BYTEORDER_FIX_FIXIDX,
    VA_I960_MACRO_FIXIDX,
    VOID_NULL_FIXIDX,
    VXWORKS_GCC_PROBLEM_FIXIDX,
    VXWORKS_NEEDS_VXTYPES_FIXIDX,
    VXWORKS_NEEDS_VXWORKS_FIXIDX,
    VXWORKS_TIME_FIXIDX,
    X11_CLASS_FIXIDX,
    X11_CLASS_USAGE_FIXIDX,
    X11_NEW_FIXIDX,
    X11_SPRINTF_FIXIDX
} t_fixinc_idx;

tFixDesc fixDescList[ FIX_COUNT ] = {
  {  zAab_Dgux_Int_VarargsName,    zAab_Dgux_Int_VarargsList,
     apzAab_Dgux_Int_VarargsMachs,
     AAB_DGUX_INT_VARARGS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Dgux_Int_VarargsTests,   apzAab_Dgux_Int_VarargsPatch, 0 },

  {  zAab_Fd_Zero_Asm_Posix_Types_HName,    zAab_Fd_Zero_Asm_Posix_Types_HList,
     apzAab_Fd_Zero_Asm_Posix_Types_HMachs,
     AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Fd_Zero_Asm_Posix_Types_HTests,   apzAab_Fd_Zero_Asm_Posix_Types_HPatch, 0 },

  {  zAab_Fd_Zero_Gnu_Types_HName,    zAab_Fd_Zero_Gnu_Types_HList,
     apzAab_Fd_Zero_Gnu_Types_HMachs,
     AAB_FD_ZERO_GNU_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Fd_Zero_Gnu_Types_HTests,   apzAab_Fd_Zero_Gnu_Types_HPatch, 0 },

  {  zAab_Fd_Zero_Selectbits_HName,    zAab_Fd_Zero_Selectbits_HList,
     apzAab_Fd_Zero_Selectbits_HMachs,
     AAB_FD_ZERO_SELECTBITS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Fd_Zero_Selectbits_HTests,   apzAab_Fd_Zero_Selectbits_HPatch, 0 },

  {  zAab_Sun_MemcpyName,    zAab_Sun_MemcpyList,
     apzAab_Sun_MemcpyMachs,
     AAB_SUN_MEMCPY_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Sun_MemcpyTests,   apzAab_Sun_MemcpyPatch, 0 },

  {  zAab_Svr4_Replace_ByteorderName,    zAab_Svr4_Replace_ByteorderList,
     apzAab_Svr4_Replace_ByteorderMachs,
     AAB_SVR4_REPLACE_BYTEORDER_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Svr4_Replace_ByteorderTests,   apzAab_Svr4_Replace_ByteorderPatch, 0 },

  {  zAab_Ultrix_Ansi_CompatName,    zAab_Ultrix_Ansi_CompatList,
     apzAab_Ultrix_Ansi_CompatMachs,
     AAB_ULTRIX_ANSI_COMPAT_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Ultrix_Ansi_CompatTests,   apzAab_Ultrix_Ansi_CompatPatch, 0 },

  {  zAab_Ultrix_LimitsName,    zAab_Ultrix_LimitsList,
     apzAab_Ultrix_LimitsMachs,
     AAB_ULTRIX_LIMITS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Ultrix_LimitsTests,   apzAab_Ultrix_LimitsPatch, 0 },

  {  zAab_Ultrix_MemoryName,    zAab_Ultrix_MemoryList,
     apzAab_Ultrix_MemoryMachs,
     AAB_ULTRIX_MEMORY_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Ultrix_MemoryTests,   apzAab_Ultrix_MemoryPatch, 0 },

  {  zAab_Ultrix_StringName,    zAab_Ultrix_StringList,
     apzAab_Ultrix_StringMachs,
     AAB_ULTRIX_STRING_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Ultrix_StringTests,   apzAab_Ultrix_StringPatch, 0 },

  {  zAix_PthreadName,    zAix_PthreadList,
     apzAix_PthreadMachs,
     AIX_PTHREAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_PthreadTests,   apzAix_PthreadPatch, 0 },

  {  zAix_SysmachineName,    zAix_SysmachineList,
     apzAix_SysmachineMachs,
     AIX_SYSMACHINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_SysmachineTests,   apzAix_SysmachinePatch, 0 },

  {  zAix_SyswaitName,    zAix_SyswaitList,
     apzAix_SyswaitMachs,
     AIX_SYSWAIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_SyswaitTests,   apzAix_SyswaitPatch, 0 },

  {  zAix_VolatileName,    zAix_VolatileList,
     apzAix_VolatileMachs,
     AIX_VOLATILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_VolatileTests,   apzAix_VolatilePatch, 0 },

  {  zAlpha___AssertName,    zAlpha___AssertList,
     apzAlpha___AssertMachs,
     ALPHA___ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha___AssertTests,   apzAlpha___AssertPatch, 0 },

  {  zAlpha_GetoptName,    zAlpha_GetoptList,
     apzAlpha_GetoptMachs,
     ALPHA_GETOPT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha_GetoptTests,   apzAlpha_GetoptPatch, 0 },

  {  zAlpha_ParensName,    zAlpha_ParensList,
     apzAlpha_ParensMachs,
     ALPHA_PARENS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha_ParensTests,   apzAlpha_ParensPatch, 0 },

  {  zAlpha_SbrkName,    zAlpha_SbrkList,
     apzAlpha_SbrkMachs,
     ALPHA_SBRK_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha_SbrkTests,   apzAlpha_SbrkPatch, 0 },

  {  zArm_Norcroft_HintName,    zArm_Norcroft_HintList,
     apzArm_Norcroft_HintMachs,
     ARM_NORCROFT_HINT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aArm_Norcroft_HintTests,   apzArm_Norcroft_HintPatch, 0 },

  {  zArm_WcharName,    zArm_WcharList,
     apzArm_WcharMachs,
     ARM_WCHAR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aArm_WcharTests,   apzArm_WcharPatch, 0 },

  {  zAux_AsmName,    zAux_AsmList,
     apzAux_AsmMachs,
     AUX_ASM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAux_AsmTests,   apzAux_AsmPatch, 0 },

  {  zAvoid_Bool_DefineName,    zAvoid_Bool_DefineList,
     apzAvoid_Bool_DefineMachs,
     AVOID_BOOL_DEFINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAvoid_Bool_DefineTests,   apzAvoid_Bool_DefinePatch, 0 },

  {  zAvoid_Bool_TypeName,    zAvoid_Bool_TypeList,
     apzAvoid_Bool_TypeMachs,
     AVOID_BOOL_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAvoid_Bool_TypeTests,   apzAvoid_Bool_TypePatch, 0 },

  {  zAvoid_Wchar_T_TypeName,    zAvoid_Wchar_T_TypeList,
     apzAvoid_Wchar_T_TypeMachs,
     AVOID_WCHAR_T_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAvoid_Wchar_T_TypeTests,   apzAvoid_Wchar_T_TypePatch, 0 },

  {  zBad_LvalName,    zBad_LvalList,
     apzBad_LvalMachs,
     BAD_LVAL_TEST_CT, FD_MACH_ONLY,
     aBad_LvalTests,   apzBad_LvalPatch, 0 },

  {  zBad_Struct_TermName,    zBad_Struct_TermList,
     apzBad_Struct_TermMachs,
     BAD_STRUCT_TERM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBad_Struct_TermTests,   apzBad_Struct_TermPatch, 0 },

  {  zBadquoteName,    zBadquoteList,
     apzBadquoteMachs,
     BADQUOTE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBadquoteTests,   apzBadquotePatch, 0 },

  {  zBroken_Assert_StdioName,    zBroken_Assert_StdioList,
     apzBroken_Assert_StdioMachs,
     BROKEN_ASSERT_STDIO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBroken_Assert_StdioTests,   apzBroken_Assert_StdioPatch, 0 },

  {  zBroken_Assert_StdlibName,    zBroken_Assert_StdlibList,
     apzBroken_Assert_StdlibMachs,
     BROKEN_ASSERT_STDLIB_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBroken_Assert_StdlibTests,   apzBroken_Assert_StdlibPatch, 0 },

  {  zBroken_CabsName,    zBroken_CabsList,
     apzBroken_CabsMachs,
     BROKEN_CABS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBroken_CabsTests,   apzBroken_CabsPatch, 0 },

  {  zCtrl_Quotes_DefName,    zCtrl_Quotes_DefList,
     apzCtrl_Quotes_DefMachs,
     CTRL_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aCtrl_Quotes_DefTests,   apzCtrl_Quotes_DefPatch, 0 },

  {  zCtrl_Quotes_UseName,    zCtrl_Quotes_UseList,
     apzCtrl_Quotes_UseMachs,
     CTRL_QUOTES_USE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aCtrl_Quotes_UseTests,   apzCtrl_Quotes_UsePatch, 0 },

  {  zCxx_UnreadyName,    zCxx_UnreadyList,
     apzCxx_UnreadyMachs,
     CXX_UNREADY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aCxx_UnreadyTests,   apzCxx_UnreadyPatch, 0 },

  {  zDec_Intern_AsmName,    zDec_Intern_AsmList,
     apzDec_Intern_AsmMachs,
     DEC_INTERN_ASM_TEST_CT, FD_MACH_ONLY,
     aDec_Intern_AsmTests,   apzDec_Intern_AsmPatch, 0 },

  {  zDjgpp_Wchar_HName,    zDjgpp_Wchar_HList,
     apzDjgpp_Wchar_HMachs,
     DJGPP_WCHAR_H_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDjgpp_Wchar_HTests,   apzDjgpp_Wchar_HPatch, 0 },

  {  zEcd_CursorName,    zEcd_CursorList,
     apzEcd_CursorMachs,
     ECD_CURSOR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aEcd_CursorTests,   apzEcd_CursorPatch, 0 },

  {  zFix_Header_BreakageName,    zFix_Header_BreakageList,
     apzFix_Header_BreakageMachs,
     FIX_HEADER_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aFix_Header_BreakageTests,   apzFix_Header_BreakagePatch, 0 },

  {  zFreebsd_Gcc3_BreakageName,    zFreebsd_Gcc3_BreakageList,
     apzFreebsd_Gcc3_BreakageMachs,
     FREEBSD_GCC3_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aFreebsd_Gcc3_BreakageTests,   apzFreebsd_Gcc3_BreakagePatch, 0 },

  {  zGnu_TypesName,    zGnu_TypesList,
     apzGnu_TypesMachs,
     GNU_TYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGnu_TypesTests,   apzGnu_TypesPatch, 0 },

  {  zHp_InlineName,    zHp_InlineList,
     apzHp_InlineMachs,
     HP_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHp_InlineTests,   apzHp_InlinePatch, 0 },

  {  zHp_SysfileName,    zHp_SysfileList,
     apzHp_SysfileMachs,
     HP_SYSFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHp_SysfileTests,   apzHp_SysfilePatch, 0 },

  {  zHpux10_Cpp_Pow_InlineName,    zHpux10_Cpp_Pow_InlineList,
     apzHpux10_Cpp_Pow_InlineMachs,
     HPUX10_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Cpp_Pow_InlineTests,   apzHpux10_Cpp_Pow_InlinePatch, 0 },

  {  zHpux11_Cpp_Pow_InlineName,    zHpux11_Cpp_Pow_InlineList,
     apzHpux11_Cpp_Pow_InlineMachs,
     HPUX11_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Cpp_Pow_InlineTests,   apzHpux11_Cpp_Pow_InlinePatch, 0 },

  {  zHpux11_FabsfName,    zHpux11_FabsfList,
     apzHpux11_FabsfMachs,
     HPUX11_FABSF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_FabsfTests,   apzHpux11_FabsfPatch, 0 },

  {  zHpux11_Size_TName,    zHpux11_Size_TList,
     apzHpux11_Size_TMachs,
     HPUX11_SIZE_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Size_TTests,   apzHpux11_Size_TPatch, 0 },

  {  zHpux11_Uint32_CName,    zHpux11_Uint32_CList,
     apzHpux11_Uint32_CMachs,
     HPUX11_UINT32_C_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Uint32_CTests,   apzHpux11_Uint32_CPatch, 0 },

  {  zHpux11_VsnprintfName,    zHpux11_VsnprintfList,
     apzHpux11_VsnprintfMachs,
     HPUX11_VSNPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_VsnprintfTests,   apzHpux11_VsnprintfPatch, 0 },

  {  zHpux8_Bogus_InlinesName,    zHpux8_Bogus_InlinesList,
     apzHpux8_Bogus_InlinesMachs,
     HPUX8_BOGUS_INLINES_TEST_CT, FD_MACH_ONLY,
     aHpux8_Bogus_InlinesTests,   apzHpux8_Bogus_InlinesPatch, 0 },

  {  zHpux_MaxintName,    zHpux_MaxintList,
     apzHpux_MaxintMachs,
     HPUX_MAXINT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_MaxintTests,   apzHpux_MaxintPatch, 0 },

  {  zHpux_SystimeName,    zHpux_SystimeList,
     apzHpux_SystimeMachs,
     HPUX_SYSTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_SystimeTests,   apzHpux_SystimePatch, 0 },

  {  zInt_Abort_Free_And_ExitName,    zInt_Abort_Free_And_ExitList,
     apzInt_Abort_Free_And_ExitMachs,
     INT_ABORT_FREE_AND_EXIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aInt_Abort_Free_And_ExitTests,   apzInt_Abort_Free_And_ExitPatch, 0 },

  {  zIo_Quotes_DefName,    zIo_Quotes_DefList,
     apzIo_Quotes_DefMachs,
     IO_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIo_Quotes_DefTests,   apzIo_Quotes_DefPatch, 0 },

  {  zIo_Quotes_UseName,    zIo_Quotes_UseList,
     apzIo_Quotes_UseMachs,
     IO_QUOTES_USE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIo_Quotes_UseTests,   apzIo_Quotes_UsePatch, 0 },

  {  zIp_Missing_SemiName,    zIp_Missing_SemiList,
     apzIp_Missing_SemiMachs,
     IP_MISSING_SEMI_TEST_CT, FD_MACH_ONLY,
     aIp_Missing_SemiTests,   apzIp_Missing_SemiPatch, 0 },

  {  zIrix_Asm_ApostropheName,    zIrix_Asm_ApostropheList,
     apzIrix_Asm_ApostropheMachs,
     IRIX_ASM_APOSTROPHE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIrix_Asm_ApostropheTests,   apzIrix_Asm_ApostrophePatch, 0 },

  {  zIrix_Limits_ConstName,    zIrix_Limits_ConstList,
     apzIrix_Limits_ConstMachs,
     IRIX_LIMITS_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIrix_Limits_ConstTests,   apzIrix_Limits_ConstPatch, 0 },

  {  zIrix_Stdio_Va_ListName,    zIrix_Stdio_Va_ListList,
     apzIrix_Stdio_Va_ListMachs,
     IRIX_STDIO_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIrix_Stdio_Va_ListTests,   apzIrix_Stdio_Va_ListPatch, 0 },

  {  zIsc_FmodName,    zIsc_FmodList,
     apzIsc_FmodMachs,
     ISC_FMOD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIsc_FmodTests,   apzIsc_FmodPatch, 0 },

  {  zIsc_Omits_With_StdcName,    zIsc_Omits_With_StdcList,
     apzIsc_Omits_With_StdcMachs,
     ISC_OMITS_WITH_STDC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIsc_Omits_With_StdcTests,   apzIsc_Omits_With_StdcPatch, 0 },

  {  zKandr_ConcatName,    zKandr_ConcatList,
     apzKandr_ConcatMachs,
     KANDR_CONCAT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aKandr_ConcatTests,   apzKandr_ConcatPatch, 0 },

  {  zLibc1_Ifdefd_MemxName,    zLibc1_Ifdefd_MemxList,
     apzLibc1_Ifdefd_MemxMachs,
     LIBC1_IFDEFD_MEMX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aLibc1_Ifdefd_MemxTests,   apzLibc1_Ifdefd_MemxPatch, 0 },

  {  zLimits_IfndefsName,    zLimits_IfndefsList,
     apzLimits_IfndefsMachs,
     LIMITS_IFNDEFS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aLimits_IfndefsTests,   apzLimits_IfndefsPatch, 0 },

  {  zLynx_Void_IntName,    zLynx_Void_IntList,
     apzLynx_Void_IntMachs,
     LYNX_VOID_INT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aLynx_Void_IntTests,   apzLynx_Void_IntPatch, 0 },

  {  zLynxos_Fcntl_ProtoName,    zLynxos_Fcntl_ProtoList,
     apzLynxos_Fcntl_ProtoMachs,
     LYNXOS_FCNTL_PROTO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aLynxos_Fcntl_ProtoTests,   apzLynxos_Fcntl_ProtoPatch, 0 },

  {  zM88k_Bad_Hypot_OptName,    zM88k_Bad_Hypot_OptList,
     apzM88k_Bad_Hypot_OptMachs,
     M88K_BAD_HYPOT_OPT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aM88k_Bad_Hypot_OptTests,   apzM88k_Bad_Hypot_OptPatch, 0 },

  {  zM88k_Bad_S_IfName,    zM88k_Bad_S_IfList,
     apzM88k_Bad_S_IfMachs,
     M88K_BAD_S_IF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aM88k_Bad_S_IfTests,   apzM88k_Bad_S_IfPatch, 0 },

  {  zM88k_Multi_InclName,    zM88k_Multi_InclList,
     apzM88k_Multi_InclMachs,
     M88K_MULTI_INCL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aM88k_Multi_InclTests,   apzM88k_Multi_InclPatch, 0 },

  {  zMachine_Ansi_H_Va_ListName,    zMachine_Ansi_H_Va_ListList,
     apzMachine_Ansi_H_Va_ListMachs,
     MACHINE_ANSI_H_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aMachine_Ansi_H_Va_ListTests,   apzMachine_Ansi_H_Va_ListPatch, 0 },

  {  zMachine_NameName,    zMachine_NameList,
     apzMachine_NameMachs,
     MACHINE_NAME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aMachine_NameTests,   apzMachine_NamePatch, 0 },

  {  zMath_ExceptionName,    zMath_ExceptionList,
     apzMath_ExceptionMachs,
     MATH_EXCEPTION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aMath_ExceptionTests,   apzMath_ExceptionPatch, 0 },

  {  zMath_Huge_Val_From_Dbl_MaxName,    zMath_Huge_Val_From_Dbl_MaxList,
     apzMath_Huge_Val_From_Dbl_MaxMachs,
     MATH_HUGE_VAL_FROM_DBL_MAX_TEST_CT, FD_MACH_ONLY | FD_SHELL_SCRIPT,
     aMath_Huge_Val_From_Dbl_MaxTests,   apzMath_Huge_Val_From_Dbl_MaxPatch, 0 },

  {  zMath_Huge_Val_IfndefName,    zMath_Huge_Val_IfndefList,
     apzMath_Huge_Val_IfndefMachs,
     MATH_HUGE_VAL_IFNDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aMath_Huge_Val_IfndefTests,   apzMath_Huge_Val_IfndefPatch, 0 },

  {  zNested_Auth_DesName,    zNested_Auth_DesList,
     apzNested_Auth_DesMachs,
     NESTED_AUTH_DES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNested_Auth_DesTests,   apzNested_Auth_DesPatch, 0 },

  {  zNested_MotorolaName,    zNested_MotorolaList,
     apzNested_MotorolaMachs,
     NESTED_MOTOROLA_TEST_CT, FD_MACH_ONLY,
     aNested_MotorolaTests,   apzNested_MotorolaPatch, 0 },

  {  zNested_Sys_LimitsName,    zNested_Sys_LimitsList,
     apzNested_Sys_LimitsMachs,
     NESTED_SYS_LIMITS_TEST_CT, FD_MACH_ONLY,
     aNested_Sys_LimitsTests,   apzNested_Sys_LimitsPatch, 0 },

  {  zNews_Os_RecursionName,    zNews_Os_RecursionList,
     apzNews_Os_RecursionMachs,
     NEWS_OS_RECURSION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNews_Os_RecursionTests,   apzNews_Os_RecursionPatch, 0 },

  {  zNext_Math_PrefixName,    zNext_Math_PrefixList,
     apzNext_Math_PrefixMachs,
     NEXT_MATH_PREFIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNext_Math_PrefixTests,   apzNext_Math_PrefixPatch, 0 },

  {  zNext_TemplateName,    zNext_TemplateList,
     apzNext_TemplateMachs,
     NEXT_TEMPLATE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNext_TemplateTests,   apzNext_TemplatePatch, 0 },

  {  zNext_VolitileName,    zNext_VolitileList,
     apzNext_VolitileMachs,
     NEXT_VOLITILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNext_VolitileTests,   apzNext_VolitilePatch, 0 },

  {  zNext_Wait_UnionName,    zNext_Wait_UnionList,
     apzNext_Wait_UnionMachs,
     NEXT_WAIT_UNION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNext_Wait_UnionTests,   apzNext_Wait_UnionPatch, 0 },

  {  zNodeent_SyntaxName,    zNodeent_SyntaxList,
     apzNodeent_SyntaxMachs,
     NODEENT_SYNTAX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNodeent_SyntaxTests,   apzNodeent_SyntaxPatch, 0 },

  {  zOsf_Namespace_AName,    zOsf_Namespace_AList,
     apzOsf_Namespace_AMachs,
     OSF_NAMESPACE_A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aOsf_Namespace_ATests,   apzOsf_Namespace_APatch, 0 },

  {  zOsf_Namespace_CName,    zOsf_Namespace_CList,
     apzOsf_Namespace_CMachs,
     OSF_NAMESPACE_C_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aOsf_Namespace_CTests,   apzOsf_Namespace_CPatch, 0 },

  {  zPthread_Page_SizeName,    zPthread_Page_SizeList,
     apzPthread_Page_SizeMachs,
     PTHREAD_PAGE_SIZE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aPthread_Page_SizeTests,   apzPthread_Page_SizePatch, 0 },

  {  zRead_Ret_TypeName,    zRead_Ret_TypeList,
     apzRead_Ret_TypeMachs,
     READ_RET_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRead_Ret_TypeTests,   apzRead_Ret_TypePatch, 0 },

  {  zRs6000_DoubleName,    zRs6000_DoubleList,
     apzRs6000_DoubleMachs,
     RS6000_DOUBLE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRs6000_DoubleTests,   apzRs6000_DoublePatch, 0 },

  {  zRs6000_FchmodName,    zRs6000_FchmodList,
     apzRs6000_FchmodMachs,
     RS6000_FCHMOD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRs6000_FchmodTests,   apzRs6000_FchmodPatch, 0 },

  {  zRs6000_ParamName,    zRs6000_ParamList,
     apzRs6000_ParamMachs,
     RS6000_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRs6000_ParamTests,   apzRs6000_ParamPatch, 0 },

  {  zSco_Static_FuncName,    zSco_Static_FuncList,
     apzSco_Static_FuncMachs,
     SCO_STATIC_FUNC_TEST_CT, FD_MACH_ONLY,
     aSco_Static_FuncTests,   apzSco_Static_FuncPatch, 0 },

  {  zSco_UtimeName,    zSco_UtimeList,
     apzSco_UtimeMachs,
     SCO_UTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSco_UtimeTests,   apzSco_UtimePatch, 0 },

  {  zSolaris_Mutex_InitName,    zSolaris_Mutex_InitList,
     apzSolaris_Mutex_InitMachs,
     SOLARIS_MUTEX_INIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Mutex_InitTests,   apzSolaris_Mutex_InitPatch, 0 },

  {  zStatsswtchName,    zStatsswtchList,
     apzStatsswtchMachs,
     STATSSWTCH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStatsswtchTests,   apzStatsswtchPatch, 0 },

  {  zStdio_Stdarg_HName,    zStdio_Stdarg_HList,
     apzStdio_Stdarg_HMachs,
     STDIO_STDARG_H_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStdio_Stdarg_HTests,   apzStdio_Stdarg_HPatch, 0 },

  {  zStdio_Va_ListName,    zStdio_Va_ListList,
     apzStdio_Va_ListMachs,
     STDIO_VA_LIST_TEST_CT, FD_MACH_ONLY,
     aStdio_Va_ListTests,   apzStdio_Va_ListPatch, 0 },

  {  zStrict_Ansi_NotName,    zStrict_Ansi_NotList,
     apzStrict_Ansi_NotMachs,
     STRICT_ANSI_NOT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStrict_Ansi_NotTests,   apzStrict_Ansi_NotPatch, 0 },

  {  zStrict_Ansi_Not_CtdName,    zStrict_Ansi_Not_CtdList,
     apzStrict_Ansi_Not_CtdMachs,
     STRICT_ANSI_NOT_CTD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStrict_Ansi_Not_CtdTests,   apzStrict_Ansi_Not_CtdPatch, 0 },

  {  zStrict_Ansi_OnlyName,    zStrict_Ansi_OnlyList,
     apzStrict_Ansi_OnlyMachs,
     STRICT_ANSI_ONLY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStrict_Ansi_OnlyTests,   apzStrict_Ansi_OnlyPatch, 0 },

  {  zStruct_FileName,    zStruct_FileList,
     apzStruct_FileMachs,
     STRUCT_FILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStruct_FileTests,   apzStruct_FilePatch, 0 },

  {  zStruct_SockaddrName,    zStruct_SockaddrList,
     apzStruct_SockaddrMachs,
     STRUCT_SOCKADDR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aStruct_SockaddrTests,   apzStruct_SockaddrPatch, 0 },

  {  zSun_Auth_ProtoName,    zSun_Auth_ProtoList,
     apzSun_Auth_ProtoMachs,
     SUN_AUTH_PROTO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSun_Auth_ProtoTests,   apzSun_Auth_ProtoPatch, 0 },

  {  zSun_Bogus_IfdefName,    zSun_Bogus_IfdefList,
     apzSun_Bogus_IfdefMachs,
     SUN_BOGUS_IFDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSun_Bogus_IfdefTests,   apzSun_Bogus_IfdefPatch, 0 },

  {  zSun_CatmacroName,    zSun_CatmacroList,
     apzSun_CatmacroMachs,
     SUN_CATMACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSun_CatmacroTests,   apzSun_CatmacroPatch, 0 },

  {  zSun_MallocName,    zSun_MallocList,
     apzSun_MallocMachs,
     SUN_MALLOC_TEST_CT, FD_MACH_ONLY,
     aSun_MallocTests,   apzSun_MallocPatch, 0 },

  {  zSun_Rusers_SemiName,    zSun_Rusers_SemiList,
     apzSun_Rusers_SemiMachs,
     SUN_RUSERS_SEMI_TEST_CT, FD_MACH_ONLY,
     aSun_Rusers_SemiTests,   apzSun_Rusers_SemiPatch, 0 },

  {  zSun_SignalName,    zSun_SignalList,
     apzSun_SignalMachs,
     SUN_SIGNAL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSun_SignalTests,   apzSun_SignalPatch, 0 },

  {  zSunos_Matherr_DeclName,    zSunos_Matherr_DeclList,
     apzSunos_Matherr_DeclMachs,
     SUNOS_MATHERR_DECL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSunos_Matherr_DeclTests,   apzSunos_Matherr_DeclPatch, 0 },

  {  zSunos_StrlenName,    zSunos_StrlenList,
     apzSunos_StrlenMachs,
     SUNOS_STRLEN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSunos_StrlenTests,   apzSunos_StrlenPatch, 0 },

  {  zSvr4__PName,    zSvr4__PList,
     apzSvr4__PMachs,
     SVR4__P_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4__PTests,   apzSvr4__PPatch, 0 },

  {  zSvr4_GetcwdName,    zSvr4_GetcwdList,
     apzSvr4_GetcwdMachs,
     SVR4_GETCWD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4_GetcwdTests,   apzSvr4_GetcwdPatch, 0 },

  {  zSvr4_ProfilName,    zSvr4_ProfilList,
     apzSvr4_ProfilMachs,
     SVR4_PROFIL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4_ProfilTests,   apzSvr4_ProfilPatch, 0 },

  {  zSysv68_StringName,    zSysv68_StringList,
     apzSysv68_StringMachs,
     SYSV68_STRING_TEST_CT, FD_MACH_ONLY,
     aSysv68_StringTests,   apzSysv68_StringPatch, 0 },

  {  zSysz_Stdlib_For_SunName,    zSysz_Stdlib_For_SunList,
     apzSysz_Stdlib_For_SunMachs,
     SYSZ_STDLIB_FOR_SUN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSysz_Stdlib_For_SunTests,   apzSysz_Stdlib_For_SunPatch, 0 },

  {  zTinfo_CplusplusName,    zTinfo_CplusplusList,
     apzTinfo_CplusplusMachs,
     TINFO_CPLUSPLUS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aTinfo_CplusplusTests,   apzTinfo_CplusplusPatch, 0 },

  {  zUltrix_Atexit_ParamName,    zUltrix_Atexit_ParamList,
     apzUltrix_Atexit_ParamMachs,
     ULTRIX_ATEXIT_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_Atexit_ParamTests,   apzUltrix_Atexit_ParamPatch, 0 },

  {  zUltrix_Atof_ParamName,    zUltrix_Atof_ParamList,
     apzUltrix_Atof_ParamMachs,
     ULTRIX_ATOF_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_Atof_ParamTests,   apzUltrix_Atof_ParamPatch, 0 },

  {  zUltrix_ConstName,    zUltrix_ConstList,
     apzUltrix_ConstMachs,
     ULTRIX_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_ConstTests,   apzUltrix_ConstPatch, 0 },

  {  zUltrix_Const2Name,    zUltrix_Const2List,
     apzUltrix_Const2Machs,
     ULTRIX_CONST2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_Const2Tests,   apzUltrix_Const2Patch, 0 },

  {  zUltrix_Fix_FixprotoName,    zUltrix_Fix_FixprotoList,
     apzUltrix_Fix_FixprotoMachs,
     ULTRIX_FIX_FIXPROTO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_Fix_FixprotoTests,   apzUltrix_Fix_FixprotoPatch, 0 },

  {  zUltrix_IfdefName,    zUltrix_IfdefList,
     apzUltrix_IfdefMachs,
     ULTRIX_IFDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_IfdefTests,   apzUltrix_IfdefPatch, 0 },

  {  zUltrix_Math_IfdefName,    zUltrix_Math_IfdefList,
     apzUltrix_Math_IfdefMachs,
     ULTRIX_MATH_IFDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_Math_IfdefTests,   apzUltrix_Math_IfdefPatch, 0 },

  {  zUltrix_Nested_IoctlName,    zUltrix_Nested_IoctlList,
     apzUltrix_Nested_IoctlMachs,
     ULTRIX_NESTED_IOCTL_TEST_CT, FD_MACH_ONLY,
     aUltrix_Nested_IoctlTests,   apzUltrix_Nested_IoctlPatch, 0 },

  {  zUltrix_Nested_SvcName,    zUltrix_Nested_SvcList,
     apzUltrix_Nested_SvcMachs,
     ULTRIX_NESTED_SVC_TEST_CT, FD_MACH_ONLY,
     aUltrix_Nested_SvcTests,   apzUltrix_Nested_SvcPatch, 0 },

  {  zUltrix_StatName,    zUltrix_StatList,
     apzUltrix_StatMachs,
     ULTRIX_STAT_TEST_CT, FD_MACH_ONLY,
     aUltrix_StatTests,   apzUltrix_StatPatch, 0 },

  {  zUltrix_StaticName,    zUltrix_StaticList,
     apzUltrix_StaticMachs,
     ULTRIX_STATIC_TEST_CT, FD_MACH_ONLY,
     aUltrix_StaticTests,   apzUltrix_StaticPatch, 0 },

  {  zUltrix_StringsName,    zUltrix_StringsList,
     apzUltrix_StringsMachs,
     ULTRIX_STRINGS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_StringsTests,   apzUltrix_StringsPatch, 0 },

  {  zUndefine_NullName,    zUndefine_NullList,
     apzUndefine_NullMachs,
     UNDEFINE_NULL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUndefine_NullTests,   apzUndefine_NullPatch, 0 },

  {  zUnicosmk_RestrictName,    zUnicosmk_RestrictList,
     apzUnicosmk_RestrictMachs,
     UNICOSMK_RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUnicosmk_RestrictTests,   apzUnicosmk_RestrictPatch, 0 },

  {  zUw7_Byteorder_FixName,    zUw7_Byteorder_FixList,
     apzUw7_Byteorder_FixMachs,
     UW7_BYTEORDER_FIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUw7_Byteorder_FixTests,   apzUw7_Byteorder_FixPatch, 0 },

  {  zVa_I960_MacroName,    zVa_I960_MacroList,
     apzVa_I960_MacroMachs,
     VA_I960_MACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVa_I960_MacroTests,   apzVa_I960_MacroPatch, 0 },

  {  zVoid_NullName,    zVoid_NullList,
     apzVoid_NullMachs,
     VOID_NULL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVoid_NullTests,   apzVoid_NullPatch, 0 },

  {  zVxworks_Gcc_ProblemName,    zVxworks_Gcc_ProblemList,
     apzVxworks_Gcc_ProblemMachs,
     VXWORKS_GCC_PROBLEM_TEST_CT, FD_MACH_ONLY,
     aVxworks_Gcc_ProblemTests,   apzVxworks_Gcc_ProblemPatch, 0 },

  {  zVxworks_Needs_VxtypesName,    zVxworks_Needs_VxtypesList,
     apzVxworks_Needs_VxtypesMachs,
     VXWORKS_NEEDS_VXTYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_Needs_VxtypesTests,   apzVxworks_Needs_VxtypesPatch, 0 },

  {  zVxworks_Needs_VxworksName,    zVxworks_Needs_VxworksList,
     apzVxworks_Needs_VxworksMachs,
     VXWORKS_NEEDS_VXWORKS_TEST_CT, FD_MACH_ONLY,
     aVxworks_Needs_VxworksTests,   apzVxworks_Needs_VxworksPatch, 0 },

  {  zVxworks_TimeName,    zVxworks_TimeList,
     apzVxworks_TimeMachs,
     VXWORKS_TIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aVxworks_TimeTests,   apzVxworks_TimePatch, 0 },

  {  zX11_ClassName,    zX11_ClassList,
     apzX11_ClassMachs,
     X11_CLASS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aX11_ClassTests,   apzX11_ClassPatch, 0 },

  {  zX11_Class_UsageName,    zX11_Class_UsageList,
     apzX11_Class_UsageMachs,
     X11_CLASS_USAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aX11_Class_UsageTests,   apzX11_Class_UsagePatch, 0 },

  {  zX11_NewName,    zX11_NewList,
     apzX11_NewMachs,
     X11_NEW_TEST_CT, FD_MACH_ONLY,
     aX11_NewTests,   apzX11_NewPatch, 0 },

  {  zX11_SprintfName,    zX11_SprintfList,
     apzX11_SprintfMachs,
     X11_SPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aX11_SprintfTests,   apzX11_SprintfPatch, 0 }
};
