/*  -*- buffer-read-only: t -*- vi: set ro:
 * 
 * DO NOT EDIT THIS FILE   (fixincl.x)
 * 
 * It has been AutoGen-ed  Friday July 17, 2009 at 11:13:21 AM CEST
 * From the definitions    inclhack.def
 * and the template file   fixincl
 */
/* DO NOT SVN-MERGE THIS FILE, EITHER Fri Jul 17 11:13:21 CEST 2009
 *
 * You must regenerate it.  Use the ./genfixes script.
 *
 *
 * This is part of the fixincl program used to 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 217 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_Darwin7_9_Long_Double_Funcs fix
 */
tSCC zAab_Darwin7_9_Long_Double_FuncsName[] =
     "AAB_darwin7_9_long_double_funcs";

/*
 *  File name selection pattern
 */
tSCC zAab_Darwin7_9_Long_Double_FuncsList[] =
  "architecture/ppc/math.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Darwin7_9_Long_Double_FuncsMachs[] = {
        "*-*-darwin7.9*",
        (const char*)NULL };

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

#define    AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT  1
static tTestDesc aAab_Darwin7_9_Long_Double_FuncsTests[] = {
  { TT_NEGREP,   zAab_Darwin7_9_Long_Double_FuncsBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aab_Darwin7_9_Long_Double_Funcs
 */
static const char* apzAab_Darwin7_9_Long_Double_FuncsPatch[] = {
"/* This file prototypes the long double functions available on Mac OS\n\
   10.3.9.  */\n\
#ifndef __MATH__\n\
# undef __APPLE_CC__\n\
# define __APPLE_CC__  1345\n\
# include_next <architecture/ppc/math.h>\n\
# undef __APPLE_CC__\n\
# define __APPLE_CC__ 1\n\
# ifndef __LIBMLDBL_COMPAT\n\
#  ifdef __LONG_DOUBLE_128__\n\
#   define __LIBMLDBL_COMPAT(sym) __asm(\"_\" #sym \"$LDBL128\")\n\
#  else\n\
#   define __LIBMLDBL_COMPAT(sym)\n\
#  endif /* __LONG_DOUBLE_128__ */\n\
# endif /* __LIBMLDBL_COMPAT */\n\
# ifdef __cplusplus\n\
   extern \"C\" {\n\
# endif\n\
  extern long double acosl( long double ) __LIBMLDBL_COMPAT(acosl);\n\
  extern long double asinl( long double ) __LIBMLDBL_COMPAT(asinl);\n\
  extern long double atanl( long double ) __LIBMLDBL_COMPAT(atanl);\n\
  extern long double atan2l( long double, long double ) __LIBMLDBL_COMPAT(atan2l);\n\
  extern long double cosl( long double ) __LIBMLDBL_COMPAT(cosl);\n\
  extern long double sinl( long double ) __LIBMLDBL_COMPAT(sinl);\n\
  extern long double tanl( long double ) __LIBMLDBL_COMPAT(tanl);\n\
  extern long double acoshl( long double ) __LIBMLDBL_COMPAT(acoshl);\n\
  extern long double asinhl( long double ) __LIBMLDBL_COMPAT(asinhl);\n\
  extern long double atanhl( long double ) __LIBMLDBL_COMPAT(atanhl);\n\
  extern long double coshl( long double ) __LIBMLDBL_COMPAT(coshl);\n\
  extern long double sinhl( long double ) __LIBMLDBL_COMPAT(sinhl);\n\
  extern long double tanhl( long double ) __LIBMLDBL_COMPAT(tanhl);\n\
  extern long double expl( long double ) __LIBMLDBL_COMPAT(expl);\n\
  extern long double exp2l( long double ) __LIBMLDBL_COMPAT(exp2l);\n\
  extern long double expm1l( long double ) __LIBMLDBL_COMPAT(expm1l);\n\
  extern long double logl( long double ) __LIBMLDBL_COMPAT(logl);\n\
  extern long double log10l( long double ) __LIBMLDBL_COMPAT(log10l);\n\
  extern long double log2l( long double ) __LIBMLDBL_COMPAT(log2l);\n\
  extern long double log1pl( long double ) __LIBMLDBL_COMPAT(log1pl);\n\
  extern long double logbl( long double ) __LIBMLDBL_COMPAT(logbl);\n\
  extern long double modfl( long double, long double * ) __LIBMLDBL_COMPAT(modfl);\n\
  extern long double ldexpl( long double, int ) __LIBMLDBL_COMPAT(ldexpl);\n\
  extern long double frexpl( long double, int * ) __LIBMLDBL_COMPAT(frexpl);\n\
  extern int ilogbl( long double ) __LIBMLDBL_COMPAT(ilogbl);\n\
  extern long double scalbnl( long double, int ) __LIBMLDBL_COMPAT(scalbnl);\n\
  extern long double scalblnl( long double, long int ) __LIBMLDBL_COMPAT(scalblnl);\n\
  extern long double fabsl( long double ) __LIBMLDBL_COMPAT(fabsl);\n\
  extern long double cbrtl( long double ) __LIBMLDBL_COMPAT(cbrtl);\n\
  extern long double hypotl( long double, long double ) __LIBMLDBL_COMPAT(hypotl);\n\
  extern long double powl( long double, long double ) __LIBMLDBL_COMPAT(powl);\n\
  extern long double sqrtl( long double ) __LIBMLDBL_COMPAT(sqrtl);\n\
  extern long double erfl( long double ) __LIBMLDBL_COMPAT(erfl);\n\
  extern long double erfcl( long double ) __LIBMLDBL_COMPAT(erfcl);\n\
  extern long double lgammal( long double ) __LIBMLDBL_COMPAT(lgammal);\n\
  extern long double tgammal( long double ) __LIBMLDBL_COMPAT(tgammal);\n\
  extern long double ceill( long double ) __LIBMLDBL_COMPAT(ceill);\n\
  extern long double floorl( long double ) __LIBMLDBL_COMPAT(floorl);\n\
  extern long double nearbyintl( long double ) __LIBMLDBL_COMPAT(nearbyintl);\n\
  extern long double rintl( long double ) __LIBMLDBL_COMPAT(rintl);\n\
  extern long int lrintl( long double ) __LIBMLDBL_COMPAT(lrintl);\n\
  extern long long int llrintl( long double ) __LIBMLDBL_COMPAT(llrintl);\n\
  extern long double roundl( long double ) __LIBMLDBL_COMPAT(roundl);\n\
  extern long int lroundl( long double ) __LIBMLDBL_COMPAT(lroundl);\n\
  extern long long int llroundl( long double ) __LIBMLDBL_COMPAT(llroundl);\n\
  extern long double truncl( long double ) __LIBMLDBL_COMPAT(truncl);\n\
  extern long double fmodl( long double, long double) __LIBMLDBL_COMPAT(fmodl);\n\
  extern long double remainderl( long double, long double ) __LIBMLDBL_COMPAT(remainderl);\n\
  extern long double remquol( long double, long double, int * ) __LIBMLDBL_COMPAT(remquol);\n\
  extern long double copysignl( long double, long double ) __LIBMLDBL_COMPAT(copysignl);\n\
  extern long double nanl( const char * ) __LIBMLDBL_COMPAT(nanl);\n\
  extern long double nextafterl( long double, long double ) __LIBMLDBL_COMPAT(nextafterl);\n\
  extern long double nexttowardl( long double, long double ) __LIBMLDBL_COMPAT(nexttowardl);\n\
  extern long double fdiml( long double, long double ) __LIBMLDBL_COMPAT(fdiml);\n\
  extern long double fmaxl( long double, long double ) __LIBMLDBL_COMPAT(fmaxl);\n\
  extern long double fminl( long double, long double ) __LIBMLDBL_COMPAT(fminl);\n\
  extern long double fmal( long double, long double, long double ) __LIBMLDBL_COMPAT(fmal);\n\
# ifdef __cplusplus\n\
   }\n\
# endif\n\
#endif /* __MATH__ */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Darwin7_9_Long_Double_Funcs_2 fix
 */
tSCC zAab_Darwin7_9_Long_Double_Funcs_2Name[] =
     "AAB_darwin7_9_long_double_funcs_2";

/*
 *  File name selection pattern
 */
tSCC zAab_Darwin7_9_Long_Double_Funcs_2List[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Darwin7_9_Long_Double_Funcs_2Machs[] = {
        "*-*-darwin7.9*",
        (const char*)NULL };

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

#define    AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_2_TEST_CT  1
static tTestDesc aAab_Darwin7_9_Long_Double_Funcs_2Tests[] = {
  { TT_EGREP,    zAab_Darwin7_9_Long_Double_Funcs_2Select0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Darwin_Fenv_H fix
 */
tSCC zAab_Darwin_Fenv_HName[] =
     "AAB_darwin_fenv_h";

/*
 *  File name selection pattern
 */
tSCC zAab_Darwin_Fenv_HList[] =
  "fenv.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Darwin_Fenv_HMachs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAab_Darwin_Fenv_HBypass0[] =
       "#pragma GCC fenv";

#define    AAB_DARWIN_FENV_H_TEST_CT  1
static tTestDesc aAab_Darwin_Fenv_HTests[] = {
  { TT_NEGREP,   zAab_Darwin_Fenv_HBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Aab_Darwin_Fenv_H
 */
static const char* apzAab_Darwin_Fenv_HPatch[] = {
"/* This file is a backwards compability hack to allow \n\
   no-trapping-math to be the default.  */\n\
#ifndef _DARWIN_FENV_H_WRAPPER\n\
#if defined(__GNUC__) && __GNUC__ >= 4\n\
#pragma GCC fenv\n\
#endif\n\
#include_next <fenv.h>\n\
#define _DARWIN_FENV_H_WRAPPER\n\
#endif /* _DARWIN_FENV_H_WRAPPER */",
    (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\0";
/*
 *  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";
tSCC zAab_Fd_Zero_Asm_Posix_Types_HBypass1[] =
       "x86_64";

#define    AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT  2
static tTestDesc aAab_Fd_Zero_Asm_Posix_Types_HTests[] = {
  { TT_NEGREP,   zAab_Fd_Zero_Asm_Posix_Types_HBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zAab_Fd_Zero_Asm_Posix_Types_HBypass1, (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\0";
/*
 *  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\
        __asm__ __volatile__(\"cld ; rep ; stosl\" \\\n\
        : \"=&c\" (__d0), \"=&D\" (__d1) \\\n\
        : \"a\" (0), \"0\" (__FDSET_LONGS), \\\n\
          \"1\" ((__fd_set *) (fdsetp)) :\"memory\"); \\\n\
  } while (0)\n\
#endif\n\n\
#define _TYPES_H_WRAPPER\n\
#endif /* _TYPES_H_WRAPPER */",
    (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\0";
/*
 *  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\
  && defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \\\\\n\
  && __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 */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Aab_Solaris_Sys_Varargs_H fix
 */
tSCC zAab_Solaris_Sys_Varargs_HName[] =
     "AAB_solaris_sys_varargs_h";

/*
 *  File name selection pattern
 */
tSCC zAab_Solaris_Sys_Varargs_HList[] =
  "sys/varargs.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAab_Solaris_Sys_Varargs_HMachs[] = {
        "*-*-solaris*",
        (const char*)NULL };
#define AAB_SOLARIS_SYS_VARARGS_H_TEST_CT  0
#define aAab_Solaris_Sys_Varargs_HTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Aab_Solaris_Sys_Varargs_H
 */
static const char* apzAab_Solaris_Sys_Varargs_HPatch[] = {
"#ifdef __STDC__\n\
  #include <stdarg.h>\n\
#else\n\
  #include <varargs.h>\n\
#endif",
    (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\0";
/*
 *  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\
_EndOfHeader;\n\
};\n\n\n\
/*\n\
 *  Completely replace <sys/varargs.h> with a file that includes gcc's\n\
 *  stdarg.h or varargs.h files as appropriate.\n\
 */\n\
#ifdef SVR4\n\
fix = {\n\
    hackname = AAB_svr4_no_varargs;\n\
    files    = sys/varargs.h;\n\
    replace  = \"/* This file was generated by fixincludes.  */\\n\"\n\
               \"#ifndef _SYS_VARARGS_H\\n\"\n\
               \"#define _SYS_VARARGS_H\\n\\n\"\n\n\
               \"#ifdef __STDC__\\n\"\n\
               \"#include <stdarg.h>\\n\"\n\
               \"#else\\n\"\n\
               \"#include <varargs.h>\\n\"\n\
               \"#endif\\n\\n\"\n\n\
               \"#endif  /* _SYS_VARARGS_H */\\n\";\n\
};\n\
#endif\n\n\n\
/*\n\
 *  Completely replace <sys/byteorder.h> with a file that implements gcc's\n\
 *  optimized byteswapping.  (The original probably implemented some\n\
 *  incompatible optimized byteswapping.)\n\
 */\n\
fix = {\n\
    hackname = AAB_svr4_replace_byteorder;\n\
    mach     = \"*-*-sysv4*\";\n\
    mach     = \"i[34567]86-*-sysv5*\";\n\
    mach     = \"i[34567]86-*-sco3.2v5*\";\n\
    mach     = \"i[34567]86-*-udk*\";\n\
    mach     = \"i[34567]86-*-solaris2.[0-4]\";\n\
    mach     = \"powerpcle-*-solaris2.[0-4]\";\n\
    mach     = \"sparc-*-solaris2.[0-4]\";\n\
    mach     = \"i[34567]86-sequent-ptx*\";\n\
    files    = sys/byteorder.h;\n\
    replace  = <<-  _EndOfHeader_\n\
#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\
  ror%L0 $16,%0\n\
  xchg%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 (__ns32k__) || defined (__vax__) || 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",
    (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\0";
/*
 *  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\0";
/*
 *  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 */",
    (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\0";
/*
 *  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 */",
    (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\0";
/*
 *  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 */",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zAix_PthreadList[] =
  "pthread.h\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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_Syswait_2 fix
 */
tSCC zAix_Syswait_2Name[] =
     "aix_syswait_2";

/*
 *  File name selection pattern
 */
tSCC zAix_Syswait_2List[] =
  "sys/wait.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAix_Syswait_2Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAix_Syswait_2Select0[] =
       "\\? (\\(\\(\\(\\(unsigned[^)]*\\)[^)]*\\) >> [^)]*\\) \\& 0xff\\) : -1)";

#define    AIX_SYSWAIT_2_TEST_CT  1
static tTestDesc aAix_Syswait_2Tests[] = {
  { TT_EGREP,    zAix_Syswait_2Select0, (regex_t*)NULL }, };

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

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

/*
 *  File name selection pattern
 */
tSCC zAix_VolatileList[] =
  "sys/signal.h\0";
/*
 *  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\0";
/*
 *  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___Extern_Prefix fix
 */
tSCC zAlpha___Extern_PrefixName[] =
     "alpha___extern_prefix";

/*
 *  File name selection pattern
 */
#define zAlpha___Extern_PrefixList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAlpha___Extern_PrefixMachs[] = {
        "alpha*-dec-osf*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha___Extern_PrefixSelect0[] =
       "(.*)(defined\\(__DECC\\)|def[ \t]*__DECC)[ \t]*\n\
(#[ \t]*pragma[ \t]*extern_prefix.*)";

#define    ALPHA___EXTERN_PREFIX_TEST_CT  1
static tTestDesc aAlpha___Extern_PrefixTests[] = {
  { TT_EGREP,    zAlpha___Extern_PrefixSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha___Extern_Prefix
 */
static const char* apzAlpha___Extern_PrefixPatch[] = {
    "format",
    "%1 (defined(__DECC) || defined(__PRAGMA_EXTERN_PREFIX))\n\
%3",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha___Extern_Prefix_Standards fix
 */
tSCC zAlpha___Extern_Prefix_StandardsName[] =
     "alpha___extern_prefix_standards";

/*
 *  File name selection pattern
 */
tSCC zAlpha___Extern_Prefix_StandardsList[] =
  "standards.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAlpha___Extern_Prefix_StandardsMachs[] = {
        "alpha*-dec-osf*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha___Extern_Prefix_StandardsSelect0[] =
       ".*!defined\\(_LIBC_POLLUTION_H_\\) && !defined\\(__DECC\\)";

#define    ALPHA___EXTERN_PREFIX_STANDARDS_TEST_CT  1
static tTestDesc aAlpha___Extern_Prefix_StandardsTests[] = {
  { TT_EGREP,    zAlpha___Extern_Prefix_StandardsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha___Extern_Prefix_Standards
 */
static const char* apzAlpha___Extern_Prefix_StandardsPatch[] = {
    "format",
    "%0 && !defined(__PRAGMA_EXTERN_PREFIX)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha___Extern_Prefix_Sys_Stat fix
 */
tSCC zAlpha___Extern_Prefix_Sys_StatName[] =
     "alpha___extern_prefix_sys_stat";

/*
 *  File name selection pattern
 */
tSCC zAlpha___Extern_Prefix_Sys_StatList[] =
  "sys/stat.h\0sys/mount.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAlpha___Extern_Prefix_Sys_StatMachs[] = {
        "alpha*-dec-osf5*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha___Extern_Prefix_Sys_StatSelect0[] =
       "#[ \t]*if[ \t]*defined\\(__DECC\\)";

#define    ALPHA___EXTERN_PREFIX_SYS_STAT_TEST_CT  1
static tTestDesc aAlpha___Extern_Prefix_Sys_StatTests[] = {
  { TT_EGREP,    zAlpha___Extern_Prefix_Sys_StatSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha___Extern_Prefix_Sys_Stat
 */
static const char* apzAlpha___Extern_Prefix_Sys_StatPatch[] = {
    "format",
    "%0 || defined(__PRAGMA_EXTERN_PREFIX)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_Assert fix
 */
tSCC zAlpha_AssertName[] =
     "alpha_assert";

/*
 *  File name selection pattern
 */
tSCC zAlpha_AssertList[] =
  "assert.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzAlpha_AssertMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_AssertSelect0[] =
       "(#define assert\\(EX\\).*)\\(\\(int\\) \\(EX\\)\\)";

#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",
    "%1(EX)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_Bad_Lval fix
 */
tSCC zAlpha_Bad_LvalName[] =
     "alpha_bad_lval";

/*
 *  File name selection pattern
 */
#define zAlpha_Bad_LvalList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAlpha_Bad_LvalMachs[] = {
        "alpha*-dec-osf*",
        (const char*)NULL };

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

#define    ALPHA_BAD_LVAL_TEST_CT  1
static tTestDesc aAlpha_Bad_LvalTests[] = {
  { TT_EGREP,    zAlpha_Bad_LvalSelect0, (regex_t*)NULL }, };

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

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

/*
 *  File name selection pattern
 */
tSCC zAlpha_GetoptList[] =
  "stdio.h\0stdlib.h\0";
/*
 *  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\0";
/*
 *  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_Pthread fix
 */
tSCC zAlpha_PthreadName[] =
     "alpha_pthread";

/*
 *  File name selection pattern
 */
tSCC zAlpha_PthreadList[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAlpha_PthreadMachs[] = {
        "alpha*-dec-osf*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_PthreadSelect0[] =
       "((#[ \t]*if)([ \t]*defined[ \t]*\\(_PTHREAD_ENV_DECC\\)|def _PTHREAD_ENV_DECC)(.*))\n\
(#[ \t]*define _PTHREAD_USE_PTDNAM_)";

#define    ALPHA_PTHREAD_TEST_CT  1
static tTestDesc aAlpha_PthreadTests[] = {
  { TT_EGREP,    zAlpha_PthreadSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_Pthread
 */
static const char* apzAlpha_PthreadPatch[] = {
    "format",
    "%2 defined (_PTHREAD_ENV_DECC)%4 || defined (__PRAGMA_EXTERN_PREFIX)\n\
%5",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_Pthread_Gcc fix
 */
tSCC zAlpha_Pthread_GccName[] =
     "alpha_pthread_gcc";

/*
 *  File name selection pattern
 */
tSCC zAlpha_Pthread_GccList[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAlpha_Pthread_GccMachs[] = {
        "alpha*-dec-osf*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_Pthread_GccSelect0[] =
       "#else\n\
# error <pthread.h>: unrecognized compiler.";

#define    ALPHA_PTHREAD_GCC_TEST_CT  1
static tTestDesc aAlpha_Pthread_GccTests[] = {
  { TT_EGREP,    zAlpha_Pthread_GccSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_Pthread_Gcc
 */
static const char* apzAlpha_Pthread_GccPatch[] = {
    "format",
    "#elif defined (__GNUC__)\n\
# define _PTHREAD_ENV_GCC\n\
%0",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Alpha_Pthread_Init fix
 */
tSCC zAlpha_Pthread_InitName[] =
     "alpha_pthread_init";

/*
 *  File name selection pattern
 */
tSCC zAlpha_Pthread_InitList[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAlpha_Pthread_InitMachs[] = {
        "alpha*-dec-osf*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_Pthread_InitSelect0[] =
       " \\* @\\(#\\).RCSfile: pthread\\.h,v \\$ .Revision: 1\\.1\\.33\\.21 \\$ \\(DEC\\) .Date: 2000/08/15 15:30:13 \\$";

#define    ALPHA_PTHREAD_INIT_TEST_CT  1
static tTestDesc aAlpha_Pthread_InitTests[] = {
  { TT_EGREP,    zAlpha_Pthread_InitSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_Pthread_Init
 */
static const char* apzAlpha_Pthread_InitPatch[] = { "sed",
    "-e", "s@MVALID\\(.*\\)A}@MVALID\\1A, 0, 0, 0, 0, 0, 0 }@\n\
s@MVALID\\(.*\\)_}@MVALID\\1_, 0, 0, 0, 0 }@\n\
s@CVALID\\(.*\\)A}@CVALID\\1A, 0, 0, 0, 0 }@\n\
s@CVALID\\(.*\\)_}@CVALID\\1_, 0, 0 }@\n\
s@WVALID\\(.*\\)A}@WVALID\\1A, 0, 0, 0, 0, 0, 0, 0, 0, 0 }@\n\
s@WVALID\\(.*\\)_}@WVALID\\1_, 0, 0, 0, 0, 0, 0, 0 }@\n",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zAlpha_SbrkList[] =
  "unistd.h\0";
/*
 *  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 Alpha_Wchar fix
 */
tSCC zAlpha_WcharName[] =
     "alpha_wchar";

/*
 *  File name selection pattern
 */
tSCC zAlpha_WcharList[] =
  "wchar.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzAlpha_WcharMachs[] = {
        "alpha*-dec-osf4*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zAlpha_WcharSelect0[] =
       "#define wcstok wcstok_r";

#define    ALPHA_WCHAR_TEST_CT  1
static tTestDesc aAlpha_WcharTests[] = {
  { TT_EGREP,    zAlpha_WcharSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Alpha_Wchar
 */
static const char* apzAlpha_WcharPatch[] = { "sed",
    "-e", "s@#define wcstok wcstok_r@extern wchar_t *wcstok __((wchar_t *, const wchar_t *, wchar_t **)) __asm__(\"wcstok_r\");@",
    "-e", "s@#define wcsftime __wcsftime_isoc@extern size_t   wcsftime __((wchar_t *, size_t, const wchar_t *, const struct tm *)) __asm__(\"__wcsftime_isoc\");@",
    (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\0curses_colr/curses.h\0term.h\0tinfo.h\0";
/*
 *  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[] =
       "__cplusplus";

#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\0curses_colr/curses.h\0term.h\0tinfo.h\0";
/*
 *  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[] =
       "__cplusplus";

#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]*;";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zAvoid_Wchar_T_TypeBypass0[] =
       "__cplusplus";
tSCC zAvoid_Wchar_T_TypeBypass1[] =
       "_LINUX_NLS_H";
tSCC zAvoid_Wchar_T_TypeBypass2[] =
       "XFree86: xc/lib/X11/Xlib\\.h";

#define    AVOID_WCHAR_T_TYPE_TEST_CT  4
static tTestDesc aAvoid_Wchar_T_TypeTests[] = {
  { TT_NEGREP,   zAvoid_Wchar_T_TypeBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zAvoid_Wchar_T_TypeBypass1, (regex_t*)NULL },
  { TT_NEGREP,   zAvoid_Wchar_T_TypeBypass2, (regex_t*)NULL },
  { 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_Struct_Term fix
 */
tSCC zBad_Struct_TermName[] =
     "bad_struct_term";

/*
 *  File name selection pattern
 */
tSCC zBad_Struct_TermList[] =
  "curses.h\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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\0architecture/*/math.h\0";
/*
 *  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[] = { "sed",
    "-e", "s/^extern[ \t]*double[ \t]*cabs[ \t]*([^\\)]*);//",
    "-e", "s/^extern[ \t]*long[ \t]*double[ \t]*cabsl[ \t]*([^\\)]*);//",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Broken_Nan fix
 */
tSCC zBroken_NanName[] =
     "broken_nan";

/*
 *  File name selection pattern
 */
tSCC zBroken_NanList[] =
  "architecture/ppc/math.h\0architecture/*/math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzBroken_NanMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBroken_NanSelect0[] =
       "#if defined(__APPLE_CC__) && (__APPLE_CC__ >= 1345)";

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

#define    BROKEN_NAN_TEST_CT  2
static tTestDesc aBroken_NanTests[] = {
  { TT_NEGREP,   zBroken_NanBypass0, (regex_t*)NULL },
  { TT_EGREP,    zBroken_NanSelect0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Bsd_Stdio_Attrs_Conflict fix
 */
tSCC zBsd_Stdio_Attrs_ConflictName[] =
     "bsd_stdio_attrs_conflict";

/*
 *  File name selection pattern
 */
tSCC zBsd_Stdio_Attrs_ConflictList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzBsd_Stdio_Attrs_ConflictMachs[] = {
        "*-*-*bsd*",
        "*-*-*darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zBsd_Stdio_Attrs_ConflictSelect0[] =
       "^#define[ \t]*vfscanf[ \t]*__svfscanf[ \t]*$";

#define    BSD_STDIO_ATTRS_CONFLICT_TEST_CT  1
static tTestDesc aBsd_Stdio_Attrs_ConflictTests[] = {
  { TT_EGREP,    zBsd_Stdio_Attrs_ConflictSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Bsd_Stdio_Attrs_Conflict
 */
static const char* apzBsd_Stdio_Attrs_ConflictPatch[] = {
    "format",
    "#define _BSD_STRING(_BSD_X) _BSD_STRINGX(_BSD_X)\n\
#define _BSD_STRINGX(_BSD_X) #_BSD_X\n\
int vfscanf(FILE *, const char *, __builtin_va_list) __asm__ (_BSD_STRING(__USER_LABEL_PREFIX__) \"__svfscanf\");",
    (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\0rpc/types.h\0";
/*
 *  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 Darwin_Gcc4_Breakage fix
 */
tSCC zDarwin_Gcc4_BreakageName[] =
     "darwin_gcc4_breakage";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Gcc4_BreakageList[] =
  "AvailabilityMacros.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Gcc4_BreakageMachs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Gcc4_BreakageSelect0[] =
       "\\(__GNUC__ >= 3\\) && \\(__GNUC_MINOR__ >= 1\\)";

#define    DARWIN_GCC4_BREAKAGE_TEST_CT  1
static tTestDesc aDarwin_Gcc4_BreakageTests[] = {
  { TT_EGREP,    zDarwin_Gcc4_BreakageSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Gcc4_Breakage
 */
static const char* apzDarwin_Gcc4_BreakagePatch[] = {
    "format",
    "((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Macho_Swaph_Externc fix
 */
tSCC zDarwin_Macho_Swaph_ExterncName[] =
     "darwin_macho_swaph_externc";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Macho_Swaph_ExterncList[] =
  "mach-o/swap.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Macho_Swaph_ExterncMachs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zDarwin_Macho_Swaph_ExterncBypass0[] =
       "extern \"C\"";

#define    DARWIN_MACHO_SWAPH_EXTERNC_TEST_CT  1
static tTestDesc aDarwin_Macho_Swaph_ExterncTests[] = {
  { TT_NEGREP,   zDarwin_Macho_Swaph_ExterncBypass0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Private_Extern fix
 */
tSCC zDarwin_Private_ExternName[] =
     "darwin_private_extern";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Private_ExternList[] =
  "mach-o/dyld.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Private_ExternMachs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zDarwin_Private_ExternSelect0[] =
       "__private_extern__ [a-z_]+ _dyld_";

#define    DARWIN_PRIVATE_EXTERN_TEST_CT  1
static tTestDesc aDarwin_Private_ExternTests[] = {
  { TT_EGREP,    zDarwin_Private_ExternSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Private_Extern
 */
static const char* apzDarwin_Private_ExternPatch[] = {
    "format",
    "extern",
    "__private_extern__",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Stdint_Guards_Intn fix
 */
tSCC zDarwin_Stdint_Guards_IntnName[] =
     "darwin_stdint_guards_intn";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Stdint_Guards_IntnList[] =
  "ppc/types.h\0i386/types.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Stdint_Guards_IntnMachs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zDarwin_Stdint_Guards_IntnBypass0[] =
       "_INT32_T[ \n\
]";

#define    DARWIN_STDINT_GUARDS_INTN_TEST_CT  1
static tTestDesc aDarwin_Stdint_Guards_IntnTests[] = {
  { TT_NEGREP,   zDarwin_Stdint_Guards_IntnBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Stdint_Guards_Intn
 */
static const char* apzDarwin_Stdint_Guards_IntnPatch[] = {
    "format",
    "#ifndef _INT%2_T\n\
#define _INT%2_T\n\
%0\n\
#endif",
    "typedef[ \t]([_a-z ]*\t+)int([0-9]+)_t;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Stdint_Guards_Intptr fix
 */
tSCC zDarwin_Stdint_Guards_IntptrName[] =
     "darwin_stdint_guards_intptr";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Stdint_Guards_IntptrList[] =
  "ppc/types.h\0i386/types.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Stdint_Guards_IntptrMachs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zDarwin_Stdint_Guards_IntptrBypass0[] =
       "_INTPTR_T[ \n\
]";

#define    DARWIN_STDINT_GUARDS_INTPTR_TEST_CT  1
static tTestDesc aDarwin_Stdint_Guards_IntptrTests[] = {
  { TT_NEGREP,   zDarwin_Stdint_Guards_IntptrBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Stdint_Guards_Intptr
 */
static const char* apzDarwin_Stdint_Guards_IntptrPatch[] = {
    "format",
    "#ifndef _INTPTR_T\n\
#define _INTPTR_T\n\
%0\n\
#endif",
    "typedef[ \t]([_a-z \t]+)[ \t]+intptr_t;",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Darwin_Stdint_Guards_Uintptr fix
 */
tSCC zDarwin_Stdint_Guards_UintptrName[] =
     "darwin_stdint_guards_uintptr";

/*
 *  File name selection pattern
 */
tSCC zDarwin_Stdint_Guards_UintptrList[] =
  "ppc/types.h\0i386/types.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzDarwin_Stdint_Guards_UintptrMachs[] = {
        "*-*-darwin*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zDarwin_Stdint_Guards_UintptrBypass0[] =
       "_UINTPTR_T[ \n\
]";

#define    DARWIN_STDINT_GUARDS_UINTPTR_TEST_CT  1
static tTestDesc aDarwin_Stdint_Guards_UintptrTests[] = {
  { TT_NEGREP,   zDarwin_Stdint_Guards_UintptrBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Darwin_Stdint_Guards_Uintptr
 */
static const char* apzDarwin_Stdint_Guards_UintptrPatch[] = {
    "format",
    "#ifndef _UINTPTR_T\n\
#define _UINTPTR_T\n\
%0\n\
#endif",
    "typedef[ \t]([_a-z \t]+)[ \t]+uintptr_t;",
    (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\0";
/*
 *  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\0sunwindow/win_cursor.h\0";
/*
 *  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 Exception_Structure fix
 */
tSCC zException_StructureName[] =
     "exception_structure";

/*
 *  File name selection pattern
 */
tSCC zException_StructureList[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzException_StructureMachs (const char**)NULL

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

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

#define    EXCEPTION_STRUCTURE_TEST_CT  2
static tTestDesc aException_StructureTests[] = {
  { TT_NEGREP,   zException_StructureBypass0, (regex_t*)NULL },
  { TT_EGREP,    zException_StructureSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Exception_Structure
 */
static const char* apzException_StructurePatch[] = {
    "wrap",
    "struct exception;\n",
    (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\0";
/*
 *  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 Freebsd_Gcc4_Breakage fix
 */
tSCC zFreebsd_Gcc4_BreakageName[] =
     "freebsd_gcc4_breakage";

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

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

#define    FREEBSD_GCC4_BREAKAGE_TEST_CT  1
static tTestDesc aFreebsd_Gcc4_BreakageTests[] = {
  { TT_EGREP,    zFreebsd_Gcc4_BreakageSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Freebsd_Gcc4_Breakage
 */
static const char* apzFreebsd_Gcc4_BreakagePatch[] = {
    "format",
    "#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_C99_Inline_1 fix
 */
tSCC zGlibc_C99_Inline_1Name[] =
     "glibc_c99_inline_1";

/*
 *  File name selection pattern
 */
tSCC zGlibc_C99_Inline_1List[] =
  "features.h\0*/features.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_C99_Inline_1Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_C99_Inline_1Select0[] =
       "^ *&& !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__$";

#define    GLIBC_C99_INLINE_1_TEST_CT  1
static tTestDesc aGlibc_C99_Inline_1Tests[] = {
  { TT_EGREP,    zGlibc_C99_Inline_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_C99_Inline_1
 */
static const char* apzGlibc_C99_Inline_1Patch[] = {
    "format",
    "%0 && (defined __extern_inline || defined __GNUC_GNU_INLINE__)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_C99_Inline_2 fix
 */
tSCC zGlibc_C99_Inline_2Name[] =
     "glibc_c99_inline_2";

/*
 *  File name selection pattern
 */
tSCC zGlibc_C99_Inline_2List[] =
  "sys/stat.h\0*/sys/stat.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_C99_Inline_2Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_C99_Inline_2Select0[] =
       "extern __inline__ int";

#define    GLIBC_C99_INLINE_2_TEST_CT  1
static tTestDesc aGlibc_C99_Inline_2Tests[] = {
  { TT_EGREP,    zGlibc_C99_Inline_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_C99_Inline_2
 */
static const char* apzGlibc_C99_Inline_2Patch[] = { "sed",
    "-e", "s/extern int \\(stat\\|lstat\\|fstat\\|mknod\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
extern\\\n\
#endif\\\n\
__inline__ int \\1/",
    "-e", "s/extern int __REDIRECT\\(_NTH\\|\\) (\\(stat\\|lstat\\|fstat\\)/#ifdef __GNUC_GNU_INLINE__\\\n\
extern\\\n\
#endif\\\n\
__inline__ int __REDIRECT\\1 (\\2/",
    "-e", "s/^extern __inline__ int/#ifdef __GNUC_GNU_INLINE__\\\n\
extern\\\n\
#endif\\\n\
__inline__ int/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_C99_Inline_3 fix
 */
tSCC zGlibc_C99_Inline_3Name[] =
     "glibc_c99_inline_3";

/*
 *  File name selection pattern
 */
tSCC zGlibc_C99_Inline_3List[] =
  "bits/string2.h\0*/bits/string2.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_C99_Inline_3Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_C99_Inline_3Select0[] =
       "extern __inline";

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

#define    GLIBC_C99_INLINE_3_TEST_CT  2
static tTestDesc aGlibc_C99_Inline_3Tests[] = {
  { TT_NEGREP,   zGlibc_C99_Inline_3Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zGlibc_C99_Inline_3Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_C99_Inline_3
 */
static const char* apzGlibc_C99_Inline_3Patch[] = {
    "format",
    "# if defined(__cplusplus) || defined(__GNUC_STDC_INLINE__)",
    "^# ifdef __cplusplus$",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_C99_Inline_4 fix
 */
tSCC zGlibc_C99_Inline_4Name[] =
     "glibc_c99_inline_4";

/*
 *  File name selection pattern
 */
tSCC zGlibc_C99_Inline_4List[] =
  "sys/sysmacros.h\0*/sys/sysmacros.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_C99_Inline_4Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_C99_Inline_4Select0[] =
       "extern __inline";

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

#define    GLIBC_C99_INLINE_4_TEST_CT  2
static tTestDesc aGlibc_C99_Inline_4Tests[] = {
  { TT_NEGREP,   zGlibc_C99_Inline_4Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zGlibc_C99_Inline_4Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_C99_Inline_4
 */
static const char* apzGlibc_C99_Inline_4Patch[] = {
    "format",
    "\n\
#ifdef __GNUC_GNU_INLINE__\n\
extern\n\
#endif\n",
    "(^| )extern ",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_Mutex_Init fix
 */
tSCC zGlibc_Mutex_InitName[] =
     "glibc_mutex_init";

/*
 *  File name selection pattern
 */
tSCC zGlibc_Mutex_InitList[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_Mutex_InitMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_Mutex_InitSelect0[] =
       "\\{ *\\{ *0, *\\} *\\}";

#define    GLIBC_MUTEX_INIT_TEST_CT  1
static tTestDesc aGlibc_Mutex_InitTests[] = {
  { TT_EGREP,    zGlibc_Mutex_InitSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_Mutex_Init
 */
static const char* apzGlibc_Mutex_InitPatch[] = { "sed",
    "-e", "/define[ \t]\\+PTHREAD_MUTEX_INITIALIZER[ \t]*\\\\/,+1s/{ { 0, } }/{ { 0, 0, 0, 0, 0, 0 } }/",
    "-e", "s/{ \\(0, 0, 0, 0, PTHREAD_MUTEX_\\(RECURSIVE\\|ERRORCHECK\\|ADAPTIVE\\)_NP\\) }/{ \\1, 0 }/",
    "-e", "s/{ \\(0, 0, 0, PTHREAD_MUTEX_\\(RECURSIVE\\|ERRORCHECK\\|ADAPTIVE\\)_NP\\) }/{ \\1, 0, 0 }/",
    "-e", "/define[ \t]\\+PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\/N;s/^[ \t]*#[ \t]*\\(define[ \t]\\+PTHREAD_RWLOCK_INITIALIZER[ \t]*\\\\\\)\\n[ \t]*{ { 0, } }/# if __WORDSIZE == 64\\n#  \\1\\n  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }\\n# else\\n#  \\1\\n  { { 0, 0, 0, 0, 0, 0, 0, 0 } }\\n# endif/",
    "-e", "s/{ \\(0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP\\) }/{ \\1, 0 }/",
    "-e", "/define[ \t]\\+PTHREAD_COND_INITIALIZER/s/{ { 0, } }/{ { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }/",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zGnu_TypesList[] =
  "sys/types.h\0stdlib.h\0sys/stdtypes.h\0stddef.h\0memory.h\0unistd.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzGnu_TypesMachs[] = {
        "*-*-solaris2.1[0-9]*",
        (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\0machine/machparam.h\0";
/*
 *  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\0";
/*
 *  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\0math.h\0";
/*
 *  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\0";
/*
 *  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 Hppa_Hpux_Fp_Macros fix
 */
tSCC zHppa_Hpux_Fp_MacrosName[] =
     "hppa_hpux_fp_macros";

/*
 *  File name selection pattern
 */
tSCC zHppa_Hpux_Fp_MacrosList[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHppa_Hpux_Fp_MacrosMachs[] = {
        "hppa*-hp-hpux11*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHppa_Hpux_Fp_MacrosSelect0[] =
       "#[ \t]*define[ \t]*FP_NORMAL.*\n\
#[ \t]*define[ \t]*FP_ZERO.*\n\
#[ \t]*define[ \t]*FP_INFINITE.*\n\
#[ \t]*define[ \t]*FP_SUBNORMAL.*\n\
#[ \t]*define[ \t]*FP_NAN.*\n";

#define    HPPA_HPUX_FP_MACROS_TEST_CT  1
static tTestDesc aHppa_Hpux_Fp_MacrosTests[] = {
  { TT_EGREP,    zHppa_Hpux_Fp_MacrosSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hppa_Hpux_Fp_Macros
 */
static const char* apzHppa_Hpux_Fp_MacrosPatch[] = {
    "format",
    "#endif /* _INCLUDE_HPUX_SOURCE */\n\n\
#if defined(_INCLUDE_HPUX_SOURCE) || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))\n\
%0#endif\n\n\
#ifdef _INCLUDE_HPUX_SOURCE\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux10_Ctype_Declarations1 fix
 */
tSCC zHpux10_Ctype_Declarations1Name[] =
     "hpux10_ctype_declarations1";

/*
 *  File name selection pattern
 */
tSCC zHpux10_Ctype_Declarations1List[] =
  "ctype.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux10_Ctype_Declarations1Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux10_Ctype_Declarations1Select0[] =
       "^#[ \t]*define _toupper\\(__c\\)[ \t]*__toupper\\(__c\\)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHpux10_Ctype_Declarations1Bypass0[] =
       "^[ \t]*extern[ \t]*int[ \t]*__tolower[ \t]*\\(";

#define    HPUX10_CTYPE_DECLARATIONS1_TEST_CT  2
static tTestDesc aHpux10_Ctype_Declarations1Tests[] = {
  { TT_NEGREP,   zHpux10_Ctype_Declarations1Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux10_Ctype_Declarations1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux10_Ctype_Declarations1
 */
static const char* apzHpux10_Ctype_Declarations1Patch[] = {
    "format",
    "#ifdef _PROTOTYPES\n\
extern int __tolower(int);\n\
extern int __toupper(int);\n\
#else /* NOT _PROTOTYPES */\n\
extern int __tolower();\n\
extern int __toupper();\n\
#endif /* _PROTOTYPES */\n\n\
%0\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux10_Ctype_Declarations2 fix
 */
tSCC zHpux10_Ctype_Declarations2Name[] =
     "hpux10_ctype_declarations2";

/*
 *  File name selection pattern
 */
tSCC zHpux10_Ctype_Declarations2List[] =
  "ctype.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux10_Ctype_Declarations2Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux10_Ctype_Declarations2Select0[] =
       "^#  if defined\\(_SB_CTYPE_MACROS\\) && \\!defined\\(__lint\\)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHpux10_Ctype_Declarations2Bypass0[] =
       "^[ \t]*extern[ \t]*int[ \t]*_isalnum[ \t]*\\(";

#define    HPUX10_CTYPE_DECLARATIONS2_TEST_CT  2
static tTestDesc aHpux10_Ctype_Declarations2Tests[] = {
  { TT_NEGREP,   zHpux10_Ctype_Declarations2Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux10_Ctype_Declarations2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux10_Ctype_Declarations2
 */
static const char* apzHpux10_Ctype_Declarations2Patch[] = {
    "format",
    "%0\n\n\
#ifdef _PROTOTYPES\n\
     extern int _isalnum(int);\n\
     extern int _isalpha(int);\n\
     extern int _iscntrl(int);\n\
     extern int _isdigit(int);\n\
     extern int _isgraph(int);\n\
     extern int _islower(int);\n\
     extern int _isprint(int);\n\
     extern int _ispunct(int);\n\
     extern int _isspace(int);\n\
     extern int _isupper(int);\n\
     extern int _isxdigit(int);\n\
#  else /* not _PROTOTYPES */\n\
     extern int _isalnum();\n\
     extern int _isalpha();\n\
     extern int _iscntrl();\n\
     extern int _isdigit();\n\
     extern int _isgraph();\n\
     extern int _islower();\n\
     extern int _isprint();\n\
     extern int _ispunct();\n\
     extern int _isspace();\n\
     extern int _isupper();\n\
     extern int _isxdigit();\n\
#endif /* _PROTOTYPES */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux10_Stdio_Declarations fix
 */
tSCC zHpux10_Stdio_DeclarationsName[] =
     "hpux10_stdio_declarations";

/*
 *  File name selection pattern
 */
tSCC zHpux10_Stdio_DeclarationsList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux10_Stdio_DeclarationsMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux10_Stdio_DeclarationsSelect0[] =
       "^#[ \t]*define _iob[ \t]*__iob";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zHpux10_Stdio_DeclarationsBypass0[] =
       "^[ \t]*extern[ \t]*int[ \t]*vsnprintf[ \t]*\\(";

#define    HPUX10_STDIO_DECLARATIONS_TEST_CT  2
static tTestDesc aHpux10_Stdio_DeclarationsTests[] = {
  { TT_NEGREP,   zHpux10_Stdio_DeclarationsBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux10_Stdio_DeclarationsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux10_Stdio_Declarations
 */
static const char* apzHpux10_Stdio_DeclarationsPatch[] = {
    "format",
    "%0\n\n\
#  if defined(__STDC__) || defined(__cplusplus)\n\
     extern int snprintf(char *, size_t, const char *, ...);\n\
     extern int vsnprintf(char *, size_t, const char *, __va_list);\n\
#  else /* not __STDC__) || __cplusplus */\n\
     extern int snprintf();\n\
     extern int vsnprintf();\n\
#  endif /* __STDC__) || __cplusplus */\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Abs fix
 */
tSCC zHpux11_AbsName[] =
     "hpux11_abs";

/*
 *  File name selection pattern
 */
tSCC zHpux11_AbsList[] =
  "stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux11_AbsMachs[] = {
        "ia64-hp-hpux11*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_AbsSelect0[] =
       "ifndef _MATH_INCLUDED";

#define    HPUX11_ABS_TEST_CT  1
static tTestDesc aHpux11_AbsTests[] = {
  { TT_EGREP,    zHpux11_AbsSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Abs
 */
static const char* apzHpux11_AbsPatch[] = {
    "format",
    "if !defined(_MATH_INCLUDED) || defined(__GNUG__)",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zHpux11_FabsfList[] =
  "math.h\0";
/*
 *  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_Snprintf fix
 */
tSCC zHpux11_SnprintfName[] =
     "hpux11_snprintf";

/*
 *  File name selection pattern
 */
tSCC zHpux11_SnprintfList[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux11_SnprintfMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_SnprintfSelect0[] =
       "(extern int snprintf *\\(char *\\*, *(|__|_hpux_)size_t,) *(char *\\*, *\\.\\.\\.\\);)";

#define    HPUX11_SNPRINTF_TEST_CT  1
static tTestDesc aHpux11_SnprintfTests[] = {
  { TT_EGREP,    zHpux11_SnprintfSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux11_Snprintf
 */
static const char* apzHpux11_SnprintfPatch[] = {
    "format",
    "%1 const %3",
    (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\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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";

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

#define    HPUX8_BOGUS_INLINES_TEST_CT  2
static tTestDesc aHpux8_Bogus_InlinesTests[] = {
  { TT_NEGREP,   zHpux8_Bogus_InlinesBypass0, (regex_t*)NULL },
  { 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_Ctype_Macros fix
 */
tSCC zHpux_Ctype_MacrosName[] =
     "hpux_ctype_macros";

/*
 *  File name selection pattern
 */
tSCC zHpux_Ctype_MacrosList[] =
  "ctype.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux_Ctype_MacrosMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Ctype_MacrosSelect0[] =
       "((: |\\()__SB_masks \\? )(__SB_masks\\[__(alnum|c)\\] & _IS)";

#define    HPUX_CTYPE_MACROS_TEST_CT  1
static tTestDesc aHpux_Ctype_MacrosTests[] = {
  { TT_EGREP,    zHpux_Ctype_MacrosSelect0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Htonl fix
 */
tSCC zHpux_HtonlName[] =
     "hpux_htonl";

/*
 *  File name selection pattern
 */
tSCC zHpux_HtonlList[] =
  "netinet/in.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux_HtonlMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_HtonlSelect0[] =
       "#ifndef _XOPEN_SOURCE_EXTENDED\n\
(/\\*\n\
 \\* Macros for number representation conversion\\.\n\
 \\*/\n\
#ifndef ntohl)";

#define    HPUX_HTONL_TEST_CT  1
static tTestDesc aHpux_HtonlTests[] = {
  { TT_EGREP,    zHpux_HtonlSelect0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Long_Double fix
 */
tSCC zHpux_Long_DoubleName[] =
     "hpux_long_double";

/*
 *  File name selection pattern
 */
tSCC zHpux_Long_DoubleList[] =
  "stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHpux_Long_DoubleMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Long_DoubleSelect0[] =
       "extern[ \t]long_double[ \t]strtold";

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

#define    HPUX_LONG_DOUBLE_TEST_CT  2
static tTestDesc aHpux_Long_DoubleTests[] = {
  { TT_NEGREP,   zHpux_Long_DoubleBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHpux_Long_DoubleSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Long_Double
 */
static const char* apzHpux_Long_DoublePatch[] = { "sed",
    "-e", "/^#[ \t]*ifndef _LONG_DOUBLE/,/\\/\\* _LONG_DOUBLE \\*\\//D",
    "-e", "s/long_double/long double/g",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zHpux_SystimeList[] =
  "sys/time.h\0";
/*
 *  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 Hpux_Spu_Info fix
 */
tSCC zHpux_Spu_InfoName[] =
     "hpux_spu_info";

/*
 *  File name selection pattern
 */
tSCC zHpux_Spu_InfoList[] =
  "ia64/sys/getppdp.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Spu_InfoMachs[] = {
        "*-hp-hpux*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Spu_InfoSelect0[] =
       "^.*extern.*spu_info.*";

#define    HPUX_SPU_INFO_TEST_CT  1
static tTestDesc aHpux_Spu_InfoTests[] = {
  { TT_EGREP,    zHpux_Spu_InfoSelect0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Extern_Sendfile fix
 */
tSCC zHpux11_Extern_SendfileName[] =
     "hpux11_extern_sendfile";

/*
 *  File name selection pattern
 */
tSCC zHpux11_Extern_SendfileList[] =
  "sys/socket.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux11_Extern_SendfileMachs[] = {
        "*-hp-hpux11.[12]*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Extern_SendfileSelect0[] =
       "^[ \t]*extern sbsize_t sendfile.*\n\
.*, int\\)\\);\n";

#define    HPUX11_EXTERN_SENDFILE_TEST_CT  1
static tTestDesc aHpux11_Extern_SendfileTests[] = {
  { TT_EGREP,    zHpux11_Extern_SendfileSelect0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux11_Extern_Sendpath fix
 */
tSCC zHpux11_Extern_SendpathName[] =
     "hpux11_extern_sendpath";

/*
 *  File name selection pattern
 */
tSCC zHpux11_Extern_SendpathList[] =
  "sys/socket.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux11_Extern_SendpathMachs[] = {
        "*-hp-hpux11.[12]*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux11_Extern_SendpathSelect0[] =
       "^[ \t]*extern sbsize_t sendpath.*\n\
.*, int\\)\\);\n";

#define    HPUX11_EXTERN_SENDPATH_TEST_CT  1
static tTestDesc aHpux11_Extern_SendpathTests[] = {
  { TT_EGREP,    zHpux11_Extern_SendpathSelect0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Extern_Errno fix
 */
tSCC zHpux_Extern_ErrnoName[] =
     "hpux_extern_errno";

/*
 *  File name selection pattern
 */
tSCC zHpux_Extern_ErrnoList[] =
  "errno.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Extern_ErrnoMachs[] = {
        "*-hp-hpux10.*",
        "*-hp-hpux11.[0-2]*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHpux_Extern_ErrnoSelect0[] =
       "^[ \t]*extern int errno;$";

#define    HPUX_EXTERN_ERRNO_TEST_CT  1
static tTestDesc aHpux_Extern_ErrnoTests[] = {
  { TT_EGREP,    zHpux_Extern_ErrnoSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Hpux_Extern_Errno
 */
static const char* apzHpux_Extern_ErrnoPatch[] = {
    "format",
    "#ifdef __cplusplus\n\
extern \"C\" {\n\
#endif\n\
%0\n\
#ifdef __cplusplus\n\
}\n\
#endif",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Hpux_Pthread_Initializers fix
 */
tSCC zHpux_Pthread_InitializersName[] =
     "hpux_pthread_initializers";

/*
 *  File name selection pattern
 */
tSCC zHpux_Pthread_InitializersList[] =
  "sys/pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzHpux_Pthread_InitializersMachs[] = {
        "*-hp-hpux11.[0-3]*",
        (const char*)NULL };
#define HPUX_PTHREAD_INITIALIZERS_TEST_CT  0
#define aHpux_Pthread_InitializersTests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Hpux_Pthread_Initializers
 */
static const char* apzHpux_Pthread_InitializersPatch[] = { "sed",
    "-e", "s@^[ \t]*1, 1, 1, 1,[ \t]*\\\\@\t{ 1, 1, 1, 1 },\t\t\t\t\t\t\t\\\\@",
    "-e", "s@^[ \t]*1,[ \t]*\\\\@\t{ 1, 0 }@",
    "-e", "/^[ \t]*0$/d",
    "-e", "s@__PTHREAD_MUTEX_VALID, 0@{ __PTHREAD_MUTEX_VALID, 0 }@",
    "-e", "s@^[ \t]*0, 0, -1, 0,[ \t]*\\\\@\t{ 0, 0, -1, 0 },\t\t\t\t\t\t\\\\@",
    "-e", "s@0, __LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\@{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@",
    "-e", "s@^[ \t]*__LWP_MTX_VALID, 0, 1, 1, 1, 1,[ \t]*\\\\@\t{ 0, __LWP_MTX_VALID }, { 0, 1, 1, 1, 1 },\t\t\t\\\\@",
    "-e", "s@^[ \t]*0, 0[ \t]*\\\\@\t{ 0, 0 }\t\t\t\t\t\t\t\\\\@",
    "-e", "s@__PTHREAD_COND_VALID, 0@{ __PTHREAD_COND_VALID, 0 }@",
    "-e", "s@__LWP_COND_VALID, 0,[ \t]*\\\\@{ __LWP_COND_VALID, 0 },\t\t\t\t\t\\\\@",
    "-e", "s@__PTHREAD_RWLOCK_VALID, 0@{ __PTHREAD_RWLOCK_VALID, 0 }@",
    "-e", "s@__LWP_RWLOCK_VALID, 0,[ \t]*\\\\@{ __LWP_RWLOCK_VALID, 0 },\t\t\t\t\t\\\\@",
    "-e", "s@^[ \t]*0, 0, 0, 0, 0, 0, 0[ \t]*\\\\@\t{ 0, 0, 0, 0, 0 }, { 0, 0}\t\t\t\t\t\\\\@",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Huge_Val_Hex fix
 */
tSCC zHuge_Val_HexName[] =
     "huge_val_hex";

/*
 *  File name selection pattern
 */
tSCC zHuge_Val_HexList[] =
  "bits/huge_val.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHuge_Val_HexMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHuge_Val_HexSelect0[] =
       "^#[ \t]*define[ \t]*HUGE_VAL[ \t].*0x1\\.0p.*";

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

#define    HUGE_VAL_HEX_TEST_CT  2
static tTestDesc aHuge_Val_HexTests[] = {
  { TT_NEGREP,   zHuge_Val_HexBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHuge_Val_HexSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Huge_Val_Hex
 */
static const char* apzHuge_Val_HexPatch[] = {
    "format",
    "#define HUGE_VAL (__builtin_huge_val())\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Huge_Valf_Hex fix
 */
tSCC zHuge_Valf_HexName[] =
     "huge_valf_hex";

/*
 *  File name selection pattern
 */
tSCC zHuge_Valf_HexList[] =
  "bits/huge_val.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHuge_Valf_HexMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHuge_Valf_HexSelect0[] =
       "^#[ \t]*define[ \t]*HUGE_VALF[ \t].*0x1\\.0p.*";

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

#define    HUGE_VALF_HEX_TEST_CT  2
static tTestDesc aHuge_Valf_HexTests[] = {
  { TT_NEGREP,   zHuge_Valf_HexBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHuge_Valf_HexSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Huge_Valf_Hex
 */
static const char* apzHuge_Valf_HexPatch[] = {
    "format",
    "#define HUGE_VALF (__builtin_huge_valf())\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Huge_Vall_Hex fix
 */
tSCC zHuge_Vall_HexName[] =
     "huge_vall_hex";

/*
 *  File name selection pattern
 */
tSCC zHuge_Vall_HexList[] =
  "bits/huge_val.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzHuge_Vall_HexMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zHuge_Vall_HexSelect0[] =
       "^#[ \t]*define[ \t]*HUGE_VALL[ \t].*0x1\\.0p.*";

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

#define    HUGE_VALL_HEX_TEST_CT  2
static tTestDesc aHuge_Vall_HexTests[] = {
  { TT_NEGREP,   zHuge_Vall_HexBypass0, (regex_t*)NULL },
  { TT_EGREP,    zHuge_Vall_HexSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Huge_Vall_Hex
 */
static const char* apzHuge_Vall_HexPatch[] = {
    "format",
    "#define HUGE_VALL (__builtin_huge_vall())\n",
    (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\0";
/*
 *  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]*\\(";

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

#define    INT_ABORT_FREE_AND_EXIT_TEST_CT  2
static tTestDesc aInt_Abort_Free_And_ExitTests[] = {
  { TT_NEGREP,   zInt_Abort_Free_And_ExitBypass0, (regex_t*)NULL },
  { 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\0";
/*
 *  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___Restrict fix
 */
tSCC zIrix___RestrictName[] =
     "irix___restrict";

/*
 *  File name selection pattern
 */
tSCC zIrix___RestrictList[] =
  "internal/sgimacros.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzIrix___RestrictMachs[] = {
        "mips-sgi-irix6.5",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIrix___RestrictSelect0[] =
       "(#ifdef __c99\n\
)(#[ \t]*define __restrict restrict)";

#define    IRIX___RESTRICT_TEST_CT  1
static tTestDesc aIrix___RestrictTests[] = {
  { TT_EGREP,    zIrix___RestrictSelect0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Irix___Generic1 fix
 */
tSCC zIrix___Generic1Name[] =
     "irix___generic1";

/*
 *  File name selection pattern
 */
tSCC zIrix___Generic1List[] =
  "internal/math_core.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzIrix___Generic1Machs[] = {
        "mips-sgi-irix6.5",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIrix___Generic1Select0[] =
       "#define ([a-z]+)\\(x\\) *__generic.*";

#define    IRIX___GENERIC1_TEST_CT  1
static tTestDesc aIrix___Generic1Tests[] = {
  { TT_EGREP,    zIrix___Generic1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Irix___Generic1
 */
static const char* apzIrix___Generic1Patch[] = {
    "format",
    "extern int %1(double);\n\
extern int %1f(float);\n\
extern int %1l(long double);\n\
#define %1(x) (sizeof(x) == sizeof(double) ? _%1(x) \\\n\
               : sizeof(x) == sizeof(float) ? _%1f(x) \\\n\
               : _%1l(x))\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Irix___Generic2 fix
 */
tSCC zIrix___Generic2Name[] =
     "irix___generic2";

/*
 *  File name selection pattern
 */
tSCC zIrix___Generic2List[] =
  "internal/math_core.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzIrix___Generic2Machs[] = {
        "mips-sgi-irix6.5",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIrix___Generic2Select0[] =
       "#define ([a-z]+)\\(x,y\\) *__generic.*";

#define    IRIX___GENERIC2_TEST_CT  1
static tTestDesc aIrix___Generic2Tests[] = {
  { TT_EGREP,    zIrix___Generic2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Irix___Generic2
 */
static const char* apzIrix___Generic2Patch[] = {
    "format",
    "#define %1(x,y) \\\n\
  ((sizeof(x)<=4 && sizeof(y)<=4) ? _%1f(x,y) \\\n\
   : (sizeof(x)<=8 && sizeof(y)<=8) ? _%1(x,y) \\\n\
   : _%1l(x,y))\n",
    (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\0";
/*
 *  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\0limits.h\0";
/*
 *  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_Socklen_T fix
 */
tSCC zIrix_Socklen_TName[] =
     "irix_socklen_t";

/*
 *  File name selection pattern
 */
tSCC zIrix_Socklen_TList[] =
  "sys/socket.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzIrix_Socklen_TMachs[] = {
        "mips-sgi-irix6.5",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIrix_Socklen_TSelect0[] =
       "(#define _SOCKLEN_T\n\
)(typedef u_int32_t socklen_t;)";

#define    IRIX_SOCKLEN_T_TEST_CT  1
static tTestDesc aIrix_Socklen_TTests[] = {
  { TT_EGREP,    zIrix_Socklen_TSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Irix_Socklen_T
 */
static const char* apzIrix_Socklen_TPatch[] = {
    "format",
    "%1#if _NO_XOPEN4 && _NO_XOPEN5\n\
typedef int socklen_t;\n\
#else\n\
%2\n\
#endif /* _NO_XOPEN4 && _NO_XOPEN5 */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Irix_Stdint_C99 fix
 */
tSCC zIrix_Stdint_C99Name[] =
     "irix_stdint_c99";

/*
 *  File name selection pattern
 */
tSCC zIrix_Stdint_C99List[] =
  "stdint.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzIrix_Stdint_C99Machs[] = {
        "mips-sgi-irix6.5",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIrix_Stdint_C99Select0[] =
       "(#ifndef __c99\n\
)(#error This header file is to be used only for c99 mode compilations)";

#define    IRIX_STDINT_C99_TEST_CT  1
static tTestDesc aIrix_Stdint_C99Tests[] = {
  { TT_EGREP,    zIrix_Stdint_C99Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Irix_Stdint_C99
 */
static const char* apzIrix_Stdint_C99Patch[] = {
    "format",
    "#if 0\n\
%2",
    (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\0internal/stdio_core.h\0";
/*
 *  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[] =
       "/\\* 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",
    "__gnuc_va_list",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Irix_Wcsftime fix
 */
tSCC zIrix_WcsftimeName[] =
     "irix_wcsftime";

/*
 *  File name selection pattern
 */
tSCC zIrix_WcsftimeList[] =
  "internal/wchar_core.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzIrix_WcsftimeMachs[] = {
        "mips-sgi-irix6.5",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zIrix_WcsftimeSelect0[] =
       "#if _NO_XOPEN5\n\
(extern size_t[ \t]+wcsftime.*const char *.*)";

#define    IRIX_WCSFTIME_TEST_CT  1
static tTestDesc aIrix_WcsftimeTests[] = {
  { TT_EGREP,    zIrix_WcsftimeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Irix_Wcsftime
 */
static const char* apzIrix_WcsftimePatch[] = {
    "format",
    "#if _NO_XOPEN5 && !defined(__c99)\n\
%1",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zIsc_FmodList[] =
  "math.h\0";
/*
 *  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\0math.h\0ctype.h\0sys/limits.h\0sys/fcntl.h\0sys/dirent.h\0";
/*
 *  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\0sun*/asm_linkage.h\0arm/as_support.h\0arm/mc_type.h\0arm/xcb.h\0dev/chardefmac.h\0dev/ps_irq.h\0dev/screen.h\0dev/scsi.h\0sys/tty.h\0Xm.acorn/XmP.h\0bsd43/bsd43_.h\0";
/*
 *  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_G_Va_List fix
 */
tSCC zLibc1_G_Va_ListName[] =
     "libc1_G_va_list";

/*
 *  File name selection pattern
 */
tSCC zLibc1_G_Va_ListList[] =
  "_G_config.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzLibc1_G_Va_ListMachs[] = {
        "*-*-linux*libc1",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zLibc1_G_Va_ListSelect0[] =
       "typedef void \\* _G_va_list;";

#define    LIBC1_G_VA_LIST_TEST_CT  1
static tTestDesc aLibc1_G_Va_ListTests[] = {
  { TT_EGREP,    zLibc1_G_Va_ListSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Libc1_G_Va_List
 */
static const char* apzLibc1_G_Va_ListPatch[] = {
    "format",
    "typedef __builtin_va_list _G_va_list;",
    (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\0string.h\0";
/*
 *  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 Linux_Ia64_Ucontext fix
 */
tSCC zLinux_Ia64_UcontextName[] =
     "linux_ia64_ucontext";

/*
 *  File name selection pattern
 */
tSCC zLinux_Ia64_UcontextList[] =
  "sys/ucontext.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzLinux_Ia64_UcontextMachs[] = {
        "ia64-*-linux*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zLinux_Ia64_UcontextSelect0[] =
       "\\(\\(\\(char \\*\\) &\\(\\(struct sigcontext \\*\\) 0\\)->sc_gr\\[0\\]\\) - \\(char \\*\\) 0\\)";

#define    LINUX_IA64_UCONTEXT_TEST_CT  1
static tTestDesc aLinux_Ia64_UcontextTests[] = {
  { TT_EGREP,    zLinux_Ia64_UcontextSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Linux_Ia64_Ucontext
 */
static const char* apzLinux_Ia64_UcontextPatch[] = {
    "format",
    "__builtin_offsetof (struct sigcontext, sc_gr[0])",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Lynxos_No_Warning_In_Sys_Time_H fix
 */
tSCC zLynxos_No_Warning_In_Sys_Time_HName[] =
     "lynxos_no_warning_in_sys_time_h";

/*
 *  File name selection pattern
 */
tSCC zLynxos_No_Warning_In_Sys_Time_HList[] =
  "sys/time.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzLynxos_No_Warning_In_Sys_Time_HMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zLynxos_No_Warning_In_Sys_Time_HSelect0[] =
       "#warning[ \t]+Using <time.h> instead of <sys/time.h>";

#define    LYNXOS_NO_WARNING_IN_SYS_TIME_H_TEST_CT  1
static tTestDesc aLynxos_No_Warning_In_Sys_Time_HTests[] = {
  { TT_EGREP,    zLynxos_No_Warning_In_Sys_Time_HSelect0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Lynxos_Missing_Putenv fix
 */
tSCC zLynxos_Missing_PutenvName[] =
     "lynxos_missing_putenv";

/*
 *  File name selection pattern
 */
tSCC zLynxos_Missing_PutenvList[] =
  "stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzLynxos_Missing_PutenvMachs[] = {
        "*-*-lynxos*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zLynxos_Missing_PutenvSelect0[] =
       "extern char \\*getenv[ \t]*_AP\\(\\(const char \\*\\)\\);";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zLynxos_Missing_PutenvBypass0[] =
       "putenv[ \\t]*\\(";

#define    LYNXOS_MISSING_PUTENV_TEST_CT  2
static tTestDesc aLynxos_Missing_PutenvTests[] = {
  { TT_NEGREP,   zLynxos_Missing_PutenvBypass0, (regex_t*)NULL },
  { TT_EGREP,    zLynxos_Missing_PutenvSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Lynxos_Missing_Putenv
 */
static const char* apzLynxos_Missing_PutenvPatch[] = {
    "format",
    "%0\n\
extern int putenv\t\t\t\t_AP((char *));",
    "extern char \\*getenv[ \t]*_AP\\(\\(const char \\*\\)\\);",
    (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\0";
/*
 *  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\\+\\+|for C\\+\\+, _[a-z0-9A-Z_]+_exception; for C, exception";

#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\0";
/*
 *  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 Mingw_Inline_Fp_Math fix
 */
tSCC zMingw_Inline_Fp_MathName[] =
     "mingw_inline_fp_math";

/*
 *  File name selection pattern
 */
tSCC zMingw_Inline_Fp_MathList[] =
  "complex.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzMingw_Inline_Fp_MathMachs[] = {
        "i[34567]86-*-mingw*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zMingw_Inline_Fp_MathSelect0[] =
       "[ \\t]*__asm__[ \\t]*\\(\\\"fpatan";

#define    MINGW_INLINE_FP_MATH_TEST_CT  1
static tTestDesc aMingw_Inline_Fp_MathTests[] = {
  { TT_EGREP,    zMingw_Inline_Fp_MathSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Mingw_Inline_Fp_Math
 */
static const char* apzMingw_Inline_Fp_MathPatch[] = { "sed",
    "-e", "/^\\#ifdef[ \\t]*__GNUC__$/,/^\\#endif[ \\t]*\\/*[ \\t]*__GNUC__[ \\t]*$/ { :ack N; /\\n[ \\t]*:/! b ack; s/\\(\\n[ \\t]*double[ \\t]*res;\\)\\n/\\1\\n#ifdef __NO_MATH_INLINES\\n    res = atan((__imag__ _Z) \\/ (__real__ _Z));\\n#else\\n/; s/\\(\\n[ \\t]*float[ \\t]*res;\\)\\n/\\1\\n#ifdef __NO_MATH_INLINES\\n    res = atanf((__imag__ _Z) \\/ (__real__ _Z));\\n#else\\n/; s/\\(\\n[ \\t]*long[ \\t]*double[ \\t]*res;\\)\\n/\\1\\n#ifdef __NO_MATH_INLINES\\n    res = atanl((__imag__ _Z) \\/ (__real__ _Z));\\n#else\\n/; s/\\(\\\"st[(]1[)]\\\"[)];[ \\t]*\\)$/\\1\\n#endif/g }",
    "-e", "s/\\(\\#include[ \\t]*<_mingw.h>\\)/\\1\\n\\#include <math.h>/",
    (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\0";
/*
 *  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\0limits.h\0";
/*
 *  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\0";
/*
 *  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 Netbsd_C99_Inline_1 fix
 */
tSCC zNetbsd_C99_Inline_1Name[] =
     "netbsd_c99_inline_1";

/*
 *  File name selection pattern
 */
tSCC zNetbsd_C99_Inline_1List[] =
  "signal.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzNetbsd_C99_Inline_1Machs[] = {
        "*-*-netbsd*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zNetbsd_C99_Inline_1Select0[] =
       "extern __inline int";

#define    NETBSD_C99_INLINE_1_TEST_CT  1
static tTestDesc aNetbsd_C99_Inline_1Tests[] = {
  { TT_EGREP,    zNetbsd_C99_Inline_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Netbsd_C99_Inline_1
 */
static const char* apzNetbsd_C99_Inline_1Patch[] = {
    "format",
    "extern\n\
#ifdef __GNUC_STDC_INLINE__\n\
__attribute__((__gnu_inline__))\n\
#endif\n\
__inline int",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Netbsd_Extra_Semicolon fix
 */
tSCC zNetbsd_Extra_SemicolonName[] =
     "netbsd_extra_semicolon";

/*
 *  File name selection pattern
 */
tSCC zNetbsd_Extra_SemicolonList[] =
  "sys/cdefs.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzNetbsd_Extra_SemicolonMachs[] = {
        "*-*-netbsd*",
        (const char*)NULL };

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

#define    NETBSD_EXTRA_SEMICOLON_TEST_CT  1
static tTestDesc aNetbsd_Extra_SemicolonTests[] = {
  { TT_EGREP,    zNetbsd_Extra_SemicolonSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Netbsd_Extra_Semicolon
 */
static const char* apzNetbsd_Extra_SemicolonPatch[] = {
    "format",
    "#define __END_DECLS }",
    (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\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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 Obstack_Lvalue_Cast fix
 */
tSCC zObstack_Lvalue_CastName[] =
     "obstack_lvalue_cast";

/*
 *  File name selection pattern
 */
tSCC zObstack_Lvalue_CastList[] =
  "obstack.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzObstack_Lvalue_CastMachs (const char**)NULL

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

#define    OBSTACK_LVALUE_CAST_TEST_CT  1
static tTestDesc aObstack_Lvalue_CastTests[] = {
  { TT_EGREP,    zObstack_Lvalue_CastSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Obstack_Lvalue_Cast
 */
static const char* apzObstack_Lvalue_CastPatch[] = {
    "format",
    "((*((%1*)%2) = (%3)), (%2 += sizeof (%1)))",
    (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\0sys/lc_core.h\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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 Pthread_Incomplete_Struct_Argument fix
 */
tSCC zPthread_Incomplete_Struct_ArgumentName[] =
     "pthread_incomplete_struct_argument";

/*
 *  File name selection pattern
 */
tSCC zPthread_Incomplete_Struct_ArgumentList[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzPthread_Incomplete_Struct_ArgumentMachs (const char**)NULL

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

#define    PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT  1
static tTestDesc aPthread_Incomplete_Struct_ArgumentTests[] = {
  { TT_EGREP,    zPthread_Incomplete_Struct_ArgumentSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Pthread_Incomplete_Struct_Argument
 */
static const char* apzPthread_Incomplete_Struct_ArgumentPatch[] = {
    "format",
    "%1 *%2%3",
    "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) (__env)\\[1\\](.*)$",
    (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\0";
/*
 *  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 Rpc_Xdr_Lvalue_Cast_A fix
 */
tSCC zRpc_Xdr_Lvalue_Cast_AName[] =
     "rpc_xdr_lvalue_cast_a";

/*
 *  File name selection pattern
 */
tSCC zRpc_Xdr_Lvalue_Cast_AList[] =
  "rpc/xdr.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzRpc_Xdr_Lvalue_Cast_AMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRpc_Xdr_Lvalue_Cast_ASelect0[] =
       "#define[ \t]*IXDR_GET_LONG.*\\\\\n\
.*__extension__.*";

#define    RPC_XDR_LVALUE_CAST_A_TEST_CT  1
static tTestDesc aRpc_Xdr_Lvalue_Cast_ATests[] = {
  { TT_EGREP,    zRpc_Xdr_Lvalue_Cast_ASelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Rpc_Xdr_Lvalue_Cast_A
 */
static const char* apzRpc_Xdr_Lvalue_Cast_APatch[] = {
    "format",
    "#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Rpc_Xdr_Lvalue_Cast_B fix
 */
tSCC zRpc_Xdr_Lvalue_Cast_BName[] =
     "rpc_xdr_lvalue_cast_b";

/*
 *  File name selection pattern
 */
tSCC zRpc_Xdr_Lvalue_Cast_BList[] =
  "rpc/xdr.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzRpc_Xdr_Lvalue_Cast_BMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zRpc_Xdr_Lvalue_Cast_BSelect0[] =
       "#define[ \t]*IXDR_PUT_LONG.*\\\\\n\
.*__extension__.*";

#define    RPC_XDR_LVALUE_CAST_B_TEST_CT  1
static tTestDesc aRpc_Xdr_Lvalue_Cast_BTests[] = {
  { TT_EGREP,    zRpc_Xdr_Lvalue_Cast_BSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Rpc_Xdr_Lvalue_Cast_B
 */
static const char* apzRpc_Xdr_Lvalue_Cast_BPatch[] = {
    "format",
    "#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zRs6000_DoubleList[] =
  "math.h\0";
/*
 *  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\0";
/*
 *  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\0unistd.h\0";
/*
 *  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_Math fix
 */
tSCC zSco_MathName[] =
     "sco_math";

/*
 *  File name selection pattern
 */
tSCC zSco_MathList[] =
  "math.h\0*/math.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSco_MathMachs (const char**)NULL

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

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

#define    SCO_MATH_TEST_CT  2
static tTestDesc aSco_MathTests[] = {
  { TT_NEGREP,   zSco_MathBypass0, (regex_t*)NULL },
  { TT_EGREP,    zSco_MathSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sco_Math
 */
static const char* apzSco_MathPatch[] = { "sed",
    "-e", "/#define.*__fp_class(a) \\\\/i\\\n\
#ifndef __GNUC__\n",
    "-e", "/.*__builtin_generic/a\\\n\
#else\\\n\
#define __fp_class(a) \\\\\\\n\
  __builtin_choose_expr(__builtin_types_compatible_p(typeof(a),long double),\\\\\\\n\
   __fpclassifyl(a), \\\\\\\n\
    __builtin_choose_expr(__builtin_types_compatible_p(typeof(a), float), \\\\\\\n\
      __fpclassifyf(a),__fpclassify(a)))\\\n\
#endif",
    "-e", "/extern \"C\\+\\+\"/N;/inline double abs/i\\\n\
#ifndef __GNUC__\n",
    "-e", "/inline long double trunc/N;/inline long double trunc.*}.*extern \"C\\+\\+\"/a\\\n\
#endif /* ! __GNUC__ */",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Sco_Regset fix
 */
tSCC zSco_RegsetName[] =
     "sco_regset";

/*
 *  File name selection pattern
 */
tSCC zSco_RegsetList[] =
  "sys/regset.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSco_RegsetMachs[] = {
        "*-*-sco3.2v5*",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSco_RegsetSelect0[] =
       "(struct[ \t]+.*)fpstate";

#define    SCO_REGSET_TEST_CT  1
static tTestDesc aSco_RegsetTests[] = {
  { TT_EGREP,    zSco_RegsetSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Sco_Regset
 */
static const char* apzSco_RegsetPatch[] = {
    "format",
    "%1rsfpstate",
    (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\0";
/*
 *  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\0";
/*
 *  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_Math_1 fix
 */
tSCC zSolaris_Math_1Name[] =
     "solaris_math_1";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_1List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_1Machs (const char**)NULL

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

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

#define    SOLARIS_MATH_1_TEST_CT  2
static tTestDesc aSolaris_Math_1Tests[] = {
  { TT_NEGREP,   zSolaris_Math_1Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_1
 */
static const char* apzSolaris_Math_1Patch[] = {
    "format",
    "#define\tHUGE_VA%1\t(__builtin_huge_va%2())",
    "^#define[ \t]+HUGE_VA([LF]+)[ \t]+__builtin_huge_va([lf]+)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_2 fix
 */
tSCC zSolaris_Math_2Name[] =
     "solaris_math_2";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_2List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_2Machs (const char**)NULL

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

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

#define    SOLARIS_MATH_2_TEST_CT  2
static tTestDesc aSolaris_Math_2Tests[] = {
  { TT_NEGREP,   zSolaris_Math_2Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_2
 */
static const char* apzSolaris_Math_2Patch[] = {
    "format",
    "#define\tINFINITY\t(__builtin_inff())",
    "^#define[ \t]+INFINITY[ \t]+__builtin_infinity",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_3 fix
 */
tSCC zSolaris_Math_3Name[] =
     "solaris_math_3";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_3List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_3Machs (const char**)NULL

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

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

#define    SOLARIS_MATH_3_TEST_CT  2
static tTestDesc aSolaris_Math_3Tests[] = {
  { TT_NEGREP,   zSolaris_Math_3Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_3Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_3
 */
static const char* apzSolaris_Math_3Patch[] = {
    "format",
    "#define\tNAN\t\t(__builtin_nanf(\"\"))",
    "^#define[ \t]+NAN[ \t]+__builtin_nan",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_4 fix
 */
tSCC zSolaris_Math_4Name[] =
     "solaris_math_4";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_4List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_4Machs (const char**)NULL

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

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

#define    SOLARIS_MATH_4_TEST_CT  2
static tTestDesc aSolaris_Math_4Tests[] = {
  { TT_NEGREP,   zSolaris_Math_4Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_4Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_4
 */
static const char* apzSolaris_Math_4Patch[] = {
    "format",
    "#define\tfpclassify(x) \\\n\
  __extension__ ({ __typeof(x) __x_fp = (x); \\\n\
\t\t   isnan(__x_fp) \\\n\
\t\t     ? FP_NAN \\\n\
\t\t     : isinf(__x_fp) \\\n\
\t\t       ? FP_INFINITE \\\n\
\t\t       : isnormal(__x_fp) \\\n\
\t\t\t ? FP_NORMAL \\\n\
\t\t\t : __x_fp == 0.0 \\\n\
\t\t\t   ? FP_ZERO \\\n\
\t\t\t   : FP_SUBNORMAL; })",
    "^#define[ \t]+fpclassify\\(x\\)[ \t]+__builtin_fpclassify\\(x\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_5 fix
 */
tSCC zSolaris_Math_5Name[] =
     "solaris_math_5";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_5List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_5Machs (const char**)NULL

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

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

#define    SOLARIS_MATH_5_TEST_CT  2
static tTestDesc aSolaris_Math_5Tests[] = {
  { TT_NEGREP,   zSolaris_Math_5Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_5Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_5
 */
static const char* apzSolaris_Math_5Patch[] = {
    "format",
    "#define\tisfinite(x) \\\n\
  __extension__ ({ __typeof (x) __x_f = (x); \\\n\
\t\t   __builtin_expect(!isnan(__x_f - __x_f), 1); })",
    "^#define[ \t]+isfinite\\(x\\)[ \t]+__builtin_isfinite\\(x\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_6 fix
 */
tSCC zSolaris_Math_6Name[] =
     "solaris_math_6";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_6List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_6Machs (const char**)NULL

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

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

#define    SOLARIS_MATH_6_TEST_CT  2
static tTestDesc aSolaris_Math_6Tests[] = {
  { TT_NEGREP,   zSolaris_Math_6Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_6Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_6
 */
static const char* apzSolaris_Math_6Patch[] = {
    "format",
    "#define\tisinf(x) \\\n\
  __extension__ ({ __typeof (x) __x_i = (x); \\\n\
\t\t   __builtin_expect(!isnan(__x_i) && !isfinite(__x_i), 0); })",
    "^#define[ \t]+isinf\\(x\\)[ \t]+__builtin_isinf\\(x\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_7 fix
 */
tSCC zSolaris_Math_7Name[] =
     "solaris_math_7";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_7List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_7Machs (const char**)NULL

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

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

#define    SOLARIS_MATH_7_TEST_CT  2
static tTestDesc aSolaris_Math_7Tests[] = {
  { TT_NEGREP,   zSolaris_Math_7Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_7Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_7
 */
static const char* apzSolaris_Math_7Patch[] = {
    "format",
    "#define\tisnormal(x) \\\n\
  __extension__ ({ __typeof(x) __x_n = (x); \\\n\
\t\t   if (__x_n < 0.0) __x_n = -__x_n; \\\n\
\t\t   __builtin_expect(isfinite(__x_n) \\\n\
\t\t\t\t    && (sizeof(__x_n) == sizeof(float) \\\n\
\t\t\t\t\t  ? __x_n >= __FLT_MIN__ \\\n\
\t\t\t\t\t  : sizeof(__x_n) == sizeof(long double) \\\n\
\t\t\t\t\t    ? __x_n >= __LDBL_MIN__ \\\n\
\t\t\t\t\t    : __x_n >= __DBL_MIN__), 1); })",
    "^#define[ \t]+isnormal\\(x\\)[ \t]+__builtin_isnormal\\(x\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_8 fix
 */
tSCC zSolaris_Math_8Name[] =
     "solaris_math_8";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_8List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_8Machs (const char**)NULL

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

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

#define    SOLARIS_MATH_8_TEST_CT  2
static tTestDesc aSolaris_Math_8Tests[] = {
  { TT_NEGREP,   zSolaris_Math_8Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_8Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_8
 */
static const char* apzSolaris_Math_8Patch[] = {
    "format",
    "#define\tsignbit(x)\t(sizeof(x) == sizeof(float) \\\n\
\t\t\t   ? __builtin_signbitf(x) \\\n\
\t\t\t   : sizeof(x) == sizeof(long double) \\\n\
\t\t\t     ? __builtin_signbitl(x) \\\n\
\t\t\t     : __builtin_signbit(x))",
    "^#define[ \t]+signbit\\(x\\)[ \t]+__builtin_signbit\\(x\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Math_9 fix
 */
tSCC zSolaris_Math_9Name[] =
     "solaris_math_9";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Math_9List[] =
  "iso/math_c99.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Math_9Machs (const char**)NULL

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

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

#define    SOLARIS_MATH_9_TEST_CT  2
static tTestDesc aSolaris_Math_9Tests[] = {
  { TT_NEGREP,   zSolaris_Math_9Bypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Math_9Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Math_9
 */
static const char* apzSolaris_Math_9Patch[] = {
    "format",
    "#define\t%1(x, y)%2__builtin_%1(x, y)",
    "^#define[ \t]+([a-z]+)\\(x, y\\)([ \t]+)\\(\\(x\\) __builtin_[a-z]+\\(y\\)\\)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Mutex_Init_1 fix
 */
tSCC zSolaris_Mutex_Init_1Name[] =
     "solaris_mutex_init_1";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Mutex_Init_1List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Mutex_Init_1Machs (const char**)NULL

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

#define    SOLARIS_MUTEX_INIT_1_TEST_CT  1
static tTestDesc aSolaris_Mutex_Init_1Tests[] = {
  { TT_EGREP,    zSolaris_Mutex_Init_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Mutex_Init_1
 */
static const char* apzSolaris_Mutex_Init_1Patch[] = { "sed",
    "-e", "/define[ \t]*PTHREAD_MUTEX_INI/s/{0, 0,/{{{0}, 0}, {{{0}}},/\n\
/define[ \t]*PTHREAD_COND_INI/s/{0,/{{{0},0},/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Mutex_Init_2 fix
 */
tSCC zSolaris_Mutex_Init_2Name[] =
     "solaris_mutex_init_2";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Mutex_Init_2List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Mutex_Init_2Machs[] = {
        "*-*-solaris2.[0-9]",
        "*-*-solaris2.[0-9][!0-9]*",
        (const char*)NULL };

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

#define    SOLARIS_MUTEX_INIT_2_TEST_CT  1
static tTestDesc aSolaris_Mutex_Init_2Tests[] = {
  { TT_EGREP,    zSolaris_Mutex_Init_2Select0, (regex_t*)NULL }, };

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

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Rwlock_Init_1 fix
 */
tSCC zSolaris_Rwlock_Init_1Name[] =
     "solaris_rwlock_init_1";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Rwlock_Init_1List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Rwlock_Init_1Machs[] = {
        "*-*-solaris*",
        (const char*)NULL };

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

#define    SOLARIS_RWLOCK_INIT_1_TEST_CT  1
static tTestDesc aSolaris_Rwlock_Init_1Tests[] = {
  { TT_EGREP,    zSolaris_Rwlock_Init_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Rwlock_Init_1
 */
static const char* apzSolaris_Rwlock_Init_1Patch[] = {
    "format",
    "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\
%0\n\
#else\n\
%1{0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}\n\
#endif",
    "(^#define[ \t]+PTHREAD_RWLOCK_INITIALIZER[ \t]+)\\{0, 0, 0, \\{0, 0, 0\\}, \\{0, 0\\}, \\{0, 0\\}\\}[ \t]*$",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Once_Init_1 fix
 */
tSCC zSolaris_Once_Init_1Name[] =
     "solaris_once_init_1";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Once_Init_1List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Once_Init_1Machs[] = {
        "*-*-solaris*",
        (const char*)NULL };

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

#define    SOLARIS_ONCE_INIT_1_TEST_CT  1
static tTestDesc aSolaris_Once_Init_1Tests[] = {
  { TT_EGREP,    zSolaris_Once_Init_1Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Once_Init_1
 */
static const char* apzSolaris_Once_Init_1Patch[] = {
    "format",
    "%1{%2}%3",
    "(^#define[ \t]+PTHREAD_ONCE_INIT[ \t]+\\{)([^}]+)(\\})[ \t]*$",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Once_Init_2 fix
 */
tSCC zSolaris_Once_Init_2Name[] =
     "solaris_once_init_2";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Once_Init_2List[] =
  "pthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_Once_Init_2Machs[] = {
        "*-*-solaris2.[0-9]",
        "*-*-solaris2.[0-9][!0-9]*",
        (const char*)NULL };

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

#define    SOLARIS_ONCE_INIT_2_TEST_CT  1
static tTestDesc aSolaris_Once_Init_2Tests[] = {
  { TT_EGREP,    zSolaris_Once_Init_2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Once_Init_2
 */
static const char* apzSolaris_Once_Init_2Patch[] = {
    "format",
    "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\
%0\n\
#else\n\
%1{0}, {0}, {0}, {%3}%4\n\
#endif",
    "(^#define[ \t]+PTHREAD_ONCE_INIT[ \t]+\\{\\{)(0, 0, 0, )(PTHREAD_[A-Z_]+)(\\}\\})[ \t]*$",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Socket fix
 */
tSCC zSolaris_SocketName[] =
     "solaris_socket";

/*
 *  File name selection pattern
 */
tSCC zSolaris_SocketList[] =
  "sys/socket.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_SocketMachs (const char**)NULL

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

#define    SOLARIS_SOCKET_TEST_CT  1
static tTestDesc aSolaris_SocketTests[] = {
  { TT_EGREP,    zSolaris_SocketSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Socket
 */
static const char* apzSolaris_SocketPatch[] = {
    "format",
    "extern int %1(int, %2void *, int, int);",
    "^extern int (recv|send)\\(int, (const )*char \\*, int, int\\);",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Stdio_Tag fix
 */
tSCC zSolaris_Stdio_TagName[] =
     "solaris_stdio_tag";

/*
 *  File name selection pattern
 */
tSCC zSolaris_Stdio_TagList[] =
  "stdio_tag.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_Stdio_TagMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSolaris_Stdio_TagSelect0[] =
       "__cplusplus < 54321L";

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

#define    SOLARIS_STDIO_TAG_TEST_CT  2
static tTestDesc aSolaris_Stdio_TagTests[] = {
  { TT_NEGREP,   zSolaris_Stdio_TagBypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_Stdio_TagSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Stdio_Tag
 */
static const char* apzSolaris_Stdio_TagPatch[] = { "sed",
    "-e", "s/defined(__cplusplus) && (__cplusplus < 54321L)/0/",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Unistd fix
 */
tSCC zSolaris_UnistdName[] =
     "solaris_unistd";

/*
 *  File name selection pattern
 */
tSCC zSolaris_UnistdList[] =
  "unistd.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSolaris_UnistdMachs (const char**)NULL

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

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

#define    SOLARIS_UNISTD_TEST_CT  2
static tTestDesc aSolaris_UnistdTests[] = {
  { TT_NEGREP,   zSolaris_UnistdBypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_UnistdSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Unistd
 */
static const char* apzSolaris_UnistdPatch[] = {
    "format",
    "extern int getpagesize();\n\
%0",
    "^extern (pid_t|int) getpgid\\(.*\\);",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Solaris_Widec fix
 */
tSCC zSolaris_WidecName[] =
     "solaris_widec";

/*
 *  File name selection pattern
 */
tSCC zSolaris_WidecList[] =
  "widec.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSolaris_WidecMachs[] = {
        "*-*-solaris2.[0-5]",
        "*-*-solaris2.[0-5].*",
        (const char*)NULL };

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

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

#define    SOLARIS_WIDEC_TEST_CT  2
static tTestDesc aSolaris_WidecTests[] = {
  { TT_NEGREP,   zSolaris_WidecBypass0, (regex_t*)NULL },
  { TT_EGREP,    zSolaris_WidecSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Solaris_Widec
 */
static const char* apzSolaris_WidecPatch[] = {
    "format",
    "%0\n\
#include <wchar.h>",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zStatsswtchList[] =
  "rpcsvc/rstat.h\0";
/*
 *  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\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzStdio_Stdarg_HMachs[] = {
        "*-*-solaris2.1[0-9]*",
        (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\0internal/stdio_core.h\0internal/wchar_core.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzStdio_Va_ListMachs[] = {
        "*-*-solaris2.1[0-9]*",
        (const char*)NULL };

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zStdio_Va_ListBypass0[] =
       "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_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@[ \t]va_list\\([ \t)]\\)@ __gnuc_va_list\\1@\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@typedef[ \t]*__va_list__@typedef __gnuc_va_list@\n\
s@GNUC_VA_LIST@GNUC_Va_LIST@\n\
s@_VA_LIST_DEFINED@_Va_LIST_DEFINED@\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 Stdio_Va_List_Clients fix
 */
tSCC zStdio_Va_List_ClientsName[] =
     "stdio_va_list_clients";

/*
 *  File name selection pattern
 */
tSCC zStdio_Va_List_ClientsList[] =
  "com_err.h\0cps.h\0curses.h\0krb5.h\0lc_core.h\0pfmt.h\0wchar.h\0curses_colr/curses.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzStdio_Va_List_ClientsMachs (const char**)NULL

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zStdio_Va_List_ClientsBypass0[] =
       "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list";
tSCC zStdio_Va_List_ClientsBypass1[] =
       "include <stdarg\\.h>|#ifdef va_start";

#define    STDIO_VA_LIST_CLIENTS_TEST_CT  2
static tTestDesc aStdio_Va_List_ClientsTests[] = {
  { TT_NEGREP,   zStdio_Va_List_ClientsBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zStdio_Va_List_ClientsBypass1, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Stdio_Va_List_Clients
 */
static const char* apzStdio_Va_List_ClientsPatch[] = { "sed",
    "-e", "s@[ \t]va_list\\([ \t)]\\)@ __gnuc_va_list\\1@\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@typedef[ \t]*__va_list__@typedef __gnuc_va_list@\n\
s@GNUC_VA_LIST@GNUC_Va_LIST@\n\
s@_VA_LIST_DEFINED@_Va_LIST_DEFINED@\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";
tSCC zStrict_Ansi_NotBypass1[] =
       "__SCO_VERSION__.*__STDC__ != 1";

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

#define    STRICT_ANSI_NOT_TEST_CT  4
static tTestDesc aStrict_Ansi_NotTests[] = {
  { TT_FUNCTION, zStrict_Ansi_NotFTst0,   0 /* unused */ },
  { TT_NEGREP,   zStrict_Ansi_NotBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zStrict_Ansi_NotBypass1, (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\0limits.h\0stdio.h\0signal.h\0stdlib.h\0sys/signal.h\0time.h\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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>";
tSCC zStruct_SockaddrBypass1[] =
       "struct sockaddr;\n";

#define    STRUCT_SOCKADDR_TEST_CT  3
static tTestDesc aStruct_SockaddrTests[] = {
  { TT_NEGREP,   zStruct_SockaddrBypass0, (regex_t*)NULL },
  { TT_NEGREP,   zStruct_SockaddrBypass1, (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\0rpc/clnt.h\0rpc/svc.h\0rpc/xdr.h\0";
/*
 *  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_]*\\)\\(\\)";

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

#define    SUN_AUTH_PROTO_TEST_CT  2
static tTestDesc aSun_Auth_ProtoTests[] = {
  { TT_NEGREP,   zSun_Auth_ProtoBypass0, (regex_t*)NULL },
  { 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\0hsfs/iso_spec.h\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSun_MallocMachs (const char**)NULL

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

#define    SUN_MALLOC_TEST_CT  1
static tTestDesc aSun_MallocTests[] = {
  { TT_NEGREP,   zSun_MallocBypass0, (regex_t*)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\0";
/*
 *  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\0signal.h\0";
/*
 *  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_Strlen fix
 */
tSCC zSunos_StrlenName[] =
     "sunos_strlen";

/*
 *  File name selection pattern
 */
tSCC zSunos_StrlenList[] =
  "strings.h\0";
/*
 *  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_Disable_Opt fix
 */
tSCC zSvr4_Disable_OptName[] =
     "svr4_disable_opt";

/*
 *  File name selection pattern
 */
tSCC zSvr4_Disable_OptList[] =
  "string.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSvr4_Disable_OptMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSvr4_Disable_OptSelect0[] =
       "#define.*__std_hdr_";

#define    SVR4_DISABLE_OPT_TEST_CT  1
static tTestDesc aSvr4_Disable_OptTests[] = {
  { TT_EGREP,    zSvr4_Disable_OptSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4_Disable_Opt
 */
static const char* apzSvr4_Disable_OptPatch[] = { "sed",
    "-e", "/#define.*__std_hdr_/d",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zSvr4_GetcwdList[] =
  "stdlib.h\0unistd.h\0prototypes.h\0";
/*
 *  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_Krnl fix
 */
tSCC zSvr4_KrnlName[] =
     "svr4_krnl";

/*
 *  File name selection pattern
 */
tSCC zSvr4_KrnlList[] =
  "fs/rfs/rf_cache.h\0sys/erec.h\0sys/err.h\0sys/char.h\0sys/getpages.h\0sys/map.h\0sys/cmn_err.h\0sys/kdebugger.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzSvr4_KrnlMachs[] = {
        "*-*-sysv4*",
        "i?86-sequent-ptx*",
        (const char*)NULL };

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

#define    SVR4_KRNL_TEST_CT  1
static tTestDesc aSvr4_KrnlTests[] = {
  { TT_NEGREP,   zSvr4_KrnlBypass0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4_Krnl
 */
static const char* apzSvr4_KrnlPatch[] = {
    "wrap",
    "#ifdef _KERNEL\n",
    "#endif /* _KERNEL */\n",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zSvr4_ProfilList[] =
  "stdlib.h\0unistd.h\0";
/*
 *  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\\)";

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSvr4_ProfilBypass0[] =
       "Silicon Graphics";

#define    SVR4_PROFIL_TEST_CT  2
static tTestDesc aSvr4_ProfilTests[] = {
  { TT_NEGREP,   zSvr4_ProfilBypass0, (regex_t*)NULL },
  { 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 Svr4_Sighandler_Type fix
 */
tSCC zSvr4_Sighandler_TypeName[] =
     "svr4_sighandler_type";

/*
 *  File name selection pattern
 */
tSCC zSvr4_Sighandler_TypeList[] =
  "sys/signal.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSvr4_Sighandler_TypeMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zSvr4_Sighandler_TypeSelect0[] =
       "void *\\(\\*\\)\\(\\)";

#define    SVR4_SIGHANDLER_TYPE_TEST_CT  1
static tTestDesc aSvr4_Sighandler_TypeTests[] = {
  { TT_EGREP,    zSvr4_Sighandler_TypeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4_Sighandler_Type
 */
static const char* apzSvr4_Sighandler_TypePatch[] = {
    "format",
    "void (*)(int)",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Svr4_Undeclared_Getrnge fix
 */
tSCC zSvr4_Undeclared_GetrngeName[] =
     "svr4_undeclared_getrnge";

/*
 *  File name selection pattern
 */
tSCC zSvr4_Undeclared_GetrngeList[] =
  "regexp.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzSvr4_Undeclared_GetrngeMachs (const char**)NULL

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

/*
 *  content bypass pattern - skip fix if pattern found
 */
tSCC zSvr4_Undeclared_GetrngeBypass0[] =
       "static void getrnge";

#define    SVR4_UNDECLARED_GETRNGE_TEST_CT  2
static tTestDesc aSvr4_Undeclared_GetrngeTests[] = {
  { TT_NEGREP,   zSvr4_Undeclared_GetrngeBypass0, (regex_t*)NULL },
  { TT_EGREP,    zSvr4_Undeclared_GetrngeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Svr4_Undeclared_Getrnge
 */
static const char* apzSvr4_Undeclared_GetrngePatch[] = {
    "format",
    "%0\n\
static int getrnge ();",
    "^static int[ \t]+size;",
    (char*)NULL };

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

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

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

#define    SYSV68_STRING_TEST_CT  1
static tTestDesc aSysv68_StringTests[] = {
  { TT_NEGREP,   zSysv68_StringBypass0, (regex_t*)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\0";
/*
 *  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]*\\(";

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

#define    SYSZ_STDLIB_FOR_SUN_TEST_CT  2
static tTestDesc aSysz_Stdlib_For_SunTests[] = {
  { TT_NEGREP,   zSysz_Stdlib_For_SunBypass0, (regex_t*)NULL },
  { 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 Thread_Keyword fix
 */
tSCC zThread_KeywordName[] =
     "thread_keyword";

/*
 *  File name selection pattern
 */
tSCC zThread_KeywordList[] =
  "pthread.h\0bits/sigthread.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzThread_KeywordMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zThread_KeywordSelect0[] =
       "([* ])__thread([,)])";

#define    THREAD_KEYWORD_TEST_CT  1
static tTestDesc aThread_KeywordTests[] = {
  { TT_EGREP,    zThread_KeywordSelect0, (regex_t*)NULL }, };

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

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

/*
 *  File name selection pattern
 */
tSCC zTinfo_CplusplusList[] =
  "tinfo.h\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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_Const3 fix
 */
tSCC zUltrix_Const3Name[] =
     "ultrix_const3";

/*
 *  File name selection pattern
 */
tSCC zUltrix_Const3List[] =
  "stdio.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_Const3Machs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zUltrix_Const3Select0[] =
       "fdopen\\( .*, char \\*";

#define    ULTRIX_CONST3_TEST_CT  1
static tTestDesc aUltrix_Const3Tests[] = {
  { TT_EGREP,    zUltrix_Const3Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Const3
 */
static const char* apzUltrix_Const3Patch[] = {
    "format",
    "%1 const %3 *__",
    "([ \t*](fdopen)\\(.*)[ \t]+(char|void) \\*__",
    (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\0";
/*
 *  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\0";
/*
 *  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_Locale fix
 */
tSCC zUltrix_LocaleName[] =
     "ultrix_locale";

/*
 *  File name selection pattern
 */
tSCC zUltrix_LocaleList[] =
  "locale.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_LocaleMachs (const char**)NULL

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

#define    ULTRIX_LOCALE_TEST_CT  1
static tTestDesc aUltrix_LocaleTests[] = {
  { TT_EGREP,    zUltrix_LocaleSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Locale
 */
static const char* apzUltrix_LocalePatch[] = {
    "wrap",
    (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\0float.h\0math.h\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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_Stdlib fix
 */
tSCC zUltrix_StdlibName[] =
     "ultrix_stdlib";

/*
 *  File name selection pattern
 */
tSCC zUltrix_StdlibList[] =
  "stdlib.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_StdlibMachs (const char**)NULL

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

#define    ULTRIX_STDLIB_TEST_CT  1
static tTestDesc aUltrix_StdlibTests[] = {
  { TT_EGREP,    zUltrix_StdlibSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Stdlib
 */
static const char* apzUltrix_StdlibPatch[] = { "sed",
    "-e", "/^char.*getenv( const char .* );.*$/a\\\n\
int\t\tsetenv( const char *__name, const char *__val, int __ovrwrt );\\\n\
void\t\tunsetenv( const char *__name );\\\n\
int\t\tputenv( char *__s );\n",
    "-e", "/^char.*getenv();.*$/a\\\n\
int\tsetenv();\\\n\
void\tunsetenv();\\\n\
int\tputenv();\n",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zUltrix_StringsList[] =
  "strings.h\0";
/*
 *  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 Ultrix_Strings2 fix
 */
tSCC zUltrix_Strings2Name[] =
     "ultrix_strings2";

/*
 *  File name selection pattern
 */
tSCC zUltrix_Strings2List[] =
  "strings.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_Strings2Machs (const char**)NULL

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

#define    ULTRIX_STRINGS2_TEST_CT  1
static tTestDesc aUltrix_Strings2Tests[] = {
  { TT_EGREP,    zUltrix_Strings2Select0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Strings2
 */
static const char* apzUltrix_Strings2Patch[] = { "sed",
    "-e", "/^.*strncmp( const .* );.*/a\\\n\
\\\n\
extern int\\\n\
\tstrcasecmp( const char *__s1, const char *__s2),\\\n\
\tstrncasecmp( const char *__s1, const char *__s2, size_t __n );\n",
    "-e", "/^.*strncmp();.*/a\\\n\
extern int\\\n\
\tstrcasecmp(),\\\n\
\tstrncasecmp();\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Sys_Time fix
 */
tSCC zUltrix_Sys_TimeName[] =
     "ultrix_sys_time";

/*
 *  File name selection pattern
 */
tSCC zUltrix_Sys_TimeList[] =
  "sys/time.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_Sys_TimeMachs (const char**)NULL

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

#define    ULTRIX_SYS_TIME_TEST_CT  1
static tTestDesc aUltrix_Sys_TimeTests[] = {
  { TT_EGREP,    zUltrix_Sys_TimeSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Sys_Time
 */
static const char* apzUltrix_Sys_TimePatch[] = { "sed",
    "-e", "/^extern.*time_t.*time( time_t .* );.*$/a\\\n\
\\\n\
extern int adjtime(struct timeval *, struct timeval *);\\\n\
extern int getitimer(int, struct itimerval *);\\\n\
extern int setitimer(int, struct itimerval *, struct itimerval *);\\\n\
extern int gettimeofday(struct timeval *, struct timezone *);\\\n\
extern int settimeofday(struct timeval *, struct timezone *);\\\n\
extern void profil(const void *, size_t, size_t, unsigned int);\\\n\
extern int stime(const time_t *);\\\n\
extern int utimes(const char *, const struct timeval[2]);\\\n\
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);\n",
    "-e", "/^extern.*double.*difftime();.*$/a\\\n\
extern\tint adjtime();\\\n\
extern\tint getitimer();\\\n\
extern\tint setitimer();\\\n\
extern\tint gettimeofday();\\\n\
extern\tint settimeofday();\\\n\
extern\tvoid profil();\\\n\
extern\tint stime();\\\n\
extern\tint utimes();\\\n\
extern\tint select();\n",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Ultrix_Unistd fix
 */
tSCC zUltrix_UnistdName[] =
     "ultrix_unistd";

/*
 *  File name selection pattern
 */
tSCC zUltrix_UnistdList[] =
  "unistd.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzUltrix_UnistdMachs (const char**)NULL

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

#define    ULTRIX_UNISTD_TEST_CT  1
static tTestDesc aUltrix_UnistdTests[] = {
  { TT_EGREP,    zUltrix_UnistdSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Ultrix_Unistd
 */
static const char* apzUltrix_UnistdPatch[] = { "sed",
    "-e", "/^[ \t]*getgroups(),.*$/a\\\n\
\tgetpagesize(),\n",
    "-e", "/^[ \t]*fork(),.*$/a\\\n\
\tvfork(),\n",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zUnicosmk_RestrictList[] =
  "stdio.h\0stdlib.h\0wchar.h\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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\0dbm.h\0locale.h\0stdio.h\0stdlib.h\0string.h\0time.h\0unistd.h\0sys/dir.h\0sys/param.h\0sys/types.h\0";
/*
 *  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\\)";

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

#define    VOID_NULL_TEST_CT  2
static tTestDesc aVoid_NullTests[] = {
  { TT_NEGREP,   zVoid_NullBypass0, (regex_t*)NULL },
  { 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\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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 Windiss_Math1 fix
 */
tSCC zWindiss_Math1Name[] =
     "windiss_math1";

/*
 *  File name selection pattern
 */
tSCC zWindiss_Math1List[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzWindiss_Math1Machs[] = {
        "*-*-windiss",
        (const char*)NULL };
#define WINDISS_MATH1_TEST_CT  0
#define aWindiss_Math1Tests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Windiss_Math1
 */
static const char* apzWindiss_Math1Patch[] = { "sed",
    "-e", "s|inline long double cosl.*|#ifndef __GNUC__|",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Windiss_Math2 fix
 */
tSCC zWindiss_Math2Name[] =
     "windiss_math2";

/*
 *  File name selection pattern
 */
tSCC zWindiss_Math2List[] =
  "math.h\0";
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzWindiss_Math2Machs[] = {
        "*-*-windiss",
        (const char*)NULL };
#define WINDISS_MATH2_TEST_CT  0
#define aWindiss_Math2Tests   (tTestDesc*)NULL

/*
 *  Fix Command Arguments for Windiss_Math2
 */
static const char* apzWindiss_Math2Patch[] = { "sed",
    "-e", "s|/\\* long double declarations \\*/|#endif /* __GNUC__ */|",
    (char*)NULL };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Windiss_Valist fix
 */
tSCC zWindiss_ValistName[] =
     "windiss_valist";

/*
 *  File name selection pattern
 */
#define zWindiss_ValistList (char*)NULL
/*
 *  Machine/OS name selection pattern
 */
tSCC* apzWindiss_ValistMachs[] = {
        "*-*-windiss",
        (const char*)NULL };

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zWindiss_ValistSelect0[] =
       "(#include.*)diab/va_list.h";

#define    WINDISS_VALIST_TEST_CT  1
static tTestDesc aWindiss_ValistTests[] = {
  { TT_EGREP,    zWindiss_ValistSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Windiss_Valist
 */
static const char* apzWindiss_ValistPatch[] = { "sed",
    "-e", "s|diab/va_list.h|stdarg.h|",
    (char*)NULL };

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

/*
 *  File name selection pattern
 */
tSCC zX11_ClassList[] =
  "X11/ShellP.h\0";
/*
 *  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\0";
/*
 *  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\0";
/*
 *  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\0X11/Xmu/Xmu.h\0";
/*
 *  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 };

/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  Description of Glibc_Fdzero_Inline_Asm fix
 */
tSCC zGlibc_Fdzero_Inline_AsmName[] =
     "glibc_fdzero_inline_asm";

/*
 *  File name selection pattern
 */
tSCC zGlibc_Fdzero_Inline_AsmList[] =
  "bits/select.h\0";
/*
 *  Machine/OS name selection pattern
 */
#define apzGlibc_Fdzero_Inline_AsmMachs (const char**)NULL

/*
 *  content selection pattern - do fix if pattern found
 */
tSCC zGlibc_Fdzero_Inline_AsmSelect0[] =
       "^[ \\t]*int __d0, __d1*";

#define    GLIBC_FDZERO_INLINE_ASM_TEST_CT  1
static tTestDesc aGlibc_Fdzero_Inline_AsmTests[] = {
  { TT_EGREP,    zGlibc_Fdzero_Inline_AsmSelect0, (regex_t*)NULL }, };

/*
 *  Fix Command Arguments for Glibc_Fdzero_Inline_Asm
 */
static const char* apzGlibc_Fdzero_Inline_AsmPatch[] = { "sed",
    "-e", "s/int __d0, __d1;/__intptr_t __d0, __d1;/g",
    (char*)NULL };


/* * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *  List of all fixes
 */
#define REGEX_COUNT          262
#define MACH_LIST_SIZE_LIMIT 261
#define FIX_COUNT            217

/*
 *  Enumerate the fixes
 */
typedef enum {
    AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_FIXIDX,
    AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_2_FIXIDX,
    AAB_DARWIN_FENV_H_FIXIDX,
    AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX,
    AAB_FD_ZERO_GNU_TYPES_H_FIXIDX,
    AAB_FD_ZERO_SELECTBITS_H_FIXIDX,
    AAB_SOLARIS_SYS_VARARGS_H_FIXIDX,
    AAB_SUN_MEMCPY_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_SYSWAIT_2_FIXIDX,
    AIX_VOLATILE_FIXIDX,
    ALPHA___ASSERT_FIXIDX,
    ALPHA___EXTERN_PREFIX_FIXIDX,
    ALPHA___EXTERN_PREFIX_STANDARDS_FIXIDX,
    ALPHA___EXTERN_PREFIX_SYS_STAT_FIXIDX,
    ALPHA_ASSERT_FIXIDX,
    ALPHA_BAD_LVAL_FIXIDX,
    ALPHA_GETOPT_FIXIDX,
    ALPHA_PARENS_FIXIDX,
    ALPHA_PTHREAD_FIXIDX,
    ALPHA_PTHREAD_GCC_FIXIDX,
    ALPHA_PTHREAD_INIT_FIXIDX,
    ALPHA_SBRK_FIXIDX,
    ALPHA_WCHAR_FIXIDX,
    AVOID_BOOL_DEFINE_FIXIDX,
    AVOID_BOOL_TYPE_FIXIDX,
    AVOID_WCHAR_T_TYPE_FIXIDX,
    BAD_STRUCT_TERM_FIXIDX,
    BADQUOTE_FIXIDX,
    BROKEN_ASSERT_STDIO_FIXIDX,
    BROKEN_ASSERT_STDLIB_FIXIDX,
    BROKEN_CABS_FIXIDX,
    BROKEN_NAN_FIXIDX,
    BSD_STDIO_ATTRS_CONFLICT_FIXIDX,
    CTRL_QUOTES_DEF_FIXIDX,
    CTRL_QUOTES_USE_FIXIDX,
    CXX_UNREADY_FIXIDX,
    DARWIN_GCC4_BREAKAGE_FIXIDX,
    DARWIN_MACHO_SWAPH_EXTERNC_FIXIDX,
    DARWIN_PRIVATE_EXTERN_FIXIDX,
    DARWIN_STDINT_GUARDS_INTN_FIXIDX,
    DARWIN_STDINT_GUARDS_INTPTR_FIXIDX,
    DARWIN_STDINT_GUARDS_UINTPTR_FIXIDX,
    DEC_INTERN_ASM_FIXIDX,
    DJGPP_WCHAR_H_FIXIDX,
    ECD_CURSOR_FIXIDX,
    EXCEPTION_STRUCTURE_FIXIDX,
    FREEBSD_GCC3_BREAKAGE_FIXIDX,
    FREEBSD_GCC4_BREAKAGE_FIXIDX,
    GLIBC_C99_INLINE_1_FIXIDX,
    GLIBC_C99_INLINE_2_FIXIDX,
    GLIBC_C99_INLINE_3_FIXIDX,
    GLIBC_C99_INLINE_4_FIXIDX,
    GLIBC_MUTEX_INIT_FIXIDX,
    GNU_TYPES_FIXIDX,
    HP_INLINE_FIXIDX,
    HP_SYSFILE_FIXIDX,
    HPUX10_CPP_POW_INLINE_FIXIDX,
    HPUX11_CPP_POW_INLINE_FIXIDX,
    HPPA_HPUX_FP_MACROS_FIXIDX,
    HPUX10_CTYPE_DECLARATIONS1_FIXIDX,
    HPUX10_CTYPE_DECLARATIONS2_FIXIDX,
    HPUX10_STDIO_DECLARATIONS_FIXIDX,
    HPUX11_ABS_FIXIDX,
    HPUX11_FABSF_FIXIDX,
    HPUX11_SIZE_T_FIXIDX,
    HPUX11_SNPRINTF_FIXIDX,
    HPUX11_UINT32_C_FIXIDX,
    HPUX11_VSNPRINTF_FIXIDX,
    HPUX8_BOGUS_INLINES_FIXIDX,
    HPUX_CTYPE_MACROS_FIXIDX,
    HPUX_HTONL_FIXIDX,
    HPUX_LONG_DOUBLE_FIXIDX,
    HPUX_SYSTIME_FIXIDX,
    HPUX_SPU_INFO_FIXIDX,
    HPUX11_EXTERN_SENDFILE_FIXIDX,
    HPUX11_EXTERN_SENDPATH_FIXIDX,
    HPUX_EXTERN_ERRNO_FIXIDX,
    HPUX_PTHREAD_INITIALIZERS_FIXIDX,
    HUGE_VAL_HEX_FIXIDX,
    HUGE_VALF_HEX_FIXIDX,
    HUGE_VALL_HEX_FIXIDX,
    INT_ABORT_FREE_AND_EXIT_FIXIDX,
    IO_QUOTES_DEF_FIXIDX,
    IO_QUOTES_USE_FIXIDX,
    IP_MISSING_SEMI_FIXIDX,
    IRIX___RESTRICT_FIXIDX,
    IRIX___GENERIC1_FIXIDX,
    IRIX___GENERIC2_FIXIDX,
    IRIX_ASM_APOSTROPHE_FIXIDX,
    IRIX_LIMITS_CONST_FIXIDX,
    IRIX_SOCKLEN_T_FIXIDX,
    IRIX_STDINT_C99_FIXIDX,
    IRIX_STDIO_VA_LIST_FIXIDX,
    IRIX_WCSFTIME_FIXIDX,
    ISC_FMOD_FIXIDX,
    ISC_OMITS_WITH_STDC_FIXIDX,
    KANDR_CONCAT_FIXIDX,
    LIBC1_G_VA_LIST_FIXIDX,
    LIBC1_IFDEFD_MEMX_FIXIDX,
    LINUX_IA64_UCONTEXT_FIXIDX,
    LYNXOS_NO_WARNING_IN_SYS_TIME_H_FIXIDX,
    LYNXOS_MISSING_PUTENV_FIXIDX,
    MACHINE_ANSI_H_VA_LIST_FIXIDX,
    MACHINE_NAME_FIXIDX,
    MATH_EXCEPTION_FIXIDX,
    MATH_HUGE_VAL_FROM_DBL_MAX_FIXIDX,
    MINGW_INLINE_FP_MATH_FIXIDX,
    NESTED_AUTH_DES_FIXIDX,
    NESTED_MOTOROLA_FIXIDX,
    NESTED_SYS_LIMITS_FIXIDX,
    NETBSD_C99_INLINE_1_FIXIDX,
    NETBSD_EXTRA_SEMICOLON_FIXIDX,
    NEXT_MATH_PREFIX_FIXIDX,
    NEXT_TEMPLATE_FIXIDX,
    NEXT_VOLITILE_FIXIDX,
    NEXT_WAIT_UNION_FIXIDX,
    NODEENT_SYNTAX_FIXIDX,
    OBSTACK_LVALUE_CAST_FIXIDX,
    OSF_NAMESPACE_A_FIXIDX,
    OSF_NAMESPACE_C_FIXIDX,
    PTHREAD_PAGE_SIZE_FIXIDX,
    PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_FIXIDX,
    READ_RET_TYPE_FIXIDX,
    RPC_XDR_LVALUE_CAST_A_FIXIDX,
    RPC_XDR_LVALUE_CAST_B_FIXIDX,
    RS6000_DOUBLE_FIXIDX,
    RS6000_FCHMOD_FIXIDX,
    RS6000_PARAM_FIXIDX,
    SCO_MATH_FIXIDX,
    SCO_REGSET_FIXIDX,
    SCO_STATIC_FUNC_FIXIDX,
    SCO_UTIME_FIXIDX,
    SOLARIS_MATH_1_FIXIDX,
    SOLARIS_MATH_2_FIXIDX,
    SOLARIS_MATH_3_FIXIDX,
    SOLARIS_MATH_4_FIXIDX,
    SOLARIS_MATH_5_FIXIDX,
    SOLARIS_MATH_6_FIXIDX,
    SOLARIS_MATH_7_FIXIDX,
    SOLARIS_MATH_8_FIXIDX,
    SOLARIS_MATH_9_FIXIDX,
    SOLARIS_MUTEX_INIT_1_FIXIDX,
    SOLARIS_MUTEX_INIT_2_FIXIDX,
    SOLARIS_RWLOCK_INIT_1_FIXIDX,
    SOLARIS_ONCE_INIT_1_FIXIDX,
    SOLARIS_ONCE_INIT_2_FIXIDX,
    SOLARIS_SOCKET_FIXIDX,
    SOLARIS_STDIO_TAG_FIXIDX,
    SOLARIS_UNISTD_FIXIDX,
    SOLARIS_WIDEC_FIXIDX,
    STATSSWTCH_FIXIDX,
    STDIO_STDARG_H_FIXIDX,
    STDIO_VA_LIST_FIXIDX,
    STDIO_VA_LIST_CLIENTS_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_STRLEN_FIXIDX,
    SVR4_DISABLE_OPT_FIXIDX,
    SVR4_GETCWD_FIXIDX,
    SVR4_KRNL_FIXIDX,
    SVR4_PROFIL_FIXIDX,
    SVR4_SIGHANDLER_TYPE_FIXIDX,
    SVR4_UNDECLARED_GETRNGE_FIXIDX,
    SYSV68_STRING_FIXIDX,
    SYSZ_STDLIB_FOR_SUN_FIXIDX,
    THREAD_KEYWORD_FIXIDX,
    TINFO_CPLUSPLUS_FIXIDX,
    ULTRIX_ATEXIT_PARAM_FIXIDX,
    ULTRIX_ATOF_PARAM_FIXIDX,
    ULTRIX_CONST_FIXIDX,
    ULTRIX_CONST2_FIXIDX,
    ULTRIX_CONST3_FIXIDX,
    ULTRIX_FIX_FIXPROTO_FIXIDX,
    ULTRIX_IFDEF_FIXIDX,
    ULTRIX_LOCALE_FIXIDX,
    ULTRIX_MATH_IFDEF_FIXIDX,
    ULTRIX_NESTED_IOCTL_FIXIDX,
    ULTRIX_NESTED_SVC_FIXIDX,
    ULTRIX_STAT_FIXIDX,
    ULTRIX_STATIC_FIXIDX,
    ULTRIX_STDLIB_FIXIDX,
    ULTRIX_STRINGS_FIXIDX,
    ULTRIX_STRINGS2_FIXIDX,
    ULTRIX_SYS_TIME_FIXIDX,
    ULTRIX_UNISTD_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,
    WINDISS_MATH1_FIXIDX,
    WINDISS_MATH2_FIXIDX,
    WINDISS_VALIST_FIXIDX,
    X11_CLASS_FIXIDX,
    X11_CLASS_USAGE_FIXIDX,
    X11_NEW_FIXIDX,
    X11_SPRINTF_FIXIDX,
    GLIBC_FDZERO_INLINE_ASM_FIXIDX
} t_fixinc_idx;

tFixDesc fixDescList[ FIX_COUNT ] = {
  {  zAab_Darwin7_9_Long_Double_FuncsName,    zAab_Darwin7_9_Long_Double_FuncsList,
     apzAab_Darwin7_9_Long_Double_FuncsMachs,
     AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Darwin7_9_Long_Double_FuncsTests,   apzAab_Darwin7_9_Long_Double_FuncsPatch, 0 },

  {  zAab_Darwin7_9_Long_Double_Funcs_2Name,    zAab_Darwin7_9_Long_Double_Funcs_2List,
     apzAab_Darwin7_9_Long_Double_Funcs_2Machs,
     AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAab_Darwin7_9_Long_Double_Funcs_2Tests,   apzAab_Darwin7_9_Long_Double_Funcs_2Patch, 0 },

  {  zAab_Darwin_Fenv_HName,    zAab_Darwin_Fenv_HList,
     apzAab_Darwin_Fenv_HMachs,
     AAB_DARWIN_FENV_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Darwin_Fenv_HTests,   apzAab_Darwin_Fenv_HPatch, 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_Solaris_Sys_Varargs_HName,    zAab_Solaris_Sys_Varargs_HList,
     apzAab_Solaris_Sys_Varargs_HMachs,
     AAB_SOLARIS_SYS_VARARGS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
     aAab_Solaris_Sys_Varargs_HTests,   apzAab_Solaris_Sys_Varargs_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_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_Syswait_2Name,    zAix_Syswait_2List,
     apzAix_Syswait_2Machs,
     AIX_SYSWAIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAix_Syswait_2Tests,   apzAix_Syswait_2Patch, 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___Extern_PrefixName,    zAlpha___Extern_PrefixList,
     apzAlpha___Extern_PrefixMachs,
     ALPHA___EXTERN_PREFIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha___Extern_PrefixTests,   apzAlpha___Extern_PrefixPatch, 0 },

  {  zAlpha___Extern_Prefix_StandardsName,    zAlpha___Extern_Prefix_StandardsList,
     apzAlpha___Extern_Prefix_StandardsMachs,
     ALPHA___EXTERN_PREFIX_STANDARDS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha___Extern_Prefix_StandardsTests,   apzAlpha___Extern_Prefix_StandardsPatch, 0 },

  {  zAlpha___Extern_Prefix_Sys_StatName,    zAlpha___Extern_Prefix_Sys_StatList,
     apzAlpha___Extern_Prefix_Sys_StatMachs,
     ALPHA___EXTERN_PREFIX_SYS_STAT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha___Extern_Prefix_Sys_StatTests,   apzAlpha___Extern_Prefix_Sys_StatPatch, 0 },

  {  zAlpha_AssertName,    zAlpha_AssertList,
     apzAlpha_AssertMachs,
     ALPHA_ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha_AssertTests,   apzAlpha_AssertPatch, 0 },

  {  zAlpha_Bad_LvalName,    zAlpha_Bad_LvalList,
     apzAlpha_Bad_LvalMachs,
     ALPHA_BAD_LVAL_TEST_CT, FD_MACH_ONLY,
     aAlpha_Bad_LvalTests,   apzAlpha_Bad_LvalPatch, 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_PthreadName,    zAlpha_PthreadList,
     apzAlpha_PthreadMachs,
     ALPHA_PTHREAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha_PthreadTests,   apzAlpha_PthreadPatch, 0 },

  {  zAlpha_Pthread_GccName,    zAlpha_Pthread_GccList,
     apzAlpha_Pthread_GccMachs,
     ALPHA_PTHREAD_GCC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aAlpha_Pthread_GccTests,   apzAlpha_Pthread_GccPatch, 0 },

  {  zAlpha_Pthread_InitName,    zAlpha_Pthread_InitList,
     apzAlpha_Pthread_InitMachs,
     ALPHA_PTHREAD_INIT_TEST_CT, FD_MACH_ONLY,
     aAlpha_Pthread_InitTests,   apzAlpha_Pthread_InitPatch, 0 },

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

  {  zAlpha_WcharName,    zAlpha_WcharList,
     apzAlpha_WcharMachs,
     ALPHA_WCHAR_TEST_CT, FD_MACH_ONLY,
     aAlpha_WcharTests,   apzAlpha_WcharPatch, 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_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,
     aBroken_CabsTests,   apzBroken_CabsPatch, 0 },

  {  zBroken_NanName,    zBroken_NanList,
     apzBroken_NanMachs,
     BROKEN_NAN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBroken_NanTests,   apzBroken_NanPatch, 0 },

  {  zBsd_Stdio_Attrs_ConflictName,    zBsd_Stdio_Attrs_ConflictList,
     apzBsd_Stdio_Attrs_ConflictMachs,
     BSD_STDIO_ATTRS_CONFLICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aBsd_Stdio_Attrs_ConflictTests,   apzBsd_Stdio_Attrs_ConflictPatch, 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 },

  {  zDarwin_Gcc4_BreakageName,    zDarwin_Gcc4_BreakageList,
     apzDarwin_Gcc4_BreakageMachs,
     DARWIN_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Gcc4_BreakageTests,   apzDarwin_Gcc4_BreakagePatch, 0 },

  {  zDarwin_Macho_Swaph_ExterncName,    zDarwin_Macho_Swaph_ExterncList,
     apzDarwin_Macho_Swaph_ExterncMachs,
     DARWIN_MACHO_SWAPH_EXTERNC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Macho_Swaph_ExterncTests,   apzDarwin_Macho_Swaph_ExterncPatch, 0 },

  {  zDarwin_Private_ExternName,    zDarwin_Private_ExternList,
     apzDarwin_Private_ExternMachs,
     DARWIN_PRIVATE_EXTERN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Private_ExternTests,   apzDarwin_Private_ExternPatch, 0 },

  {  zDarwin_Stdint_Guards_IntnName,    zDarwin_Stdint_Guards_IntnList,
     apzDarwin_Stdint_Guards_IntnMachs,
     DARWIN_STDINT_GUARDS_INTN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Stdint_Guards_IntnTests,   apzDarwin_Stdint_Guards_IntnPatch, 0 },

  {  zDarwin_Stdint_Guards_IntptrName,    zDarwin_Stdint_Guards_IntptrList,
     apzDarwin_Stdint_Guards_IntptrMachs,
     DARWIN_STDINT_GUARDS_INTPTR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Stdint_Guards_IntptrTests,   apzDarwin_Stdint_Guards_IntptrPatch, 0 },

  {  zDarwin_Stdint_Guards_UintptrName,    zDarwin_Stdint_Guards_UintptrList,
     apzDarwin_Stdint_Guards_UintptrMachs,
     DARWIN_STDINT_GUARDS_UINTPTR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aDarwin_Stdint_Guards_UintptrTests,   apzDarwin_Stdint_Guards_UintptrPatch, 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 },

  {  zException_StructureName,    zException_StructureList,
     apzException_StructureMachs,
     EXCEPTION_STRUCTURE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aException_StructureTests,   apzException_StructurePatch, 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 },

  {  zFreebsd_Gcc4_BreakageName,    zFreebsd_Gcc4_BreakageList,
     apzFreebsd_Gcc4_BreakageMachs,
     FREEBSD_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aFreebsd_Gcc4_BreakageTests,   apzFreebsd_Gcc4_BreakagePatch, 0 },

  {  zGlibc_C99_Inline_1Name,    zGlibc_C99_Inline_1List,
     apzGlibc_C99_Inline_1Machs,
     GLIBC_C99_INLINE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_C99_Inline_1Tests,   apzGlibc_C99_Inline_1Patch, 0 },

  {  zGlibc_C99_Inline_2Name,    zGlibc_C99_Inline_2List,
     apzGlibc_C99_Inline_2Machs,
     GLIBC_C99_INLINE_2_TEST_CT, FD_MACH_ONLY,
     aGlibc_C99_Inline_2Tests,   apzGlibc_C99_Inline_2Patch, 0 },

  {  zGlibc_C99_Inline_3Name,    zGlibc_C99_Inline_3List,
     apzGlibc_C99_Inline_3Machs,
     GLIBC_C99_INLINE_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_C99_Inline_3Tests,   apzGlibc_C99_Inline_3Patch, 0 },

  {  zGlibc_C99_Inline_4Name,    zGlibc_C99_Inline_4List,
     apzGlibc_C99_Inline_4Machs,
     GLIBC_C99_INLINE_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aGlibc_C99_Inline_4Tests,   apzGlibc_C99_Inline_4Patch, 0 },

  {  zGlibc_Mutex_InitName,    zGlibc_Mutex_InitList,
     apzGlibc_Mutex_InitMachs,
     GLIBC_MUTEX_INIT_TEST_CT, FD_MACH_ONLY,
     aGlibc_Mutex_InitTests,   apzGlibc_Mutex_InitPatch, 0 },

  {  zGnu_TypesName,    zGnu_TypesList,
     apzGnu_TypesMachs,
     GNU_TYPES_TEST_CT, FD_MACH_IFNOT | 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 },

  {  zHppa_Hpux_Fp_MacrosName,    zHppa_Hpux_Fp_MacrosList,
     apzHppa_Hpux_Fp_MacrosMachs,
     HPPA_HPUX_FP_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHppa_Hpux_Fp_MacrosTests,   apzHppa_Hpux_Fp_MacrosPatch, 0 },

  {  zHpux10_Ctype_Declarations1Name,    zHpux10_Ctype_Declarations1List,
     apzHpux10_Ctype_Declarations1Machs,
     HPUX10_CTYPE_DECLARATIONS1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Ctype_Declarations1Tests,   apzHpux10_Ctype_Declarations1Patch, 0 },

  {  zHpux10_Ctype_Declarations2Name,    zHpux10_Ctype_Declarations2List,
     apzHpux10_Ctype_Declarations2Machs,
     HPUX10_CTYPE_DECLARATIONS2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Ctype_Declarations2Tests,   apzHpux10_Ctype_Declarations2Patch, 0 },

  {  zHpux10_Stdio_DeclarationsName,    zHpux10_Stdio_DeclarationsList,
     apzHpux10_Stdio_DeclarationsMachs,
     HPUX10_STDIO_DECLARATIONS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux10_Stdio_DeclarationsTests,   apzHpux10_Stdio_DeclarationsPatch, 0 },

  {  zHpux11_AbsName,    zHpux11_AbsList,
     apzHpux11_AbsMachs,
     HPUX11_ABS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_AbsTests,   apzHpux11_AbsPatch, 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_SnprintfName,    zHpux11_SnprintfList,
     apzHpux11_SnprintfMachs,
     HPUX11_SNPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_SnprintfTests,   apzHpux11_SnprintfPatch, 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_Ctype_MacrosName,    zHpux_Ctype_MacrosList,
     apzHpux_Ctype_MacrosMachs,
     HPUX_CTYPE_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_Ctype_MacrosTests,   apzHpux_Ctype_MacrosPatch, 0 },

  {  zHpux_HtonlName,    zHpux_HtonlList,
     apzHpux_HtonlMachs,
     HPUX_HTONL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_HtonlTests,   apzHpux_HtonlPatch, 0 },

  {  zHpux_Long_DoubleName,    zHpux_Long_DoubleList,
     apzHpux_Long_DoubleMachs,
     HPUX_LONG_DOUBLE_TEST_CT, FD_MACH_ONLY,
     aHpux_Long_DoubleTests,   apzHpux_Long_DoublePatch, 0 },

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

  {  zHpux_Spu_InfoName,    zHpux_Spu_InfoList,
     apzHpux_Spu_InfoMachs,
     HPUX_SPU_INFO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_Spu_InfoTests,   apzHpux_Spu_InfoPatch, 0 },

  {  zHpux11_Extern_SendfileName,    zHpux11_Extern_SendfileList,
     apzHpux11_Extern_SendfileMachs,
     HPUX11_EXTERN_SENDFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Extern_SendfileTests,   apzHpux11_Extern_SendfilePatch, 0 },

  {  zHpux11_Extern_SendpathName,    zHpux11_Extern_SendpathList,
     apzHpux11_Extern_SendpathMachs,
     HPUX11_EXTERN_SENDPATH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux11_Extern_SendpathTests,   apzHpux11_Extern_SendpathPatch, 0 },

  {  zHpux_Extern_ErrnoName,    zHpux_Extern_ErrnoList,
     apzHpux_Extern_ErrnoMachs,
     HPUX_EXTERN_ERRNO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHpux_Extern_ErrnoTests,   apzHpux_Extern_ErrnoPatch, 0 },

  {  zHpux_Pthread_InitializersName,    zHpux_Pthread_InitializersList,
     apzHpux_Pthread_InitializersMachs,
     HPUX_PTHREAD_INITIALIZERS_TEST_CT, FD_MACH_ONLY,
     aHpux_Pthread_InitializersTests,   apzHpux_Pthread_InitializersPatch, 0 },

  {  zHuge_Val_HexName,    zHuge_Val_HexList,
     apzHuge_Val_HexMachs,
     HUGE_VAL_HEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHuge_Val_HexTests,   apzHuge_Val_HexPatch, 0 },

  {  zHuge_Valf_HexName,    zHuge_Valf_HexList,
     apzHuge_Valf_HexMachs,
     HUGE_VALF_HEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHuge_Valf_HexTests,   apzHuge_Valf_HexPatch, 0 },

  {  zHuge_Vall_HexName,    zHuge_Vall_HexList,
     apzHuge_Vall_HexMachs,
     HUGE_VALL_HEX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aHuge_Vall_HexTests,   apzHuge_Vall_HexPatch, 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___RestrictName,    zIrix___RestrictList,
     apzIrix___RestrictMachs,
     IRIX___RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIrix___RestrictTests,   apzIrix___RestrictPatch, 0 },

  {  zIrix___Generic1Name,    zIrix___Generic1List,
     apzIrix___Generic1Machs,
     IRIX___GENERIC1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIrix___Generic1Tests,   apzIrix___Generic1Patch, 0 },

  {  zIrix___Generic2Name,    zIrix___Generic2List,
     apzIrix___Generic2Machs,
     IRIX___GENERIC2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIrix___Generic2Tests,   apzIrix___Generic2Patch, 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_Socklen_TName,    zIrix_Socklen_TList,
     apzIrix_Socklen_TMachs,
     IRIX_SOCKLEN_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIrix_Socklen_TTests,   apzIrix_Socklen_TPatch, 0 },

  {  zIrix_Stdint_C99Name,    zIrix_Stdint_C99List,
     apzIrix_Stdint_C99Machs,
     IRIX_STDINT_C99_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIrix_Stdint_C99Tests,   apzIrix_Stdint_C99Patch, 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 },

  {  zIrix_WcsftimeName,    zIrix_WcsftimeList,
     apzIrix_WcsftimeMachs,
     IRIX_WCSFTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aIrix_WcsftimeTests,   apzIrix_WcsftimePatch, 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_G_Va_ListName,    zLibc1_G_Va_ListList,
     apzLibc1_G_Va_ListMachs,
     LIBC1_G_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aLibc1_G_Va_ListTests,   apzLibc1_G_Va_ListPatch, 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 },

  {  zLinux_Ia64_UcontextName,    zLinux_Ia64_UcontextList,
     apzLinux_Ia64_UcontextMachs,
     LINUX_IA64_UCONTEXT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aLinux_Ia64_UcontextTests,   apzLinux_Ia64_UcontextPatch, 0 },

  {  zLynxos_No_Warning_In_Sys_Time_HName,    zLynxos_No_Warning_In_Sys_Time_HList,
     apzLynxos_No_Warning_In_Sys_Time_HMachs,
     LYNXOS_NO_WARNING_IN_SYS_TIME_H_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aLynxos_No_Warning_In_Sys_Time_HTests,   apzLynxos_No_Warning_In_Sys_Time_HPatch, 0 },

  {  zLynxos_Missing_PutenvName,    zLynxos_Missing_PutenvList,
     apzLynxos_Missing_PutenvMachs,
     LYNXOS_MISSING_PUTENV_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aLynxos_Missing_PutenvTests,   apzLynxos_Missing_PutenvPatch, 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 },

  {  zMingw_Inline_Fp_MathName,    zMingw_Inline_Fp_MathList,
     apzMingw_Inline_Fp_MathMachs,
     MINGW_INLINE_FP_MATH_TEST_CT, FD_MACH_ONLY,
     aMingw_Inline_Fp_MathTests,   apzMingw_Inline_Fp_MathPatch, 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 },

  {  zNetbsd_C99_Inline_1Name,    zNetbsd_C99_Inline_1List,
     apzNetbsd_C99_Inline_1Machs,
     NETBSD_C99_INLINE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNetbsd_C99_Inline_1Tests,   apzNetbsd_C99_Inline_1Patch, 0 },

  {  zNetbsd_Extra_SemicolonName,    zNetbsd_Extra_SemicolonList,
     apzNetbsd_Extra_SemicolonMachs,
     NETBSD_EXTRA_SEMICOLON_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aNetbsd_Extra_SemicolonTests,   apzNetbsd_Extra_SemicolonPatch, 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 },

  {  zObstack_Lvalue_CastName,    zObstack_Lvalue_CastList,
     apzObstack_Lvalue_CastMachs,
     OBSTACK_LVALUE_CAST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aObstack_Lvalue_CastTests,   apzObstack_Lvalue_CastPatch, 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 },

  {  zPthread_Incomplete_Struct_ArgumentName,    zPthread_Incomplete_Struct_ArgumentList,
     apzPthread_Incomplete_Struct_ArgumentMachs,
     PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aPthread_Incomplete_Struct_ArgumentTests,   apzPthread_Incomplete_Struct_ArgumentPatch, 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 },

  {  zRpc_Xdr_Lvalue_Cast_AName,    zRpc_Xdr_Lvalue_Cast_AList,
     apzRpc_Xdr_Lvalue_Cast_AMachs,
     RPC_XDR_LVALUE_CAST_A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRpc_Xdr_Lvalue_Cast_ATests,   apzRpc_Xdr_Lvalue_Cast_APatch, 0 },

  {  zRpc_Xdr_Lvalue_Cast_BName,    zRpc_Xdr_Lvalue_Cast_BList,
     apzRpc_Xdr_Lvalue_Cast_BMachs,
     RPC_XDR_LVALUE_CAST_B_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aRpc_Xdr_Lvalue_Cast_BTests,   apzRpc_Xdr_Lvalue_Cast_BPatch, 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_MathName,    zSco_MathList,
     apzSco_MathMachs,
     SCO_MATH_TEST_CT, FD_MACH_ONLY,
     aSco_MathTests,   apzSco_MathPatch, 0 },

  {  zSco_RegsetName,    zSco_RegsetList,
     apzSco_RegsetMachs,
     SCO_REGSET_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSco_RegsetTests,   apzSco_RegsetPatch, 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_Math_1Name,    zSolaris_Math_1List,
     apzSolaris_Math_1Machs,
     SOLARIS_MATH_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_1Tests,   apzSolaris_Math_1Patch, 0 },

  {  zSolaris_Math_2Name,    zSolaris_Math_2List,
     apzSolaris_Math_2Machs,
     SOLARIS_MATH_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_2Tests,   apzSolaris_Math_2Patch, 0 },

  {  zSolaris_Math_3Name,    zSolaris_Math_3List,
     apzSolaris_Math_3Machs,
     SOLARIS_MATH_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_3Tests,   apzSolaris_Math_3Patch, 0 },

  {  zSolaris_Math_4Name,    zSolaris_Math_4List,
     apzSolaris_Math_4Machs,
     SOLARIS_MATH_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_4Tests,   apzSolaris_Math_4Patch, 0 },

  {  zSolaris_Math_5Name,    zSolaris_Math_5List,
     apzSolaris_Math_5Machs,
     SOLARIS_MATH_5_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_5Tests,   apzSolaris_Math_5Patch, 0 },

  {  zSolaris_Math_6Name,    zSolaris_Math_6List,
     apzSolaris_Math_6Machs,
     SOLARIS_MATH_6_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_6Tests,   apzSolaris_Math_6Patch, 0 },

  {  zSolaris_Math_7Name,    zSolaris_Math_7List,
     apzSolaris_Math_7Machs,
     SOLARIS_MATH_7_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_7Tests,   apzSolaris_Math_7Patch, 0 },

  {  zSolaris_Math_8Name,    zSolaris_Math_8List,
     apzSolaris_Math_8Machs,
     SOLARIS_MATH_8_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_8Tests,   apzSolaris_Math_8Patch, 0 },

  {  zSolaris_Math_9Name,    zSolaris_Math_9List,
     apzSolaris_Math_9Machs,
     SOLARIS_MATH_9_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Math_9Tests,   apzSolaris_Math_9Patch, 0 },

  {  zSolaris_Mutex_Init_1Name,    zSolaris_Mutex_Init_1List,
     apzSolaris_Mutex_Init_1Machs,
     SOLARIS_MUTEX_INIT_1_TEST_CT, FD_MACH_ONLY,
     aSolaris_Mutex_Init_1Tests,   apzSolaris_Mutex_Init_1Patch, 0 },

  {  zSolaris_Mutex_Init_2Name,    zSolaris_Mutex_Init_2List,
     apzSolaris_Mutex_Init_2Machs,
     SOLARIS_MUTEX_INIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Mutex_Init_2Tests,   apzSolaris_Mutex_Init_2Patch, 0 },

  {  zSolaris_Rwlock_Init_1Name,    zSolaris_Rwlock_Init_1List,
     apzSolaris_Rwlock_Init_1Machs,
     SOLARIS_RWLOCK_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Rwlock_Init_1Tests,   apzSolaris_Rwlock_Init_1Patch, 0 },

  {  zSolaris_Once_Init_1Name,    zSolaris_Once_Init_1List,
     apzSolaris_Once_Init_1Machs,
     SOLARIS_ONCE_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Once_Init_1Tests,   apzSolaris_Once_Init_1Patch, 0 },

  {  zSolaris_Once_Init_2Name,    zSolaris_Once_Init_2List,
     apzSolaris_Once_Init_2Machs,
     SOLARIS_ONCE_INIT_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_Once_Init_2Tests,   apzSolaris_Once_Init_2Patch, 0 },

  {  zSolaris_SocketName,    zSolaris_SocketList,
     apzSolaris_SocketMachs,
     SOLARIS_SOCKET_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_SocketTests,   apzSolaris_SocketPatch, 0 },

  {  zSolaris_Stdio_TagName,    zSolaris_Stdio_TagList,
     apzSolaris_Stdio_TagMachs,
     SOLARIS_STDIO_TAG_TEST_CT, FD_MACH_ONLY,
     aSolaris_Stdio_TagTests,   apzSolaris_Stdio_TagPatch, 0 },

  {  zSolaris_UnistdName,    zSolaris_UnistdList,
     apzSolaris_UnistdMachs,
     SOLARIS_UNISTD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_UnistdTests,   apzSolaris_UnistdPatch, 0 },

  {  zSolaris_WidecName,    zSolaris_WidecList,
     apzSolaris_WidecMachs,
     SOLARIS_WIDEC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSolaris_WidecTests,   apzSolaris_WidecPatch, 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_IFNOT | 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_IFNOT,
     aStdio_Va_ListTests,   apzStdio_Va_ListPatch, 0 },

  {  zStdio_Va_List_ClientsName,    zStdio_Va_List_ClientsList,
     apzStdio_Va_List_ClientsMachs,
     STDIO_VA_LIST_CLIENTS_TEST_CT, FD_MACH_ONLY,
     aStdio_Va_List_ClientsTests,   apzStdio_Va_List_ClientsPatch, 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_StrlenName,    zSunos_StrlenList,
     apzSunos_StrlenMachs,
     SUNOS_STRLEN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSunos_StrlenTests,   apzSunos_StrlenPatch, 0 },

  {  zSvr4_Disable_OptName,    zSvr4_Disable_OptList,
     apzSvr4_Disable_OptMachs,
     SVR4_DISABLE_OPT_TEST_CT, FD_MACH_ONLY,
     aSvr4_Disable_OptTests,   apzSvr4_Disable_OptPatch, 0 },

  {  zSvr4_GetcwdName,    zSvr4_GetcwdList,
     apzSvr4_GetcwdMachs,
     SVR4_GETCWD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4_GetcwdTests,   apzSvr4_GetcwdPatch, 0 },

  {  zSvr4_KrnlName,    zSvr4_KrnlList,
     apzSvr4_KrnlMachs,
     SVR4_KRNL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4_KrnlTests,   apzSvr4_KrnlPatch, 0 },

  {  zSvr4_ProfilName,    zSvr4_ProfilList,
     apzSvr4_ProfilMachs,
     SVR4_PROFIL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4_ProfilTests,   apzSvr4_ProfilPatch, 0 },

  {  zSvr4_Sighandler_TypeName,    zSvr4_Sighandler_TypeList,
     apzSvr4_Sighandler_TypeMachs,
     SVR4_SIGHANDLER_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4_Sighandler_TypeTests,   apzSvr4_Sighandler_TypePatch, 0 },

  {  zSvr4_Undeclared_GetrngeName,    zSvr4_Undeclared_GetrngeList,
     apzSvr4_Undeclared_GetrngeMachs,
     SVR4_UNDECLARED_GETRNGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aSvr4_Undeclared_GetrngeTests,   apzSvr4_Undeclared_GetrngePatch, 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 },

  {  zThread_KeywordName,    zThread_KeywordList,
     apzThread_KeywordMachs,
     THREAD_KEYWORD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aThread_KeywordTests,   apzThread_KeywordPatch, 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_Const3Name,    zUltrix_Const3List,
     apzUltrix_Const3Machs,
     ULTRIX_CONST3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_Const3Tests,   apzUltrix_Const3Patch, 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_LocaleName,    zUltrix_LocaleList,
     apzUltrix_LocaleMachs,
     ULTRIX_LOCALE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_LocaleTests,   apzUltrix_LocalePatch, 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_StdlibName,    zUltrix_StdlibList,
     apzUltrix_StdlibMachs,
     ULTRIX_STDLIB_TEST_CT, FD_MACH_ONLY,
     aUltrix_StdlibTests,   apzUltrix_StdlibPatch, 0 },

  {  zUltrix_StringsName,    zUltrix_StringsList,
     apzUltrix_StringsMachs,
     ULTRIX_STRINGS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
     aUltrix_StringsTests,   apzUltrix_StringsPatch, 0 },

  {  zUltrix_Strings2Name,    zUltrix_Strings2List,
     apzUltrix_Strings2Machs,
     ULTRIX_STRINGS2_TEST_CT, FD_MACH_ONLY,
     aUltrix_Strings2Tests,   apzUltrix_Strings2Patch, 0 },

  {  zUltrix_Sys_TimeName,    zUltrix_Sys_TimeList,
     apzUltrix_Sys_TimeMachs,
     ULTRIX_SYS_TIME_TEST_CT, FD_MACH_ONLY,
     aUltrix_Sys_TimeTests,   apzUltrix_Sys_TimePatch, 0 },

  {  zUltrix_UnistdName,    zUltrix_UnistdList,
     apzUltrix_UnistdMachs,
     ULTRIX_UNISTD_TEST_CT, FD_MACH_ONLY,
     aUltrix_UnistdTests,   apzUltrix_UnistdPatch, 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 },

  {  zWindiss_Math1Name,    zWindiss_Math1List,
     apzWindiss_Math1Machs,
     WINDISS_MATH1_TEST_CT, FD_MACH_ONLY,
     aWindiss_Math1Tests,   apzWindiss_Math1Patch, 0 },

  {  zWindiss_Math2Name,    zWindiss_Math2List,
     apzWindiss_Math2Machs,
     WINDISS_MATH2_TEST_CT, FD_MACH_ONLY,
     aWindiss_Math2Tests,   apzWindiss_Math2Patch, 0 },

  {  zWindiss_ValistName,    zWindiss_ValistList,
     apzWindiss_ValistMachs,
     WINDISS_VALIST_TEST_CT, FD_MACH_ONLY,
     aWindiss_ValistTests,   apzWindiss_ValistPatch, 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 },

  {  zGlibc_Fdzero_Inline_AsmName,    zGlibc_Fdzero_Inline_AsmList,
     apzGlibc_Fdzero_Inline_AsmMachs,
     GLIBC_FDZERO_INLINE_ASM_TEST_CT, FD_MACH_ONLY,
     aGlibc_Fdzero_Inline_AsmTests,   apzGlibc_Fdzero_Inline_AsmPatch, 0 }
};
