* File name selection pattern
*/
tSCC zLimits_IfndefsList[] =
- "|limits.h|sys/limits.h|";
+ "|sys/limits.h|limits.h|";
/*
* Machine/OS name selection pattern
*/
* File name selection pattern
*/
tSCC zNested_MotorolaList[] =
- "|limits.h|sys/limits.h|";
+ "|sys/limits.h|limits.h|";
/*
* Machine/OS name selection pattern
*/
* File name selection pattern
*/
tSCC zUltrix_Math_IfdefList[] =
- "|float.h|math.h|sys/limits.h|";
+ "|sys/limits.h|float.h|math.h|";
/*
* Machine/OS name selection pattern
*/
* content selection pattern - do fix if pattern found
*/
tSCC zUltrix_Math_IfdefSelect0[] =
- "^#if.*\\|\\|[ \t]+CC\\$[a-z]+";
+ "^(#if.*)\\|\\|[ \t]+CC\\$[a-z]+";
#define ULTRIX_MATH_IFDEF_TEST_CT 1
tTestDesc aUltrix_Math_IfdefTests[] = {
/*
* Fix Command Arguments for Ultrix_Math_Ifdef
*/
-const char* apzUltrix_Math_IfdefPatch[] = { "sed",
- "-e", "/^#if/s/||[ \t][ \t]*CC$[a-z][a-z]*//",
+const char* apzUltrix_Math_IfdefPatch[] = {
+ "format",
+ "%1",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
#define apzX11_ClassMachs (const char**)NULL
/*
+ * content selection pattern - do fix if pattern found
+ */
+tSCC zX11_ClassSelect0[] =
+ "^([ \t]*char \\*)class;(.*)";
+
+/*
* content bypass pattern - skip fix if pattern found
*/
tSCC zX11_ClassBypass0[] =
"__cplusplus";
-#define X11_CLASS_TEST_CT 1
+#define X11_CLASS_TEST_CT 2
tTestDesc aX11_ClassTests[] = {
- { TT_NEGREP, zX11_ClassBypass0, (regex_t*)NULL }, };
+ { TT_NEGREP, zX11_ClassBypass0, (regex_t*)NULL },
+ { TT_EGREP, zX11_ClassSelect0, (regex_t*)NULL }, };
/*
* Fix Command Arguments for X11_Class
*/
-const char* apzX11_ClassPatch[] = { "sed",
- "-e", "/char \\*class;/i\\\n\
-#ifdef __cplusplus\\\n\
-\tchar *c_class;\\\n\
-#else\n",
- "-e", "/char \\*class;/a\\\n\
-#endif\n",
+const char* apzX11_ClassPatch[] = {
+ "format",
+ "#ifdef __cplusplus\n\
+%1c_class;%2\n\
+#else\n\
+%1class;%2\n\
+#endif",
(char*)NULL };
/* * * * * * * * * * * * * * * * * * * * * * * * * *
*
* List of all fixes
*/
-#define REGEX_COUNT 129
+#define REGEX_COUNT 130
#define MACH_LIST_SIZE_LIMIT 279
#define FIX_COUNT 130
{ zUltrix_Math_IfdefName, zUltrix_Math_IfdefList,
apzUltrix_Math_IfdefMachs,
- ULTRIX_MATH_IFDEF_TEST_CT, FD_MACH_ONLY,
+ ULTRIX_MATH_IFDEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aUltrix_Math_IfdefTests, apzUltrix_Math_IfdefPatch },
{ zUltrix_Nested_IoctlName, zUltrix_Nested_IoctlList,
{ zX11_ClassName, zX11_ClassList,
apzX11_ClassMachs,
- X11_CLASS_TEST_CT, FD_MACH_ONLY,
+ X11_CLASS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
aX11_ClassTests, apzX11_ClassPatch },
{ zX11_Class_UsageName, zX11_Class_UsageList,
*/
fix = {
hackname = limits_ifndefs;
- files = "limits.h";
files = "sys/limits.h";
+ files = "limits.h";
bypass = "ifndef[ \t]+FLT_MIN";
c_fix = format;
fix = {
hackname = nested_motorola;
mach = "m68k-motorola-sysv*";
- files = limits.h;
files = sys/limits.h;
+ files = limits.h;
sed = "s@^\\(#undef[ \t][ \t]*PIPE_BUF[ \t]*"
"/\\* max # bytes atomic in write to a\\)$@\\1 */@";
sed = "s@\\(/\\*#define\tHUGE_VAL\t3.[0-9e+]* \\)"
* Strip "|| CC$gfloat" from Ultrix math headers.
*/
fix = {
- hackname = ultrix_math_ifdef;
- files = float.h;
- files = math.h;
- files = sys/limits.h;
- select = "^#if.*\\|\\|[ \t]+CC\\$[a-z]+";
- sed = "/^#if/s/||[ \t][ \t]*CC$[a-z][a-z]*//";
+ hackname = ultrix_math_ifdef;
+ files = sys/limits.h;
+ files = float.h;
+ files = math.h;
+ select = "^(#if.*)\\|\\|[ \t]+CC\\$[a-z]+";
+ c_fix = format;
+ c_fix_arg = "%1";
+
test_text = '#if defined(__GFLOAT) || CC\$gfloat';
};
* we find __cplusplus in the file. These were found on the RS/6000.
*/
fix = {
- hackname = x11_class;
- files = X11/ShellP.h;
- bypass = __cplusplus;
- sed = "/char \\*class;/i\\\n"
- "#ifdef __cplusplus\\\n"
- "\tchar *c_class;\\\n"
- "#else\n";
- sed = "/char \\*class;/a\\\n"
- "#endif\n";
+ hackname = x11_class;
+ files = X11/ShellP.h;
+ bypass = __cplusplus;
+ select = "^([ \t]*char \\*)class;(.*)";
+ c_fix = format;
+ c_fix_arg = "#ifdef __cplusplus\n%1c_class;%2\n"
+ "#else\n%1class;%2\n#endif";
test_text =
"struct {\n"
" char *class;\n"