This is just a brief summary. The detailed information can be found in the gcc sources: gcc/fixinc/README.
There is no need to comprehend immensly complex shell scripting. There is a little bit of effort required to "define a new fix", but the syntax and examples are fairly simple and straight forward. Here is a very simple example that changes a reserved word used as a prototype argument into a non-reserved word. For the real details, see the README:
/* * class in Xm/BaseClassI.h */ fix = { hackname = x11_class_usage; files = Xm/BaseClassI.h; bypass = "__cplusplus"; /* skip fix if C++ aware */ select = " class\\)"; /* apply fix if found */ c_fix = format; c_fix_arg = " c_class)"; test_text = "extern mumble (int class);\n"; };
This "include hack" will replace every occurrance of " class)
"
in the file ``/usr/include/Xm/BaseClassI.h
'' with
" c_class)
", thus converting the test_text
to:
extern mumble (int c_class);The "
select
" expression is
a regex
regular expression.