Hi, the attached patch improves portability across non-gcc compilers. It addresses these issues: - icc doesn't support #pragma interface/#pragma implementations These are not really needed for gcc either since version 2.7, according to GCC documentation. Removing that code will just work (tm).
- clang is very strict on the number of parentheses in conditionals: as a way to double-check that the programmer knows what she's doing it will accept as valid if (foo==bar) {} and if ((foo=bar)) {} , and emit a warning (which then -Wall turns into an error) in case of if ((foo==bar)) {} and if (foo=bar) {}. This leads to bad results when the condition is a cpp macro, even worse when the macro is defined in an external library. - clang's static code checker complains with the idiom if (strcmp(foo,"") != 0) {} I've turned them into if (strlen(foo) != 0) {} -- /kinkie
portability-fixes-v1.patch
Description: Binary data