FSF GCC merge 02/23/03
[official-gcc.git] / gcc / fixinc / fixincl.x
blob017b748fc73b7d915696fbc626f33ff69acaef0f
1 /*
2  *  DO NOT EDIT THIS FILE - it has been generated
3  *
4  * Install modified versions of certain ANSI-incompatible system header
5  * files which are fixed to work correctly with ANSI C and placed in a
6  * directory that GNU C will search.
7  *
8  * This file contains 146 fixup descriptions.
9  *
10  * See README for more information.
11  *
12  *  inclhack copyright (c) 1998, 1999, 2000, 2001
13  *  The Free Software Foundation, Inc.
14  *
15   *  inclhack is free software.
16  *  
17  *  You may redistribute it and/or modify it under the terms of the
18  *  GNU General Public License, as published by the Free Software
19  *  Foundation; either version 2, or (at your option) any later version.
20  *  
21  *  inclhack is distributed in the hope that it will be useful,
22  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
23  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
24  *  See the GNU General Public License for more details.
25  *  
26  *  You should have received a copy of the GNU General Public License
27  *  along with inclhack.  See the file "COPYING".  If not,
28  *  write to:  The Free Software Foundation, Inc.,
29  *             59 Temple Place - Suite 330,
30  *             Boston,  MA  02111-1307, USA.
31  */
33 /* * * * * * * * * * * * * * * * * * * * * * * * * *
34  *
35  *  Description of Aab_Fd_Zero_Asm_Posix_Types_H fix
36  */
37 tSCC zAab_Fd_Zero_Asm_Posix_Types_HName[] =
38      "AAB_fd_zero_asm_posix_types_h";
41  *  File name selection pattern
42  */
43 tSCC zAab_Fd_Zero_Asm_Posix_Types_HList[] =
44   "|asm/posix_types.h|";
46  *  Machine/OS name selection pattern
47  */
48 tSCC* apzAab_Fd_Zero_Asm_Posix_Types_HMachs[] = {
49         "i[34567]86-*-linux*",
50         (const char*)NULL };
53  *  content bypass pattern - skip fix if pattern found
54  */
55 tSCC zAab_Fd_Zero_Asm_Posix_Types_HBypass0[] =
56        "} while";
58 #define    AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT  1
59 static tTestDesc aAab_Fd_Zero_Asm_Posix_Types_HTests[] = {
60   { TT_NEGREP,   zAab_Fd_Zero_Asm_Posix_Types_HBypass0, (regex_t*)NULL }, };
63  *  Fix Command Arguments for Aab_Fd_Zero_Asm_Posix_Types_H
64  */
65 static const char* apzAab_Fd_Zero_Asm_Posix_Types_HPatch[] = {
66 "/* This file fixes a bug in the __FD_ZERO macro\n\
67    for older versions of the Linux kernel. */\n\
68 #ifndef _POSIX_TYPES_H_WRAPPER\n\
69 #include <features.h>\n\
70  #include_next <asm/posix_types.h>\n\n\
71 #if defined(__FD_ZERO) && !defined(__GLIBC__)\n\
72 #undef __FD_ZERO\n\
73 #define __FD_ZERO(fdsetp) \\\n\
74   do { \\\n\
75     int __d0, __d1; \\\n\
76 __asm__ __volatile__(\"cld ; rep ; stosl\" \\\n\
77 : \"=&c\" (__d0), \"=&D\" (__d1) \\\n\
78 : \"a\" (0), \"0\" (__FDSET_LONGS), \\\n\
79   \"1\" ((__kernel_fd_set *) (fdsetp)) :\"memory\"); \\\n\
80   } while (0)\n\
81 #endif\n\n\
82 #define _POSIX_TYPES_H_WRAPPER\n\
83 #endif /* _POSIX_TYPES_H_WRAPPER */",
84     (char*)NULL };
86 /* * * * * * * * * * * * * * * * * * * * * * * * * *
87  *
88  *  Description of Aab_Fd_Zero_Gnu_Types_H fix
89  */
90 tSCC zAab_Fd_Zero_Gnu_Types_HName[] =
91      "AAB_fd_zero_gnu_types_h";
94  *  File name selection pattern
95  */
96 tSCC zAab_Fd_Zero_Gnu_Types_HList[] =
97   "|gnu/types.h|";
99  *  Machine/OS name selection pattern
100  */
101 tSCC* apzAab_Fd_Zero_Gnu_Types_HMachs[] = {
102         "i[34567]86-*-linux*",
103         (const char*)NULL };
104 #define AAB_FD_ZERO_GNU_TYPES_H_TEST_CT  0
105 #define aAab_Fd_Zero_Gnu_Types_HTests   (tTestDesc*)NULL
108  *  Fix Command Arguments for Aab_Fd_Zero_Gnu_Types_H
109  */
110 static const char* apzAab_Fd_Zero_Gnu_Types_HPatch[] = {
111 "/* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */\n\
112 #ifndef _TYPES_H_WRAPPER\n\
113 #include <features.h>\n\
114 #include_next <gnu/types.h>\n\n\
115 #if defined(__FD_ZERO) && !defined(__GLIBC__)\n\
116 #undef __FD_ZERO\n\
117 # define __FD_ZERO(fdsetp) \\\\\n\
118   do { \\\\\n\
119     int __d0, __d1; \\\\\n\
120 __asm__ __volatile__(\"cld ; rep ; stosl\" \\\\\n\
121         \t: \"=&c\" (__d0), \"=&D\" (__d1) \\\\\n\
122         \t: \"a\" (0), \"0\" (__FDSET_LONGS), \\\\\n\
123   \"1\" ((__fd_set *) (fdsetp)) :\"memory\"); \\\\\n\
124   } while (0)\n\
125 #endif\n\n\
126 #define _TYPES_H_WRAPPER\n\
127 #endif /* _TYPES_H_WRAPPER */",
128     (char*)NULL };
130 /* * * * * * * * * * * * * * * * * * * * * * * * * *
132  *  Description of Aab_Fd_Zero_Selectbits_H fix
133  */
134 tSCC zAab_Fd_Zero_Selectbits_HName[] =
135      "AAB_fd_zero_selectbits_h";
138  *  File name selection pattern
139  */
140 tSCC zAab_Fd_Zero_Selectbits_HList[] =
141   "|selectbits.h|";
143  *  Machine/OS name selection pattern
144  */
145 tSCC* apzAab_Fd_Zero_Selectbits_HMachs[] = {
146         "i[34567]86-*-linux*",
147         (const char*)NULL };
148 #define AAB_FD_ZERO_SELECTBITS_H_TEST_CT  0
149 #define aAab_Fd_Zero_Selectbits_HTests   (tTestDesc*)NULL
152  *  Fix Command Arguments for Aab_Fd_Zero_Selectbits_H
153  */
154 static const char* apzAab_Fd_Zero_Selectbits_HPatch[] = {
155 "/* This file fixes a bug in the __FD_ZERO macro present in glibc 2.0.x. */\n\
156 #ifndef _SELECTBITS_H_WRAPPER\n\
157   #include <features.h>\n\
158   #include_next <selectbits.h>\n\n\
159   #if defined(__FD_ZERO) && defined(__GLIBC__) \\\\\n\
160   && defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \\\\\n\
161   && __GLIBC_MINOR__ == 0\n\
162      #undef __FD_ZERO\n\
163      #define __FD_ZERO(fdsetp) \\\\\n\
164      do { \\\\\n\
165         int __d0, __d1; \\\\\n\
166       __asm__ __volatile__ (\"cld; rep; stosl\" \\\\\n\
167                         : \"=&c\" (__d0), \"=&D\" (__d1) \\\\\n\
168                         : \"a\" (0), \"0\" (sizeof (__fd_set) \\\\\n\
169                                         / sizeof (__fd_mask)), \\\\\n\
170                           \"1\" ((__fd_mask *) (fdsetp)) \\\\\n\
171                         : \"memory\"); \\\\\n\
172       } while (0)\n\
173   #endif\n\n\
174   #define _SELECTBITS_H_WRAPPER\n\
175 #endif /* _SELECTBITS_H_WRAPPER */",
176     (char*)NULL };
178 /* * * * * * * * * * * * * * * * * * * * * * * * * *
180  *  Description of Aab_Solaris_Sys_Varargs_H fix
181  */
182 tSCC zAab_Solaris_Sys_Varargs_HName[] =
183      "AAB_solaris_sys_varargs_h";
186  *  File name selection pattern
187  */
188 tSCC zAab_Solaris_Sys_Varargs_HList[] =
189   "|sys/varargs.h|";
191  *  Machine/OS name selection pattern
192  */
193 tSCC* apzAab_Solaris_Sys_Varargs_HMachs[] = {
194         "*-*-solaris*",
195         (const char*)NULL };
196 #define AAB_SOLARIS_SYS_VARARGS_H_TEST_CT  0
197 #define aAab_Solaris_Sys_Varargs_HTests   (tTestDesc*)NULL
200  *  Fix Command Arguments for Aab_Solaris_Sys_Varargs_H
201  */
202 static const char* apzAab_Solaris_Sys_Varargs_HPatch[] = {
203 "#ifdef __STDC__\n\
204   #include <stdarg.h>\n\
205 #else\n\
206   #include <varargs.h>\n\
207 #endif",
208     (char*)NULL };
210 /* * * * * * * * * * * * * * * * * * * * * * * * * *
212  *  Description of Aab_Sun_Memcpy fix
213  */
214 tSCC zAab_Sun_MemcpyName[] =
215      "AAB_sun_memcpy";
218  *  File name selection pattern
219  */
220 tSCC zAab_Sun_MemcpyList[] =
221   "|memory.h|";
223  *  Machine/OS name selection pattern
224  */
225 #define apzAab_Sun_MemcpyMachs (const char**)NULL
228  *  content selection pattern - do fix if pattern found
229  */
230 tSCC zAab_Sun_MemcpySelect0[] =
231        "/\\*\t@\\(#\\)(head/memory.h\t50.1\t |memory\\.h 1\\.[2-4] 8./../.. SMI; from S5R2 1\\.2\t)\\*/";
233 #define    AAB_SUN_MEMCPY_TEST_CT  1
234 static tTestDesc aAab_Sun_MemcpyTests[] = {
235   { TT_EGREP,    zAab_Sun_MemcpySelect0, (regex_t*)NULL }, };
238  *  Fix Command Arguments for Aab_Sun_Memcpy
239  */
240 static const char* apzAab_Sun_MemcpyPatch[] = {
241 "/* This file was generated by fixincludes */\n\
242 #ifndef __memory_h__\n\
243   #define __memory_h__\n\n\
244   #ifdef __STDC__\n\
245     extern void *memccpy();\n\
246     extern void *memchr();\n\
247     extern void *memcpy();\n\
248     extern void *memset();\n\
249   #else\n\
250     extern char *memccpy();\n\
251     extern char *memchr();\n\
252     extern char *memcpy();\n\
253     extern char *memset();\n\
254   #endif /* __STDC__ */\n\n\
255   extern int memcmp();\n\n\
256 #endif /* __memory_h__ */\n\
257 _EndOfHeader;\n\
258 };\n\n\n\
259 /*\n\
260  *  Completely replace <sys/varargs.h> with a file that includes gcc's\n\
261  *  stdarg.h or varargs.h files as appropriate.\n\
262  */\n\
263 #ifdef SVR4\n\
264 fix = {\n\
265     hackname = AAB_svr4_no_varargs;\n\
266     files    = sys/varargs.h;\n\
267     replace  = \"/* This file was generated by fixincludes.  */\\n\"\n\
268                \"#ifndef _SYS_VARARGS_H\\n\"\n\
269                \"#define _SYS_VARARGS_H\\n\\n\"\n\
270                                                                                 \n\
271                \"#ifdef __STDC__\\n\"\n\
272                \"#include <stdarg.h>\\n\"\n\
273                \"#else\\n\"\n\
274                \"#include <varargs.h>\\n\"\n\
275                \"#endif\\n\\n\"\n\
276                                                                                 \n\
277                \"#endif  /* _SYS_VARARGS_H */\\n\";\n\
278 };\n\
279 #endif\n\n\n\
280 /*\n\
281  *  Completely replace <sys/byteorder.h>; with a file that implements gcc's\n\
282  *  optimized byteswapping.  Restricted to \"SVR4\" machines until either\n\
283  *  it is shown to be safe to replace this file always, or we get bolder ;-)\n\
284  */\n\
285 fix = {\n\
286     hackname = AAB_svr4_replace_byteorder;\n\
287 #ifndef SVR5\n\
288     mach     = \"*-*-sysv4*\";\n\
289     mach     = \"i[34567]86-*-sysv5*\";\n\
290     mach     = \"i[34567]86-*-udk*\";\n\
291     mach     = \"i[34567]86-*-solaris2.[0-4]\";\n\
292     mach     = \"powerpcle-*-solaris2.[0-4]\";\n\
293     mach     = \"sparc-*-solaris2.[0-4]\";\n\
294 #endif /* SVR5 */\n\
295     files    = sys/byteorder.h;\n\
296     replace  = <<-  _EndOfHeader_\n\
297 #ifndef _SYS_BYTEORDER_H\n\
298 #define _SYS_BYTEORDER_H\n\n\
299 /* Functions to convert `short' and `long' quantities from host byte order\n\
300    to (internet) network byte order (i.e. big-endian).\n\n\
301    Written by Ron Guilmette (rfg@ncd.com).\n\n\
302    This isn't actually used by GCC.  It is installed by fixinc.svr4.\n\n\
303    For big-endian machines these functions are essentially no-ops.\n\n\
304    For little-endian machines, we define the functions using specialized\n\
305    asm sequences in cases where doing so yields better code (e.g. i386).  */\n\n\
306 #if !defined (__GNUC__) && !defined (__GNUG__)\n\
307   #error You lose!  This file is only useful with GNU compilers.\n\
308 #endif\n\n\
309 #ifndef __BYTE_ORDER__\n\
310   /* Byte order defines.  These are as defined on UnixWare 1.1, but with\n\
311      double underscores added at the front and back.  */\n\
312   #define __LITTLE_ENDIAN__   1234\n\
313   #define __BIG_ENDIAN__      4321\n\
314   #define __PDP_ENDIAN__      3412\n\
315 #endif\n\n\
316 #ifdef __STDC__\n\
317   static __inline__ unsigned long htonl (unsigned long);\n\
318   static __inline__ unsigned short htons (unsigned int);\n\
319   static __inline__ unsigned long ntohl (unsigned long);\n\
320   static __inline__ unsigned short ntohs (unsigned int);\n\
321 #endif /* defined (__STDC__) */\n\n\
322 #if defined (__i386__)\n\n\
323   #ifndef __BYTE_ORDER__\n\
324     #define __BYTE_ORDER__ __LITTLE_ENDIAN__\n\
325   #endif\n\n\
326   /* Convert a host long to a network long.  */\n\n\
327   /* We must use a new-style function definition, so that this will also\n\
328      be valid for C++.  */\n\
329   static __inline__ unsigned long\n\
330   htonl (unsigned long __arg)\n\
331   {\n\
332     register unsigned long __result;\n\n\
333     __asm__ (\"xchg%B0 %b0,%h0\n\
334   ror%L0 $16,%0\n\
335   xchg%B0 %b0,%h0\" : \"=q\" (__result) : \"0\" (__arg));\n\
336     return __result;\n\
337   }\n\n\
338   /* Convert a host short to a network short.  */\n\n\
339   static __inline__ unsigned short\n\
340   htons (unsigned int __arg)\n\
341   {\n\
342     register unsigned short __result;\n\n\
343     __asm__ (\"xchg%B0 %b0,%h0\" : \"=q\" (__result) : \"0\" (__arg));\n\
344     return __result;\n\
345   }\n\n\
346 #elif (defined (__ns32k__) || defined (__vax__) || defined (__arm__))\n\n\
347   #ifndef __BYTE_ORDER__\n\
348     #define __BYTE_ORDER__ __LITTLE_ENDIAN__\n\
349   #endif\n\n\
350   /* For other little-endian machines, using C code is just as efficient as\n\
351      using assembly code.  */\n\n\
352   /* Convert a host long to a network long.  */\n\n\
353   static __inline__ unsigned long\n\
354   htonl (unsigned long __arg)\n\
355   {\n\
356     register unsigned long __result;\n\n\
357     __result = (__arg >> 24) & 0x000000ff;\n\
358     __result |= (__arg >> 8) & 0x0000ff00;\n\
359     __result |= (__arg << 8) & 0x00ff0000;\n\
360     __result |= (__arg << 24) & 0xff000000;\n\
361     return __result;\n\
362   }\n\n\
363   /* Convert a host short to a network short.  */\n\n\
364   static __inline__ unsigned short\n\
365   htons (unsigned int __arg)\n\
366   {\n\
367     register unsigned short __result;\n\n\
368     __result = (__arg << 8) & 0xff00;\n\
369     __result |= (__arg >> 8) & 0x00ff;\n\
370     return __result;\n\
371   }\n\n\
372 #else /* must be a big-endian machine */\n\n\
373   #ifndef __BYTE_ORDER__\n\
374     #define __BYTE_ORDER__ __BIG_ENDIAN__\n\
375   #endif\n\n\
376   /* Convert a host long to a network long.  */\n\n\
377   static __inline__ unsigned long\n\
378   htonl (unsigned long __arg)\n\
379   {\n\
380     return __arg;\n\
381   }\n\n\
382   /* Convert a host short to a network short.  */\n\n\
383   static __inline__ unsigned short\n\
384   htons (unsigned int __arg)\n\
385   {\n\
386     return __arg;\n\
387   }\n\n\
388 #endif /* big-endian */\n\n\
389 /* Convert a network long to a host long.  */\n\n\
390 static __inline__ unsigned long\n\
391 ntohl (unsigned long __arg)\n\
392 {\n\
393   return htonl (__arg);\n\
394 }\n\n\
395 /* Convert a network short to a host short.  */\n\n\
396 static __inline__ unsigned short\n\
397 ntohs (unsigned int __arg)\n\
398 {\n\
399   return htons (__arg);\n\
400 }\n\
401 #endif",
402     (char*)NULL };
404 /* * * * * * * * * * * * * * * * * * * * * * * * * *
406  *  Description of Aab_Ultrix_Ansi_Compat fix
407  */
408 tSCC zAab_Ultrix_Ansi_CompatName[] =
409      "AAB_ultrix_ansi_compat";
412  *  File name selection pattern
413  */
414 tSCC zAab_Ultrix_Ansi_CompatList[] =
415   "|ansi_compat.h|";
417  *  Machine/OS name selection pattern
418  */
419 #define apzAab_Ultrix_Ansi_CompatMachs (const char**)NULL
422  *  content selection pattern - do fix if pattern found
423  */
424 tSCC zAab_Ultrix_Ansi_CompatSelect0[] =
425        "ULTRIX";
427 #define    AAB_ULTRIX_ANSI_COMPAT_TEST_CT  1
428 static tTestDesc aAab_Ultrix_Ansi_CompatTests[] = {
429   { TT_EGREP,    zAab_Ultrix_Ansi_CompatSelect0, (regex_t*)NULL }, };
432  *  Fix Command Arguments for Aab_Ultrix_Ansi_Compat
433  */
434 static const char* apzAab_Ultrix_Ansi_CompatPatch[] = {
435 "/* This file intentionally left blank.  */\n",
436     (char*)NULL };
438 /* * * * * * * * * * * * * * * * * * * * * * * * * *
440  *  Description of Aab_Ultrix_Limits fix
441  */
442 tSCC zAab_Ultrix_LimitsName[] =
443      "AAB_ultrix_limits";
446  *  File name selection pattern
447  */
448 tSCC zAab_Ultrix_LimitsList[] =
449   "|limits.h|";
451  *  Machine/OS name selection pattern
452  */
453 tSCC* apzAab_Ultrix_LimitsMachs[] = {
454         "*-*-ultrix4.3",
455         (const char*)NULL };
456 #define AAB_ULTRIX_LIMITS_TEST_CT  0
457 #define aAab_Ultrix_LimitsTests   (tTestDesc*)NULL
460  *  Fix Command Arguments for Aab_Ultrix_Limits
461  */
462 static const char* apzAab_Ultrix_LimitsPatch[] = {
463 "#ifndef _LIMITS_INCLUDED\n\
464   #define _LIMITS_INCLUDED\n\
465   #include <sys/limits.h>\n\
466 #endif /* _LIMITS_INCLUDED */",
467     (char*)NULL };
469 /* * * * * * * * * * * * * * * * * * * * * * * * * *
471  *  Description of Aab_Ultrix_Memory fix
472  */
473 tSCC zAab_Ultrix_MemoryName[] =
474      "AAB_ultrix_memory";
477  *  File name selection pattern
478  */
479 tSCC zAab_Ultrix_MemoryList[] =
480   "|memory.h|";
482  *  Machine/OS name selection pattern
483  */
484 tSCC* apzAab_Ultrix_MemoryMachs[] = {
485         "*-*-ultrix4.3",
486         (const char*)NULL };
487 #define AAB_ULTRIX_MEMORY_TEST_CT  0
488 #define aAab_Ultrix_MemoryTests   (tTestDesc*)NULL
491  *  Fix Command Arguments for Aab_Ultrix_Memory
492  */
493 static const char* apzAab_Ultrix_MemoryPatch[] = {
494 "#ifndef _MEMORY_INCLUDED\n\
495   #define _MEMORY_INCLUDED\n\
496   #include <strings.h>\n\
497 #endif /* _MEMORY_INCLUDED */",
498     (char*)NULL };
500 /* * * * * * * * * * * * * * * * * * * * * * * * * *
502  *  Description of Aab_Ultrix_String fix
503  */
504 tSCC zAab_Ultrix_StringName[] =
505      "AAB_ultrix_string";
508  *  File name selection pattern
509  */
510 tSCC zAab_Ultrix_StringList[] =
511   "|string.h|";
513  *  Machine/OS name selection pattern
514  */
515 tSCC* apzAab_Ultrix_StringMachs[] = {
516         "*-*-ultrix4.3",
517         (const char*)NULL };
518 #define AAB_ULTRIX_STRING_TEST_CT  0
519 #define aAab_Ultrix_StringTests   (tTestDesc*)NULL
522  *  Fix Command Arguments for Aab_Ultrix_String
523  */
524 static const char* apzAab_Ultrix_StringPatch[] = {
525 "#ifndef _STRING_INCLUDED\n\
526   #define _STRING_INCLUDED\n\
527   #include <strings.h>\n\
528 #endif /* _STRING_INCLUDED */",
529     (char*)NULL };
531 /* * * * * * * * * * * * * * * * * * * * * * * * * *
533  *  Description of Aix_Pthread fix
534  */
535 tSCC zAix_PthreadName[] =
536      "aix_pthread";
539  *  File name selection pattern
540  */
541 tSCC zAix_PthreadList[] =
542   "|pthread.h|";
544  *  Machine/OS name selection pattern
545  */
546 #define apzAix_PthreadMachs (const char**)NULL
549  *  content selection pattern - do fix if pattern found
550  */
551 tSCC zAix_PthreadSelect0[] =
552        "(#define [A-Za-z_0-9]+)(\\\\\n\
553 [^A-Za-z_0-9 \t\n\
554 (])";
556 #define    AIX_PTHREAD_TEST_CT  1
557 static tTestDesc aAix_PthreadTests[] = {
558   { TT_EGREP,    zAix_PthreadSelect0, (regex_t*)NULL }, };
561  *  Fix Command Arguments for Aix_Pthread
562  */
563 static const char* apzAix_PthreadPatch[] = {
564     "format",
565     "%1 %2",
566     (char*)NULL };
568 /* * * * * * * * * * * * * * * * * * * * * * * * * *
570  *  Description of Aix_Sysmachine fix
571  */
572 tSCC zAix_SysmachineName[] =
573      "aix_sysmachine";
576  *  File name selection pattern
577  */
578 tSCC zAix_SysmachineList[] =
579   "|sys/machine.h|";
581  *  Machine/OS name selection pattern
582  */
583 #define apzAix_SysmachineMachs (const char**)NULL
586  *  content selection pattern - do fix if pattern found
587  */
588 tSCC zAix_SysmachineSelect0[] =
589        "\\\\ +\n";
591 #define    AIX_SYSMACHINE_TEST_CT  1
592 static tTestDesc aAix_SysmachineTests[] = {
593   { TT_EGREP,    zAix_SysmachineSelect0, (regex_t*)NULL }, };
596  *  Fix Command Arguments for Aix_Sysmachine
597  */
598 static const char* apzAix_SysmachinePatch[] = {
599     "format",
600     "\\\n",
601     (char*)NULL };
603 /* * * * * * * * * * * * * * * * * * * * * * * * * *
605  *  Description of Aix_Syswait fix
606  */
607 tSCC zAix_SyswaitName[] =
608      "aix_syswait";
611  *  File name selection pattern
612  */
613 tSCC zAix_SyswaitList[] =
614   "|sys/wait.h|";
616  *  Machine/OS name selection pattern
617  */
618 #define apzAix_SyswaitMachs (const char**)NULL
621  *  content selection pattern - do fix if pattern found
622  */
623 tSCC zAix_SyswaitSelect0[] =
624        "^extern pid_t wait3\\(\\);\n";
625 tSCC zAix_SyswaitSelect1[] =
626        "bos325,";
628 #define    AIX_SYSWAIT_TEST_CT  2
629 static tTestDesc aAix_SyswaitTests[] = {
630   { TT_EGREP,    zAix_SyswaitSelect0, (regex_t*)NULL },
631   { TT_EGREP,    zAix_SyswaitSelect1, (regex_t*)NULL }, };
634  *  Fix Command Arguments for Aix_Syswait
635  */
636 static const char* apzAix_SyswaitPatch[] = {
637     "format",
638     "struct rusage;\n\
639 %0",
640     (char*)NULL };
642 /* * * * * * * * * * * * * * * * * * * * * * * * * *
644  *  Description of Aix_Volatile fix
645  */
646 tSCC zAix_VolatileName[] =
647      "aix_volatile";
650  *  File name selection pattern
651  */
652 tSCC zAix_VolatileList[] =
653   "|sys/signal.h|";
655  *  Machine/OS name selection pattern
656  */
657 #define apzAix_VolatileMachs (const char**)NULL
660  *  content selection pattern - do fix if pattern found
661  */
662 tSCC zAix_VolatileSelect0[] =
663        "typedef volatile int sig_atomic_t";
665 #define    AIX_VOLATILE_TEST_CT  1
666 static tTestDesc aAix_VolatileTests[] = {
667   { TT_EGREP,    zAix_VolatileSelect0, (regex_t*)NULL }, };
670  *  Fix Command Arguments for Aix_Volatile
671  */
672 static const char* apzAix_VolatilePatch[] = {
673     "format",
674     "typedef int sig_atomic_t",
675     (char*)NULL };
677 /* * * * * * * * * * * * * * * * * * * * * * * * * *
679  *  Description of Alpha___Assert fix
680  */
681 tSCC zAlpha___AssertName[] =
682      "alpha___assert";
685  *  File name selection pattern
686  */
687 tSCC zAlpha___AssertList[] =
688   "|assert.h|";
690  *  Machine/OS name selection pattern
691  */
692 #define apzAlpha___AssertMachs (const char**)NULL
695  *  content selection pattern - do fix if pattern found
696  */
697 tSCC zAlpha___AssertSelect0[] =
698        "__assert\\(char \\*, char \\*, int\\)";
700 #define    ALPHA___ASSERT_TEST_CT  1
701 static tTestDesc aAlpha___AssertTests[] = {
702   { TT_EGREP,    zAlpha___AssertSelect0, (regex_t*)NULL }, };
705  *  Fix Command Arguments for Alpha___Assert
706  */
707 static const char* apzAlpha___AssertPatch[] = {
708     "format",
709     "__assert(const char *, const char *, int)",
710     (char*)NULL };
712 /* * * * * * * * * * * * * * * * * * * * * * * * * *
714  *  Description of Alpha_Assert fix
715  */
716 tSCC zAlpha_AssertName[] =
717      "alpha_assert";
720  *  File name selection pattern
721  */
722 tSCC zAlpha_AssertList[] =
723   "|assert.h|";
725  *  Machine/OS name selection pattern
726  */
727 #define apzAlpha_AssertMachs (const char**)NULL
730  *  content selection pattern - do fix if pattern found
731  */
732 tSCC zAlpha_AssertSelect0[] =
733        "(#define assert\\(EX\\).*)\\(\\(int\\) \\(EX\\)\\)";
735 #define    ALPHA_ASSERT_TEST_CT  1
736 static tTestDesc aAlpha_AssertTests[] = {
737   { TT_EGREP,    zAlpha_AssertSelect0, (regex_t*)NULL }, };
740  *  Fix Command Arguments for Alpha_Assert
741  */
742 static const char* apzAlpha_AssertPatch[] = {
743     "format",
744     "%1(EX)",
745     (char*)NULL };
747 /* * * * * * * * * * * * * * * * * * * * * * * * * *
749  *  Description of Alpha_Getopt fix
750  */
751 tSCC zAlpha_GetoptName[] =
752      "alpha_getopt";
755  *  File name selection pattern
756  */
757 tSCC zAlpha_GetoptList[] =
758   "|stdio.h|stdlib.h|";
760  *  Machine/OS name selection pattern
761  */
762 #define apzAlpha_GetoptMachs (const char**)NULL
765  *  content selection pattern - do fix if pattern found
766  */
767 tSCC zAlpha_GetoptSelect0[] =
768        "getopt\\(int, char \\*\\[\\], *char \\*\\)";
770 #define    ALPHA_GETOPT_TEST_CT  1
771 static tTestDesc aAlpha_GetoptTests[] = {
772   { TT_EGREP,    zAlpha_GetoptSelect0, (regex_t*)NULL }, };
775  *  Fix Command Arguments for Alpha_Getopt
776  */
777 static const char* apzAlpha_GetoptPatch[] = {
778     "format",
779     "getopt(int, char *const[], const char *)",
780     (char*)NULL };
782 /* * * * * * * * * * * * * * * * * * * * * * * * * *
784  *  Description of Alpha_Parens fix
785  */
786 tSCC zAlpha_ParensName[] =
787      "alpha_parens";
790  *  File name selection pattern
791  */
792 tSCC zAlpha_ParensList[] =
793   "|sym.h|";
795  *  Machine/OS name selection pattern
796  */
797 #define apzAlpha_ParensMachs (const char**)NULL
800  *  content selection pattern - do fix if pattern found
801  */
802 tSCC zAlpha_ParensSelect0[] =
803        "#ifndef\\(__mips64\\)";
805 #define    ALPHA_PARENS_TEST_CT  1
806 static tTestDesc aAlpha_ParensTests[] = {
807   { TT_EGREP,    zAlpha_ParensSelect0, (regex_t*)NULL }, };
810  *  Fix Command Arguments for Alpha_Parens
811  */
812 static const char* apzAlpha_ParensPatch[] = {
813     "format",
814     "#ifndef __mips64",
815     (char*)NULL };
817 /* * * * * * * * * * * * * * * * * * * * * * * * * *
819  *  Description of Alpha_Sbrk fix
820  */
821 tSCC zAlpha_SbrkName[] =
822      "alpha_sbrk";
825  *  File name selection pattern
826  */
827 tSCC zAlpha_SbrkList[] =
828   "|unistd.h|";
830  *  Machine/OS name selection pattern
831  */
832 #define apzAlpha_SbrkMachs (const char**)NULL
835  *  content selection pattern - do fix if pattern found
836  */
837 tSCC zAlpha_SbrkSelect0[] =
838        "char[ \t]*\\*[\t ]*sbrk[ \t]*\\(";
840 #define    ALPHA_SBRK_TEST_CT  1
841 static tTestDesc aAlpha_SbrkTests[] = {
842   { TT_EGREP,    zAlpha_SbrkSelect0, (regex_t*)NULL }, };
845  *  Fix Command Arguments for Alpha_Sbrk
846  */
847 static const char* apzAlpha_SbrkPatch[] = {
848     "format",
849     "void *sbrk(",
850     (char*)NULL };
852 /* * * * * * * * * * * * * * * * * * * * * * * * * *
854  *  Description of Avoid_Bool_Define fix
855  */
856 tSCC zAvoid_Bool_DefineName[] =
857      "avoid_bool_define";
860  *  File name selection pattern
861  */
862 tSCC zAvoid_Bool_DefineList[] =
863   "|curses.h|curses_colr/curses.h|term.h|tinfo.h|";
865  *  Machine/OS name selection pattern
866  */
867 #define apzAvoid_Bool_DefineMachs (const char**)NULL
870  *  content selection pattern - do fix if pattern found
871  */
872 tSCC zAvoid_Bool_DefineSelect0[] =
873        "#[ \t]*define[ \t]+bool[ \t]";
876  *  content bypass pattern - skip fix if pattern found
877  */
878 tSCC zAvoid_Bool_DefineBypass0[] =
879        "we must use the C\\+\\+ compiler's type";
881 #define    AVOID_BOOL_DEFINE_TEST_CT  2
882 static tTestDesc aAvoid_Bool_DefineTests[] = {
883   { TT_NEGREP,   zAvoid_Bool_DefineBypass0, (regex_t*)NULL },
884   { TT_EGREP,    zAvoid_Bool_DefineSelect0, (regex_t*)NULL }, };
887  *  Fix Command Arguments for Avoid_Bool_Define
888  */
889 static const char* apzAvoid_Bool_DefinePatch[] = {
890     "format",
891     "#ifndef __cplusplus\n\
892 %0\n\
893 #endif",
894     "^[ \t]*#[ \t]*define[ \t]+bool[ \t].*",
895     (char*)NULL };
897 /* * * * * * * * * * * * * * * * * * * * * * * * * *
899  *  Description of Avoid_Bool_Type fix
900  */
901 tSCC zAvoid_Bool_TypeName[] =
902      "avoid_bool_type";
905  *  File name selection pattern
906  */
907 tSCC zAvoid_Bool_TypeList[] =
908   "|curses.h|curses_colr/curses.h|term.h|tinfo.h|";
910  *  Machine/OS name selection pattern
911  */
912 #define apzAvoid_Bool_TypeMachs (const char**)NULL
915  *  content selection pattern - do fix if pattern found
916  */
917 tSCC zAvoid_Bool_TypeSelect0[] =
918        "^[ \t]*typedef[ \t].*[ \t]bool[ \t]*;";
921  *  content bypass pattern - skip fix if pattern found
922  */
923 tSCC zAvoid_Bool_TypeBypass0[] =
924        "we must use the C\\+\\+ compiler's type";
926 #define    AVOID_BOOL_TYPE_TEST_CT  2
927 static tTestDesc aAvoid_Bool_TypeTests[] = {
928   { TT_NEGREP,   zAvoid_Bool_TypeBypass0, (regex_t*)NULL },
929   { TT_EGREP,    zAvoid_Bool_TypeSelect0, (regex_t*)NULL }, };
932  *  Fix Command Arguments for Avoid_Bool_Type
933  */
934 static const char* apzAvoid_Bool_TypePatch[] = {
935     "format",
936     "#ifndef __cplusplus\n\
937 %0\n\
938 #endif",
939     (char*)NULL };
941 /* * * * * * * * * * * * * * * * * * * * * * * * * *
943  *  Description of Avoid_Wchar_T_Type fix
944  */
945 tSCC zAvoid_Wchar_T_TypeName[] =
946      "avoid_wchar_t_type";
949  *  File name selection pattern
950  */
951 #define zAvoid_Wchar_T_TypeList (char*)NULL
953  *  Machine/OS name selection pattern
954  */
955 #define apzAvoid_Wchar_T_TypeMachs (const char**)NULL
958  *  content selection pattern - do fix if pattern found
959  */
960 tSCC zAvoid_Wchar_T_TypeSelect0[] =
961        "^[ \t]*typedef[ \t].*[ \t]wchar_t[ \t]*;";
963 #define    AVOID_WCHAR_T_TYPE_TEST_CT  1
964 static tTestDesc aAvoid_Wchar_T_TypeTests[] = {
965   { TT_EGREP,    zAvoid_Wchar_T_TypeSelect0, (regex_t*)NULL }, };
968  *  Fix Command Arguments for Avoid_Wchar_T_Type
969  */
970 static const char* apzAvoid_Wchar_T_TypePatch[] = {
971     "format",
972     "#ifndef __cplusplus\n\
973 %0\n\
974 #endif",
975     (char*)NULL };
977 /* * * * * * * * * * * * * * * * * * * * * * * * * *
979  *  Description of Bad_Lval fix
980  */
981 tSCC zBad_LvalName[] =
982      "bad_lval";
985  *  File name selection pattern
986  */
987 tSCC zBad_LvalList[] =
988   "|libgen.h|dirent.h|ftw.h|grp.h|ndbm.h|pthread.h|pwd.h|signal.h|standards.h|stdlib.h|string.h|stropts.h|time.h|unistd.h|";
990  *  Machine/OS name selection pattern
991  */
992 #define apzBad_LvalMachs (const char**)NULL
995  *  content selection pattern - do fix if pattern found
996  */
997 tSCC zBad_LvalSelect0[] =
998        "^[ \t]*#[ \t]*pragma[ \t]+extern_prefix";
1000 #define    BAD_LVAL_TEST_CT  1
1001 static tTestDesc aBad_LvalTests[] = {
1002   { TT_EGREP,    zBad_LvalSelect0, (regex_t*)NULL }, };
1005  *  Fix Command Arguments for Bad_Lval
1006  */
1007 static const char* apzBad_LvalPatch[] = { "sed",
1008     "-e", "s/^[ \t]*#[ \t]*define[ \t][ \t]*\\([^(]*\\)\\(([^)]*)\\)[ \t]*\\(_.*\\)\\1\\2[ \t]*$/#define \\1 \\3\\1/",
1009     (char*)NULL };
1011 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1013  *  Description of Bad_Struct_Term fix
1014  */
1015 tSCC zBad_Struct_TermName[] =
1016      "bad_struct_term";
1019  *  File name selection pattern
1020  */
1021 tSCC zBad_Struct_TermList[] =
1022   "|curses.h|";
1024  *  Machine/OS name selection pattern
1025  */
1026 #define apzBad_Struct_TermMachs (const char**)NULL
1029  *  content selection pattern - do fix if pattern found
1030  */
1031 tSCC zBad_Struct_TermSelect0[] =
1032        "^[ \t]*typedef[ \t]+struct[ \t]+term[ \t]*;";
1034 #define    BAD_STRUCT_TERM_TEST_CT  1
1035 static tTestDesc aBad_Struct_TermTests[] = {
1036   { TT_EGREP,    zBad_Struct_TermSelect0, (regex_t*)NULL }, };
1039  *  Fix Command Arguments for Bad_Struct_Term
1040  */
1041 static const char* apzBad_Struct_TermPatch[] = {
1042     "format",
1043     "struct term;",
1044     (char*)NULL };
1046 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1048  *  Description of Badquote fix
1049  */
1050 tSCC zBadquoteName[] =
1051      "badquote";
1054  *  File name selection pattern
1055  */
1056 tSCC zBadquoteList[] =
1057   "|sundev/vuid_event.h|";
1059  *  Machine/OS name selection pattern
1060  */
1061 #define apzBadquoteMachs (const char**)NULL
1064  *  content selection pattern - do fix if pattern found
1065  */
1066 tSCC zBadquoteSelect0[] =
1067        "doesn't";
1069 #define    BADQUOTE_TEST_CT  1
1070 static tTestDesc aBadquoteTests[] = {
1071   { TT_EGREP,    zBadquoteSelect0, (regex_t*)NULL }, };
1074  *  Fix Command Arguments for Badquote
1075  */
1076 static const char* apzBadquotePatch[] = {
1077     "format",
1078     "does not",
1079     (char*)NULL };
1081 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1083  *  Description of Broken_Assert_Stdio fix
1084  */
1085 tSCC zBroken_Assert_StdioName[] =
1086      "broken_assert_stdio";
1089  *  File name selection pattern
1090  */
1091 tSCC zBroken_Assert_StdioList[] =
1092   "|assert.h|";
1094  *  Machine/OS name selection pattern
1095  */
1096 #define apzBroken_Assert_StdioMachs (const char**)NULL
1099  *  content selection pattern - do fix if pattern found
1100  */
1101 tSCC zBroken_Assert_StdioSelect0[] =
1102        "stderr";
1105  *  content bypass pattern - skip fix if pattern found
1106  */
1107 tSCC zBroken_Assert_StdioBypass0[] =
1108        "include.*stdio\\.h";
1110 #define    BROKEN_ASSERT_STDIO_TEST_CT  2
1111 static tTestDesc aBroken_Assert_StdioTests[] = {
1112   { TT_NEGREP,   zBroken_Assert_StdioBypass0, (regex_t*)NULL },
1113   { TT_EGREP,    zBroken_Assert_StdioSelect0, (regex_t*)NULL }, };
1116  *  Fix Command Arguments for Broken_Assert_Stdio
1117  */
1118 static const char* apzBroken_Assert_StdioPatch[] = {
1119     "wrap",
1120     "#include <stdio.h>\n",
1121     (char*)NULL };
1123 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1125  *  Description of Broken_Assert_Stdlib fix
1126  */
1127 tSCC zBroken_Assert_StdlibName[] =
1128      "broken_assert_stdlib";
1131  *  File name selection pattern
1132  */
1133 tSCC zBroken_Assert_StdlibList[] =
1134   "|assert.h|";
1136  *  Machine/OS name selection pattern
1137  */
1138 #define apzBroken_Assert_StdlibMachs (const char**)NULL
1141  *  content selection pattern - do fix if pattern found
1142  */
1143 tSCC zBroken_Assert_StdlibSelect0[] =
1144        "exit *\\(|abort *\\(";
1147  *  content bypass pattern - skip fix if pattern found
1148  */
1149 tSCC zBroken_Assert_StdlibBypass0[] =
1150        "include.*stdlib\\.h";
1152 #define    BROKEN_ASSERT_STDLIB_TEST_CT  2
1153 static tTestDesc aBroken_Assert_StdlibTests[] = {
1154   { TT_NEGREP,   zBroken_Assert_StdlibBypass0, (regex_t*)NULL },
1155   { TT_EGREP,    zBroken_Assert_StdlibSelect0, (regex_t*)NULL }, };
1158  *  Fix Command Arguments for Broken_Assert_Stdlib
1159  */
1160 static const char* apzBroken_Assert_StdlibPatch[] = {
1161     "wrap",
1162     "#ifdef __cplusplus\n\
1163 #include <stdlib.h>\n\
1164 #endif\n",
1165     (char*)NULL };
1167 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1169  *  Description of Broken_Cabs fix
1170  */
1171 tSCC zBroken_CabsName[] =
1172      "broken_cabs";
1175  *  File name selection pattern
1176  */
1177 tSCC zBroken_CabsList[] =
1178   "|math.h|";
1180  *  Machine/OS name selection pattern
1181  */
1182 #define apzBroken_CabsMachs (const char**)NULL
1185  *  content selection pattern - do fix if pattern found
1186  */
1187 tSCC zBroken_CabsSelect0[] =
1188        "^extern[ \\t]+double[ \\t]+cabs";
1190 #define    BROKEN_CABS_TEST_CT  1
1191 static tTestDesc aBroken_CabsTests[] = {
1192   { TT_EGREP,    zBroken_CabsSelect0, (regex_t*)NULL }, };
1195  *  Fix Command Arguments for Broken_Cabs
1196  */
1197 static const char* apzBroken_CabsPatch[] = {
1198     "format",
1199     "",
1200     "^extern[ \t]+double[ \t]+cabs\\((struct dbl_hypot|)\\);",
1201     (char*)NULL };
1203 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1205  *  Description of Ctrl_Quotes_Def fix
1206  */
1207 tSCC zCtrl_Quotes_DefName[] =
1208      "ctrl_quotes_def";
1211  *  File name selection pattern
1212  */
1213 #define zCtrl_Quotes_DefList (char*)NULL
1215  *  Machine/OS name selection pattern
1216  */
1217 #define apzCtrl_Quotes_DefMachs (const char**)NULL
1220  *  content selection pattern - do fix if pattern found
1221  */
1222 tSCC zCtrl_Quotes_DefSelect0[] =
1223        "define[ \t]+[A-Z0-9_]+CTRL\\([a-zA-Z][,)]";
1225 #define    CTRL_QUOTES_DEF_TEST_CT  1
1226 static tTestDesc aCtrl_Quotes_DefTests[] = {
1227   { TT_EGREP,    zCtrl_Quotes_DefSelect0, (regex_t*)NULL }, };
1230  *  Fix Command Arguments for Ctrl_Quotes_Def
1231  */
1232 static const char* apzCtrl_Quotes_DefPatch[] = {
1233     "char_macro_def",
1234     "CTRL",
1235     (char*)NULL };
1237 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1239  *  Description of Ctrl_Quotes_Use fix
1240  */
1241 tSCC zCtrl_Quotes_UseName[] =
1242      "ctrl_quotes_use";
1245  *  File name selection pattern
1246  */
1247 #define zCtrl_Quotes_UseList (char*)NULL
1249  *  Machine/OS name selection pattern
1250  */
1251 #define apzCtrl_Quotes_UseMachs (const char**)NULL
1254  *  content selection pattern - do fix if pattern found
1255  */
1256 tSCC zCtrl_Quotes_UseSelect0[] =
1257        "define[ \t]+[A-Z0-9_]+[ \t]+[A-Z0-9_]+CTRL[ \t]*\\( *[^,']";
1259 #define    CTRL_QUOTES_USE_TEST_CT  1
1260 static tTestDesc aCtrl_Quotes_UseTests[] = {
1261   { TT_EGREP,    zCtrl_Quotes_UseSelect0, (regex_t*)NULL }, };
1264  *  Fix Command Arguments for Ctrl_Quotes_Use
1265  */
1266 static const char* apzCtrl_Quotes_UsePatch[] = {
1267     "char_macro_use",
1268     "CTRL",
1269     (char*)NULL };
1271 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1273  *  Description of Cxx_Unready fix
1274  */
1275 tSCC zCxx_UnreadyName[] =
1276      "cxx_unready";
1279  *  File name selection pattern
1280  */
1281 tSCC zCxx_UnreadyList[] =
1282   "|sys/mman.h|rpc/types.h|";
1284  *  Machine/OS name selection pattern
1285  */
1286 #define apzCxx_UnreadyMachs (const char**)NULL
1289  *  content selection pattern - do fix if pattern found
1290  */
1291 tSCC zCxx_UnreadySelect0[] =
1292        "[^#]+malloc.*;";
1295  *  content bypass pattern - skip fix if pattern found
1296  */
1297 tSCC zCxx_UnreadyBypass0[] =
1298        "\"C\"|__BEGIN_DECLS";
1300 #define    CXX_UNREADY_TEST_CT  2
1301 static tTestDesc aCxx_UnreadyTests[] = {
1302   { TT_NEGREP,   zCxx_UnreadyBypass0, (regex_t*)NULL },
1303   { TT_EGREP,    zCxx_UnreadySelect0, (regex_t*)NULL }, };
1306  *  Fix Command Arguments for Cxx_Unready
1307  */
1308 static const char* apzCxx_UnreadyPatch[] = {
1309     "wrap",
1310     "#ifdef __cplusplus\n\
1311 extern \"C\" {\n\
1312 #endif\n",
1313     "#ifdef __cplusplus\n\
1314 }\n\
1315 #endif\n",
1316     (char*)NULL };
1318 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1320  *  Description of Dec_Intern_Asm fix
1321  */
1322 tSCC zDec_Intern_AsmName[] =
1323      "dec_intern_asm";
1326  *  File name selection pattern
1327  */
1328 tSCC zDec_Intern_AsmList[] =
1329   "|c_asm.h|";
1331  *  Machine/OS name selection pattern
1332  */
1333 #define apzDec_Intern_AsmMachs (const char**)NULL
1334 #define DEC_INTERN_ASM_TEST_CT  0
1335 #define aDec_Intern_AsmTests   (tTestDesc*)NULL
1338  *  Fix Command Arguments for Dec_Intern_Asm
1339  */
1340 static const char* apzDec_Intern_AsmPatch[] = { "sed",
1341     "-e", "/^[ \t]*float[ \t]*fasm/i\\\n\
1342 #ifdef __DECC\n",
1343     "-e", "/^[ \t]*#[ \t]*pragma[ \t]*intrinsic([ \t]*dasm/a\\\n\
1344 #endif\n",
1345     (char*)NULL };
1347 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1349  *  Description of Djgpp_Wchar_H fix
1350  */
1351 tSCC zDjgpp_Wchar_HName[] =
1352      "djgpp_wchar_h";
1355  *  File name selection pattern
1356  */
1357 #define zDjgpp_Wchar_HList (char*)NULL
1359  *  Machine/OS name selection pattern
1360  */
1361 #define apzDjgpp_Wchar_HMachs (const char**)NULL
1364  *  content selection pattern - do fix if pattern found
1365  */
1366 tSCC zDjgpp_Wchar_HSelect0[] =
1367        "__DJ_wint_t";
1370  *  content bypass pattern - skip fix if pattern found
1371  */
1372 tSCC zDjgpp_Wchar_HBypass0[] =
1373        "sys/djtypes.h";
1375 #define    DJGPP_WCHAR_H_TEST_CT  2
1376 static tTestDesc aDjgpp_Wchar_HTests[] = {
1377   { TT_NEGREP,   zDjgpp_Wchar_HBypass0, (regex_t*)NULL },
1378   { TT_EGREP,    zDjgpp_Wchar_HSelect0, (regex_t*)NULL }, };
1381  *  Fix Command Arguments for Djgpp_Wchar_H
1382  */
1383 static const char* apzDjgpp_Wchar_HPatch[] = {
1384     "format",
1385     "%0\n\
1386 #include <sys/djtypes.h>",
1387     "#include <stddef.h>",
1388     (char*)NULL };
1390 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1392  *  Description of Ecd_Cursor fix
1393  */
1394 tSCC zEcd_CursorName[] =
1395      "ecd_cursor";
1398  *  File name selection pattern
1399  */
1400 tSCC zEcd_CursorList[] =
1401   "|sunwindow/win_lock.h|sunwindow/win_cursor.h|";
1403  *  Machine/OS name selection pattern
1404  */
1405 #define apzEcd_CursorMachs (const char**)NULL
1408  *  content selection pattern - do fix if pattern found
1409  */
1410 tSCC zEcd_CursorSelect0[] =
1411        "ecd\\.cursor";
1413 #define    ECD_CURSOR_TEST_CT  1
1414 static tTestDesc aEcd_CursorTests[] = {
1415   { TT_EGREP,    zEcd_CursorSelect0, (regex_t*)NULL }, };
1418  *  Fix Command Arguments for Ecd_Cursor
1419  */
1420 static const char* apzEcd_CursorPatch[] = {
1421     "format",
1422     "ecd_cursor",
1423     (char*)NULL };
1425 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1427  *  Description of Freebsd_Gcc3_Breakage fix
1428  */
1429 tSCC zFreebsd_Gcc3_BreakageName[] =
1430      "freebsd_gcc3_breakage";
1433  *  File name selection pattern
1434  */
1435 tSCC zFreebsd_Gcc3_BreakageList[] =
1436   "|sys/cdefs.h|";
1438  *  Machine/OS name selection pattern
1439  */
1440 tSCC* apzFreebsd_Gcc3_BreakageMachs[] = {
1441         "*-*-freebsd*",
1442         (const char*)NULL };
1445  *  content selection pattern - do fix if pattern found
1446  */
1447 tSCC zFreebsd_Gcc3_BreakageSelect0[] =
1448        "^#if __GNUC__ == 2 && __GNUC_MINOR__ >= 7$";
1451  *  content bypass pattern - skip fix if pattern found
1452  */
1453 tSCC zFreebsd_Gcc3_BreakageBypass0[] =
1454        "__GNUC__[ \\t]*([>=]=[ \\t]*[3-9]|>[ \\t]*2)";
1456 #define    FREEBSD_GCC3_BREAKAGE_TEST_CT  2
1457 static tTestDesc aFreebsd_Gcc3_BreakageTests[] = {
1458   { TT_NEGREP,   zFreebsd_Gcc3_BreakageBypass0, (regex_t*)NULL },
1459   { TT_EGREP,    zFreebsd_Gcc3_BreakageSelect0, (regex_t*)NULL }, };
1462  *  Fix Command Arguments for Freebsd_Gcc3_Breakage
1463  */
1464 static const char* apzFreebsd_Gcc3_BreakagePatch[] = {
1465     "format",
1466     "%0 || __GNUC__ >= 3",
1467     (char*)NULL };
1469 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1471  *  Description of Gnu_Types fix
1472  */
1473 tSCC zGnu_TypesName[] =
1474      "gnu_types";
1477  *  File name selection pattern
1478  */
1479 tSCC zGnu_TypesList[] =
1480   "|sys/types.h|stdlib.h|sys/stdtypes.h|stddef.h|memory.h|unistd.h|";
1482  *  Machine/OS name selection pattern
1483  */
1484 #define apzGnu_TypesMachs (const char**)NULL
1487  *  content selection pattern - do fix if pattern found
1488  */
1489 tSCC zGnu_TypesSelect0[] =
1490        "^[ \t]*typedef[ \t]+.*[ \t](ptrdiff|size|wchar)_t;";
1493  *  content bypass pattern - skip fix if pattern found
1494  */
1495 tSCC zGnu_TypesBypass0[] =
1496        "_GCC_(PTRDIFF|SIZE|WCHAR)_T";
1498 #define    GNU_TYPES_TEST_CT  2
1499 static tTestDesc aGnu_TypesTests[] = {
1500   { TT_NEGREP,   zGnu_TypesBypass0, (regex_t*)NULL },
1501   { TT_EGREP,    zGnu_TypesSelect0, (regex_t*)NULL }, };
1504  *  Fix Command Arguments for Gnu_Types
1505  */
1506 static const char* apzGnu_TypesPatch[] = {
1507     "gnu_type",
1508     (char*)NULL };
1510 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1512  *  Description of Hp_Inline fix
1513  */
1514 tSCC zHp_InlineName[] =
1515      "hp_inline";
1518  *  File name selection pattern
1519  */
1520 tSCC zHp_InlineList[] =
1521   "|sys/spinlock.h|machine/machparam.h|";
1523  *  Machine/OS name selection pattern
1524  */
1525 #define apzHp_InlineMachs (const char**)NULL
1528  *  content selection pattern - do fix if pattern found
1529  */
1530 tSCC zHp_InlineSelect0[] =
1531        "[ \t]*#[ \t]*include[ \t]+\"\\.\\./machine/";
1533 #define    HP_INLINE_TEST_CT  1
1534 static tTestDesc aHp_InlineTests[] = {
1535   { TT_EGREP,    zHp_InlineSelect0, (regex_t*)NULL }, };
1538  *  Fix Command Arguments for Hp_Inline
1539  */
1540 static const char* apzHp_InlinePatch[] = {
1541     "format",
1542     "%1<machine/%2.h>",
1543     "([ \t]*#[ \t]*include[ \t]+)\"\\.\\./machine/([a-z]+)\\.h\"",
1544     (char*)NULL };
1546 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1548  *  Description of Hp_Sysfile fix
1549  */
1550 tSCC zHp_SysfileName[] =
1551      "hp_sysfile";
1554  *  File name selection pattern
1555  */
1556 tSCC zHp_SysfileList[] =
1557   "|sys/file.h|";
1559  *  Machine/OS name selection pattern
1560  */
1561 #define apzHp_SysfileMachs (const char**)NULL
1564  *  content selection pattern - do fix if pattern found
1565  */
1566 tSCC zHp_SysfileSelect0[] =
1567        "HPUX_SOURCE";
1569 #define    HP_SYSFILE_TEST_CT  1
1570 static tTestDesc aHp_SysfileTests[] = {
1571   { TT_EGREP,    zHp_SysfileSelect0, (regex_t*)NULL }, };
1574  *  Fix Command Arguments for Hp_Sysfile
1575  */
1576 static const char* apzHp_SysfilePatch[] = {
1577     "format",
1578     "(struct file *, ...)",
1579     "\\(\\.\\.\\.\\)",
1580     (char*)NULL };
1582 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1584  *  Description of Hpux10_Cpp_Pow_Inline fix
1585  */
1586 tSCC zHpux10_Cpp_Pow_InlineName[] =
1587      "hpux10_cpp_pow_inline";
1590  *  File name selection pattern
1591  */
1592 tSCC zHpux10_Cpp_Pow_InlineList[] =
1593   "|fixinc-test-limits.h|math.h|";
1595  *  Machine/OS name selection pattern
1596  */
1597 #define apzHpux10_Cpp_Pow_InlineMachs (const char**)NULL
1600  *  content selection pattern - do fix if pattern found
1601  */
1602 tSCC zHpux10_Cpp_Pow_InlineSelect0[] =
1603        "^# +ifdef +__cplusplus\n\
1604  +}\n\
1605  +inline +double +pow\\(double +__d,int +__expon\\) +{\n\
1606 [ \t]+return +pow\\(__d,\\(double\\)__expon\\);\n\
1607  +}\n\
1608  +extern +\"C\" +{\n\
1609 #else\n\
1610 # +endif";
1612 #define    HPUX10_CPP_POW_INLINE_TEST_CT  1
1613 static tTestDesc aHpux10_Cpp_Pow_InlineTests[] = {
1614   { TT_EGREP,    zHpux10_Cpp_Pow_InlineSelect0, (regex_t*)NULL }, };
1617  *  Fix Command Arguments for Hpux10_Cpp_Pow_Inline
1618  */
1619 static const char* apzHpux10_Cpp_Pow_InlinePatch[] = {
1620     "format",
1621     "",
1622     (char*)NULL };
1624 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1626  *  Description of Hpux11_Cpp_Pow_Inline fix
1627  */
1628 tSCC zHpux11_Cpp_Pow_InlineName[] =
1629      "hpux11_cpp_pow_inline";
1632  *  File name selection pattern
1633  */
1634 tSCC zHpux11_Cpp_Pow_InlineList[] =
1635   "|math.h|";
1637  *  Machine/OS name selection pattern
1638  */
1639 #define apzHpux11_Cpp_Pow_InlineMachs (const char**)NULL
1642  *  content selection pattern - do fix if pattern found
1643  */
1644 tSCC zHpux11_Cpp_Pow_InlineSelect0[] =
1645        " +inline double pow\\(double d,int expon\\) {\n\
1646  +return pow\\(d, \\(double\\)expon\\);\n\
1647  +}\n";
1649 #define    HPUX11_CPP_POW_INLINE_TEST_CT  1
1650 static tTestDesc aHpux11_Cpp_Pow_InlineTests[] = {
1651   { TT_EGREP,    zHpux11_Cpp_Pow_InlineSelect0, (regex_t*)NULL }, };
1654  *  Fix Command Arguments for Hpux11_Cpp_Pow_Inline
1655  */
1656 static const char* apzHpux11_Cpp_Pow_InlinePatch[] = {
1657     "format",
1658     "",
1659     (char*)NULL };
1661 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1663  *  Description of Hpux10_Ctype_Declarations1 fix
1664  */
1665 tSCC zHpux10_Ctype_Declarations1Name[] =
1666      "hpux10_ctype_declarations1";
1669  *  File name selection pattern
1670  */
1671 tSCC zHpux10_Ctype_Declarations1List[] =
1672   "|ctype.h|";
1674  *  Machine/OS name selection pattern
1675  */
1676 #define apzHpux10_Ctype_Declarations1Machs (const char**)NULL
1679  *  content selection pattern - do fix if pattern found
1680  */
1681 tSCC zHpux10_Ctype_Declarations1Select0[] =
1682        "^#[ \t]*define _toupper\\(__c\\)[ \t]*__toupper\\(__c\\)";
1685  *  content bypass pattern - skip fix if pattern found
1686  */
1687 tSCC zHpux10_Ctype_Declarations1Bypass0[] =
1688        "^[ \t]*extern[ \t]*int[ \t]*__tolower[ \t]*\\(";
1690 #define    HPUX10_CTYPE_DECLARATIONS1_TEST_CT  2
1691 static tTestDesc aHpux10_Ctype_Declarations1Tests[] = {
1692   { TT_NEGREP,   zHpux10_Ctype_Declarations1Bypass0, (regex_t*)NULL },
1693   { TT_EGREP,    zHpux10_Ctype_Declarations1Select0, (regex_t*)NULL }, };
1696  *  Fix Command Arguments for Hpux10_Ctype_Declarations1
1697  */
1698 static const char* apzHpux10_Ctype_Declarations1Patch[] = {
1699     "format",
1700     "#ifdef _PROTOTYPES\n\
1701 extern int __tolower(int);\n\
1702 extern int __toupper(int);\n\
1703 #else /* NOT _PROTOTYPES */\n\
1704 extern int __tolower();\n\
1705 extern int __toupper();\n\
1706 #endif /* _PROTOTYPES */\n\n\
1707 %0\n",
1708     (char*)NULL };
1710 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1712  *  Description of Hpux10_Ctype_Declarations2 fix
1713  */
1714 tSCC zHpux10_Ctype_Declarations2Name[] =
1715      "hpux10_ctype_declarations2";
1718  *  File name selection pattern
1719  */
1720 tSCC zHpux10_Ctype_Declarations2List[] =
1721   "|ctype.h|";
1723  *  Machine/OS name selection pattern
1724  */
1725 #define apzHpux10_Ctype_Declarations2Machs (const char**)NULL
1728  *  content selection pattern - do fix if pattern found
1729  */
1730 tSCC zHpux10_Ctype_Declarations2Select0[] =
1731        "^#  if defined\\(_SB_CTYPE_MACROS\\) && \\!defined\\(__lint\\)";
1734  *  content bypass pattern - skip fix if pattern found
1735  */
1736 tSCC zHpux10_Ctype_Declarations2Bypass0[] =
1737        "^[ \t]*extern[ \t]*int[ \t]*_isalnum[ \t]*\\(";
1739 #define    HPUX10_CTYPE_DECLARATIONS2_TEST_CT  2
1740 static tTestDesc aHpux10_Ctype_Declarations2Tests[] = {
1741   { TT_NEGREP,   zHpux10_Ctype_Declarations2Bypass0, (regex_t*)NULL },
1742   { TT_EGREP,    zHpux10_Ctype_Declarations2Select0, (regex_t*)NULL }, };
1745  *  Fix Command Arguments for Hpux10_Ctype_Declarations2
1746  */
1747 static const char* apzHpux10_Ctype_Declarations2Patch[] = {
1748     "format",
1749     "%0\n\n\
1750 #ifdef _PROTOTYPES\n\
1751      extern int _isalnum(int);\n\
1752      extern int _isalpha(int);\n\
1753      extern int _iscntrl(int);\n\
1754      extern int _isdigit(int);\n\
1755      extern int _isgraph(int);\n\
1756      extern int _islower(int);\n\
1757      extern int _isprint(int);\n\
1758      extern int _ispunct(int);\n\
1759      extern int _isspace(int);\n\
1760      extern int _isupper(int);\n\
1761      extern int _isxdigit(int);\n\
1762 #  else /* not _PROTOTYPES */\n\
1763      extern int _isalnum();\n\
1764      extern int _isalpha();\n\
1765      extern int _iscntrl();\n\
1766      extern int _isdigit();\n\
1767      extern int _isgraph();\n\
1768      extern int _islower();\n\
1769      extern int _isprint();\n\
1770      extern int _ispunct();\n\
1771      extern int _isspace();\n\
1772      extern int _isupper();\n\
1773      extern int _isxdigit();\n\
1774 #endif /* _PROTOTYPES */\n",
1775     (char*)NULL };
1777 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1779  *  Description of Hpux11_Abs fix
1780  */
1781 tSCC zHpux11_AbsName[] =
1782      "hpux11_abs";
1785  *  File name selection pattern
1786  */
1787 tSCC zHpux11_AbsList[] =
1788   "|stdlib.h|";
1790  *  Machine/OS name selection pattern
1791  */
1792 tSCC* apzHpux11_AbsMachs[] = {
1793         "ia64-hp-hpux11*",
1794         (const char*)NULL };
1797  *  content selection pattern - do fix if pattern found
1798  */
1799 tSCC zHpux11_AbsSelect0[] =
1800        "ifndef _MATH_INCLUDED";
1802 #define    HPUX11_ABS_TEST_CT  1
1803 static tTestDesc aHpux11_AbsTests[] = {
1804   { TT_EGREP,    zHpux11_AbsSelect0, (regex_t*)NULL }, };
1807  *  Fix Command Arguments for Hpux11_Abs
1808  */
1809 static const char* apzHpux11_AbsPatch[] = {
1810     "format",
1811     "if !defined(_MATH_INCLUDED) || defined(__GNUG__)",
1812     (char*)NULL };
1814 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1816  *  Description of Hpux11_Fabsf fix
1817  */
1818 tSCC zHpux11_FabsfName[] =
1819      "hpux11_fabsf";
1822  *  File name selection pattern
1823  */
1824 tSCC zHpux11_FabsfList[] =
1825   "|math.h|";
1827  *  Machine/OS name selection pattern
1828  */
1829 #define apzHpux11_FabsfMachs (const char**)NULL
1832  *  content selection pattern - do fix if pattern found
1833  */
1834 tSCC zHpux11_FabsfSelect0[] =
1835        "^[ \t]*#[ \t]*define[ \t]+fabsf\\(.*";
1838  *  content bypass pattern - skip fix if pattern found
1839  */
1840 tSCC zHpux11_FabsfBypass0[] =
1841        "__cplusplus";
1843 #define    HPUX11_FABSF_TEST_CT  2
1844 static tTestDesc aHpux11_FabsfTests[] = {
1845   { TT_NEGREP,   zHpux11_FabsfBypass0, (regex_t*)NULL },
1846   { TT_EGREP,    zHpux11_FabsfSelect0, (regex_t*)NULL }, };
1849  *  Fix Command Arguments for Hpux11_Fabsf
1850  */
1851 static const char* apzHpux11_FabsfPatch[] = {
1852     "format",
1853     "#ifndef __cplusplus\n\
1854 %0\n\
1855 #endif",
1856     (char*)NULL };
1858 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1860  *  Description of Hpux11_Size_T fix
1861  */
1862 tSCC zHpux11_Size_TName[] =
1863      "hpux11_size_t";
1866  *  File name selection pattern
1867  */
1868 #define zHpux11_Size_TList (char*)NULL
1870  *  Machine/OS name selection pattern
1871  */
1872 tSCC* apzHpux11_Size_TMachs[] = {
1873         "*-hp-hpux11*",
1874         (const char*)NULL };
1877  *  content selection pattern - do fix if pattern found
1878  */
1879 tSCC zHpux11_Size_TSelect0[] =
1880        "__size_t";
1882 #define    HPUX11_SIZE_T_TEST_CT  1
1883 static tTestDesc aHpux11_Size_TTests[] = {
1884   { TT_EGREP,    zHpux11_Size_TSelect0, (regex_t*)NULL }, };
1887  *  Fix Command Arguments for Hpux11_Size_T
1888  */
1889 static const char* apzHpux11_Size_TPatch[] = {
1890     "format",
1891     "_hpux_size_t",
1892     (char*)NULL };
1894 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1896  *  Description of Hpux11_Uint32_C fix
1897  */
1898 tSCC zHpux11_Uint32_CName[] =
1899      "hpux11_uint32_c";
1902  *  File name selection pattern
1903  */
1904 tSCC zHpux11_Uint32_CList[] =
1905   "|inttypes.h|";
1907  *  Machine/OS name selection pattern
1908  */
1909 #define apzHpux11_Uint32_CMachs (const char**)NULL
1912  *  content selection pattern - do fix if pattern found
1913  */
1914 tSCC zHpux11_Uint32_CSelect0[] =
1915        "^#define UINT32_C\\(__c\\)[ \t]*__CONCAT__\\(__CONCAT_U__\\(__c\\),l\\)";
1917 #define    HPUX11_UINT32_C_TEST_CT  1
1918 static tTestDesc aHpux11_Uint32_CTests[] = {
1919   { TT_EGREP,    zHpux11_Uint32_CSelect0, (regex_t*)NULL }, };
1922  *  Fix Command Arguments for Hpux11_Uint32_C
1923  */
1924 static const char* apzHpux11_Uint32_CPatch[] = {
1925     "format",
1926     "#define UINT32_C(__c) __CONCAT__(__c,ul)",
1927     (char*)NULL };
1929 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1931  *  Description of Hpux11_Vsnprintf fix
1932  */
1933 tSCC zHpux11_VsnprintfName[] =
1934      "hpux11_vsnprintf";
1937  *  File name selection pattern
1938  */
1939 tSCC zHpux11_VsnprintfList[] =
1940   "|stdio.h|";
1942  *  Machine/OS name selection pattern
1943  */
1944 #define apzHpux11_VsnprintfMachs (const char**)NULL
1947  *  content selection pattern - do fix if pattern found
1948  */
1949 tSCC zHpux11_VsnprintfSelect0[] =
1950        "(extern int vsnprintf\\(char \\*, _[hpux]*_size_t, const char \\*,) __va__list\\);";
1952 #define    HPUX11_VSNPRINTF_TEST_CT  1
1953 static tTestDesc aHpux11_VsnprintfTests[] = {
1954   { TT_EGREP,    zHpux11_VsnprintfSelect0, (regex_t*)NULL }, };
1957  *  Fix Command Arguments for Hpux11_Vsnprintf
1958  */
1959 static const char* apzHpux11_VsnprintfPatch[] = {
1960     "format",
1961     "%1 __va_list);",
1962     (char*)NULL };
1964 /* * * * * * * * * * * * * * * * * * * * * * * * * *
1966  *  Description of Hpux8_Bogus_Inlines fix
1967  */
1968 tSCC zHpux8_Bogus_InlinesName[] =
1969      "hpux8_bogus_inlines";
1972  *  File name selection pattern
1973  */
1974 tSCC zHpux8_Bogus_InlinesList[] =
1975   "|math.h|";
1977  *  Machine/OS name selection pattern
1978  */
1979 #define apzHpux8_Bogus_InlinesMachs (const char**)NULL
1982  *  content selection pattern - do fix if pattern found
1983  */
1984 tSCC zHpux8_Bogus_InlinesSelect0[] =
1985        "inline";
1987 #define    HPUX8_BOGUS_INLINES_TEST_CT  1
1988 static tTestDesc aHpux8_Bogus_InlinesTests[] = {
1989   { TT_EGREP,    zHpux8_Bogus_InlinesSelect0, (regex_t*)NULL }, };
1992  *  Fix Command Arguments for Hpux8_Bogus_Inlines
1993  */
1994 static const char* apzHpux8_Bogus_InlinesPatch[] = { "sed",
1995     "-e", "s@inline int abs(int [a-z][a-z]*) {.*}@extern \"C\" int abs(int);@",
1996     "-e", "s@inline double abs(double [a-z][a-z]*) {.*}@@",
1997     "-e", "s@inline int sqr(int [a-z][a-z]*) {.*}@@",
1998     "-e", "s@inline double sqr(double [a-z][a-z]*) {.*}@@",
1999     (char*)NULL };
2001 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2003  *  Description of Hpux_Ctype_Macros fix
2004  */
2005 tSCC zHpux_Ctype_MacrosName[] =
2006      "hpux_ctype_macros";
2009  *  File name selection pattern
2010  */
2011 tSCC zHpux_Ctype_MacrosList[] =
2012   "|ctype.h|";
2014  *  Machine/OS name selection pattern
2015  */
2016 #define apzHpux_Ctype_MacrosMachs (const char**)NULL
2019  *  content selection pattern - do fix if pattern found
2020  */
2021 tSCC zHpux_Ctype_MacrosSelect0[] =
2022        "((: |\\()__SB_masks \\? )(__SB_masks\\[__(alnum|c)\\] & _IS)";
2024 #define    HPUX_CTYPE_MACROS_TEST_CT  1
2025 static tTestDesc aHpux_Ctype_MacrosTests[] = {
2026   { TT_EGREP,    zHpux_Ctype_MacrosSelect0, (regex_t*)NULL }, };
2029  *  Fix Command Arguments for Hpux_Ctype_Macros
2030  */
2031 static const char* apzHpux_Ctype_MacrosPatch[] = {
2032     "format",
2033     "%1(int)%3",
2034     (char*)NULL };
2036 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2038  *  Description of Hpux_Long_Double fix
2039  */
2040 tSCC zHpux_Long_DoubleName[] =
2041      "hpux_long_double";
2044  *  File name selection pattern
2045  */
2046 tSCC zHpux_Long_DoubleList[] =
2047   "|stdlib.h|";
2049  *  Machine/OS name selection pattern
2050  */
2051 #define apzHpux_Long_DoubleMachs (const char**)NULL
2054  *  content selection pattern - do fix if pattern found
2055  */
2056 tSCC zHpux_Long_DoubleSelect0[] =
2057        "extern[ \t]long_double[ \t]strtold";
2060  *  content bypass pattern - skip fix if pattern found
2061  */
2062 tSCC zHpux_Long_DoubleBypass0[] =
2063        "long_double_t";
2065 #define    HPUX_LONG_DOUBLE_TEST_CT  2
2066 static tTestDesc aHpux_Long_DoubleTests[] = {
2067   { TT_NEGREP,   zHpux_Long_DoubleBypass0, (regex_t*)NULL },
2068   { TT_EGREP,    zHpux_Long_DoubleSelect0, (regex_t*)NULL }, };
2071  *  Fix Command Arguments for Hpux_Long_Double
2072  */
2073 static const char* apzHpux_Long_DoublePatch[] = { "sed",
2074     "-e", "/^#[ \t]*ifndef _LONG_DOUBLE/,/\\/\\* _LONG_DOUBLE \\*\\//D",
2075     "-e", "s/long_double/long double/g",
2076     (char*)NULL };
2078 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2080  *  Description of Hpux_Maxint fix
2081  */
2082 tSCC zHpux_MaxintName[] =
2083      "hpux_maxint";
2086  *  File name selection pattern
2087  */
2088 tSCC zHpux_MaxintList[] =
2089   "|sys/param.h|values.h|";
2091  *  Machine/OS name selection pattern
2092  */
2093 #define apzHpux_MaxintMachs (const char**)NULL
2096  *  content selection pattern - do fix if pattern found
2097  */
2098 tSCC zHpux_MaxintSelect0[] =
2099        "^#[ \t]*define[ \t]+MAXINT[ \t]";
2102  *  content bypass pattern - skip fix if pattern found
2103  */
2104 tSCC zHpux_MaxintBypass0[] =
2105        "^#[ \t]*ifndef[ \t]+MAXINT";
2108  *  perform the 'test' shell command - do fix on success
2109  */
2110 tSCC zHpux_MaxintTest0[] =
2111        "-n \"`egrep '#[ \t]*define[ \t]+MAXINT[ \t]' sys/param.h`\"";
2113 #define    HPUX_MAXINT_TEST_CT  3
2114 static tTestDesc aHpux_MaxintTests[] = {
2115   { TT_TEST,     zHpux_MaxintTest0,   0 /* unused */ },
2116   { TT_NEGREP,   zHpux_MaxintBypass0, (regex_t*)NULL },
2117   { TT_EGREP,    zHpux_MaxintSelect0, (regex_t*)NULL }, };
2120  *  Fix Command Arguments for Hpux_Maxint
2121  */
2122 static const char* apzHpux_MaxintPatch[] = {
2123     "format",
2124     "#ifndef MAXINT\n\
2125 %0\n\
2126 #endif",
2127     "^#[ \t]*define[ \t]+MAXINT[ \t].*",
2128     (char*)NULL };
2130 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2132  *  Description of Hpux_Systime fix
2133  */
2134 tSCC zHpux_SystimeName[] =
2135      "hpux_systime";
2138  *  File name selection pattern
2139  */
2140 tSCC zHpux_SystimeList[] =
2141   "|sys/time.h|";
2143  *  Machine/OS name selection pattern
2144  */
2145 #define apzHpux_SystimeMachs (const char**)NULL
2148  *  content selection pattern - do fix if pattern found
2149  */
2150 tSCC zHpux_SystimeSelect0[] =
2151        "^extern struct sigevent;";
2153 #define    HPUX_SYSTIME_TEST_CT  1
2154 static tTestDesc aHpux_SystimeTests[] = {
2155   { TT_EGREP,    zHpux_SystimeSelect0, (regex_t*)NULL }, };
2158  *  Fix Command Arguments for Hpux_Systime
2159  */
2160 static const char* apzHpux_SystimePatch[] = {
2161     "format",
2162     "struct sigevent;",
2163     (char*)NULL };
2165 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2167  *  Description of Int_Abort_Free_And_Exit fix
2168  */
2169 tSCC zInt_Abort_Free_And_ExitName[] =
2170      "int_abort_free_and_exit";
2173  *  File name selection pattern
2174  */
2175 tSCC zInt_Abort_Free_And_ExitList[] =
2176   "|stdlib.h|";
2178  *  Machine/OS name selection pattern
2179  */
2180 #define apzInt_Abort_Free_And_ExitMachs (const char**)NULL
2183  *  content selection pattern - do fix if pattern found
2184  */
2185 tSCC zInt_Abort_Free_And_ExitSelect0[] =
2186        "int[ \t]+(abort|free|exit)[ \t]*\\(";
2188 #define    INT_ABORT_FREE_AND_EXIT_TEST_CT  1
2189 static tTestDesc aInt_Abort_Free_And_ExitTests[] = {
2190   { TT_EGREP,    zInt_Abort_Free_And_ExitSelect0, (regex_t*)NULL }, };
2193  *  Fix Command Arguments for Int_Abort_Free_And_Exit
2194  */
2195 static const char* apzInt_Abort_Free_And_ExitPatch[] = {
2196     "format",
2197     "void\t%1(",
2198     (char*)NULL };
2200 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2202  *  Description of Io_Quotes_Def fix
2203  */
2204 tSCC zIo_Quotes_DefName[] =
2205      "io_quotes_def";
2208  *  File name selection pattern
2209  */
2210 #define zIo_Quotes_DefList (char*)NULL
2212  *  Machine/OS name selection pattern
2213  */
2214 #define apzIo_Quotes_DefMachs (const char**)NULL
2217  *  content selection pattern - do fix if pattern found
2218  */
2219 tSCC zIo_Quotes_DefSelect0[] =
2220        "define[ \t]+[A-Z0-9_]+IO[A-Z]*\\([a-zA-Z][,)]";
2222 #define    IO_QUOTES_DEF_TEST_CT  1
2223 static tTestDesc aIo_Quotes_DefTests[] = {
2224   { TT_EGREP,    zIo_Quotes_DefSelect0, (regex_t*)NULL }, };
2227  *  Fix Command Arguments for Io_Quotes_Def
2228  */
2229 static const char* apzIo_Quotes_DefPatch[] = {
2230     "char_macro_def",
2231     "IO",
2232     (char*)NULL };
2234 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2236  *  Description of Io_Quotes_Use fix
2237  */
2238 tSCC zIo_Quotes_UseName[] =
2239      "io_quotes_use";
2242  *  File name selection pattern
2243  */
2244 #define zIo_Quotes_UseList (char*)NULL
2246  *  Machine/OS name selection pattern
2247  */
2248 #define apzIo_Quotes_UseMachs (const char**)NULL
2251  *  content selection pattern - do fix if pattern found
2252  */
2253 tSCC zIo_Quotes_UseSelect0[] =
2254        "define[ \t]+[A-Z0-9_]+[ \t]+[A-Z0-9_]+IO[A-Z]*[ \t]*\\( *[^,']";
2256 #define    IO_QUOTES_USE_TEST_CT  1
2257 static tTestDesc aIo_Quotes_UseTests[] = {
2258   { TT_EGREP,    zIo_Quotes_UseSelect0, (regex_t*)NULL }, };
2261  *  Fix Command Arguments for Io_Quotes_Use
2262  */
2263 static const char* apzIo_Quotes_UsePatch[] = {
2264     "char_macro_use",
2265     "IO",
2266     (char*)NULL };
2268 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2270  *  Description of Ip_Missing_Semi fix
2271  */
2272 tSCC zIp_Missing_SemiName[] =
2273      "ip_missing_semi";
2276  *  File name selection pattern
2277  */
2278 tSCC zIp_Missing_SemiList[] =
2279   "|netinet/ip.h|";
2281  *  Machine/OS name selection pattern
2282  */
2283 #define apzIp_Missing_SemiMachs (const char**)NULL
2286  *  content selection pattern - do fix if pattern found
2287  */
2288 tSCC zIp_Missing_SemiSelect0[] =
2289        "}$";
2291 #define    IP_MISSING_SEMI_TEST_CT  1
2292 static tTestDesc aIp_Missing_SemiTests[] = {
2293   { TT_EGREP,    zIp_Missing_SemiSelect0, (regex_t*)NULL }, };
2296  *  Fix Command Arguments for Ip_Missing_Semi
2297  */
2298 static const char* apzIp_Missing_SemiPatch[] = { "sed",
2299     "-e", "/^struct/,/^};/s/}$/};/",
2300     (char*)NULL };
2302 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2304  *  Description of Irix_Asm_Apostrophe fix
2305  */
2306 tSCC zIrix_Asm_ApostropheName[] =
2307      "irix_asm_apostrophe";
2310  *  File name selection pattern
2311  */
2312 tSCC zIrix_Asm_ApostropheList[] =
2313   "|sys/asm.h|";
2315  *  Machine/OS name selection pattern
2316  */
2317 #define apzIrix_Asm_ApostropheMachs (const char**)NULL
2320  *  content selection pattern - do fix if pattern found
2321  */
2322 tSCC zIrix_Asm_ApostropheSelect0[] =
2323        "^[ \t]*#.*[Ww]e're";
2325 #define    IRIX_ASM_APOSTROPHE_TEST_CT  1
2326 static tTestDesc aIrix_Asm_ApostropheTests[] = {
2327   { TT_EGREP,    zIrix_Asm_ApostropheSelect0, (regex_t*)NULL }, };
2330  *  Fix Command Arguments for Irix_Asm_Apostrophe
2331  */
2332 static const char* apzIrix_Asm_ApostrophePatch[] = {
2333     "format",
2334     "%1 are",
2335     "^([ \t]*#.*[Ww]e)'re",
2336     (char*)NULL };
2338 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2340  *  Description of Irix_Limits_Const fix
2341  */
2342 tSCC zIrix_Limits_ConstName[] =
2343      "irix_limits_const";
2346  *  File name selection pattern
2347  */
2348 tSCC zIrix_Limits_ConstList[] =
2349   "|fixinc-test-limits.h|limits.h|";
2351  *  Machine/OS name selection pattern
2352  */
2353 #define apzIrix_Limits_ConstMachs (const char**)NULL
2356  *  content selection pattern - do fix if pattern found
2357  */
2358 tSCC zIrix_Limits_ConstSelect0[] =
2359        "^extern const ";
2361 #define    IRIX_LIMITS_CONST_TEST_CT  1
2362 static tTestDesc aIrix_Limits_ConstTests[] = {
2363   { TT_EGREP,    zIrix_Limits_ConstSelect0, (regex_t*)NULL }, };
2366  *  Fix Command Arguments for Irix_Limits_Const
2367  */
2368 static const char* apzIrix_Limits_ConstPatch[] = {
2369     "format",
2370     "extern __const ",
2371     (char*)NULL };
2373 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2375  *  Description of Irix___Restrict fix
2376  */
2377 tSCC zIrix___RestrictName[] =
2378      "irix___restrict";
2381  *  File name selection pattern
2382  */
2383 tSCC zIrix___RestrictList[] =
2384   "|internal/sgimacros.h|";
2386  *  Machine/OS name selection pattern
2387  */
2388 tSCC* apzIrix___RestrictMachs[] = {
2389         "mips-sgi-irix6.5",
2390         (const char*)NULL };
2393  *  content selection pattern - do fix if pattern found
2394  */
2395 tSCC zIrix___RestrictSelect0[] =
2396        "(#ifdef __c99\n\
2397 )(#[ \t]*define __restrict restrict)";
2399 #define    IRIX___RESTRICT_TEST_CT  1
2400 static tTestDesc aIrix___RestrictTests[] = {
2401   { TT_EGREP,    zIrix___RestrictSelect0, (regex_t*)NULL }, };
2404  *  Fix Command Arguments for Irix___Restrict
2405  */
2406 static const char* apzIrix___RestrictPatch[] = {
2407     "format",
2408     "%1#  ifndef __cplusplus\n\
2409 %2\n\
2410 #  endif",
2411     (char*)NULL };
2413 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2415  *  Description of Irix_Socklen_T fix
2416  */
2417 tSCC zIrix_Socklen_TName[] =
2418      "irix_socklen_t";
2421  *  File name selection pattern
2422  */
2423 tSCC zIrix_Socklen_TList[] =
2424   "|sys/socket.h|";
2426  *  Machine/OS name selection pattern
2427  */
2428 tSCC* apzIrix_Socklen_TMachs[] = {
2429         "mips-sgi-irix6.5",
2430         (const char*)NULL };
2433  *  content selection pattern - do fix if pattern found
2434  */
2435 tSCC zIrix_Socklen_TSelect0[] =
2436        "(#define _SOCKLEN_T\n\
2437 )(typedef u_int32_t socklen_t;)";
2439 #define    IRIX_SOCKLEN_T_TEST_CT  1
2440 static tTestDesc aIrix_Socklen_TTests[] = {
2441   { TT_EGREP,    zIrix_Socklen_TSelect0, (regex_t*)NULL }, };
2444  *  Fix Command Arguments for Irix_Socklen_T
2445  */
2446 static const char* apzIrix_Socklen_TPatch[] = {
2447     "format",
2448     "%1#if _NO_XOPEN4 && _NO_XOPEN5\n\
2449 typedef int socklen_t;\n\
2450 #else\n\
2451 %2\n\
2452 #endif /* _NO_XOPEN4 && _NO_XOPEN5 */",
2453     (char*)NULL };
2455 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2457  *  Description of Irix_Stdio_Va_List fix
2458  */
2459 tSCC zIrix_Stdio_Va_ListName[] =
2460      "irix_stdio_va_list";
2463  *  File name selection pattern
2464  */
2465 tSCC zIrix_Stdio_Va_ListList[] =
2466   "|stdio.h|";
2468  *  Machine/OS name selection pattern
2469  */
2470 #define apzIrix_Stdio_Va_ListMachs (const char**)NULL
2473  *  content selection pattern - do fix if pattern found
2474  */
2475 tSCC zIrix_Stdio_Va_ListSelect0[] =
2476        "(printf\\(.*), /\\* va_list \\*/ char \\*";
2478 #define    IRIX_STDIO_VA_LIST_TEST_CT  1
2479 static tTestDesc aIrix_Stdio_Va_ListTests[] = {
2480   { TT_EGREP,    zIrix_Stdio_Va_ListSelect0, (regex_t*)NULL }, };
2483  *  Fix Command Arguments for Irix_Stdio_Va_List
2484  */
2485 static const char* apzIrix_Stdio_Va_ListPatch[] = {
2486     "format",
2487     "%1, __gnuc_va_list",
2488     (char*)NULL };
2490 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2492  *  Description of Irix_Wcsftime fix
2493  */
2494 tSCC zIrix_WcsftimeName[] =
2495      "irix_wcsftime";
2498  *  File name selection pattern
2499  */
2500 tSCC zIrix_WcsftimeList[] =
2501   "|internal/wchar_core.h|";
2503  *  Machine/OS name selection pattern
2504  */
2505 tSCC* apzIrix_WcsftimeMachs[] = {
2506         "mips-sgi-irix6.5",
2507         (const char*)NULL };
2510  *  content selection pattern - do fix if pattern found
2511  */
2512 tSCC zIrix_WcsftimeSelect0[] =
2513        "#if _NO_XOPEN5\n\
2514 (extern size_t[ \t]+wcsftime.*const char *.*)";
2516 #define    IRIX_WCSFTIME_TEST_CT  1
2517 static tTestDesc aIrix_WcsftimeTests[] = {
2518   { TT_EGREP,    zIrix_WcsftimeSelect0, (regex_t*)NULL }, };
2521  *  Fix Command Arguments for Irix_Wcsftime
2522  */
2523 static const char* apzIrix_WcsftimePatch[] = {
2524     "format",
2525     "#if _NO_XOPEN5 && !defined(__c99)\n\
2526 %1",
2527     (char*)NULL };
2529 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2531  *  Description of Isc_Fmod fix
2532  */
2533 tSCC zIsc_FmodName[] =
2534      "isc_fmod";
2537  *  File name selection pattern
2538  */
2539 tSCC zIsc_FmodList[] =
2540   "|math.h|";
2542  *  Machine/OS name selection pattern
2543  */
2544 #define apzIsc_FmodMachs (const char**)NULL
2547  *  content selection pattern - do fix if pattern found
2548  */
2549 tSCC zIsc_FmodSelect0[] =
2550        "fmod\\(double\\)";
2552 #define    ISC_FMOD_TEST_CT  1
2553 static tTestDesc aIsc_FmodTests[] = {
2554   { TT_EGREP,    zIsc_FmodSelect0, (regex_t*)NULL }, };
2557  *  Fix Command Arguments for Isc_Fmod
2558  */
2559 static const char* apzIsc_FmodPatch[] = {
2560     "format",
2561     "fmod(double, double)",
2562     (char*)NULL };
2564 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2566  *  Description of Isc_Omits_With_Stdc fix
2567  */
2568 tSCC zIsc_Omits_With_StdcName[] =
2569      "isc_omits_with_stdc";
2572  *  File name selection pattern
2573  */
2574 tSCC zIsc_Omits_With_StdcList[] =
2575   "|stdio.h|math.h|ctype.h|sys/limits.h|sys/fcntl.h|sys/dirent.h|";
2577  *  Machine/OS name selection pattern
2578  */
2579 #define apzIsc_Omits_With_StdcMachs (const char**)NULL
2582  *  content selection pattern - do fix if pattern found
2583  */
2584 tSCC zIsc_Omits_With_StdcSelect0[] =
2585        "!defined\\(__STDC__\\) && !defined\\(_POSIX_SOURCE\\)";
2587 #define    ISC_OMITS_WITH_STDC_TEST_CT  1
2588 static tTestDesc aIsc_Omits_With_StdcTests[] = {
2589   { TT_EGREP,    zIsc_Omits_With_StdcSelect0, (regex_t*)NULL }, };
2592  *  Fix Command Arguments for Isc_Omits_With_Stdc
2593  */
2594 static const char* apzIsc_Omits_With_StdcPatch[] = {
2595     "format",
2596     "!defined(_POSIX_SOURCE)",
2597     (char*)NULL };
2599 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2601  *  Description of Kandr_Concat fix
2602  */
2603 tSCC zKandr_ConcatName[] =
2604      "kandr_concat";
2607  *  File name selection pattern
2608  */
2609 tSCC zKandr_ConcatList[] =
2610   "|sparc/asm_linkage.h|sun3/asm_linkage.h|sun3x/asm_linkage.h|sun4/asm_linkage.h|sun4c/asm_linkage.h|sun4m/asm_linkage.h|sun4c/debug/asm_linkage.h|sun4m/debug/asm_linkage.h|arm/as_support.h|arm/mc_type.h|arm/xcb.h|dev/chardefmac.h|dev/ps_irq.h|dev/screen.h|dev/scsi.h|sys/tty.h|Xm.acorn/XmP.h|bsd43/bsd43_.h|";
2612  *  Machine/OS name selection pattern
2613  */
2614 #define apzKandr_ConcatMachs (const char**)NULL
2617  *  content selection pattern - do fix if pattern found
2618  */
2619 tSCC zKandr_ConcatSelect0[] =
2620        "/\\*\\*/";
2622 #define    KANDR_CONCAT_TEST_CT  1
2623 static tTestDesc aKandr_ConcatTests[] = {
2624   { TT_EGREP,    zKandr_ConcatSelect0, (regex_t*)NULL }, };
2627  *  Fix Command Arguments for Kandr_Concat
2628  */
2629 static const char* apzKandr_ConcatPatch[] = {
2630     "format",
2631     "##",
2632     (char*)NULL };
2634 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2636  *  Description of Libc1_G_Va_List fix
2637  */
2638 tSCC zLibc1_G_Va_ListName[] =
2639      "libc1_G_va_list";
2642  *  File name selection pattern
2643  */
2644 tSCC zLibc1_G_Va_ListList[] =
2645   "|_G_config.h|";
2647  *  Machine/OS name selection pattern
2648  */
2649 tSCC* apzLibc1_G_Va_ListMachs[] = {
2650         "*-*-linux*libc1",
2651         (const char*)NULL };
2654  *  content selection pattern - do fix if pattern found
2655  */
2656 tSCC zLibc1_G_Va_ListSelect0[] =
2657        "typedef void \\* _G_va_list;";
2659 #define    LIBC1_G_VA_LIST_TEST_CT  1
2660 static tTestDesc aLibc1_G_Va_ListTests[] = {
2661   { TT_EGREP,    zLibc1_G_Va_ListSelect0, (regex_t*)NULL }, };
2664  *  Fix Command Arguments for Libc1_G_Va_List
2665  */
2666 static const char* apzLibc1_G_Va_ListPatch[] = {
2667     "format",
2668     "typedef __builtin_va_list _G_va_list;",
2669     (char*)NULL };
2671 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2673  *  Description of Libc1_Ifdefd_Memx fix
2674  */
2675 tSCC zLibc1_Ifdefd_MemxName[] =
2676      "libc1_ifdefd_memx";
2679  *  File name selection pattern
2680  */
2681 tSCC zLibc1_Ifdefd_MemxList[] =
2682   "|testing.h|string.h|";
2684  *  Machine/OS name selection pattern
2685  */
2686 #define apzLibc1_Ifdefd_MemxMachs (const char**)NULL
2689  *  content selection pattern - do fix if pattern found
2690  */
2691 tSCC zLibc1_Ifdefd_MemxSelect0[] =
2692        "' is a built-in function for gcc 2\\.x\\. \\*/";
2695  *  content bypass pattern - skip fix if pattern found
2696  */
2697 tSCC zLibc1_Ifdefd_MemxBypass0[] =
2698        "__cplusplus";
2700 #define    LIBC1_IFDEFD_MEMX_TEST_CT  2
2701 static tTestDesc aLibc1_Ifdefd_MemxTests[] = {
2702   { TT_NEGREP,   zLibc1_Ifdefd_MemxBypass0, (regex_t*)NULL },
2703   { TT_EGREP,    zLibc1_Ifdefd_MemxSelect0, (regex_t*)NULL }, };
2706  *  Fix Command Arguments for Libc1_Ifdefd_Memx
2707  */
2708 static const char* apzLibc1_Ifdefd_MemxPatch[] = {
2709     "format",
2710     "%1",
2711     "/\\* `mem...' is a built-in function for gcc 2\\.x\\. \\*/\n\
2712 #if defined\\(__STDC__\\) && __GNUC__ < 2\n\
2713 (/\\* .* \\*/\n\
2714 extern [a-z_]+ mem.*(\n\
2715 [^#].*)*;)\n\
2716 #endif",
2717     (char*)NULL };
2719 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2721  *  Description of Limits_Ifndefs fix
2722  */
2723 tSCC zLimits_IfndefsName[] =
2724      "limits_ifndefs";
2727  *  File name selection pattern
2728  */
2729 tSCC zLimits_IfndefsList[] =
2730   "|sys/limits.h|limits.h|";
2732  *  Machine/OS name selection pattern
2733  */
2734 #define apzLimits_IfndefsMachs (const char**)NULL
2737  *  content bypass pattern - skip fix if pattern found
2738  */
2739 tSCC zLimits_IfndefsBypass0[] =
2740        "ifndef[ \t]+FLT_(MIN|MAX)";
2742 #define    LIMITS_IFNDEFS_TEST_CT  1
2743 static tTestDesc aLimits_IfndefsTests[] = {
2744   { TT_NEGREP,   zLimits_IfndefsBypass0, (regex_t*)NULL }, };
2747  *  Fix Command Arguments for Limits_Ifndefs
2748  */
2749 static const char* apzLimits_IfndefsPatch[] = {
2750     "format",
2751     "#ifndef %1\n\
2752 %0\n\
2753 #endif",
2754     "^[ \t]*#[ \t]*define[ \t]+((FLT|DBL)_(MIN|MAX|DIG))[ \t].*",
2755     (char*)NULL };
2757 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2759  *  Description of Lynx_Void_Int fix
2760  */
2761 tSCC zLynx_Void_IntName[] =
2762      "lynx_void_int";
2765  *  File name selection pattern
2766  */
2767 tSCC zLynx_Void_IntList[] =
2768   "|curses.h|";
2770  *  Machine/OS name selection pattern
2771  */
2772 #define apzLynx_Void_IntMachs (const char**)NULL
2775  *  content selection pattern - do fix if pattern found
2776  */
2777 tSCC zLynx_Void_IntSelect0[] =
2778        "#[ \t]*define[ \t]+void[ \t]+int[ \t]*";
2780 #define    LYNX_VOID_INT_TEST_CT  1
2781 static tTestDesc aLynx_Void_IntTests[] = {
2782   { TT_EGREP,    zLynx_Void_IntSelect0, (regex_t*)NULL }, };
2785  *  Fix Command Arguments for Lynx_Void_Int
2786  */
2787 static const char* apzLynx_Void_IntPatch[] = {
2788     "format",
2789     "",
2790     (char*)NULL };
2792 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2794  *  Description of Lynxos_Fcntl_Proto fix
2795  */
2796 tSCC zLynxos_Fcntl_ProtoName[] =
2797      "lynxos_fcntl_proto";
2800  *  File name selection pattern
2801  */
2802 tSCC zLynxos_Fcntl_ProtoList[] =
2803   "|fcntl.h|";
2805  *  Machine/OS name selection pattern
2806  */
2807 #define apzLynxos_Fcntl_ProtoMachs (const char**)NULL
2810  *  content selection pattern - do fix if pattern found
2811  */
2812 tSCC zLynxos_Fcntl_ProtoSelect0[] =
2813        "fcntl[ \t]*\\(int, int, int\\)";
2815 #define    LYNXOS_FCNTL_PROTO_TEST_CT  1
2816 static tTestDesc aLynxos_Fcntl_ProtoTests[] = {
2817   { TT_EGREP,    zLynxos_Fcntl_ProtoSelect0, (regex_t*)NULL }, };
2820  *  Fix Command Arguments for Lynxos_Fcntl_Proto
2821  */
2822 static const char* apzLynxos_Fcntl_ProtoPatch[] = {
2823     "format",
2824     "%1...)",
2825     "(fcntl[ \t]*\\(int, int, )int\\)",
2826     (char*)NULL };
2828 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2830  *  Description of Machine_Ansi_H_Va_List fix
2831  */
2832 tSCC zMachine_Ansi_H_Va_ListName[] =
2833      "machine_ansi_h_va_list";
2836  *  File name selection pattern
2837  */
2838 #define zMachine_Ansi_H_Va_ListList (char*)NULL
2840  *  Machine/OS name selection pattern
2841  */
2842 #define apzMachine_Ansi_H_Va_ListMachs (const char**)NULL
2845  *  content selection pattern - do fix if pattern found
2846  */
2847 tSCC zMachine_Ansi_H_Va_ListSelect0[] =
2848        "define[ \t]+_BSD_VA_LIST_[ \t]";
2851  *  content bypass pattern - skip fix if pattern found
2852  */
2853 tSCC zMachine_Ansi_H_Va_ListBypass0[] =
2854        "__builtin_va_list";
2856 #define    MACHINE_ANSI_H_VA_LIST_TEST_CT  2
2857 static tTestDesc aMachine_Ansi_H_Va_ListTests[] = {
2858   { TT_NEGREP,   zMachine_Ansi_H_Va_ListBypass0, (regex_t*)NULL },
2859   { TT_EGREP,    zMachine_Ansi_H_Va_ListSelect0, (regex_t*)NULL }, };
2862  *  Fix Command Arguments for Machine_Ansi_H_Va_List
2863  */
2864 static const char* apzMachine_Ansi_H_Va_ListPatch[] = {
2865     "format",
2866     "%1__builtin_va_list",
2867     "(define[ \t]+_BSD_VA_LIST_[ \t]+).*",
2868     (char*)NULL };
2870 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2872  *  Description of Machine_Name fix
2873  */
2874 tSCC zMachine_NameName[] =
2875      "machine_name";
2878  *  File name selection pattern
2879  */
2880 #define zMachine_NameList (char*)NULL
2882  *  Machine/OS name selection pattern
2883  */
2884 #define apzMachine_NameMachs (const char**)NULL
2887  *  perform the C function call test
2888  */
2889 tSCC zMachine_NameFTst0[] = "machine_name";
2891 #define    MACHINE_NAME_TEST_CT  1
2892 static tTestDesc aMachine_NameTests[] = {
2893   { TT_FUNCTION, zMachine_NameFTst0,   0 /* unused */ }, };
2896  *  Fix Command Arguments for Machine_Name
2897  */
2898 static const char* apzMachine_NamePatch[] = {
2899     "machine_name",
2900     (char*)NULL };
2902 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2904  *  Description of Math_Exception fix
2905  */
2906 tSCC zMath_ExceptionName[] =
2907      "math_exception";
2910  *  File name selection pattern
2911  */
2912 tSCC zMath_ExceptionList[] =
2913   "|math.h|";
2915  *  Machine/OS name selection pattern
2916  */
2917 #define apzMath_ExceptionMachs (const char**)NULL
2920  *  content selection pattern - do fix if pattern found
2921  */
2922 tSCC zMath_ExceptionSelect0[] =
2923        "struct exception";
2926  *  content bypass pattern - skip fix if pattern found
2927  */
2928 tSCC zMath_ExceptionBypass0[] =
2929        "We have a problem when using C\\+\\+";
2931 #define    MATH_EXCEPTION_TEST_CT  2
2932 static tTestDesc aMath_ExceptionTests[] = {
2933   { TT_NEGREP,   zMath_ExceptionBypass0, (regex_t*)NULL },
2934   { TT_EGREP,    zMath_ExceptionSelect0, (regex_t*)NULL }, };
2937  *  Fix Command Arguments for Math_Exception
2938  */
2939 static const char* apzMath_ExceptionPatch[] = {
2940     "wrap",
2941     "#ifdef __cplusplus\n\
2942 #define exception __math_exception\n\
2943 #endif\n",
2944     "#ifdef __cplusplus\n\
2945 #undef exception\n\
2946 #endif\n",
2947     (char*)NULL };
2949 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2951  *  Description of Math_Huge_Val_From_Dbl_Max fix
2952  */
2953 tSCC zMath_Huge_Val_From_Dbl_MaxName[] =
2954      "math_huge_val_from_dbl_max";
2957  *  File name selection pattern
2958  */
2959 tSCC zMath_Huge_Val_From_Dbl_MaxList[] =
2960   "|math.h|";
2962  *  Machine/OS name selection pattern
2963  */
2964 #define apzMath_Huge_Val_From_Dbl_MaxMachs (const char**)NULL
2967  *  content selection pattern - do fix if pattern found
2968  */
2969 tSCC zMath_Huge_Val_From_Dbl_MaxSelect0[] =
2970        "define[ \t]+HUGE_VAL[ \t]+DBL_MAX";
2973  *  content bypass pattern - skip fix if pattern found
2974  */
2975 tSCC zMath_Huge_Val_From_Dbl_MaxBypass0[] =
2976        "define[ \t]+DBL_MAX";
2978 #define    MATH_HUGE_VAL_FROM_DBL_MAX_TEST_CT  2
2979 static tTestDesc aMath_Huge_Val_From_Dbl_MaxTests[] = {
2980   { TT_NEGREP,   zMath_Huge_Val_From_Dbl_MaxBypass0, (regex_t*)NULL },
2981   { TT_EGREP,    zMath_Huge_Val_From_Dbl_MaxSelect0, (regex_t*)NULL }, };
2984  *  Fix Command Arguments for Math_Huge_Val_From_Dbl_Max
2985  */
2986 static const char* apzMath_Huge_Val_From_Dbl_MaxPatch[] = { "sh", "-c",
2987     "\tdbl_max_def=`egrep 'define[ \t]+DBL_MAX[ \t]+.*' float.h | sed 's/.*DBL_MAX[ \t]*//' 2>/dev/null`\n\n\
2988 \tif ( test -n \"${dbl_max_def}\" ) > /dev/null 2>&1\n\
2989 \tthen sed -e '/define[ \t]*HUGE_VAL[ \t]*DBL_MAX/s@DBL_MAX@'\"$dbl_max_def@\"\n\
2990 \telse cat\n\
2991 \tfi",
2992     (char*)NULL };
2994 /* * * * * * * * * * * * * * * * * * * * * * * * * *
2996  *  Description of Math_Huge_Val_Ifndef fix
2997  */
2998 tSCC zMath_Huge_Val_IfndefName[] =
2999      "math_huge_val_ifndef";
3002  *  File name selection pattern
3003  */
3004 tSCC zMath_Huge_Val_IfndefList[] =
3005   "|math.h|math/math.h|";
3007  *  Machine/OS name selection pattern
3008  */
3009 #define apzMath_Huge_Val_IfndefMachs (const char**)NULL
3012  *  content selection pattern - do fix if pattern found
3013  */
3014 tSCC zMath_Huge_Val_IfndefSelect0[] =
3015        "define[ \t]+HUGE_VAL";
3017 #define    MATH_HUGE_VAL_IFNDEF_TEST_CT  1
3018 static tTestDesc aMath_Huge_Val_IfndefTests[] = {
3019   { TT_EGREP,    zMath_Huge_Val_IfndefSelect0, (regex_t*)NULL }, };
3022  *  Fix Command Arguments for Math_Huge_Val_Ifndef
3023  */
3024 static const char* apzMath_Huge_Val_IfndefPatch[] = {
3025     "format",
3026     "#ifndef HUGE_VAL\n\
3027 %0\n\
3028 #endif",
3029     "^[ \t]*#[ \t]*define[ \t]+HUGE_VAL[ \t].*",
3030     (char*)NULL };
3032 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3034  *  Description of Nested_Auth_Des fix
3035  */
3036 tSCC zNested_Auth_DesName[] =
3037      "nested_auth_des";
3040  *  File name selection pattern
3041  */
3042 tSCC zNested_Auth_DesList[] =
3043   "|rpc/rpc.h|";
3045  *  Machine/OS name selection pattern
3046  */
3047 #define apzNested_Auth_DesMachs (const char**)NULL
3050  *  content selection pattern - do fix if pattern found
3051  */
3052 tSCC zNested_Auth_DesSelect0[] =
3053        "(/\\*.*rpc/auth_des\\.h>.*)/\\*";
3055 #define    NESTED_AUTH_DES_TEST_CT  1
3056 static tTestDesc aNested_Auth_DesTests[] = {
3057   { TT_EGREP,    zNested_Auth_DesSelect0, (regex_t*)NULL }, };
3060  *  Fix Command Arguments for Nested_Auth_Des
3061  */
3062 static const char* apzNested_Auth_DesPatch[] = {
3063     "format",
3064     "%1*/ /*",
3065     (char*)NULL };
3067 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3069  *  Description of Nested_Motorola fix
3070  */
3071 tSCC zNested_MotorolaName[] =
3072      "nested_motorola";
3075  *  File name selection pattern
3076  */
3077 tSCC zNested_MotorolaList[] =
3078   "|sys/limits.h|limits.h|";
3080  *  Machine/OS name selection pattern
3081  */
3082 tSCC* apzNested_MotorolaMachs[] = {
3083         "m68k-motorola-sysv*",
3084         (const char*)NULL };
3087  *  content selection pattern - do fix if pattern found
3088  */
3089 tSCC zNested_MotorolaSelect0[] =
3090        "max # bytes atomic in write|error value returned by Math lib";
3092 #define    NESTED_MOTOROLA_TEST_CT  1
3093 static tTestDesc aNested_MotorolaTests[] = {
3094   { TT_EGREP,    zNested_MotorolaSelect0, (regex_t*)NULL }, };
3097  *  Fix Command Arguments for Nested_Motorola
3098  */
3099 static const char* apzNested_MotorolaPatch[] = { "sed",
3100     "-e", "s@^\\(#undef[ \t][ \t]*PIPE_BUF[ \t]*/\\* max # bytes atomic in write to a\\)$@\\1 */@",
3101     "-e", "s@\\(/\\*#define\tHUGE_VAL\t3.[0-9e+]* \\)\\(/\\*error value returned by Math lib\\*/\\)$@\\1*/ \\2@",
3102     (char*)NULL };
3104 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3106  *  Description of Nested_Sys_Limits fix
3107  */
3108 tSCC zNested_Sys_LimitsName[] =
3109      "nested_sys_limits";
3112  *  File name selection pattern
3113  */
3114 tSCC zNested_Sys_LimitsList[] =
3115   "|sys/limits.h|";
3117  *  Machine/OS name selection pattern
3118  */
3119 #define apzNested_Sys_LimitsMachs (const char**)NULL
3122  *  content selection pattern - do fix if pattern found
3123  */
3124 tSCC zNested_Sys_LimitsSelect0[] =
3125        "CHILD_MAX";
3127 #define    NESTED_SYS_LIMITS_TEST_CT  1
3128 static tTestDesc aNested_Sys_LimitsTests[] = {
3129   { TT_EGREP,    zNested_Sys_LimitsSelect0, (regex_t*)NULL }, };
3132  *  Fix Command Arguments for Nested_Sys_Limits
3133  */
3134 static const char* apzNested_Sys_LimitsPatch[] = { "sed",
3135     "-e", "/CHILD_MAX/s,/\\* Max, Max,",
3136     "-e", "/OPEN_MAX/s,/\\* Max, Max,",
3137     (char*)NULL };
3139 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3141  *  Description of Netbsd_Extra_Semicolon fix
3142  */
3143 tSCC zNetbsd_Extra_SemicolonName[] =
3144      "netbsd_extra_semicolon";
3147  *  File name selection pattern
3148  */
3149 tSCC zNetbsd_Extra_SemicolonList[] =
3150   "|sys/cdefs.h|";
3152  *  Machine/OS name selection pattern
3153  */
3154 tSCC* apzNetbsd_Extra_SemicolonMachs[] = {
3155         "*-*-netbsd*",
3156         (const char*)NULL };
3159  *  content selection pattern - do fix if pattern found
3160  */
3161 tSCC zNetbsd_Extra_SemicolonSelect0[] =
3162        "#define[ \t]*__END_DECLS[ \t]*};";
3164 #define    NETBSD_EXTRA_SEMICOLON_TEST_CT  1
3165 static tTestDesc aNetbsd_Extra_SemicolonTests[] = {
3166   { TT_EGREP,    zNetbsd_Extra_SemicolonSelect0, (regex_t*)NULL }, };
3169  *  Fix Command Arguments for Netbsd_Extra_Semicolon
3170  */
3171 static const char* apzNetbsd_Extra_SemicolonPatch[] = {
3172     "format",
3173     "#define __END_DECLS }",
3174     (char*)NULL };
3176 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3178  *  Description of Next_Math_Prefix fix
3179  */
3180 tSCC zNext_Math_PrefixName[] =
3181      "next_math_prefix";
3184  *  File name selection pattern
3185  */
3186 tSCC zNext_Math_PrefixList[] =
3187   "|ansi/math.h|";
3189  *  Machine/OS name selection pattern
3190  */
3191 #define apzNext_Math_PrefixMachs (const char**)NULL
3194  *  content selection pattern - do fix if pattern found
3195  */
3196 tSCC zNext_Math_PrefixSelect0[] =
3197        "^extern[ \t]+double[ \t]+__const__[ \t]";
3199 #define    NEXT_MATH_PREFIX_TEST_CT  1
3200 static tTestDesc aNext_Math_PrefixTests[] = {
3201   { TT_EGREP,    zNext_Math_PrefixSelect0, (regex_t*)NULL }, };
3204  *  Fix Command Arguments for Next_Math_Prefix
3205  */
3206 static const char* apzNext_Math_PrefixPatch[] = {
3207     "format",
3208     "extern double %1(",
3209     "^extern[ \t]+double[ \t]+__const__[ \t]+([a-z]+)\\(",
3210     (char*)NULL };
3212 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3214  *  Description of Next_Template fix
3215  */
3216 tSCC zNext_TemplateName[] =
3217      "next_template";
3220  *  File name selection pattern
3221  */
3222 tSCC zNext_TemplateList[] =
3223   "|bsd/libc.h|";
3225  *  Machine/OS name selection pattern
3226  */
3227 #define apzNext_TemplateMachs (const char**)NULL
3230  *  content selection pattern - do fix if pattern found
3231  */
3232 tSCC zNext_TemplateSelect0[] =
3233        "[ \t]template\\)";
3235 #define    NEXT_TEMPLATE_TEST_CT  1
3236 static tTestDesc aNext_TemplateTests[] = {
3237   { TT_EGREP,    zNext_TemplateSelect0, (regex_t*)NULL }, };
3240  *  Fix Command Arguments for Next_Template
3241  */
3242 static const char* apzNext_TemplatePatch[] = {
3243     "format",
3244     "(%1)",
3245     "\\(([^)]*)[ \t]template\\)",
3246     (char*)NULL };
3248 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3250  *  Description of Next_Volitile fix
3251  */
3252 tSCC zNext_VolitileName[] =
3253      "next_volitile";
3256  *  File name selection pattern
3257  */
3258 tSCC zNext_VolitileList[] =
3259   "|ansi/stdlib.h|";
3261  *  Machine/OS name selection pattern
3262  */
3263 #define apzNext_VolitileMachs (const char**)NULL
3266  *  content selection pattern - do fix if pattern found
3267  */
3268 tSCC zNext_VolitileSelect0[] =
3269        "^extern[ \t]+volatile[ \t]+void[ \t]";
3271 #define    NEXT_VOLITILE_TEST_CT  1
3272 static tTestDesc aNext_VolitileTests[] = {
3273   { TT_EGREP,    zNext_VolitileSelect0, (regex_t*)NULL }, };
3276  *  Fix Command Arguments for Next_Volitile
3277  */
3278 static const char* apzNext_VolitilePatch[] = {
3279     "format",
3280     "extern void %1(",
3281     "^extern[ \t]+volatile[ \t]+void[ \t]+(exit|abort)\\(",
3282     (char*)NULL };
3284 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3286  *  Description of Next_Wait_Union fix
3287  */
3288 tSCC zNext_Wait_UnionName[] =
3289      "next_wait_union";
3292  *  File name selection pattern
3293  */
3294 tSCC zNext_Wait_UnionList[] =
3295   "|sys/wait.h|";
3297  *  Machine/OS name selection pattern
3298  */
3299 #define apzNext_Wait_UnionMachs (const char**)NULL
3302  *  content selection pattern - do fix if pattern found
3303  */
3304 tSCC zNext_Wait_UnionSelect0[] =
3305        "wait\\(union wait";
3307 #define    NEXT_WAIT_UNION_TEST_CT  1
3308 static tTestDesc aNext_Wait_UnionTests[] = {
3309   { TT_EGREP,    zNext_Wait_UnionSelect0, (regex_t*)NULL }, };
3312  *  Fix Command Arguments for Next_Wait_Union
3313  */
3314 static const char* apzNext_Wait_UnionPatch[] = {
3315     "format",
3316     "wait(void",
3317     (char*)NULL };
3319 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3321  *  Description of Nodeent_Syntax fix
3322  */
3323 tSCC zNodeent_SyntaxName[] =
3324      "nodeent_syntax";
3327  *  File name selection pattern
3328  */
3329 tSCC zNodeent_SyntaxList[] =
3330   "|netdnet/dnetdb.h|";
3332  *  Machine/OS name selection pattern
3333  */
3334 #define apzNodeent_SyntaxMachs (const char**)NULL
3337  *  content selection pattern - do fix if pattern found
3338  */
3339 tSCC zNodeent_SyntaxSelect0[] =
3340        "char[ \t]*\\*na_addr[ \t]*$";
3342 #define    NODEENT_SYNTAX_TEST_CT  1
3343 static tTestDesc aNodeent_SyntaxTests[] = {
3344   { TT_EGREP,    zNodeent_SyntaxSelect0, (regex_t*)NULL }, };
3347  *  Fix Command Arguments for Nodeent_Syntax
3348  */
3349 static const char* apzNodeent_SyntaxPatch[] = {
3350     "format",
3351     "%0;",
3352     (char*)NULL };
3354 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3356  *  Description of Osf_Namespace_A fix
3357  */
3358 tSCC zOsf_Namespace_AName[] =
3359      "osf_namespace_a";
3362  *  File name selection pattern
3363  */
3364 tSCC zOsf_Namespace_AList[] =
3365   "|reg_types.h|sys/lc_core.h|";
3367  *  Machine/OS name selection pattern
3368  */
3369 #define apzOsf_Namespace_AMachs (const char**)NULL
3372  *  perform the 'test' shell command - do fix on success
3373  */
3374 tSCC zOsf_Namespace_ATest0[] =
3375        " -r reg_types.h";
3376 tSCC zOsf_Namespace_ATest1[] =
3377        " -r sys/lc_core.h";
3378 tSCC zOsf_Namespace_ATest2[] =
3379        " -n \"`grep '} regex_t;' reg_types.h`\"";
3380 tSCC zOsf_Namespace_ATest3[] =
3381        " -z \"`grep __regex_t regex.h`\"";
3383 #define    OSF_NAMESPACE_A_TEST_CT  4
3384 static tTestDesc aOsf_Namespace_ATests[] = {
3385   { TT_TEST,     zOsf_Namespace_ATest0,   0 /* unused */ },
3386   { TT_TEST,     zOsf_Namespace_ATest1,   0 /* unused */ },
3387   { TT_TEST,     zOsf_Namespace_ATest2,   0 /* unused */ },
3388   { TT_TEST,     zOsf_Namespace_ATest3,   0 /* unused */ }, };
3391  *  Fix Command Arguments for Osf_Namespace_A
3392  */
3393 static const char* apzOsf_Namespace_APatch[] = {
3394     "format",
3395     "__%0",
3396     "reg(ex|off|match)_t",
3397     (char*)NULL };
3399 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3401  *  Description of Osf_Namespace_C fix
3402  */
3403 tSCC zOsf_Namespace_CName[] =
3404      "osf_namespace_c";
3407  *  File name selection pattern
3408  */
3409 tSCC zOsf_Namespace_CList[] =
3410   "|regex.h|";
3412  *  Machine/OS name selection pattern
3413  */
3414 #define apzOsf_Namespace_CMachs (const char**)NULL
3417  *  content selection pattern - do fix if pattern found
3418  */
3419 tSCC zOsf_Namespace_CSelect0[] =
3420        "#include <reg_types.h>.*";
3423  *  perform the 'test' shell command - do fix on success
3424  */
3425 tSCC zOsf_Namespace_CTest0[] =
3426        " -r reg_types.h";
3427 tSCC zOsf_Namespace_CTest1[] =
3428        " -r sys/lc_core.h";
3429 tSCC zOsf_Namespace_CTest2[] =
3430        " -n \"`grep '} regex_t;' reg_types.h`\"";
3431 tSCC zOsf_Namespace_CTest3[] =
3432        " -z \"`grep __regex_t regex.h`\"";
3434 #define    OSF_NAMESPACE_C_TEST_CT  5
3435 static tTestDesc aOsf_Namespace_CTests[] = {
3436   { TT_TEST,     zOsf_Namespace_CTest0,   0 /* unused */ },
3437   { TT_TEST,     zOsf_Namespace_CTest1,   0 /* unused */ },
3438   { TT_TEST,     zOsf_Namespace_CTest2,   0 /* unused */ },
3439   { TT_TEST,     zOsf_Namespace_CTest3,   0 /* unused */ },
3440   { TT_EGREP,    zOsf_Namespace_CSelect0, (regex_t*)NULL }, };
3443  *  Fix Command Arguments for Osf_Namespace_C
3444  */
3445 static const char* apzOsf_Namespace_CPatch[] = {
3446     "format",
3447     "%0\n\
3448 typedef __regex_t\tregex_t;\n\
3449 typedef __regoff_t\tregoff_t;\n\
3450 typedef __regmatch_t\tregmatch_t;",
3451     (char*)NULL };
3453 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3455  *  Description of Pthread_Page_Size fix
3456  */
3457 tSCC zPthread_Page_SizeName[] =
3458      "pthread_page_size";
3461  *  File name selection pattern
3462  */
3463 tSCC zPthread_Page_SizeList[] =
3464   "|pthread.h|";
3466  *  Machine/OS name selection pattern
3467  */
3468 #define apzPthread_Page_SizeMachs (const char**)NULL
3471  *  content selection pattern - do fix if pattern found
3472  */
3473 tSCC zPthread_Page_SizeSelect0[] =
3474        "^int __page_size";
3476 #define    PTHREAD_PAGE_SIZE_TEST_CT  1
3477 static tTestDesc aPthread_Page_SizeTests[] = {
3478   { TT_EGREP,    zPthread_Page_SizeSelect0, (regex_t*)NULL }, };
3481  *  Fix Command Arguments for Pthread_Page_Size
3482  */
3483 static const char* apzPthread_Page_SizePatch[] = {
3484     "format",
3485     "extern %0",
3486     (char*)NULL };
3488 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3490  *  Description of Read_Ret_Type fix
3491  */
3492 tSCC zRead_Ret_TypeName[] =
3493      "read_ret_type";
3496  *  File name selection pattern
3497  */
3498 tSCC zRead_Ret_TypeList[] =
3499   "|stdio.h|";
3501  *  Machine/OS name selection pattern
3502  */
3503 #define apzRead_Ret_TypeMachs (const char**)NULL
3506  *  content selection pattern - do fix if pattern found
3507  */
3508 tSCC zRead_Ret_TypeSelect0[] =
3509        "extern int\t.*, fread\\(\\), fwrite\\(\\)";
3511 #define    READ_RET_TYPE_TEST_CT  1
3512 static tTestDesc aRead_Ret_TypeTests[] = {
3513   { TT_EGREP,    zRead_Ret_TypeSelect0, (regex_t*)NULL }, };
3516  *  Fix Command Arguments for Read_Ret_Type
3517  */
3518 static const char* apzRead_Ret_TypePatch[] = {
3519     "format",
3520     "extern unsigned int fread(), fwrite();\n\
3521 %1%2",
3522     "(extern int\t.*), fread\\(\\), fwrite\\(\\)(.*)",
3523     (char*)NULL };
3525 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3527  *  Description of Rs6000_Double fix
3528  */
3529 tSCC zRs6000_DoubleName[] =
3530      "rs6000_double";
3533  *  File name selection pattern
3534  */
3535 tSCC zRs6000_DoubleList[] =
3536   "|math.h|";
3538  *  Machine/OS name selection pattern
3539  */
3540 #define apzRs6000_DoubleMachs (const char**)NULL
3543  *  content selection pattern - do fix if pattern found
3544  */
3545 tSCC zRs6000_DoubleSelect0[] =
3546        "[^a-zA-Z_]class\\(";
3548 #define    RS6000_DOUBLE_TEST_CT  1
3549 static tTestDesc aRs6000_DoubleTests[] = {
3550   { TT_EGREP,    zRs6000_DoubleSelect0, (regex_t*)NULL }, };
3553  *  Fix Command Arguments for Rs6000_Double
3554  */
3555 static const char* apzRs6000_DoublePatch[] = {
3556     "format",
3557     "#ifndef __cplusplus\n\
3558 %0\n\
3559 #endif",
3560     "^.*[^a-zA-Z_]class\\(.*",
3561     (char*)NULL };
3563 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3565  *  Description of Rs6000_Fchmod fix
3566  */
3567 tSCC zRs6000_FchmodName[] =
3568      "rs6000_fchmod";
3571  *  File name selection pattern
3572  */
3573 tSCC zRs6000_FchmodList[] =
3574   "|sys/stat.h|";
3576  *  Machine/OS name selection pattern
3577  */
3578 #define apzRs6000_FchmodMachs (const char**)NULL
3581  *  content selection pattern - do fix if pattern found
3582  */
3583 tSCC zRs6000_FchmodSelect0[] =
3584        "fchmod\\(char \\*";
3586 #define    RS6000_FCHMOD_TEST_CT  1
3587 static tTestDesc aRs6000_FchmodTests[] = {
3588   { TT_EGREP,    zRs6000_FchmodSelect0, (regex_t*)NULL }, };
3591  *  Fix Command Arguments for Rs6000_Fchmod
3592  */
3593 static const char* apzRs6000_FchmodPatch[] = {
3594     "format",
3595     "fchmod(int",
3596     (char*)NULL };
3598 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3600  *  Description of Rs6000_Param fix
3601  */
3602 tSCC zRs6000_ParamName[] =
3603      "rs6000_param";
3606  *  File name selection pattern
3607  */
3608 tSCC zRs6000_ParamList[] =
3609   "|stdio.h|unistd.h|";
3611  *  Machine/OS name selection pattern
3612  */
3613 #define apzRs6000_ParamMachs (const char**)NULL
3616  *  content selection pattern - do fix if pattern found
3617  */
3618 tSCC zRs6000_ParamSelect0[] =
3619        "rename\\(const char \\*old, const char \\*new\\)";
3621 #define    RS6000_PARAM_TEST_CT  1
3622 static tTestDesc aRs6000_ParamTests[] = {
3623   { TT_EGREP,    zRs6000_ParamSelect0, (regex_t*)NULL }, };
3626  *  Fix Command Arguments for Rs6000_Param
3627  */
3628 static const char* apzRs6000_ParamPatch[] = {
3629     "format",
3630     "rename(const char *_old, const char *_new)",
3631     (char*)NULL };
3633 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3635  *  Description of Sco_Static_Func fix
3636  */
3637 tSCC zSco_Static_FuncName[] =
3638      "sco_static_func";
3641  *  File name selection pattern
3642  */
3643 tSCC zSco_Static_FuncList[] =
3644   "|sys/stat.h|";
3646  *  Machine/OS name selection pattern
3647  */
3648 tSCC* apzSco_Static_FuncMachs[] = {
3649         "i?86-*-sco3.2*",
3650         (const char*)NULL };
3653  *  content selection pattern - do fix if pattern found
3654  */
3655 tSCC zSco_Static_FuncSelect0[] =
3656        "^static int";
3658 #define    SCO_STATIC_FUNC_TEST_CT  1
3659 static tTestDesc aSco_Static_FuncTests[] = {
3660   { TT_EGREP,    zSco_Static_FuncSelect0, (regex_t*)NULL }, };
3663  *  Fix Command Arguments for Sco_Static_Func
3664  */
3665 static const char* apzSco_Static_FuncPatch[] = { "sed",
3666     "-e", "/^static int/i\\\n\
3667 #if __cplusplus\\\n\
3668 extern \"C\" {\\\n\
3669 #endif /* __cplusplus */",
3670     "-e", "/^}$/a\\\n\
3671 #if __cplusplus\\\n\
3672  }\\\n\
3673 #endif /* __cplusplus */",
3674     (char*)NULL };
3676 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3678  *  Description of Sco_Utime fix
3679  */
3680 tSCC zSco_UtimeName[] =
3681      "sco_utime";
3684  *  File name selection pattern
3685  */
3686 tSCC zSco_UtimeList[] =
3687   "|sys/times.h|";
3689  *  Machine/OS name selection pattern
3690  */
3691 tSCC* apzSco_UtimeMachs[] = {
3692         "i?86-*-sco3.2v4*",
3693         (const char*)NULL };
3696  *  content selection pattern - do fix if pattern found
3697  */
3698 tSCC zSco_UtimeSelect0[] =
3699        "\\(const char \\*, struct utimbuf \\*\\);";
3701 #define    SCO_UTIME_TEST_CT  1
3702 static tTestDesc aSco_UtimeTests[] = {
3703   { TT_EGREP,    zSco_UtimeSelect0, (regex_t*)NULL }, };
3706  *  Fix Command Arguments for Sco_Utime
3707  */
3708 static const char* apzSco_UtimePatch[] = {
3709     "format",
3710     "(const char *, const struct utimbuf *);",
3711     (char*)NULL };
3713 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3715  *  Description of Solaris_Mutex_Init fix
3716  */
3717 tSCC zSolaris_Mutex_InitName[] =
3718      "solaris_mutex_init";
3721  *  File name selection pattern
3722  */
3723 tSCC zSolaris_Mutex_InitList[] =
3724   "|pthread.h|";
3726  *  Machine/OS name selection pattern
3727  */
3728 #define apzSolaris_Mutex_InitMachs (const char**)NULL
3731  *  content selection pattern - do fix if pattern found
3732  */
3733 tSCC zSolaris_Mutex_InitSelect0[] =
3734        "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
3736 #define    SOLARIS_MUTEX_INIT_TEST_CT  1
3737 static tTestDesc aSolaris_Mutex_InitTests[] = {
3738   { TT_EGREP,    zSolaris_Mutex_InitSelect0, (regex_t*)NULL }, };
3741  *  Fix Command Arguments for Solaris_Mutex_Init
3742  */
3743 static const char* apzSolaris_Mutex_InitPatch[] = {
3744     "format",
3745     "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\
3746 %0\n\
3747 #else\n\
3748 %1, {0}}%3\n\
3749 #endif",
3750     "(^#define[ \t]+PTHREAD_(MUTEX|COND)_INITIALIZER[ \t]+{.*),[ \t]*0}(|[ \t].*)$",
3751     (char*)NULL };
3753 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3755  *  Description of Solaris_Stdio_Tag fix
3756  */
3757 tSCC zSolaris_Stdio_TagName[] =
3758      "solaris_stdio_tag";
3761  *  File name selection pattern
3762  */
3763 tSCC zSolaris_Stdio_TagList[] =
3764   "|stdio_tag.h|";
3766  *  Machine/OS name selection pattern
3767  */
3768 #define apzSolaris_Stdio_TagMachs (const char**)NULL
3771  *  content selection pattern - do fix if pattern found
3772  */
3773 tSCC zSolaris_Stdio_TagSelect0[] =
3774        "__cplusplus < 54321L";
3776 #define    SOLARIS_STDIO_TAG_TEST_CT  1
3777 static tTestDesc aSolaris_Stdio_TagTests[] = {
3778   { TT_EGREP,    zSolaris_Stdio_TagSelect0, (regex_t*)NULL }, };
3781  *  Fix Command Arguments for Solaris_Stdio_Tag
3782  */
3783 static const char* apzSolaris_Stdio_TagPatch[] = { "sed",
3784     "-e", "s/defined(__cplusplus) && (__cplusplus < 54321L)/0/",
3785     (char*)NULL };
3787 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3789  *  Description of Solaris_Widec fix
3790  */
3791 tSCC zSolaris_WidecName[] =
3792      "solaris_widec";
3795  *  File name selection pattern
3796  */
3797 tSCC zSolaris_WidecList[] =
3798   "|widec.h|";
3800  *  Machine/OS name selection pattern
3801  */
3802 tSCC* apzSolaris_WidecMachs[] = {
3803         "*-*-solaris2.[0-5]*",
3804         (const char*)NULL };
3807  *  content selection pattern - do fix if pattern found
3808  */
3809 tSCC zSolaris_WidecSelect0[] =
3810        "#include <euc.h>";
3813  *  content bypass pattern - skip fix if pattern found
3814  */
3815 tSCC zSolaris_WidecBypass0[] =
3816        "include.*wchar\\.h";
3818 #define    SOLARIS_WIDEC_TEST_CT  2
3819 static tTestDesc aSolaris_WidecTests[] = {
3820   { TT_NEGREP,   zSolaris_WidecBypass0, (regex_t*)NULL },
3821   { TT_EGREP,    zSolaris_WidecSelect0, (regex_t*)NULL }, };
3824  *  Fix Command Arguments for Solaris_Widec
3825  */
3826 static const char* apzSolaris_WidecPatch[] = {
3827     "format",
3828     "%0\n\
3829 #include <wchar.h>",
3830     (char*)NULL };
3832 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3834  *  Description of Statsswtch fix
3835  */
3836 tSCC zStatsswtchName[] =
3837      "statsswtch";
3840  *  File name selection pattern
3841  */
3842 tSCC zStatsswtchList[] =
3843   "|rpcsvc/rstat.h|";
3845  *  Machine/OS name selection pattern
3846  */
3847 #define apzStatsswtchMachs (const char**)NULL
3850  *  content selection pattern - do fix if pattern found
3851  */
3852 tSCC zStatsswtchSelect0[] =
3853        "boottime$";
3855 #define    STATSSWTCH_TEST_CT  1
3856 static tTestDesc aStatsswtchTests[] = {
3857   { TT_EGREP,    zStatsswtchSelect0, (regex_t*)NULL }, };
3860  *  Fix Command Arguments for Statsswtch
3861  */
3862 static const char* apzStatsswtchPatch[] = {
3863     "format",
3864     "boottime;",
3865     (char*)NULL };
3867 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3869  *  Description of Stdio_Stdarg_H fix
3870  */
3871 tSCC zStdio_Stdarg_HName[] =
3872      "stdio_stdarg_h";
3875  *  File name selection pattern
3876  */
3877 tSCC zStdio_Stdarg_HList[] =
3878   "|stdio.h|";
3880  *  Machine/OS name selection pattern
3881  */
3882 #define apzStdio_Stdarg_HMachs (const char**)NULL
3885  *  content bypass pattern - skip fix if pattern found
3886  */
3887 tSCC zStdio_Stdarg_HBypass0[] =
3888        "include.*(stdarg.h|machine/ansi.h)";
3890 #define    STDIO_STDARG_H_TEST_CT  1
3891 static tTestDesc aStdio_Stdarg_HTests[] = {
3892   { TT_NEGREP,   zStdio_Stdarg_HBypass0, (regex_t*)NULL }, };
3895  *  Fix Command Arguments for Stdio_Stdarg_H
3896  */
3897 static const char* apzStdio_Stdarg_HPatch[] = {
3898     "wrap",
3899     "#define __need___va_list\n\
3900 #include <stdarg.h>\n",
3901     (char*)NULL };
3903 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3905  *  Description of Stdio_Va_List fix
3906  */
3907 tSCC zStdio_Va_ListName[] =
3908      "stdio_va_list";
3911  *  File name selection pattern
3912  */
3913 tSCC zStdio_Va_ListList[] =
3914   "|stdio.h|";
3916  *  Machine/OS name selection pattern
3917  */
3918 #define apzStdio_Va_ListMachs (const char**)NULL
3921  *  content bypass pattern - skip fix if pattern found
3922  */
3923 tSCC zStdio_Va_ListBypass0[] =
3924        "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list";
3926 #define    STDIO_VA_LIST_TEST_CT  1
3927 static tTestDesc aStdio_Va_ListTests[] = {
3928   { TT_NEGREP,   zStdio_Va_ListBypass0, (regex_t*)NULL }, };
3931  *  Fix Command Arguments for Stdio_Va_List
3932  */
3933 static const char* apzStdio_Va_ListPatch[] = { "sed",
3934     "-e", "s@ va_list @ __gnuc_va_list @\n\
3935 s@ va_list)@ __gnuc_va_list)@\n\
3936 s@ _VA_LIST_));@ __gnuc_va_list));@\n\
3937 s@ __VA_LIST__));@ __gnuc_va_list));@\n\
3938 s@ va_list@ __not_va_list__@\n\
3939 s@\\*va_list@*__not_va_list__@\n\
3940 s@ __va_list)@ __gnuc_va_list)@\n\
3941 s@typedef[ \t]\\(.*\\)[ \t]va_list[ \t]*;@typedef \\1 __not_va_list__;@\n\
3942 s@typedef[ \t]*__va_list__@typedef __gnuc_va_list@\n\
3943 s@GNUC_VA_LIST@GNUC_Va_LIST@\n\
3944 s@_NEED___VA_LIST@_NEED___Va_LIST@\n\
3945 s@VA_LIST@DUMMY_VA_LIST@\n\
3946 s@_Va_LIST@_VA_LIST@",
3947     (char*)NULL };
3949 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3951  *  Description of Strict_Ansi_Not fix
3952  */
3953 tSCC zStrict_Ansi_NotName[] =
3954      "strict_ansi_not";
3957  *  File name selection pattern
3958  */
3959 #define zStrict_Ansi_NotList (char*)NULL
3961  *  Machine/OS name selection pattern
3962  */
3963 #define apzStrict_Ansi_NotMachs (const char**)NULL
3966  *  content selection pattern - do fix if pattern found
3967  */
3968 tSCC zStrict_Ansi_NotSelect0[] =
3969        "^([ \t]*#[ \t]*if.*)(!__STDC__|__STDC__[ \t]*==[ \t]*0|__STDC__[ \t]*!=[ \t]*1|__STDC__[ \t]*-[ \t]*0[ \t]*==[ \t]*0)";
3972  *  content bypass pattern - skip fix if pattern found
3973  */
3974 tSCC zStrict_Ansi_NotBypass0[] =
3975        "GNU and MIPS C compilers define __STDC__ differently";
3978  *  perform the C function call test
3979  */
3980 tSCC zStrict_Ansi_NotFTst0[] = "stdc_0_in_system_headers";
3982 #define    STRICT_ANSI_NOT_TEST_CT  3
3983 static tTestDesc aStrict_Ansi_NotTests[] = {
3984   { TT_FUNCTION, zStrict_Ansi_NotFTst0,   0 /* unused */ },
3985   { TT_NEGREP,   zStrict_Ansi_NotBypass0, (regex_t*)NULL },
3986   { TT_EGREP,    zStrict_Ansi_NotSelect0, (regex_t*)NULL }, };
3989  *  Fix Command Arguments for Strict_Ansi_Not
3990  */
3991 static const char* apzStrict_Ansi_NotPatch[] = {
3992     "format",
3993     "%1 !defined(__STRICT_ANSI__)",
3994     (char*)NULL };
3996 /* * * * * * * * * * * * * * * * * * * * * * * * * *
3998  *  Description of Strict_Ansi_Not_Ctd fix
3999  */
4000 tSCC zStrict_Ansi_Not_CtdName[] =
4001      "strict_ansi_not_ctd";
4004  *  File name selection pattern
4005  */
4006 tSCC zStrict_Ansi_Not_CtdList[] =
4007   "|math.h|limits.h|stdio.h|signal.h|stdlib.h|sys/signal.h|time.h|";
4009  *  Machine/OS name selection pattern
4010  */
4011 #define apzStrict_Ansi_Not_CtdMachs (const char**)NULL
4014  *  content selection pattern - do fix if pattern found
4015  */
4016 tSCC zStrict_Ansi_Not_CtdSelect0[] =
4017        "^([ \t]*(\\(|&&|\\|\\|)([ \t(]*!*[ \t]*defined\\([a-zA-Z_0-9]+\\)[ \t]*[|&][|&])*[ \t(]*)(__STDC__[ \t]*(|-[ \t]*0[ \t]*)==[ \t]*0)";
4020  *  perform the C function call test
4021  */
4022 tSCC zStrict_Ansi_Not_CtdFTst0[] = "stdc_0_in_system_headers";
4024 #define    STRICT_ANSI_NOT_CTD_TEST_CT  2
4025 static tTestDesc aStrict_Ansi_Not_CtdTests[] = {
4026   { TT_FUNCTION, zStrict_Ansi_Not_CtdFTst0,   0 /* unused */ },
4027   { TT_EGREP,    zStrict_Ansi_Not_CtdSelect0, (regex_t*)NULL }, };
4030  *  Fix Command Arguments for Strict_Ansi_Not_Ctd
4031  */
4032 static const char* apzStrict_Ansi_Not_CtdPatch[] = {
4033     "format",
4034     "%1 !defined(__STRICT_ANSI__)",
4035     (char*)NULL };
4037 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4039  *  Description of Strict_Ansi_Only fix
4040  */
4041 tSCC zStrict_Ansi_OnlyName[] =
4042      "strict_ansi_only";
4045  *  File name selection pattern
4046  */
4047 #define zStrict_Ansi_OnlyList (char*)NULL
4049  *  Machine/OS name selection pattern
4050  */
4051 #define apzStrict_Ansi_OnlyMachs (const char**)NULL
4054  *  content selection pattern - do fix if pattern found
4055  */
4056 tSCC zStrict_Ansi_OnlySelect0[] =
4057        "^([ \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)";
4060  *  perform the C function call test
4061  */
4062 tSCC zStrict_Ansi_OnlyFTst0[] = "stdc_0_in_system_headers";
4064 #define    STRICT_ANSI_ONLY_TEST_CT  2
4065 static tTestDesc aStrict_Ansi_OnlyTests[] = {
4066   { TT_FUNCTION, zStrict_Ansi_OnlyFTst0,   0 /* unused */ },
4067   { TT_EGREP,    zStrict_Ansi_OnlySelect0, (regex_t*)NULL }, };
4070  *  Fix Command Arguments for Strict_Ansi_Only
4071  */
4072 static const char* apzStrict_Ansi_OnlyPatch[] = {
4073     "format",
4074     "%1 defined(__STRICT_ANSI__)",
4075     (char*)NULL };
4077 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4079  *  Description of Struct_File fix
4080  */
4081 tSCC zStruct_FileName[] =
4082      "struct_file";
4085  *  File name selection pattern
4086  */
4087 tSCC zStruct_FileList[] =
4088   "|rpc/xdr.h|";
4090  *  Machine/OS name selection pattern
4091  */
4092 #define apzStruct_FileMachs (const char**)NULL
4095  *  content selection pattern - do fix if pattern found
4096  */
4097 tSCC zStruct_FileSelect0[] =
4098        "^.*xdrstdio_create.*struct __file_s";
4100 #define    STRUCT_FILE_TEST_CT  1
4101 static tTestDesc aStruct_FileTests[] = {
4102   { TT_EGREP,    zStruct_FileSelect0, (regex_t*)NULL }, };
4105  *  Fix Command Arguments for Struct_File
4106  */
4107 static const char* apzStruct_FilePatch[] = {
4108     "format",
4109     "struct __file_s;\n\
4110 %0",
4111     (char*)NULL };
4113 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4115  *  Description of Struct_Sockaddr fix
4116  */
4117 tSCC zStruct_SockaddrName[] =
4118      "struct_sockaddr";
4121  *  File name selection pattern
4122  */
4123 tSCC zStruct_SockaddrList[] =
4124   "|rpc/auth.h|";
4126  *  Machine/OS name selection pattern
4127  */
4128 #define apzStruct_SockaddrMachs (const char**)NULL
4131  *  content selection pattern - do fix if pattern found
4132  */
4133 tSCC zStruct_SockaddrSelect0[] =
4134        "^.*authdes_create.*struct sockaddr";
4137  *  content bypass pattern - skip fix if pattern found
4138  */
4139 tSCC zStruct_SockaddrBypass0[] =
4140        "<sys/socket.h>";
4142 #define    STRUCT_SOCKADDR_TEST_CT  2
4143 static tTestDesc aStruct_SockaddrTests[] = {
4144   { TT_NEGREP,   zStruct_SockaddrBypass0, (regex_t*)NULL },
4145   { TT_EGREP,    zStruct_SockaddrSelect0, (regex_t*)NULL }, };
4148  *  Fix Command Arguments for Struct_Sockaddr
4149  */
4150 static const char* apzStruct_SockaddrPatch[] = {
4151     "format",
4152     "struct sockaddr;\n\
4153 %0",
4154     (char*)NULL };
4156 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4158  *  Description of Sun_Auth_Proto fix
4159  */
4160 tSCC zSun_Auth_ProtoName[] =
4161      "sun_auth_proto";
4164  *  File name selection pattern
4165  */
4166 tSCC zSun_Auth_ProtoList[] =
4167   "|rpc/auth.h|rpc/clnt.h|rpc/svc.h|rpc/xdr.h|";
4169  *  Machine/OS name selection pattern
4170  */
4171 #define apzSun_Auth_ProtoMachs (const char**)NULL
4174  *  content selection pattern - do fix if pattern found
4175  */
4176 tSCC zSun_Auth_ProtoSelect0[] =
4177        "\\(\\*[a-z][a-z_]*\\)\\(\\)";
4179 #define    SUN_AUTH_PROTO_TEST_CT  1
4180 static tTestDesc aSun_Auth_ProtoTests[] = {
4181   { TT_EGREP,    zSun_Auth_ProtoSelect0, (regex_t*)NULL }, };
4184  *  Fix Command Arguments for Sun_Auth_Proto
4185  */
4186 static const char* apzSun_Auth_ProtoPatch[] = {
4187     "format",
4188     "#ifdef __cplusplus\n\
4189 %1(...);%2\n\
4190 #else\n\
4191 %1();%2\n\
4192 #endif",
4193     "(.*\\(\\*[a-z][a-z_]*\\))\\(\\);(.*)",
4194     (char*)NULL };
4196 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4198  *  Description of Sun_Bogus_Ifdef fix
4199  */
4200 tSCC zSun_Bogus_IfdefName[] =
4201      "sun_bogus_ifdef";
4204  *  File name selection pattern
4205  */
4206 tSCC zSun_Bogus_IfdefList[] =
4207   "|hsfs/hsfs_spec.h|hsfs/iso_spec.h|";
4209  *  Machine/OS name selection pattern
4210  */
4211 #define apzSun_Bogus_IfdefMachs (const char**)NULL
4214  *  content selection pattern - do fix if pattern found
4215  */
4216 tSCC zSun_Bogus_IfdefSelect0[] =
4217        "#ifdef(.*\\|\\|.*)";
4219 #define    SUN_BOGUS_IFDEF_TEST_CT  1
4220 static tTestDesc aSun_Bogus_IfdefTests[] = {
4221   { TT_EGREP,    zSun_Bogus_IfdefSelect0, (regex_t*)NULL }, };
4224  *  Fix Command Arguments for Sun_Bogus_Ifdef
4225  */
4226 static const char* apzSun_Bogus_IfdefPatch[] = {
4227     "format",
4228     "#if%1",
4229     (char*)NULL };
4231 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4233  *  Description of Sun_Catmacro fix
4234  */
4235 tSCC zSun_CatmacroName[] =
4236      "sun_catmacro";
4239  *  File name selection pattern
4240  */
4241 tSCC zSun_CatmacroList[] =
4242   "|pixrect/memvar.h|";
4244  *  Machine/OS name selection pattern
4245  */
4246 #define apzSun_CatmacroMachs (const char**)NULL
4249  *  content selection pattern - do fix if pattern found
4250  */
4251 tSCC zSun_CatmacroSelect0[] =
4252        "^#define[ \t]+CAT\\(a,b\\).*";
4254 #define    SUN_CATMACRO_TEST_CT  1
4255 static tTestDesc aSun_CatmacroTests[] = {
4256   { TT_EGREP,    zSun_CatmacroSelect0, (regex_t*)NULL }, };
4259  *  Fix Command Arguments for Sun_Catmacro
4260  */
4261 static const char* apzSun_CatmacroPatch[] = {
4262     "format",
4263     "#ifdef __STDC__\n\
4264 #  define CAT(a,b) a##b\n\
4265 #else\n\
4266 %0\n\
4267 #endif",
4268     (char*)NULL };
4270 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4272  *  Description of Sun_Malloc fix
4273  */
4274 tSCC zSun_MallocName[] =
4275      "sun_malloc";
4278  *  File name selection pattern
4279  */
4280 tSCC zSun_MallocList[] =
4281   "|malloc.h|";
4283  *  Machine/OS name selection pattern
4284  */
4285 #define apzSun_MallocMachs (const char**)NULL
4286 #define SUN_MALLOC_TEST_CT  0
4287 #define aSun_MallocTests   (tTestDesc*)NULL
4290  *  Fix Command Arguments for Sun_Malloc
4291  */
4292 static const char* apzSun_MallocPatch[] = { "sed",
4293     "-e", "s/typedef[ \t]char \\*\tmalloc_t/typedef void \\*\tmalloc_t/g",
4294     "-e", "s/int[ \t][ \t]*free/void\tfree/g",
4295     "-e", "s/char\\([ \t]*\\*[ \t]*malloc\\)/void\\1/g",
4296     "-e", "s/char\\([ \t]*\\*[ \t]*realloc\\)/void\\1/g",
4297     "-e", "s/char\\([ \t]*\\*[ \t]*calloc\\)/void\\1/g",
4298     (char*)NULL };
4300 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4302  *  Description of Sun_Rusers_Semi fix
4303  */
4304 tSCC zSun_Rusers_SemiName[] =
4305      "sun_rusers_semi";
4308  *  File name selection pattern
4309  */
4310 tSCC zSun_Rusers_SemiList[] =
4311   "|rpcsvc/rusers.h|";
4313  *  Machine/OS name selection pattern
4314  */
4315 #define apzSun_Rusers_SemiMachs (const char**)NULL
4318  *  content selection pattern - do fix if pattern found
4319  */
4320 tSCC zSun_Rusers_SemiSelect0[] =
4321        "_cnt$";
4323 #define    SUN_RUSERS_SEMI_TEST_CT  1
4324 static tTestDesc aSun_Rusers_SemiTests[] = {
4325   { TT_EGREP,    zSun_Rusers_SemiSelect0, (regex_t*)NULL }, };
4328  *  Fix Command Arguments for Sun_Rusers_Semi
4329  */
4330 static const char* apzSun_Rusers_SemiPatch[] = { "sed",
4331     "-e", "/^struct/,/^};/s/_cnt$/_cnt;/",
4332     (char*)NULL };
4334 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4336  *  Description of Sun_Signal fix
4337  */
4338 tSCC zSun_SignalName[] =
4339      "sun_signal";
4342  *  File name selection pattern
4343  */
4344 tSCC zSun_SignalList[] =
4345   "|sys/signal.h|signal.h|";
4347  *  Machine/OS name selection pattern
4348  */
4349 #define apzSun_SignalMachs (const char**)NULL
4352  *  content selection pattern - do fix if pattern found
4353  */
4354 tSCC zSun_SignalSelect0[] =
4355        "^void\t\\(\\*signal\\(\\)\\)\\(\\);.*";
4357 #define    SUN_SIGNAL_TEST_CT  1
4358 static tTestDesc aSun_SignalTests[] = {
4359   { TT_EGREP,    zSun_SignalSelect0, (regex_t*)NULL }, };
4362  *  Fix Command Arguments for Sun_Signal
4363  */
4364 static const char* apzSun_SignalPatch[] = {
4365     "format",
4366     "#ifdef __cplusplus\n\
4367 void\t(*signal(...))(...);\n\
4368 #else\n\
4369 %0\n\
4370 #endif",
4371     (char*)NULL };
4373 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4375  *  Description of Sunos_Matherr_Decl fix
4376  */
4377 tSCC zSunos_Matherr_DeclName[] =
4378      "sunos_matherr_decl";
4381  *  File name selection pattern
4382  */
4383 tSCC zSunos_Matherr_DeclList[] =
4384   "|math.h|";
4386  *  Machine/OS name selection pattern
4387  */
4388 #define apzSunos_Matherr_DeclMachs (const char**)NULL
4391  *  content selection pattern - do fix if pattern found
4392  */
4393 tSCC zSunos_Matherr_DeclSelect0[] =
4394        "matherr";
4397  *  content bypass pattern - skip fix if pattern found
4398  */
4399 tSCC zSunos_Matherr_DeclBypass0[] =
4400        "matherr.*(struct exception|__MATH_EXCEPTION)";
4402 #define    SUNOS_MATHERR_DECL_TEST_CT  2
4403 static tTestDesc aSunos_Matherr_DeclTests[] = {
4404   { TT_NEGREP,   zSunos_Matherr_DeclBypass0, (regex_t*)NULL },
4405   { TT_EGREP,    zSunos_Matherr_DeclSelect0, (regex_t*)NULL }, };
4408  *  Fix Command Arguments for Sunos_Matherr_Decl
4409  */
4410 static const char* apzSunos_Matherr_DeclPatch[] = {
4411     "wrap",
4412     "struct exception;\n",
4413     (char*)NULL };
4415 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4417  *  Description of Sunos_Strlen fix
4418  */
4419 tSCC zSunos_StrlenName[] =
4420      "sunos_strlen";
4423  *  File name selection pattern
4424  */
4425 tSCC zSunos_StrlenList[] =
4426   "|strings.h|";
4428  *  Machine/OS name selection pattern
4429  */
4430 #define apzSunos_StrlenMachs (const char**)NULL
4433  *  content selection pattern - do fix if pattern found
4434  */
4435 tSCC zSunos_StrlenSelect0[] =
4436        "int[ \t]*strlen\\(\\);(.*)";
4438 #define    SUNOS_STRLEN_TEST_CT  1
4439 static tTestDesc aSunos_StrlenTests[] = {
4440   { TT_EGREP,    zSunos_StrlenSelect0, (regex_t*)NULL }, };
4443  *  Fix Command Arguments for Sunos_Strlen
4444  */
4445 static const char* apzSunos_StrlenPatch[] = {
4446     "format",
4447     "__SIZE_TYPE__ strlen();%1",
4448     (char*)NULL };
4450 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4452  *  Description of Svr4__P fix
4453  */
4454 tSCC zSvr4__PName[] =
4455      "svr4__p";
4458  *  File name selection pattern
4459  */
4460 tSCC zSvr4__PList[] =
4461   "|math.h|floatingpoint.h|";
4463  *  Machine/OS name selection pattern
4464  */
4465 #define apzSvr4__PMachs (const char**)NULL
4468  *  content selection pattern - do fix if pattern found
4469  */
4470 tSCC zSvr4__PSelect0[] =
4471        "^#define[ \t]+__P.*";
4473 #define    SVR4__P_TEST_CT  1
4474 static tTestDesc aSvr4__PTests[] = {
4475   { TT_EGREP,    zSvr4__PSelect0, (regex_t*)NULL }, };
4478  *  Fix Command Arguments for Svr4__P
4479  */
4480 static const char* apzSvr4__PPatch[] = {
4481     "format",
4482     "#ifndef __P\n\
4483 %0\n\
4484 #endif",
4485     (char*)NULL };
4487 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4489  *  Description of Svr4_Getcwd fix
4490  */
4491 tSCC zSvr4_GetcwdName[] =
4492      "svr4_getcwd";
4495  *  File name selection pattern
4496  */
4497 tSCC zSvr4_GetcwdList[] =
4498   "|stdlib.h|unistd.h|prototypes.h|";
4500  *  Machine/OS name selection pattern
4501  */
4502 #define apzSvr4_GetcwdMachs (const char**)NULL
4505  *  content selection pattern - do fix if pattern found
4506  */
4507 tSCC zSvr4_GetcwdSelect0[] =
4508        "getcwd\\(char \\*, int\\)";
4510 #define    SVR4_GETCWD_TEST_CT  1
4511 static tTestDesc aSvr4_GetcwdTests[] = {
4512   { TT_EGREP,    zSvr4_GetcwdSelect0, (regex_t*)NULL }, };
4515  *  Fix Command Arguments for Svr4_Getcwd
4516  */
4517 static const char* apzSvr4_GetcwdPatch[] = {
4518     "format",
4519     "getcwd(char *, size_t)",
4520     (char*)NULL };
4522 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4524  *  Description of Svr4_Profil fix
4525  */
4526 tSCC zSvr4_ProfilName[] =
4527      "svr4_profil";
4530  *  File name selection pattern
4531  */
4532 tSCC zSvr4_ProfilList[] =
4533   "|stdlib.h|unistd.h|";
4535  *  Machine/OS name selection pattern
4536  */
4537 #define apzSvr4_ProfilMachs (const char**)NULL
4540  *  content selection pattern - do fix if pattern found
4541  */
4542 tSCC zSvr4_ProfilSelect0[] =
4543        "profil\\(unsigned short \\*, unsigned int, unsigned int, unsigned int\\)";
4545 #define    SVR4_PROFIL_TEST_CT  1
4546 static tTestDesc aSvr4_ProfilTests[] = {
4547   { TT_EGREP,    zSvr4_ProfilSelect0, (regex_t*)NULL }, };
4550  *  Fix Command Arguments for Svr4_Profil
4551  */
4552 static const char* apzSvr4_ProfilPatch[] = {
4553     "format",
4554     "profil(unsigned short *, size_t, int, unsigned int)",
4555     (char*)NULL };
4557 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4559  *  Description of Sysv68_String fix
4560  */
4561 tSCC zSysv68_StringName[] =
4562      "sysv68_string";
4565  *  File name selection pattern
4566  */
4567 tSCC zSysv68_StringList[] =
4568   "|testing.h|string.h|";
4570  *  Machine/OS name selection pattern
4571  */
4572 #define apzSysv68_StringMachs (const char**)NULL
4573 #define SYSV68_STRING_TEST_CT  0
4574 #define aSysv68_StringTests   (tTestDesc*)NULL
4577  *  Fix Command Arguments for Sysv68_String
4578  */
4579 static const char* apzSysv68_StringPatch[] = { "sed",
4580     "-e", "s/extern[ \t]*int[ \t]*strlen();/extern unsigned int strlen();/",
4581     "-e", "s/extern[ \t]*int[ \t]*ffs[ \t]*(long);/extern int ffs(int);/",
4582     "-e", "s/strdup(char \\*s1);/strdup(const char *s1);/",
4583     "-e", "/^extern char$/N",
4584     "-e", "s/^extern char\\(\\n\t\\*memccpy(),\\)$/extern void\\1/",
4585     "-e", "/^extern int$/N",
4586     "-e", "s/^extern int\\(\\n\tstrlen(),\\)/extern size_t\\1/",
4587     "-e", "/^\tstrncmp(),$/N",
4588     "-e", "s/^\\(\tstrncmp()\\),\\n\\(\tstrlen(),\\)$/\\1;\\\n\
4589 extern unsigned int\\\n\
4590 \\2/",
4591     (char*)NULL };
4593 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4595  *  Description of Sysz_Stdlib_For_Sun fix
4596  */
4597 tSCC zSysz_Stdlib_For_SunName[] =
4598      "sysz_stdlib_for_sun";
4601  *  File name selection pattern
4602  */
4603 tSCC zSysz_Stdlib_For_SunList[] =
4604   "|stdlib.h|";
4606  *  Machine/OS name selection pattern
4607  */
4608 #define apzSysz_Stdlib_For_SunMachs (const char**)NULL
4611  *  content selection pattern - do fix if pattern found
4612  */
4613 tSCC zSysz_Stdlib_For_SunSelect0[] =
4614        "char[ \t]*\\*[ \t]*(calloc|malloc|realloc|bsearch)[ \t]*\\(";
4616 #define    SYSZ_STDLIB_FOR_SUN_TEST_CT  1
4617 static tTestDesc aSysz_Stdlib_For_SunTests[] = {
4618   { TT_EGREP,    zSysz_Stdlib_For_SunSelect0, (regex_t*)NULL }, };
4621  *  Fix Command Arguments for Sysz_Stdlib_For_Sun
4622  */
4623 static const char* apzSysz_Stdlib_For_SunPatch[] = {
4624     "format",
4625     "void *\t%1(",
4626     (char*)NULL };
4628 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4630  *  Description of Thread_Keyword fix
4631  */
4632 tSCC zThread_KeywordName[] =
4633      "thread_keyword";
4636  *  File name selection pattern
4637  */
4638 tSCC zThread_KeywordList[] =
4639   "|pthread.h|bits/sigthread.h|";
4641  *  Machine/OS name selection pattern
4642  */
4643 #define apzThread_KeywordMachs (const char**)NULL
4646  *  content selection pattern - do fix if pattern found
4647  */
4648 tSCC zThread_KeywordSelect0[] =
4649        "([* ])__thread([,)])";
4651 #define    THREAD_KEYWORD_TEST_CT  1
4652 static tTestDesc aThread_KeywordTests[] = {
4653   { TT_EGREP,    zThread_KeywordSelect0, (regex_t*)NULL }, };
4656  *  Fix Command Arguments for Thread_Keyword
4657  */
4658 static const char* apzThread_KeywordPatch[] = {
4659     "format",
4660     "%1__thr%2",
4661     (char*)NULL };
4663 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4665  *  Description of Tinfo_Cplusplus fix
4666  */
4667 tSCC zTinfo_CplusplusName[] =
4668      "tinfo_cplusplus";
4671  *  File name selection pattern
4672  */
4673 tSCC zTinfo_CplusplusList[] =
4674   "|tinfo.h|";
4676  *  Machine/OS name selection pattern
4677  */
4678 #define apzTinfo_CplusplusMachs (const char**)NULL
4681  *  content selection pattern - do fix if pattern found
4682  */
4683 tSCC zTinfo_CplusplusSelect0[] =
4684        "[ \t]_cplusplus";
4686 #define    TINFO_CPLUSPLUS_TEST_CT  1
4687 static tTestDesc aTinfo_CplusplusTests[] = {
4688   { TT_EGREP,    zTinfo_CplusplusSelect0, (regex_t*)NULL }, };
4691  *  Fix Command Arguments for Tinfo_Cplusplus
4692  */
4693 static const char* apzTinfo_CplusplusPatch[] = {
4694     "format",
4695     " __cplusplus",
4696     (char*)NULL };
4698 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4700  *  Description of Ultrix_Atexit_Param fix
4701  */
4702 tSCC zUltrix_Atexit_ParamName[] =
4703      "ultrix_atexit_param";
4706  *  File name selection pattern
4707  */
4708 tSCC zUltrix_Atexit_ParamList[] =
4709   "|stdlib.h|";
4711  *  Machine/OS name selection pattern
4712  */
4713 #define apzUltrix_Atexit_ParamMachs (const char**)NULL
4716  *  content selection pattern - do fix if pattern found
4717  */
4718 tSCC zUltrix_Atexit_ParamSelect0[] =
4719        "atexit\\(.*\\(\\)";
4721 #define    ULTRIX_ATEXIT_PARAM_TEST_CT  1
4722 static tTestDesc aUltrix_Atexit_ParamTests[] = {
4723   { TT_EGREP,    zUltrix_Atexit_ParamSelect0, (regex_t*)NULL }, };
4726  *  Fix Command Arguments for Ultrix_Atexit_Param
4727  */
4728 static const char* apzUltrix_Atexit_ParamPatch[] = {
4729     "format",
4730     "atexit( void (*__func)( void )",
4731     (char*)NULL };
4733 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4735  *  Description of Ultrix_Atof_Param fix
4736  */
4737 tSCC zUltrix_Atof_ParamName[] =
4738      "ultrix_atof_param";
4741  *  File name selection pattern
4742  */
4743 tSCC zUltrix_Atof_ParamList[] =
4744   "|math.h|";
4746  *  Machine/OS name selection pattern
4747  */
4748 #define apzUltrix_Atof_ParamMachs (const char**)NULL
4751  *  content selection pattern - do fix if pattern found
4752  */
4753 tSCC zUltrix_Atof_ParamSelect0[] =
4754        "atof\\([ \t]*char";
4756 #define    ULTRIX_ATOF_PARAM_TEST_CT  1
4757 static tTestDesc aUltrix_Atof_ParamTests[] = {
4758   { TT_EGREP,    zUltrix_Atof_ParamSelect0, (regex_t*)NULL }, };
4761  *  Fix Command Arguments for Ultrix_Atof_Param
4762  */
4763 static const char* apzUltrix_Atof_ParamPatch[] = {
4764     "format",
4765     "atof(const char",
4766     (char*)NULL };
4768 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4770  *  Description of Ultrix_Const fix
4771  */
4772 tSCC zUltrix_ConstName[] =
4773      "ultrix_const";
4776  *  File name selection pattern
4777  */
4778 tSCC zUltrix_ConstList[] =
4779   "|stdio.h|";
4781  *  Machine/OS name selection pattern
4782  */
4783 #define apzUltrix_ConstMachs (const char**)NULL
4786  *  content selection pattern - do fix if pattern found
4787  */
4788 tSCC zUltrix_ConstSelect0[] =
4789        "perror\\( char \\*";
4791 #define    ULTRIX_CONST_TEST_CT  1
4792 static tTestDesc aUltrix_ConstTests[] = {
4793   { TT_EGREP,    zUltrix_ConstSelect0, (regex_t*)NULL }, };
4796  *  Fix Command Arguments for Ultrix_Const
4797  */
4798 static const char* apzUltrix_ConstPatch[] = {
4799     "format",
4800     "%1 const %3 *__",
4801     "([ \t*](perror|fputs|fwrite|scanf|fscanf)\\(.*)[ \t]+(char|void) \\*__",
4802     (char*)NULL };
4804 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4806  *  Description of Ultrix_Const2 fix
4807  */
4808 tSCC zUltrix_Const2Name[] =
4809      "ultrix_const2";
4812  *  File name selection pattern
4813  */
4814 tSCC zUltrix_Const2List[] =
4815   "|stdio.h|";
4817  *  Machine/OS name selection pattern
4818  */
4819 #define apzUltrix_Const2Machs (const char**)NULL
4822  *  content selection pattern - do fix if pattern found
4823  */
4824 tSCC zUltrix_Const2Select0[] =
4825        "\\*fopen\\( char \\*";
4827 #define    ULTRIX_CONST2_TEST_CT  1
4828 static tTestDesc aUltrix_Const2Tests[] = {
4829   { TT_EGREP,    zUltrix_Const2Select0, (regex_t*)NULL }, };
4832  *  Fix Command Arguments for Ultrix_Const2
4833  */
4834 static const char* apzUltrix_Const2Patch[] = {
4835     "format",
4836     "%1( const char *%3, const char *",
4837     "([ \t*](fopen|sscanf|popen|tempnam))\\([ \t]*char[ \t]*\\*([^,]*),[ \t]*char[ \t]*\\*[ \t]*",
4838     (char*)NULL };
4840 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4842  *  Description of Ultrix_Fix_Fixproto fix
4843  */
4844 tSCC zUltrix_Fix_FixprotoName[] =
4845      "ultrix_fix_fixproto";
4848  *  File name selection pattern
4849  */
4850 tSCC zUltrix_Fix_FixprotoList[] =
4851   "|sys/utsname.h|";
4853  *  Machine/OS name selection pattern
4854  */
4855 #define apzUltrix_Fix_FixprotoMachs (const char**)NULL
4858  *  content selection pattern - do fix if pattern found
4859  */
4860 tSCC zUltrix_Fix_FixprotoSelect0[] =
4861        "ULTRIX";
4863 #define    ULTRIX_FIX_FIXPROTO_TEST_CT  1
4864 static tTestDesc aUltrix_Fix_FixprotoTests[] = {
4865   { TT_EGREP,    zUltrix_Fix_FixprotoSelect0, (regex_t*)NULL }, };
4868  *  Fix Command Arguments for Ultrix_Fix_Fixproto
4869  */
4870 static const char* apzUltrix_Fix_FixprotoPatch[] = {
4871     "format",
4872     "struct utsname;\n\
4873 %0",
4874     "^[ \t]*extern[ \t]*int[ \t]*uname\\(\\);",
4875     (char*)NULL };
4877 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4879  *  Description of Ultrix_Ifdef fix
4880  */
4881 tSCC zUltrix_IfdefName[] =
4882      "ultrix_ifdef";
4885  *  File name selection pattern
4886  */
4887 tSCC zUltrix_IfdefList[] =
4888   "|sys/file.h|";
4890  *  Machine/OS name selection pattern
4891  */
4892 #define apzUltrix_IfdefMachs (const char**)NULL
4895  *  content selection pattern - do fix if pattern found
4896  */
4897 tSCC zUltrix_IfdefSelect0[] =
4898        "^#ifdef KERNEL[ \t]+&&";
4900 #define    ULTRIX_IFDEF_TEST_CT  1
4901 static tTestDesc aUltrix_IfdefTests[] = {
4902   { TT_EGREP,    zUltrix_IfdefSelect0, (regex_t*)NULL }, };
4905  *  Fix Command Arguments for Ultrix_Ifdef
4906  */
4907 static const char* apzUltrix_IfdefPatch[] = {
4908     "format",
4909     "#if defined(KERNEL) &&",
4910     (char*)NULL };
4912 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4914  *  Description of Ultrix_Math_Ifdef fix
4915  */
4916 tSCC zUltrix_Math_IfdefName[] =
4917      "ultrix_math_ifdef";
4920  *  File name selection pattern
4921  */
4922 tSCC zUltrix_Math_IfdefList[] =
4923   "|sys/limits.h|float.h|math.h|";
4925  *  Machine/OS name selection pattern
4926  */
4927 #define apzUltrix_Math_IfdefMachs (const char**)NULL
4930  *  content selection pattern - do fix if pattern found
4931  */
4932 tSCC zUltrix_Math_IfdefSelect0[] =
4933        "^(#if.*)\\|\\|[ \t]+CC\\$[a-z]+";
4935 #define    ULTRIX_MATH_IFDEF_TEST_CT  1
4936 static tTestDesc aUltrix_Math_IfdefTests[] = {
4937   { TT_EGREP,    zUltrix_Math_IfdefSelect0, (regex_t*)NULL }, };
4940  *  Fix Command Arguments for Ultrix_Math_Ifdef
4941  */
4942 static const char* apzUltrix_Math_IfdefPatch[] = {
4943     "format",
4944     "%1",
4945     (char*)NULL };
4947 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4949  *  Description of Ultrix_Nested_Ioctl fix
4950  */
4951 tSCC zUltrix_Nested_IoctlName[] =
4952      "ultrix_nested_ioctl";
4955  *  File name selection pattern
4956  */
4957 tSCC zUltrix_Nested_IoctlList[] =
4958   "|sys/ioctl.h|";
4960  *  Machine/OS name selection pattern
4961  */
4962 #define apzUltrix_Nested_IoctlMachs (const char**)NULL
4965  *  content selection pattern - do fix if pattern found
4966  */
4967 tSCC zUltrix_Nested_IoctlSelect0[] =
4968        "^/\\* #define SIOCSCREEN";
4970 #define    ULTRIX_NESTED_IOCTL_TEST_CT  1
4971 static tTestDesc aUltrix_Nested_IoctlTests[] = {
4972   { TT_EGREP,    zUltrix_Nested_IoctlSelect0, (regex_t*)NULL }, };
4975  *  Fix Command Arguments for Ultrix_Nested_Ioctl
4976  */
4977 static const char* apzUltrix_Nested_IoctlPatch[] = { "sed",
4978     "-e", "/^\\/\\* #define SIOCSCREEN/s@/\\* screend@*//* screend@",
4979     (char*)NULL };
4981 /* * * * * * * * * * * * * * * * * * * * * * * * * *
4983  *  Description of Ultrix_Nested_Svc fix
4984  */
4985 tSCC zUltrix_Nested_SvcName[] =
4986      "ultrix_nested_svc";
4989  *  File name selection pattern
4990  */
4991 tSCC zUltrix_Nested_SvcList[] =
4992   "|rpc/svc.h|";
4994  *  Machine/OS name selection pattern
4995  */
4996 #define apzUltrix_Nested_SvcMachs (const char**)NULL
4999  *  content selection pattern - do fix if pattern found
5000  */
5001 tSCC zUltrix_Nested_SvcSelect0[] =
5002        "^ \\*[ \t]*int protocol;  */\\*";
5004 #define    ULTRIX_NESTED_SVC_TEST_CT  1
5005 static tTestDesc aUltrix_Nested_SvcTests[] = {
5006   { TT_EGREP,    zUltrix_Nested_SvcSelect0, (regex_t*)NULL }, };
5009  *  Fix Command Arguments for Ultrix_Nested_Svc
5010  */
5011 static const char* apzUltrix_Nested_SvcPatch[] = { "sed",
5012     "-e", "s@^\\( \\*\tint protocol;  \\)/\\*@\\1*/ /*@",
5013     (char*)NULL };
5015 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5017  *  Description of Ultrix_Stat fix
5018  */
5019 tSCC zUltrix_StatName[] =
5020      "ultrix_stat";
5023  *  File name selection pattern
5024  */
5025 tSCC zUltrix_StatList[] =
5026   "|sys/stat.h|";
5028  *  Machine/OS name selection pattern
5029  */
5030 #define apzUltrix_StatMachs (const char**)NULL
5033  *  content selection pattern - do fix if pattern found
5034  */
5035 tSCC zUltrix_StatSelect0[] =
5036        "@\\(#\\)stat\\.h.*6\\.1.*\\(ULTRIX\\)";
5038 #define    ULTRIX_STAT_TEST_CT  1
5039 static tTestDesc aUltrix_StatTests[] = {
5040   { TT_EGREP,    zUltrix_StatSelect0, (regex_t*)NULL }, };
5043  *  Fix Command Arguments for Ultrix_Stat
5044  */
5045 static const char* apzUltrix_StatPatch[] = { "sed",
5046     "-e", "/^#define[ \t]S_IFPORT[ \t]*S_IFIFO$/a\\\n\
5047 \\\n\
5048 /* macro to test for symbolic link */\\\n\
5049 #define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)\\\n\n",
5050     "-e", "/^[ \t]*fstat(),$/a\\\n\
5051 \tlstat(),\n",
5052     (char*)NULL };
5054 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5056  *  Description of Ultrix_Static fix
5057  */
5058 tSCC zUltrix_StaticName[] =
5059      "ultrix_static";
5062  *  File name selection pattern
5063  */
5064 tSCC zUltrix_StaticList[] =
5065   "|machine/cpu.h|";
5067  *  Machine/OS name selection pattern
5068  */
5069 #define apzUltrix_StaticMachs (const char**)NULL
5072  *  content selection pattern - do fix if pattern found
5073  */
5074 tSCC zUltrix_StaticSelect0[] =
5075        "#include \"r[34]_cpu";
5077 #define    ULTRIX_STATIC_TEST_CT  1
5078 static tTestDesc aUltrix_StaticTests[] = {
5079   { TT_EGREP,    zUltrix_StaticSelect0, (regex_t*)NULL }, };
5082  *  Fix Command Arguments for Ultrix_Static
5083  */
5084 static const char* apzUltrix_StaticPatch[] = { "sed",
5085     "-e", "s/^static struct tlb_pid_state/struct tlb_pid_state/",
5086     "-e", "s/^#include \"r3_cpu\\.h\"$/#include <machine\\/r3_cpu\\.h>/",
5087     "-e", "s/^#include \"r4_cpu\\.h\"$/#include <machine\\/r4_cpu\\.h>/",
5088     (char*)NULL };
5090 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5092  *  Description of Ultrix_Strings fix
5093  */
5094 tSCC zUltrix_StringsName[] =
5095      "ultrix_strings";
5098  *  File name selection pattern
5099  */
5100 tSCC zUltrix_StringsList[] =
5101   "|strings.h|";
5103  *  Machine/OS name selection pattern
5104  */
5105 #define apzUltrix_StringsMachs (const char**)NULL
5108  *  content selection pattern - do fix if pattern found
5109  */
5110 tSCC zUltrix_StringsSelect0[] =
5111        "@\\(#\\)strings\\.h.*6\\.1.*\\(ULTRIX\\)";
5113 #define    ULTRIX_STRINGS_TEST_CT  1
5114 static tTestDesc aUltrix_StringsTests[] = {
5115   { TT_EGREP,    zUltrix_StringsSelect0, (regex_t*)NULL }, };
5118  *  Fix Command Arguments for Ultrix_Strings
5119  */
5120 static const char* apzUltrix_StringsPatch[] = {
5121     "wrap",
5122     (char*)NULL };
5124 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5126  *  Description of Undefine_Null fix
5127  */
5128 tSCC zUndefine_NullName[] =
5129      "undefine_null";
5132  *  File name selection pattern
5133  */
5134 #define zUndefine_NullList (char*)NULL
5136  *  Machine/OS name selection pattern
5137  */
5138 #define apzUndefine_NullMachs (const char**)NULL
5141  *  content selection pattern - do fix if pattern found
5142  */
5143 tSCC zUndefine_NullSelect0[] =
5144        "^#[ \t]*define[ \t]+NULL[ \t]";
5147  *  content bypass pattern - skip fix if pattern found
5148  */
5149 tSCC zUndefine_NullBypass0[] =
5150        "#[ \t]*(ifn|un)def[ \t]+NULL($|[ \t\r])";
5152 #define    UNDEFINE_NULL_TEST_CT  2
5153 static tTestDesc aUndefine_NullTests[] = {
5154   { TT_NEGREP,   zUndefine_NullBypass0, (regex_t*)NULL },
5155   { TT_EGREP,    zUndefine_NullSelect0, (regex_t*)NULL }, };
5158  *  Fix Command Arguments for Undefine_Null
5159  */
5160 static const char* apzUndefine_NullPatch[] = {
5161     "format",
5162     "#ifndef NULL%2\n\
5163 #define NULL%1%2\n\
5164 #endif%2\n",
5165     "^#[ \t]*define[ \t]*[ \t]NULL([^\r\n\
5166 ]+)([\r]*)\n",
5167     (char*)NULL };
5169 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5171  *  Description of Unicosmk_Restrict fix
5172  */
5173 tSCC zUnicosmk_RestrictName[] =
5174      "unicosmk_restrict";
5177  *  File name selection pattern
5178  */
5179 tSCC zUnicosmk_RestrictList[] =
5180   "|stdio.h|stdlib.h|wchar.h|";
5182  *  Machine/OS name selection pattern
5183  */
5184 tSCC* apzUnicosmk_RestrictMachs[] = {
5185         "*-*-unicosmk*",
5186         (const char*)NULL };
5189  *  content selection pattern - do fix if pattern found
5190  */
5191 tSCC zUnicosmk_RestrictSelect0[] =
5192        "(\\*[ \t]*)restrict([ \t]+)";
5194 #define    UNICOSMK_RESTRICT_TEST_CT  1
5195 static tTestDesc aUnicosmk_RestrictTests[] = {
5196   { TT_EGREP,    zUnicosmk_RestrictSelect0, (regex_t*)NULL }, };
5199  *  Fix Command Arguments for Unicosmk_Restrict
5200  */
5201 static const char* apzUnicosmk_RestrictPatch[] = {
5202     "format",
5203     "%1__restrict__%2",
5204     (char*)NULL };
5206 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5208  *  Description of Uw7_Byteorder_Fix fix
5209  */
5210 tSCC zUw7_Byteorder_FixName[] =
5211      "uw7_byteorder_fix";
5214  *  File name selection pattern
5215  */
5216 tSCC zUw7_Byteorder_FixList[] =
5217   "|arpa/inet.h|";
5219  *  Machine/OS name selection pattern
5220  */
5221 tSCC* apzUw7_Byteorder_FixMachs[] = {
5222         "*-*-sysv4*",
5223         "i?86-*-sysv5*",
5224         "i?86-*-udk*",
5225         "i?86-*-solaris2.[0-4]",
5226         "powerpcle-*-solaris2.[0-4]",
5227         "sparc-*-solaris2.[0-4]",
5228         (const char*)NULL };
5231  *  content selection pattern - do fix if pattern found
5232  */
5233 tSCC zUw7_Byteorder_FixSelect0[] =
5234        "in_port_t";
5237  *  perform the 'test' shell command - do fix on success
5238  */
5239 tSCC zUw7_Byteorder_FixTest0[] =
5240        "-f sys/byteorder.h";
5242 #define    UW7_BYTEORDER_FIX_TEST_CT  2
5243 static tTestDesc aUw7_Byteorder_FixTests[] = {
5244   { TT_TEST,     zUw7_Byteorder_FixTest0,   0 /* unused */ },
5245   { TT_EGREP,    zUw7_Byteorder_FixSelect0, (regex_t*)NULL }, };
5248  *  Fix Command Arguments for Uw7_Byteorder_Fix
5249  */
5250 static const char* apzUw7_Byteorder_FixPatch[] = {
5251     "format",
5252     "",
5253     "^extern.*[ \t](htons|ntohs).*\\(in_port_t\\).*;",
5254     (char*)NULL };
5256 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5258  *  Description of Va_I960_Macro fix
5259  */
5260 tSCC zVa_I960_MacroName[] =
5261      "va_i960_macro";
5264  *  File name selection pattern
5265  */
5266 tSCC zVa_I960_MacroList[] =
5267   "|arch/i960/archI960.h|";
5269  *  Machine/OS name selection pattern
5270  */
5271 #define apzVa_I960_MacroMachs (const char**)NULL
5274  *  content selection pattern - do fix if pattern found
5275  */
5276 tSCC zVa_I960_MacroSelect0[] =
5277        "__(vsiz|vali|vpad|alignof__)";
5279 #define    VA_I960_MACRO_TEST_CT  1
5280 static tTestDesc aVa_I960_MacroTests[] = {
5281   { TT_EGREP,    zVa_I960_MacroSelect0, (regex_t*)NULL }, };
5284  *  Fix Command Arguments for Va_I960_Macro
5285  */
5286 static const char* apzVa_I960_MacroPatch[] = {
5287     "format",
5288     "__vx%1",
5289     (char*)NULL };
5291 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5293  *  Description of Void_Null fix
5294  */
5295 tSCC zVoid_NullName[] =
5296      "void_null";
5299  *  File name selection pattern
5300  */
5301 tSCC zVoid_NullList[] =
5302   "|curses.h|dbm.h|locale.h|stdio.h|stdlib.h|string.h|time.h|unistd.h|sys/dir.h|sys/param.h|sys/types.h|";
5304  *  Machine/OS name selection pattern
5305  */
5306 #define apzVoid_NullMachs (const char**)NULL
5309  *  content selection pattern - do fix if pattern found
5310  */
5311 tSCC zVoid_NullSelect0[] =
5312        "^#[ \t]*define[ \t]+NULL[ \t]+\\(\\(void[ \t]*\\*\\)0\\)";
5314 #define    VOID_NULL_TEST_CT  1
5315 static tTestDesc aVoid_NullTests[] = {
5316   { TT_EGREP,    zVoid_NullSelect0, (regex_t*)NULL }, };
5319  *  Fix Command Arguments for Void_Null
5320  */
5321 static const char* apzVoid_NullPatch[] = {
5322     "format",
5323     "#define NULL 0",
5324     (char*)NULL };
5326 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5328  *  Description of Vxworks_Gcc_Problem fix
5329  */
5330 tSCC zVxworks_Gcc_ProblemName[] =
5331      "vxworks_gcc_problem";
5334  *  File name selection pattern
5335  */
5336 tSCC zVxworks_Gcc_ProblemList[] =
5337   "|types/vxTypesBase.h|";
5339  *  Machine/OS name selection pattern
5340  */
5341 #define apzVxworks_Gcc_ProblemMachs (const char**)NULL
5344  *  content selection pattern - do fix if pattern found
5345  */
5346 tSCC zVxworks_Gcc_ProblemSelect0[] =
5347        "__GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__";
5349 #define    VXWORKS_GCC_PROBLEM_TEST_CT  1
5350 static tTestDesc aVxworks_Gcc_ProblemTests[] = {
5351   { TT_EGREP,    zVxworks_Gcc_ProblemSelect0, (regex_t*)NULL }, };
5354  *  Fix Command Arguments for Vxworks_Gcc_Problem
5355  */
5356 static const char* apzVxworks_Gcc_ProblemPatch[] = { "sed",
5357     "-e", "s/#ifdef __GNUC_TYPEOF_FEATURE_BROKEN_USE_DEFAULT_UNTIL_FIXED__/#if 1/",
5358     "-e", "/[ \t]size_t/i\\\n\
5359 #ifndef _GCC_SIZE_T\\\n\
5360 #define _GCC_SIZE_T\n",
5361     "-e", "/[ \t]size_t/a\\\n\
5362 #endif\n",
5363     "-e", "/[ \t]ptrdiff_t/i\\\n\
5364 #ifndef _GCC_PTRDIFF_T\\\n\
5365 #define _GCC_PTRDIFF_T\n",
5366     "-e", "/[ \t]ptrdiff_t/a\\\n\
5367 #endif\n",
5368     "-e", "/[ \t]wchar_t/i\\\n\
5369 #ifndef _GCC_WCHAR_T\\\n\
5370 #define _GCC_WCHAR_T\n",
5371     "-e", "/[ \t]wchar_t/a\\\n\
5372 #endif\n",
5373     (char*)NULL };
5375 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5377  *  Description of Vxworks_Needs_Vxtypes fix
5378  */
5379 tSCC zVxworks_Needs_VxtypesName[] =
5380      "vxworks_needs_vxtypes";
5383  *  File name selection pattern
5384  */
5385 tSCC zVxworks_Needs_VxtypesList[] =
5386   "|time.h|";
5388  *  Machine/OS name selection pattern
5389  */
5390 #define apzVxworks_Needs_VxtypesMachs (const char**)NULL
5393  *  content selection pattern - do fix if pattern found
5394  */
5395 tSCC zVxworks_Needs_VxtypesSelect0[] =
5396        "uint_t([ \t]+_clocks_per_sec)";
5398 #define    VXWORKS_NEEDS_VXTYPES_TEST_CT  1
5399 static tTestDesc aVxworks_Needs_VxtypesTests[] = {
5400   { TT_EGREP,    zVxworks_Needs_VxtypesSelect0, (regex_t*)NULL }, };
5403  *  Fix Command Arguments for Vxworks_Needs_Vxtypes
5404  */
5405 static const char* apzVxworks_Needs_VxtypesPatch[] = {
5406     "format",
5407     "unsigned int%1",
5408     (char*)NULL };
5410 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5412  *  Description of Vxworks_Needs_Vxworks fix
5413  */
5414 tSCC zVxworks_Needs_VxworksName[] =
5415      "vxworks_needs_vxworks";
5418  *  File name selection pattern
5419  */
5420 tSCC zVxworks_Needs_VxworksList[] =
5421   "|sys/stat.h|";
5423  *  Machine/OS name selection pattern
5424  */
5425 #define apzVxworks_Needs_VxworksMachs (const char**)NULL
5428  *  content selection pattern - do fix if pattern found
5429  */
5430 tSCC zVxworks_Needs_VxworksSelect0[] =
5431        "#[ \t]define[ \t]+__INCstath";
5434  *  perform the 'test' shell command - do fix on success
5435  */
5436 tSCC zVxworks_Needs_VxworksTest0[] =
5437        " -r types/vxTypesOld.h";
5438 tSCC zVxworks_Needs_VxworksTest1[] =
5439        " -n \"`egrep '#include' $file`\"";
5440 tSCC zVxworks_Needs_VxworksTest2[] =
5441        " -n \"`egrep ULONG $file`\"";
5443 #define    VXWORKS_NEEDS_VXWORKS_TEST_CT  4
5444 static tTestDesc aVxworks_Needs_VxworksTests[] = {
5445   { TT_TEST,     zVxworks_Needs_VxworksTest0,   0 /* unused */ },
5446   { TT_TEST,     zVxworks_Needs_VxworksTest1,   0 /* unused */ },
5447   { TT_TEST,     zVxworks_Needs_VxworksTest2,   0 /* unused */ },
5448   { TT_EGREP,    zVxworks_Needs_VxworksSelect0, (regex_t*)NULL }, };
5451  *  Fix Command Arguments for Vxworks_Needs_Vxworks
5452  */
5453 static const char* apzVxworks_Needs_VxworksPatch[] = { "sed",
5454     "-e", "/#[ \t]define[ \t][ \t]*__INCstath/a\\\n\
5455 #include <types/vxTypesOld.h>\n",
5456     (char*)NULL };
5458 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5460  *  Description of Vxworks_Time fix
5461  */
5462 tSCC zVxworks_TimeName[] =
5463      "vxworks_time";
5466  *  File name selection pattern
5467  */
5468 tSCC zVxworks_TimeList[] =
5469   "|time.h|";
5471  *  Machine/OS name selection pattern
5472  */
5473 #define apzVxworks_TimeMachs (const char**)NULL
5476  *  content selection pattern - do fix if pattern found
5477  */
5478 tSCC zVxworks_TimeSelect0[] =
5479        "#[ \t]*define[ \t]+VOIDFUNCPTR[ \t].*";
5482  *  perform the 'test' shell command - do fix on success
5483  */
5484 tSCC zVxworks_TimeTest0[] =
5485        " -r vxWorks.h";
5487 #define    VXWORKS_TIME_TEST_CT  2
5488 static tTestDesc aVxworks_TimeTests[] = {
5489   { TT_TEST,     zVxworks_TimeTest0,   0 /* unused */ },
5490   { TT_EGREP,    zVxworks_TimeSelect0, (regex_t*)NULL }, };
5493  *  Fix Command Arguments for Vxworks_Time
5494  */
5495 static const char* apzVxworks_TimePatch[] = {
5496     "format",
5497     "#ifndef __gcc_VOIDFUNCPTR_defined\n\
5498 #ifdef __cplusplus\n\
5499 typedef void (*__gcc_VOIDFUNCPTR) (...);\n\
5500 #else\n\
5501 typedef void (*__gcc_VOIDFUNCPTR) ();\n\
5502 #endif\n\
5503 #define __gcc_VOIDFUNCPTR_defined\n\
5504 #endif\n\
5505 #define VOIDFUNCPTR __gcc_VOIDFUNCPTR",
5506     (char*)NULL };
5508 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5510  *  Description of Windiss_Math1 fix
5511  */
5512 tSCC zWindiss_Math1Name[] =
5513      "windiss_math1";
5516  *  File name selection pattern
5517  */
5518 tSCC zWindiss_Math1List[] =
5519   "|math.h|";
5521  *  Machine/OS name selection pattern
5522  */
5523 tSCC* apzWindiss_Math1Machs[] = {
5524         "*-*-windiss",
5525         (const char*)NULL };
5526 #define WINDISS_MATH1_TEST_CT  0
5527 #define aWindiss_Math1Tests   (tTestDesc*)NULL
5530  *  Fix Command Arguments for Windiss_Math1
5531  */
5532 static const char* apzWindiss_Math1Patch[] = { "sed",
5533     "-e", "s|inline long double cosl.*|#ifndef __GNUC__|",
5534     (char*)NULL };
5536 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5538  *  Description of Windiss_Math2 fix
5539  */
5540 tSCC zWindiss_Math2Name[] =
5541      "windiss_math2";
5544  *  File name selection pattern
5545  */
5546 tSCC zWindiss_Math2List[] =
5547   "|math.h|";
5549  *  Machine/OS name selection pattern
5550  */
5551 tSCC* apzWindiss_Math2Machs[] = {
5552         "*-*-windiss",
5553         (const char*)NULL };
5554 #define WINDISS_MATH2_TEST_CT  0
5555 #define aWindiss_Math2Tests   (tTestDesc*)NULL
5558  *  Fix Command Arguments for Windiss_Math2
5559  */
5560 static const char* apzWindiss_Math2Patch[] = { "sed",
5561     "-e", "s|/\\* long double declarations \\*/|#endif /* __GNUC__ */|",
5562     (char*)NULL };
5564 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5566  *  Description of Windiss_Valist fix
5567  */
5568 tSCC zWindiss_ValistName[] =
5569      "windiss_valist";
5572  *  File name selection pattern
5573  */
5574 #define zWindiss_ValistList (char*)NULL
5576  *  Machine/OS name selection pattern
5577  */
5578 tSCC* apzWindiss_ValistMachs[] = {
5579         "*-*-windiss",
5580         (const char*)NULL };
5583  *  content selection pattern - do fix if pattern found
5584  */
5585 tSCC zWindiss_ValistSelect0[] =
5586        "(#include.*)diab/va_list.h";
5588 #define    WINDISS_VALIST_TEST_CT  1
5589 static tTestDesc aWindiss_ValistTests[] = {
5590   { TT_EGREP,    zWindiss_ValistSelect0, (regex_t*)NULL }, };
5593  *  Fix Command Arguments for Windiss_Valist
5594  */
5595 static const char* apzWindiss_ValistPatch[] = { "sed",
5596     "-e", "s|diab/va_list.h|stdarg.h|",
5597     (char*)NULL };
5599 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5601  *  Description of X11_Class fix
5602  */
5603 tSCC zX11_ClassName[] =
5604      "x11_class";
5607  *  File name selection pattern
5608  */
5609 tSCC zX11_ClassList[] =
5610   "|X11/ShellP.h|";
5612  *  Machine/OS name selection pattern
5613  */
5614 #define apzX11_ClassMachs (const char**)NULL
5617  *  content selection pattern - do fix if pattern found
5618  */
5619 tSCC zX11_ClassSelect0[] =
5620        "^([ \t]*char \\*)class;(.*)";
5623  *  content bypass pattern - skip fix if pattern found
5624  */
5625 tSCC zX11_ClassBypass0[] =
5626        "__cplusplus";
5628 #define    X11_CLASS_TEST_CT  2
5629 static tTestDesc aX11_ClassTests[] = {
5630   { TT_NEGREP,   zX11_ClassBypass0, (regex_t*)NULL },
5631   { TT_EGREP,    zX11_ClassSelect0, (regex_t*)NULL }, };
5634  *  Fix Command Arguments for X11_Class
5635  */
5636 static const char* apzX11_ClassPatch[] = {
5637     "format",
5638     "#ifdef __cplusplus\n\
5639 %1c_class;%2\n\
5640 #else\n\
5641 %1class;%2\n\
5642 #endif",
5643     (char*)NULL };
5645 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5647  *  Description of X11_Class_Usage fix
5648  */
5649 tSCC zX11_Class_UsageName[] =
5650      "x11_class_usage";
5653  *  File name selection pattern
5654  */
5655 tSCC zX11_Class_UsageList[] =
5656   "|Xm/BaseClassI.h|";
5658  *  Machine/OS name selection pattern
5659  */
5660 #define apzX11_Class_UsageMachs (const char**)NULL
5663  *  content selection pattern - do fix if pattern found
5664  */
5665 tSCC zX11_Class_UsageSelect0[] =
5666        " class\\)";
5669  *  content bypass pattern - skip fix if pattern found
5670  */
5671 tSCC zX11_Class_UsageBypass0[] =
5672        "__cplusplus";
5674 #define    X11_CLASS_USAGE_TEST_CT  2
5675 static tTestDesc aX11_Class_UsageTests[] = {
5676   { TT_NEGREP,   zX11_Class_UsageBypass0, (regex_t*)NULL },
5677   { TT_EGREP,    zX11_Class_UsageSelect0, (regex_t*)NULL }, };
5680  *  Fix Command Arguments for X11_Class_Usage
5681  */
5682 static const char* apzX11_Class_UsagePatch[] = {
5683     "format",
5684     " c_class)",
5685     (char*)NULL };
5687 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5689  *  Description of X11_New fix
5690  */
5691 tSCC zX11_NewName[] =
5692      "x11_new";
5695  *  File name selection pattern
5696  */
5697 tSCC zX11_NewList[] =
5698   "|Xm/Traversal.h|";
5700  *  Machine/OS name selection pattern
5701  */
5702 #define apzX11_NewMachs (const char**)NULL
5705  *  content bypass pattern - skip fix if pattern found
5706  */
5707 tSCC zX11_NewBypass0[] =
5708        "__cplusplus";
5710 #define    X11_NEW_TEST_CT  1
5711 static tTestDesc aX11_NewTests[] = {
5712   { TT_NEGREP,   zX11_NewBypass0, (regex_t*)NULL }, };
5715  *  Fix Command Arguments for X11_New
5716  */
5717 static const char* apzX11_NewPatch[] = { "sed",
5718     "-e", "/Widget\told, new;/i\\\n\
5719 #ifdef __cplusplus\\\n\
5720 \tWidget\told, c_new;\\\n\
5721 #else\n",
5722     "-e", "/Widget\told, new;/a\\\n\
5723 #endif\n",
5724     "-e", "s/Widget new,/Widget c_new,/g",
5725     (char*)NULL };
5727 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5729  *  Description of X11_Sprintf fix
5730  */
5731 tSCC zX11_SprintfName[] =
5732      "x11_sprintf";
5735  *  File name selection pattern
5736  */
5737 tSCC zX11_SprintfList[] =
5738   "|X11/Xmu.h|X11/Xmu/Xmu.h|";
5740  *  Machine/OS name selection pattern
5741  */
5742 #define apzX11_SprintfMachs (const char**)NULL
5745  *  content selection pattern - do fix if pattern found
5746  */
5747 tSCC zX11_SprintfSelect0[] =
5748        "^extern char \\*\tsprintf\\(\\);$";
5750 #define    X11_SPRINTF_TEST_CT  1
5751 static tTestDesc aX11_SprintfTests[] = {
5752   { TT_EGREP,    zX11_SprintfSelect0, (regex_t*)NULL }, };
5755  *  Fix Command Arguments for X11_Sprintf
5756  */
5757 static const char* apzX11_SprintfPatch[] = {
5758     "format",
5759     "#ifndef __STDC__\n\
5760 %0\n\
5761 #endif /* !defined __STDC__ */",
5762     (char*)NULL };
5765 /* * * * * * * * * * * * * * * * * * * * * * * * * *
5767  *  List of all fixes
5768  */
5769 #define REGEX_COUNT          158
5770 #define MACH_LIST_SIZE_LIMIT 261
5771 #define FIX_COUNT            146
5774  *  Enumerate the fixes
5775  */
5776 typedef enum {
5777     AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX,
5778     AAB_FD_ZERO_GNU_TYPES_H_FIXIDX,
5779     AAB_FD_ZERO_SELECTBITS_H_FIXIDX,
5780     AAB_SOLARIS_SYS_VARARGS_H_FIXIDX,
5781     AAB_SUN_MEMCPY_FIXIDX,
5782     AAB_ULTRIX_ANSI_COMPAT_FIXIDX,
5783     AAB_ULTRIX_LIMITS_FIXIDX,
5784     AAB_ULTRIX_MEMORY_FIXIDX,
5785     AAB_ULTRIX_STRING_FIXIDX,
5786     AIX_PTHREAD_FIXIDX,
5787     AIX_SYSMACHINE_FIXIDX,
5788     AIX_SYSWAIT_FIXIDX,
5789     AIX_VOLATILE_FIXIDX,
5790     ALPHA___ASSERT_FIXIDX,
5791     ALPHA_ASSERT_FIXIDX,
5792     ALPHA_GETOPT_FIXIDX,
5793     ALPHA_PARENS_FIXIDX,
5794     ALPHA_SBRK_FIXIDX,
5795     AVOID_BOOL_DEFINE_FIXIDX,
5796     AVOID_BOOL_TYPE_FIXIDX,
5797     AVOID_WCHAR_T_TYPE_FIXIDX,
5798     BAD_LVAL_FIXIDX,
5799     BAD_STRUCT_TERM_FIXIDX,
5800     BADQUOTE_FIXIDX,
5801     BROKEN_ASSERT_STDIO_FIXIDX,
5802     BROKEN_ASSERT_STDLIB_FIXIDX,
5803     BROKEN_CABS_FIXIDX,
5804     CTRL_QUOTES_DEF_FIXIDX,
5805     CTRL_QUOTES_USE_FIXIDX,
5806     CXX_UNREADY_FIXIDX,
5807     DEC_INTERN_ASM_FIXIDX,
5808     DJGPP_WCHAR_H_FIXIDX,
5809     ECD_CURSOR_FIXIDX,
5810     FREEBSD_GCC3_BREAKAGE_FIXIDX,
5811     GNU_TYPES_FIXIDX,
5812     HP_INLINE_FIXIDX,
5813     HP_SYSFILE_FIXIDX,
5814     HPUX10_CPP_POW_INLINE_FIXIDX,
5815     HPUX11_CPP_POW_INLINE_FIXIDX,
5816     HPUX10_CTYPE_DECLARATIONS1_FIXIDX,
5817     HPUX10_CTYPE_DECLARATIONS2_FIXIDX,
5818     HPUX11_ABS_FIXIDX,
5819     HPUX11_FABSF_FIXIDX,
5820     HPUX11_SIZE_T_FIXIDX,
5821     HPUX11_UINT32_C_FIXIDX,
5822     HPUX11_VSNPRINTF_FIXIDX,
5823     HPUX8_BOGUS_INLINES_FIXIDX,
5824     HPUX_CTYPE_MACROS_FIXIDX,
5825     HPUX_LONG_DOUBLE_FIXIDX,
5826     HPUX_MAXINT_FIXIDX,
5827     HPUX_SYSTIME_FIXIDX,
5828     INT_ABORT_FREE_AND_EXIT_FIXIDX,
5829     IO_QUOTES_DEF_FIXIDX,
5830     IO_QUOTES_USE_FIXIDX,
5831     IP_MISSING_SEMI_FIXIDX,
5832     IRIX_ASM_APOSTROPHE_FIXIDX,
5833     IRIX_LIMITS_CONST_FIXIDX,
5834     IRIX___RESTRICT_FIXIDX,
5835     IRIX_SOCKLEN_T_FIXIDX,
5836     IRIX_STDIO_VA_LIST_FIXIDX,
5837     IRIX_WCSFTIME_FIXIDX,
5838     ISC_FMOD_FIXIDX,
5839     ISC_OMITS_WITH_STDC_FIXIDX,
5840     KANDR_CONCAT_FIXIDX,
5841     LIBC1_G_VA_LIST_FIXIDX,
5842     LIBC1_IFDEFD_MEMX_FIXIDX,
5843     LIMITS_IFNDEFS_FIXIDX,
5844     LYNX_VOID_INT_FIXIDX,
5845     LYNXOS_FCNTL_PROTO_FIXIDX,
5846     MACHINE_ANSI_H_VA_LIST_FIXIDX,
5847     MACHINE_NAME_FIXIDX,
5848     MATH_EXCEPTION_FIXIDX,
5849     MATH_HUGE_VAL_FROM_DBL_MAX_FIXIDX,
5850     MATH_HUGE_VAL_IFNDEF_FIXIDX,
5851     NESTED_AUTH_DES_FIXIDX,
5852     NESTED_MOTOROLA_FIXIDX,
5853     NESTED_SYS_LIMITS_FIXIDX,
5854     NETBSD_EXTRA_SEMICOLON_FIXIDX,
5855     NEXT_MATH_PREFIX_FIXIDX,
5856     NEXT_TEMPLATE_FIXIDX,
5857     NEXT_VOLITILE_FIXIDX,
5858     NEXT_WAIT_UNION_FIXIDX,
5859     NODEENT_SYNTAX_FIXIDX,
5860     OSF_NAMESPACE_A_FIXIDX,
5861     OSF_NAMESPACE_C_FIXIDX,
5862     PTHREAD_PAGE_SIZE_FIXIDX,
5863     READ_RET_TYPE_FIXIDX,
5864     RS6000_DOUBLE_FIXIDX,
5865     RS6000_FCHMOD_FIXIDX,
5866     RS6000_PARAM_FIXIDX,
5867     SCO_STATIC_FUNC_FIXIDX,
5868     SCO_UTIME_FIXIDX,
5869     SOLARIS_MUTEX_INIT_FIXIDX,
5870     SOLARIS_STDIO_TAG_FIXIDX,
5871     SOLARIS_WIDEC_FIXIDX,
5872     STATSSWTCH_FIXIDX,
5873     STDIO_STDARG_H_FIXIDX,
5874     STDIO_VA_LIST_FIXIDX,
5875     STRICT_ANSI_NOT_FIXIDX,
5876     STRICT_ANSI_NOT_CTD_FIXIDX,
5877     STRICT_ANSI_ONLY_FIXIDX,
5878     STRUCT_FILE_FIXIDX,
5879     STRUCT_SOCKADDR_FIXIDX,
5880     SUN_AUTH_PROTO_FIXIDX,
5881     SUN_BOGUS_IFDEF_FIXIDX,
5882     SUN_CATMACRO_FIXIDX,
5883     SUN_MALLOC_FIXIDX,
5884     SUN_RUSERS_SEMI_FIXIDX,
5885     SUN_SIGNAL_FIXIDX,
5886     SUNOS_MATHERR_DECL_FIXIDX,
5887     SUNOS_STRLEN_FIXIDX,
5888     SVR4__P_FIXIDX,
5889     SVR4_GETCWD_FIXIDX,
5890     SVR4_PROFIL_FIXIDX,
5891     SYSV68_STRING_FIXIDX,
5892     SYSZ_STDLIB_FOR_SUN_FIXIDX,
5893     THREAD_KEYWORD_FIXIDX,
5894     TINFO_CPLUSPLUS_FIXIDX,
5895     ULTRIX_ATEXIT_PARAM_FIXIDX,
5896     ULTRIX_ATOF_PARAM_FIXIDX,
5897     ULTRIX_CONST_FIXIDX,
5898     ULTRIX_CONST2_FIXIDX,
5899     ULTRIX_FIX_FIXPROTO_FIXIDX,
5900     ULTRIX_IFDEF_FIXIDX,
5901     ULTRIX_MATH_IFDEF_FIXIDX,
5902     ULTRIX_NESTED_IOCTL_FIXIDX,
5903     ULTRIX_NESTED_SVC_FIXIDX,
5904     ULTRIX_STAT_FIXIDX,
5905     ULTRIX_STATIC_FIXIDX,
5906     ULTRIX_STRINGS_FIXIDX,
5907     UNDEFINE_NULL_FIXIDX,
5908     UNICOSMK_RESTRICT_FIXIDX,
5909     UW7_BYTEORDER_FIX_FIXIDX,
5910     VA_I960_MACRO_FIXIDX,
5911     VOID_NULL_FIXIDX,
5912     VXWORKS_GCC_PROBLEM_FIXIDX,
5913     VXWORKS_NEEDS_VXTYPES_FIXIDX,
5914     VXWORKS_NEEDS_VXWORKS_FIXIDX,
5915     VXWORKS_TIME_FIXIDX,
5916     WINDISS_MATH1_FIXIDX,
5917     WINDISS_MATH2_FIXIDX,
5918     WINDISS_VALIST_FIXIDX,
5919     X11_CLASS_FIXIDX,
5920     X11_CLASS_USAGE_FIXIDX,
5921     X11_NEW_FIXIDX,
5922     X11_SPRINTF_FIXIDX
5923 } t_fixinc_idx;
5925 tFixDesc fixDescList[ FIX_COUNT ] = {
5926   {  zAab_Fd_Zero_Asm_Posix_Types_HName,    zAab_Fd_Zero_Asm_Posix_Types_HList,
5927      apzAab_Fd_Zero_Asm_Posix_Types_HMachs,
5928      AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
5929      aAab_Fd_Zero_Asm_Posix_Types_HTests,   apzAab_Fd_Zero_Asm_Posix_Types_HPatch, 0 },
5931   {  zAab_Fd_Zero_Gnu_Types_HName,    zAab_Fd_Zero_Gnu_Types_HList,
5932      apzAab_Fd_Zero_Gnu_Types_HMachs,
5933      AAB_FD_ZERO_GNU_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
5934      aAab_Fd_Zero_Gnu_Types_HTests,   apzAab_Fd_Zero_Gnu_Types_HPatch, 0 },
5936   {  zAab_Fd_Zero_Selectbits_HName,    zAab_Fd_Zero_Selectbits_HList,
5937      apzAab_Fd_Zero_Selectbits_HMachs,
5938      AAB_FD_ZERO_SELECTBITS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
5939      aAab_Fd_Zero_Selectbits_HTests,   apzAab_Fd_Zero_Selectbits_HPatch, 0 },
5941   {  zAab_Solaris_Sys_Varargs_HName,    zAab_Solaris_Sys_Varargs_HList,
5942      apzAab_Solaris_Sys_Varargs_HMachs,
5943      AAB_SOLARIS_SYS_VARARGS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
5944      aAab_Solaris_Sys_Varargs_HTests,   apzAab_Solaris_Sys_Varargs_HPatch, 0 },
5946   {  zAab_Sun_MemcpyName,    zAab_Sun_MemcpyList,
5947      apzAab_Sun_MemcpyMachs,
5948      AAB_SUN_MEMCPY_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
5949      aAab_Sun_MemcpyTests,   apzAab_Sun_MemcpyPatch, 0 },
5951   {  zAab_Ultrix_Ansi_CompatName,    zAab_Ultrix_Ansi_CompatList,
5952      apzAab_Ultrix_Ansi_CompatMachs,
5953      AAB_ULTRIX_ANSI_COMPAT_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
5954      aAab_Ultrix_Ansi_CompatTests,   apzAab_Ultrix_Ansi_CompatPatch, 0 },
5956   {  zAab_Ultrix_LimitsName,    zAab_Ultrix_LimitsList,
5957      apzAab_Ultrix_LimitsMachs,
5958      AAB_ULTRIX_LIMITS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
5959      aAab_Ultrix_LimitsTests,   apzAab_Ultrix_LimitsPatch, 0 },
5961   {  zAab_Ultrix_MemoryName,    zAab_Ultrix_MemoryList,
5962      apzAab_Ultrix_MemoryMachs,
5963      AAB_ULTRIX_MEMORY_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
5964      aAab_Ultrix_MemoryTests,   apzAab_Ultrix_MemoryPatch, 0 },
5966   {  zAab_Ultrix_StringName,    zAab_Ultrix_StringList,
5967      apzAab_Ultrix_StringMachs,
5968      AAB_ULTRIX_STRING_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
5969      aAab_Ultrix_StringTests,   apzAab_Ultrix_StringPatch, 0 },
5971   {  zAix_PthreadName,    zAix_PthreadList,
5972      apzAix_PthreadMachs,
5973      AIX_PTHREAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
5974      aAix_PthreadTests,   apzAix_PthreadPatch, 0 },
5976   {  zAix_SysmachineName,    zAix_SysmachineList,
5977      apzAix_SysmachineMachs,
5978      AIX_SYSMACHINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
5979      aAix_SysmachineTests,   apzAix_SysmachinePatch, 0 },
5981   {  zAix_SyswaitName,    zAix_SyswaitList,
5982      apzAix_SyswaitMachs,
5983      AIX_SYSWAIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
5984      aAix_SyswaitTests,   apzAix_SyswaitPatch, 0 },
5986   {  zAix_VolatileName,    zAix_VolatileList,
5987      apzAix_VolatileMachs,
5988      AIX_VOLATILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
5989      aAix_VolatileTests,   apzAix_VolatilePatch, 0 },
5991   {  zAlpha___AssertName,    zAlpha___AssertList,
5992      apzAlpha___AssertMachs,
5993      ALPHA___ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
5994      aAlpha___AssertTests,   apzAlpha___AssertPatch, 0 },
5996   {  zAlpha_AssertName,    zAlpha_AssertList,
5997      apzAlpha_AssertMachs,
5998      ALPHA_ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
5999      aAlpha_AssertTests,   apzAlpha_AssertPatch, 0 },
6001   {  zAlpha_GetoptName,    zAlpha_GetoptList,
6002      apzAlpha_GetoptMachs,
6003      ALPHA_GETOPT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6004      aAlpha_GetoptTests,   apzAlpha_GetoptPatch, 0 },
6006   {  zAlpha_ParensName,    zAlpha_ParensList,
6007      apzAlpha_ParensMachs,
6008      ALPHA_PARENS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6009      aAlpha_ParensTests,   apzAlpha_ParensPatch, 0 },
6011   {  zAlpha_SbrkName,    zAlpha_SbrkList,
6012      apzAlpha_SbrkMachs,
6013      ALPHA_SBRK_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6014      aAlpha_SbrkTests,   apzAlpha_SbrkPatch, 0 },
6016   {  zAvoid_Bool_DefineName,    zAvoid_Bool_DefineList,
6017      apzAvoid_Bool_DefineMachs,
6018      AVOID_BOOL_DEFINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6019      aAvoid_Bool_DefineTests,   apzAvoid_Bool_DefinePatch, 0 },
6021   {  zAvoid_Bool_TypeName,    zAvoid_Bool_TypeList,
6022      apzAvoid_Bool_TypeMachs,
6023      AVOID_BOOL_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6024      aAvoid_Bool_TypeTests,   apzAvoid_Bool_TypePatch, 0 },
6026   {  zAvoid_Wchar_T_TypeName,    zAvoid_Wchar_T_TypeList,
6027      apzAvoid_Wchar_T_TypeMachs,
6028      AVOID_WCHAR_T_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6029      aAvoid_Wchar_T_TypeTests,   apzAvoid_Wchar_T_TypePatch, 0 },
6031   {  zBad_LvalName,    zBad_LvalList,
6032      apzBad_LvalMachs,
6033      BAD_LVAL_TEST_CT, FD_MACH_ONLY,
6034      aBad_LvalTests,   apzBad_LvalPatch, 0 },
6036   {  zBad_Struct_TermName,    zBad_Struct_TermList,
6037      apzBad_Struct_TermMachs,
6038      BAD_STRUCT_TERM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6039      aBad_Struct_TermTests,   apzBad_Struct_TermPatch, 0 },
6041   {  zBadquoteName,    zBadquoteList,
6042      apzBadquoteMachs,
6043      BADQUOTE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6044      aBadquoteTests,   apzBadquotePatch, 0 },
6046   {  zBroken_Assert_StdioName,    zBroken_Assert_StdioList,
6047      apzBroken_Assert_StdioMachs,
6048      BROKEN_ASSERT_STDIO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6049      aBroken_Assert_StdioTests,   apzBroken_Assert_StdioPatch, 0 },
6051   {  zBroken_Assert_StdlibName,    zBroken_Assert_StdlibList,
6052      apzBroken_Assert_StdlibMachs,
6053      BROKEN_ASSERT_STDLIB_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6054      aBroken_Assert_StdlibTests,   apzBroken_Assert_StdlibPatch, 0 },
6056   {  zBroken_CabsName,    zBroken_CabsList,
6057      apzBroken_CabsMachs,
6058      BROKEN_CABS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6059      aBroken_CabsTests,   apzBroken_CabsPatch, 0 },
6061   {  zCtrl_Quotes_DefName,    zCtrl_Quotes_DefList,
6062      apzCtrl_Quotes_DefMachs,
6063      CTRL_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6064      aCtrl_Quotes_DefTests,   apzCtrl_Quotes_DefPatch, 0 },
6066   {  zCtrl_Quotes_UseName,    zCtrl_Quotes_UseList,
6067      apzCtrl_Quotes_UseMachs,
6068      CTRL_QUOTES_USE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6069      aCtrl_Quotes_UseTests,   apzCtrl_Quotes_UsePatch, 0 },
6071   {  zCxx_UnreadyName,    zCxx_UnreadyList,
6072      apzCxx_UnreadyMachs,
6073      CXX_UNREADY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6074      aCxx_UnreadyTests,   apzCxx_UnreadyPatch, 0 },
6076   {  zDec_Intern_AsmName,    zDec_Intern_AsmList,
6077      apzDec_Intern_AsmMachs,
6078      DEC_INTERN_ASM_TEST_CT, FD_MACH_ONLY,
6079      aDec_Intern_AsmTests,   apzDec_Intern_AsmPatch, 0 },
6081   {  zDjgpp_Wchar_HName,    zDjgpp_Wchar_HList,
6082      apzDjgpp_Wchar_HMachs,
6083      DJGPP_WCHAR_H_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6084      aDjgpp_Wchar_HTests,   apzDjgpp_Wchar_HPatch, 0 },
6086   {  zEcd_CursorName,    zEcd_CursorList,
6087      apzEcd_CursorMachs,
6088      ECD_CURSOR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6089      aEcd_CursorTests,   apzEcd_CursorPatch, 0 },
6091   {  zFreebsd_Gcc3_BreakageName,    zFreebsd_Gcc3_BreakageList,
6092      apzFreebsd_Gcc3_BreakageMachs,
6093      FREEBSD_GCC3_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6094      aFreebsd_Gcc3_BreakageTests,   apzFreebsd_Gcc3_BreakagePatch, 0 },
6096   {  zGnu_TypesName,    zGnu_TypesList,
6097      apzGnu_TypesMachs,
6098      GNU_TYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6099      aGnu_TypesTests,   apzGnu_TypesPatch, 0 },
6101   {  zHp_InlineName,    zHp_InlineList,
6102      apzHp_InlineMachs,
6103      HP_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6104      aHp_InlineTests,   apzHp_InlinePatch, 0 },
6106   {  zHp_SysfileName,    zHp_SysfileList,
6107      apzHp_SysfileMachs,
6108      HP_SYSFILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6109      aHp_SysfileTests,   apzHp_SysfilePatch, 0 },
6111   {  zHpux10_Cpp_Pow_InlineName,    zHpux10_Cpp_Pow_InlineList,
6112      apzHpux10_Cpp_Pow_InlineMachs,
6113      HPUX10_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6114      aHpux10_Cpp_Pow_InlineTests,   apzHpux10_Cpp_Pow_InlinePatch, 0 },
6116   {  zHpux11_Cpp_Pow_InlineName,    zHpux11_Cpp_Pow_InlineList,
6117      apzHpux11_Cpp_Pow_InlineMachs,
6118      HPUX11_CPP_POW_INLINE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6119      aHpux11_Cpp_Pow_InlineTests,   apzHpux11_Cpp_Pow_InlinePatch, 0 },
6121   {  zHpux10_Ctype_Declarations1Name,    zHpux10_Ctype_Declarations1List,
6122      apzHpux10_Ctype_Declarations1Machs,
6123      HPUX10_CTYPE_DECLARATIONS1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6124      aHpux10_Ctype_Declarations1Tests,   apzHpux10_Ctype_Declarations1Patch, 0 },
6126   {  zHpux10_Ctype_Declarations2Name,    zHpux10_Ctype_Declarations2List,
6127      apzHpux10_Ctype_Declarations2Machs,
6128      HPUX10_CTYPE_DECLARATIONS2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6129      aHpux10_Ctype_Declarations2Tests,   apzHpux10_Ctype_Declarations2Patch, 0 },
6131   {  zHpux11_AbsName,    zHpux11_AbsList,
6132      apzHpux11_AbsMachs,
6133      HPUX11_ABS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6134      aHpux11_AbsTests,   apzHpux11_AbsPatch, 0 },
6136   {  zHpux11_FabsfName,    zHpux11_FabsfList,
6137      apzHpux11_FabsfMachs,
6138      HPUX11_FABSF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6139      aHpux11_FabsfTests,   apzHpux11_FabsfPatch, 0 },
6141   {  zHpux11_Size_TName,    zHpux11_Size_TList,
6142      apzHpux11_Size_TMachs,
6143      HPUX11_SIZE_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6144      aHpux11_Size_TTests,   apzHpux11_Size_TPatch, 0 },
6146   {  zHpux11_Uint32_CName,    zHpux11_Uint32_CList,
6147      apzHpux11_Uint32_CMachs,
6148      HPUX11_UINT32_C_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6149      aHpux11_Uint32_CTests,   apzHpux11_Uint32_CPatch, 0 },
6151   {  zHpux11_VsnprintfName,    zHpux11_VsnprintfList,
6152      apzHpux11_VsnprintfMachs,
6153      HPUX11_VSNPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6154      aHpux11_VsnprintfTests,   apzHpux11_VsnprintfPatch, 0 },
6156   {  zHpux8_Bogus_InlinesName,    zHpux8_Bogus_InlinesList,
6157      apzHpux8_Bogus_InlinesMachs,
6158      HPUX8_BOGUS_INLINES_TEST_CT, FD_MACH_ONLY,
6159      aHpux8_Bogus_InlinesTests,   apzHpux8_Bogus_InlinesPatch, 0 },
6161   {  zHpux_Ctype_MacrosName,    zHpux_Ctype_MacrosList,
6162      apzHpux_Ctype_MacrosMachs,
6163      HPUX_CTYPE_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6164      aHpux_Ctype_MacrosTests,   apzHpux_Ctype_MacrosPatch, 0 },
6166   {  zHpux_Long_DoubleName,    zHpux_Long_DoubleList,
6167      apzHpux_Long_DoubleMachs,
6168      HPUX_LONG_DOUBLE_TEST_CT, FD_MACH_ONLY,
6169      aHpux_Long_DoubleTests,   apzHpux_Long_DoublePatch, 0 },
6171   {  zHpux_MaxintName,    zHpux_MaxintList,
6172      apzHpux_MaxintMachs,
6173      HPUX_MAXINT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6174      aHpux_MaxintTests,   apzHpux_MaxintPatch, 0 },
6176   {  zHpux_SystimeName,    zHpux_SystimeList,
6177      apzHpux_SystimeMachs,
6178      HPUX_SYSTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6179      aHpux_SystimeTests,   apzHpux_SystimePatch, 0 },
6181   {  zInt_Abort_Free_And_ExitName,    zInt_Abort_Free_And_ExitList,
6182      apzInt_Abort_Free_And_ExitMachs,
6183      INT_ABORT_FREE_AND_EXIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6184      aInt_Abort_Free_And_ExitTests,   apzInt_Abort_Free_And_ExitPatch, 0 },
6186   {  zIo_Quotes_DefName,    zIo_Quotes_DefList,
6187      apzIo_Quotes_DefMachs,
6188      IO_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6189      aIo_Quotes_DefTests,   apzIo_Quotes_DefPatch, 0 },
6191   {  zIo_Quotes_UseName,    zIo_Quotes_UseList,
6192      apzIo_Quotes_UseMachs,
6193      IO_QUOTES_USE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6194      aIo_Quotes_UseTests,   apzIo_Quotes_UsePatch, 0 },
6196   {  zIp_Missing_SemiName,    zIp_Missing_SemiList,
6197      apzIp_Missing_SemiMachs,
6198      IP_MISSING_SEMI_TEST_CT, FD_MACH_ONLY,
6199      aIp_Missing_SemiTests,   apzIp_Missing_SemiPatch, 0 },
6201   {  zIrix_Asm_ApostropheName,    zIrix_Asm_ApostropheList,
6202      apzIrix_Asm_ApostropheMachs,
6203      IRIX_ASM_APOSTROPHE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6204      aIrix_Asm_ApostropheTests,   apzIrix_Asm_ApostrophePatch, 0 },
6206   {  zIrix_Limits_ConstName,    zIrix_Limits_ConstList,
6207      apzIrix_Limits_ConstMachs,
6208      IRIX_LIMITS_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6209      aIrix_Limits_ConstTests,   apzIrix_Limits_ConstPatch, 0 },
6211   {  zIrix___RestrictName,    zIrix___RestrictList,
6212      apzIrix___RestrictMachs,
6213      IRIX___RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6214      aIrix___RestrictTests,   apzIrix___RestrictPatch, 0 },
6216   {  zIrix_Socklen_TName,    zIrix_Socklen_TList,
6217      apzIrix_Socklen_TMachs,
6218      IRIX_SOCKLEN_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6219      aIrix_Socklen_TTests,   apzIrix_Socklen_TPatch, 0 },
6221   {  zIrix_Stdio_Va_ListName,    zIrix_Stdio_Va_ListList,
6222      apzIrix_Stdio_Va_ListMachs,
6223      IRIX_STDIO_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6224      aIrix_Stdio_Va_ListTests,   apzIrix_Stdio_Va_ListPatch, 0 },
6226   {  zIrix_WcsftimeName,    zIrix_WcsftimeList,
6227      apzIrix_WcsftimeMachs,
6228      IRIX_WCSFTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6229      aIrix_WcsftimeTests,   apzIrix_WcsftimePatch, 0 },
6231   {  zIsc_FmodName,    zIsc_FmodList,
6232      apzIsc_FmodMachs,
6233      ISC_FMOD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6234      aIsc_FmodTests,   apzIsc_FmodPatch, 0 },
6236   {  zIsc_Omits_With_StdcName,    zIsc_Omits_With_StdcList,
6237      apzIsc_Omits_With_StdcMachs,
6238      ISC_OMITS_WITH_STDC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6239      aIsc_Omits_With_StdcTests,   apzIsc_Omits_With_StdcPatch, 0 },
6241   {  zKandr_ConcatName,    zKandr_ConcatList,
6242      apzKandr_ConcatMachs,
6243      KANDR_CONCAT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6244      aKandr_ConcatTests,   apzKandr_ConcatPatch, 0 },
6246   {  zLibc1_G_Va_ListName,    zLibc1_G_Va_ListList,
6247      apzLibc1_G_Va_ListMachs,
6248      LIBC1_G_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6249      aLibc1_G_Va_ListTests,   apzLibc1_G_Va_ListPatch, 0 },
6251   {  zLibc1_Ifdefd_MemxName,    zLibc1_Ifdefd_MemxList,
6252      apzLibc1_Ifdefd_MemxMachs,
6253      LIBC1_IFDEFD_MEMX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6254      aLibc1_Ifdefd_MemxTests,   apzLibc1_Ifdefd_MemxPatch, 0 },
6256   {  zLimits_IfndefsName,    zLimits_IfndefsList,
6257      apzLimits_IfndefsMachs,
6258      LIMITS_IFNDEFS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6259      aLimits_IfndefsTests,   apzLimits_IfndefsPatch, 0 },
6261   {  zLynx_Void_IntName,    zLynx_Void_IntList,
6262      apzLynx_Void_IntMachs,
6263      LYNX_VOID_INT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6264      aLynx_Void_IntTests,   apzLynx_Void_IntPatch, 0 },
6266   {  zLynxos_Fcntl_ProtoName,    zLynxos_Fcntl_ProtoList,
6267      apzLynxos_Fcntl_ProtoMachs,
6268      LYNXOS_FCNTL_PROTO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6269      aLynxos_Fcntl_ProtoTests,   apzLynxos_Fcntl_ProtoPatch, 0 },
6271   {  zMachine_Ansi_H_Va_ListName,    zMachine_Ansi_H_Va_ListList,
6272      apzMachine_Ansi_H_Va_ListMachs,
6273      MACHINE_ANSI_H_VA_LIST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6274      aMachine_Ansi_H_Va_ListTests,   apzMachine_Ansi_H_Va_ListPatch, 0 },
6276   {  zMachine_NameName,    zMachine_NameList,
6277      apzMachine_NameMachs,
6278      MACHINE_NAME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6279      aMachine_NameTests,   apzMachine_NamePatch, 0 },
6281   {  zMath_ExceptionName,    zMath_ExceptionList,
6282      apzMath_ExceptionMachs,
6283      MATH_EXCEPTION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6284      aMath_ExceptionTests,   apzMath_ExceptionPatch, 0 },
6286   {  zMath_Huge_Val_From_Dbl_MaxName,    zMath_Huge_Val_From_Dbl_MaxList,
6287      apzMath_Huge_Val_From_Dbl_MaxMachs,
6288      MATH_HUGE_VAL_FROM_DBL_MAX_TEST_CT, FD_MACH_ONLY | FD_SHELL_SCRIPT,
6289      aMath_Huge_Val_From_Dbl_MaxTests,   apzMath_Huge_Val_From_Dbl_MaxPatch, 0 },
6291   {  zMath_Huge_Val_IfndefName,    zMath_Huge_Val_IfndefList,
6292      apzMath_Huge_Val_IfndefMachs,
6293      MATH_HUGE_VAL_IFNDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6294      aMath_Huge_Val_IfndefTests,   apzMath_Huge_Val_IfndefPatch, 0 },
6296   {  zNested_Auth_DesName,    zNested_Auth_DesList,
6297      apzNested_Auth_DesMachs,
6298      NESTED_AUTH_DES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6299      aNested_Auth_DesTests,   apzNested_Auth_DesPatch, 0 },
6301   {  zNested_MotorolaName,    zNested_MotorolaList,
6302      apzNested_MotorolaMachs,
6303      NESTED_MOTOROLA_TEST_CT, FD_MACH_ONLY,
6304      aNested_MotorolaTests,   apzNested_MotorolaPatch, 0 },
6306   {  zNested_Sys_LimitsName,    zNested_Sys_LimitsList,
6307      apzNested_Sys_LimitsMachs,
6308      NESTED_SYS_LIMITS_TEST_CT, FD_MACH_ONLY,
6309      aNested_Sys_LimitsTests,   apzNested_Sys_LimitsPatch, 0 },
6311   {  zNetbsd_Extra_SemicolonName,    zNetbsd_Extra_SemicolonList,
6312      apzNetbsd_Extra_SemicolonMachs,
6313      NETBSD_EXTRA_SEMICOLON_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6314      aNetbsd_Extra_SemicolonTests,   apzNetbsd_Extra_SemicolonPatch, 0 },
6316   {  zNext_Math_PrefixName,    zNext_Math_PrefixList,
6317      apzNext_Math_PrefixMachs,
6318      NEXT_MATH_PREFIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6319      aNext_Math_PrefixTests,   apzNext_Math_PrefixPatch, 0 },
6321   {  zNext_TemplateName,    zNext_TemplateList,
6322      apzNext_TemplateMachs,
6323      NEXT_TEMPLATE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6324      aNext_TemplateTests,   apzNext_TemplatePatch, 0 },
6326   {  zNext_VolitileName,    zNext_VolitileList,
6327      apzNext_VolitileMachs,
6328      NEXT_VOLITILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6329      aNext_VolitileTests,   apzNext_VolitilePatch, 0 },
6331   {  zNext_Wait_UnionName,    zNext_Wait_UnionList,
6332      apzNext_Wait_UnionMachs,
6333      NEXT_WAIT_UNION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6334      aNext_Wait_UnionTests,   apzNext_Wait_UnionPatch, 0 },
6336   {  zNodeent_SyntaxName,    zNodeent_SyntaxList,
6337      apzNodeent_SyntaxMachs,
6338      NODEENT_SYNTAX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6339      aNodeent_SyntaxTests,   apzNodeent_SyntaxPatch, 0 },
6341   {  zOsf_Namespace_AName,    zOsf_Namespace_AList,
6342      apzOsf_Namespace_AMachs,
6343      OSF_NAMESPACE_A_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6344      aOsf_Namespace_ATests,   apzOsf_Namespace_APatch, 0 },
6346   {  zOsf_Namespace_CName,    zOsf_Namespace_CList,
6347      apzOsf_Namespace_CMachs,
6348      OSF_NAMESPACE_C_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6349      aOsf_Namespace_CTests,   apzOsf_Namespace_CPatch, 0 },
6351   {  zPthread_Page_SizeName,    zPthread_Page_SizeList,
6352      apzPthread_Page_SizeMachs,
6353      PTHREAD_PAGE_SIZE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6354      aPthread_Page_SizeTests,   apzPthread_Page_SizePatch, 0 },
6356   {  zRead_Ret_TypeName,    zRead_Ret_TypeList,
6357      apzRead_Ret_TypeMachs,
6358      READ_RET_TYPE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6359      aRead_Ret_TypeTests,   apzRead_Ret_TypePatch, 0 },
6361   {  zRs6000_DoubleName,    zRs6000_DoubleList,
6362      apzRs6000_DoubleMachs,
6363      RS6000_DOUBLE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6364      aRs6000_DoubleTests,   apzRs6000_DoublePatch, 0 },
6366   {  zRs6000_FchmodName,    zRs6000_FchmodList,
6367      apzRs6000_FchmodMachs,
6368      RS6000_FCHMOD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6369      aRs6000_FchmodTests,   apzRs6000_FchmodPatch, 0 },
6371   {  zRs6000_ParamName,    zRs6000_ParamList,
6372      apzRs6000_ParamMachs,
6373      RS6000_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6374      aRs6000_ParamTests,   apzRs6000_ParamPatch, 0 },
6376   {  zSco_Static_FuncName,    zSco_Static_FuncList,
6377      apzSco_Static_FuncMachs,
6378      SCO_STATIC_FUNC_TEST_CT, FD_MACH_ONLY,
6379      aSco_Static_FuncTests,   apzSco_Static_FuncPatch, 0 },
6381   {  zSco_UtimeName,    zSco_UtimeList,
6382      apzSco_UtimeMachs,
6383      SCO_UTIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6384      aSco_UtimeTests,   apzSco_UtimePatch, 0 },
6386   {  zSolaris_Mutex_InitName,    zSolaris_Mutex_InitList,
6387      apzSolaris_Mutex_InitMachs,
6388      SOLARIS_MUTEX_INIT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6389      aSolaris_Mutex_InitTests,   apzSolaris_Mutex_InitPatch, 0 },
6391   {  zSolaris_Stdio_TagName,    zSolaris_Stdio_TagList,
6392      apzSolaris_Stdio_TagMachs,
6393      SOLARIS_STDIO_TAG_TEST_CT, FD_MACH_ONLY,
6394      aSolaris_Stdio_TagTests,   apzSolaris_Stdio_TagPatch, 0 },
6396   {  zSolaris_WidecName,    zSolaris_WidecList,
6397      apzSolaris_WidecMachs,
6398      SOLARIS_WIDEC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6399      aSolaris_WidecTests,   apzSolaris_WidecPatch, 0 },
6401   {  zStatsswtchName,    zStatsswtchList,
6402      apzStatsswtchMachs,
6403      STATSSWTCH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6404      aStatsswtchTests,   apzStatsswtchPatch, 0 },
6406   {  zStdio_Stdarg_HName,    zStdio_Stdarg_HList,
6407      apzStdio_Stdarg_HMachs,
6408      STDIO_STDARG_H_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6409      aStdio_Stdarg_HTests,   apzStdio_Stdarg_HPatch, 0 },
6411   {  zStdio_Va_ListName,    zStdio_Va_ListList,
6412      apzStdio_Va_ListMachs,
6413      STDIO_VA_LIST_TEST_CT, FD_MACH_ONLY,
6414      aStdio_Va_ListTests,   apzStdio_Va_ListPatch, 0 },
6416   {  zStrict_Ansi_NotName,    zStrict_Ansi_NotList,
6417      apzStrict_Ansi_NotMachs,
6418      STRICT_ANSI_NOT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6419      aStrict_Ansi_NotTests,   apzStrict_Ansi_NotPatch, 0 },
6421   {  zStrict_Ansi_Not_CtdName,    zStrict_Ansi_Not_CtdList,
6422      apzStrict_Ansi_Not_CtdMachs,
6423      STRICT_ANSI_NOT_CTD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6424      aStrict_Ansi_Not_CtdTests,   apzStrict_Ansi_Not_CtdPatch, 0 },
6426   {  zStrict_Ansi_OnlyName,    zStrict_Ansi_OnlyList,
6427      apzStrict_Ansi_OnlyMachs,
6428      STRICT_ANSI_ONLY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6429      aStrict_Ansi_OnlyTests,   apzStrict_Ansi_OnlyPatch, 0 },
6431   {  zStruct_FileName,    zStruct_FileList,
6432      apzStruct_FileMachs,
6433      STRUCT_FILE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6434      aStruct_FileTests,   apzStruct_FilePatch, 0 },
6436   {  zStruct_SockaddrName,    zStruct_SockaddrList,
6437      apzStruct_SockaddrMachs,
6438      STRUCT_SOCKADDR_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6439      aStruct_SockaddrTests,   apzStruct_SockaddrPatch, 0 },
6441   {  zSun_Auth_ProtoName,    zSun_Auth_ProtoList,
6442      apzSun_Auth_ProtoMachs,
6443      SUN_AUTH_PROTO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6444      aSun_Auth_ProtoTests,   apzSun_Auth_ProtoPatch, 0 },
6446   {  zSun_Bogus_IfdefName,    zSun_Bogus_IfdefList,
6447      apzSun_Bogus_IfdefMachs,
6448      SUN_BOGUS_IFDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6449      aSun_Bogus_IfdefTests,   apzSun_Bogus_IfdefPatch, 0 },
6451   {  zSun_CatmacroName,    zSun_CatmacroList,
6452      apzSun_CatmacroMachs,
6453      SUN_CATMACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6454      aSun_CatmacroTests,   apzSun_CatmacroPatch, 0 },
6456   {  zSun_MallocName,    zSun_MallocList,
6457      apzSun_MallocMachs,
6458      SUN_MALLOC_TEST_CT, FD_MACH_ONLY,
6459      aSun_MallocTests,   apzSun_MallocPatch, 0 },
6461   {  zSun_Rusers_SemiName,    zSun_Rusers_SemiList,
6462      apzSun_Rusers_SemiMachs,
6463      SUN_RUSERS_SEMI_TEST_CT, FD_MACH_ONLY,
6464      aSun_Rusers_SemiTests,   apzSun_Rusers_SemiPatch, 0 },
6466   {  zSun_SignalName,    zSun_SignalList,
6467      apzSun_SignalMachs,
6468      SUN_SIGNAL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6469      aSun_SignalTests,   apzSun_SignalPatch, 0 },
6471   {  zSunos_Matherr_DeclName,    zSunos_Matherr_DeclList,
6472      apzSunos_Matherr_DeclMachs,
6473      SUNOS_MATHERR_DECL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6474      aSunos_Matherr_DeclTests,   apzSunos_Matherr_DeclPatch, 0 },
6476   {  zSunos_StrlenName,    zSunos_StrlenList,
6477      apzSunos_StrlenMachs,
6478      SUNOS_STRLEN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6479      aSunos_StrlenTests,   apzSunos_StrlenPatch, 0 },
6481   {  zSvr4__PName,    zSvr4__PList,
6482      apzSvr4__PMachs,
6483      SVR4__P_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6484      aSvr4__PTests,   apzSvr4__PPatch, 0 },
6486   {  zSvr4_GetcwdName,    zSvr4_GetcwdList,
6487      apzSvr4_GetcwdMachs,
6488      SVR4_GETCWD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6489      aSvr4_GetcwdTests,   apzSvr4_GetcwdPatch, 0 },
6491   {  zSvr4_ProfilName,    zSvr4_ProfilList,
6492      apzSvr4_ProfilMachs,
6493      SVR4_PROFIL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6494      aSvr4_ProfilTests,   apzSvr4_ProfilPatch, 0 },
6496   {  zSysv68_StringName,    zSysv68_StringList,
6497      apzSysv68_StringMachs,
6498      SYSV68_STRING_TEST_CT, FD_MACH_ONLY,
6499      aSysv68_StringTests,   apzSysv68_StringPatch, 0 },
6501   {  zSysz_Stdlib_For_SunName,    zSysz_Stdlib_For_SunList,
6502      apzSysz_Stdlib_For_SunMachs,
6503      SYSZ_STDLIB_FOR_SUN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6504      aSysz_Stdlib_For_SunTests,   apzSysz_Stdlib_For_SunPatch, 0 },
6506   {  zThread_KeywordName,    zThread_KeywordList,
6507      apzThread_KeywordMachs,
6508      THREAD_KEYWORD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6509      aThread_KeywordTests,   apzThread_KeywordPatch, 0 },
6511   {  zTinfo_CplusplusName,    zTinfo_CplusplusList,
6512      apzTinfo_CplusplusMachs,
6513      TINFO_CPLUSPLUS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6514      aTinfo_CplusplusTests,   apzTinfo_CplusplusPatch, 0 },
6516   {  zUltrix_Atexit_ParamName,    zUltrix_Atexit_ParamList,
6517      apzUltrix_Atexit_ParamMachs,
6518      ULTRIX_ATEXIT_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6519      aUltrix_Atexit_ParamTests,   apzUltrix_Atexit_ParamPatch, 0 },
6521   {  zUltrix_Atof_ParamName,    zUltrix_Atof_ParamList,
6522      apzUltrix_Atof_ParamMachs,
6523      ULTRIX_ATOF_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6524      aUltrix_Atof_ParamTests,   apzUltrix_Atof_ParamPatch, 0 },
6526   {  zUltrix_ConstName,    zUltrix_ConstList,
6527      apzUltrix_ConstMachs,
6528      ULTRIX_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6529      aUltrix_ConstTests,   apzUltrix_ConstPatch, 0 },
6531   {  zUltrix_Const2Name,    zUltrix_Const2List,
6532      apzUltrix_Const2Machs,
6533      ULTRIX_CONST2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6534      aUltrix_Const2Tests,   apzUltrix_Const2Patch, 0 },
6536   {  zUltrix_Fix_FixprotoName,    zUltrix_Fix_FixprotoList,
6537      apzUltrix_Fix_FixprotoMachs,
6538      ULTRIX_FIX_FIXPROTO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6539      aUltrix_Fix_FixprotoTests,   apzUltrix_Fix_FixprotoPatch, 0 },
6541   {  zUltrix_IfdefName,    zUltrix_IfdefList,
6542      apzUltrix_IfdefMachs,
6543      ULTRIX_IFDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6544      aUltrix_IfdefTests,   apzUltrix_IfdefPatch, 0 },
6546   {  zUltrix_Math_IfdefName,    zUltrix_Math_IfdefList,
6547      apzUltrix_Math_IfdefMachs,
6548      ULTRIX_MATH_IFDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6549      aUltrix_Math_IfdefTests,   apzUltrix_Math_IfdefPatch, 0 },
6551   {  zUltrix_Nested_IoctlName,    zUltrix_Nested_IoctlList,
6552      apzUltrix_Nested_IoctlMachs,
6553      ULTRIX_NESTED_IOCTL_TEST_CT, FD_MACH_ONLY,
6554      aUltrix_Nested_IoctlTests,   apzUltrix_Nested_IoctlPatch, 0 },
6556   {  zUltrix_Nested_SvcName,    zUltrix_Nested_SvcList,
6557      apzUltrix_Nested_SvcMachs,
6558      ULTRIX_NESTED_SVC_TEST_CT, FD_MACH_ONLY,
6559      aUltrix_Nested_SvcTests,   apzUltrix_Nested_SvcPatch, 0 },
6561   {  zUltrix_StatName,    zUltrix_StatList,
6562      apzUltrix_StatMachs,
6563      ULTRIX_STAT_TEST_CT, FD_MACH_ONLY,
6564      aUltrix_StatTests,   apzUltrix_StatPatch, 0 },
6566   {  zUltrix_StaticName,    zUltrix_StaticList,
6567      apzUltrix_StaticMachs,
6568      ULTRIX_STATIC_TEST_CT, FD_MACH_ONLY,
6569      aUltrix_StaticTests,   apzUltrix_StaticPatch, 0 },
6571   {  zUltrix_StringsName,    zUltrix_StringsList,
6572      apzUltrix_StringsMachs,
6573      ULTRIX_STRINGS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6574      aUltrix_StringsTests,   apzUltrix_StringsPatch, 0 },
6576   {  zUndefine_NullName,    zUndefine_NullList,
6577      apzUndefine_NullMachs,
6578      UNDEFINE_NULL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6579      aUndefine_NullTests,   apzUndefine_NullPatch, 0 },
6581   {  zUnicosmk_RestrictName,    zUnicosmk_RestrictList,
6582      apzUnicosmk_RestrictMachs,
6583      UNICOSMK_RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6584      aUnicosmk_RestrictTests,   apzUnicosmk_RestrictPatch, 0 },
6586   {  zUw7_Byteorder_FixName,    zUw7_Byteorder_FixList,
6587      apzUw7_Byteorder_FixMachs,
6588      UW7_BYTEORDER_FIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6589      aUw7_Byteorder_FixTests,   apzUw7_Byteorder_FixPatch, 0 },
6591   {  zVa_I960_MacroName,    zVa_I960_MacroList,
6592      apzVa_I960_MacroMachs,
6593      VA_I960_MACRO_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6594      aVa_I960_MacroTests,   apzVa_I960_MacroPatch, 0 },
6596   {  zVoid_NullName,    zVoid_NullList,
6597      apzVoid_NullMachs,
6598      VOID_NULL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6599      aVoid_NullTests,   apzVoid_NullPatch, 0 },
6601   {  zVxworks_Gcc_ProblemName,    zVxworks_Gcc_ProblemList,
6602      apzVxworks_Gcc_ProblemMachs,
6603      VXWORKS_GCC_PROBLEM_TEST_CT, FD_MACH_ONLY,
6604      aVxworks_Gcc_ProblemTests,   apzVxworks_Gcc_ProblemPatch, 0 },
6606   {  zVxworks_Needs_VxtypesName,    zVxworks_Needs_VxtypesList,
6607      apzVxworks_Needs_VxtypesMachs,
6608      VXWORKS_NEEDS_VXTYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6609      aVxworks_Needs_VxtypesTests,   apzVxworks_Needs_VxtypesPatch, 0 },
6611   {  zVxworks_Needs_VxworksName,    zVxworks_Needs_VxworksList,
6612      apzVxworks_Needs_VxworksMachs,
6613      VXWORKS_NEEDS_VXWORKS_TEST_CT, FD_MACH_ONLY,
6614      aVxworks_Needs_VxworksTests,   apzVxworks_Needs_VxworksPatch, 0 },
6616   {  zVxworks_TimeName,    zVxworks_TimeList,
6617      apzVxworks_TimeMachs,
6618      VXWORKS_TIME_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6619      aVxworks_TimeTests,   apzVxworks_TimePatch, 0 },
6621   {  zWindiss_Math1Name,    zWindiss_Math1List,
6622      apzWindiss_Math1Machs,
6623      WINDISS_MATH1_TEST_CT, FD_MACH_ONLY,
6624      aWindiss_Math1Tests,   apzWindiss_Math1Patch, 0 },
6626   {  zWindiss_Math2Name,    zWindiss_Math2List,
6627      apzWindiss_Math2Machs,
6628      WINDISS_MATH2_TEST_CT, FD_MACH_ONLY,
6629      aWindiss_Math2Tests,   apzWindiss_Math2Patch, 0 },
6631   {  zWindiss_ValistName,    zWindiss_ValistList,
6632      apzWindiss_ValistMachs,
6633      WINDISS_VALIST_TEST_CT, FD_MACH_ONLY,
6634      aWindiss_ValistTests,   apzWindiss_ValistPatch, 0 },
6636   {  zX11_ClassName,    zX11_ClassList,
6637      apzX11_ClassMachs,
6638      X11_CLASS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6639      aX11_ClassTests,   apzX11_ClassPatch, 0 },
6641   {  zX11_Class_UsageName,    zX11_Class_UsageList,
6642      apzX11_Class_UsageMachs,
6643      X11_CLASS_USAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6644      aX11_Class_UsageTests,   apzX11_Class_UsagePatch, 0 },
6646   {  zX11_NewName,    zX11_NewList,
6647      apzX11_NewMachs,
6648      X11_NEW_TEST_CT, FD_MACH_ONLY,
6649      aX11_NewTests,   apzX11_NewPatch, 0 },
6651   {  zX11_SprintfName,    zX11_SprintfList,
6652      apzX11_SprintfMachs,
6653      X11_SPRINTF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
6654      aX11_SprintfTests,   apzX11_SprintfPatch, 0 }