print TDF "#define INLINE\n";
print TDF "#define FILE int *\n";
print TDF "#ifndef MYTYPEDEFS\n#define MYTYPEDEFS\n";
+#print TDF "#undef __cplusplus\n";
print TDF "typedef unsigned long size_t;\n";
#print TDF "typedef enum { false = 0, true = 1 } bool;\n"; geht nicht, false und true JAVA Schluesselwoerter
print TDF "typedef int bool;\n";
$scndlastline = "";
$lastline = "";
+$eat = 0;
+$multiline = 0;
+
foreach $line (@lines) {
- if (($line =~ /^\#/) ) {
+ if ($line =~ /\#ifdef __cplusplus/) {
+# There is extern "C" in some header files guarded by #ifdef __cplusplus
+# crecoder does not grok the extern "C", so remove thses three lines.
+ $eat = 2;
+ } elsif ($eat > 0) {
+ $eat = $eat -1;
+ } elsif ($line =~ /wchar_t/) {
+ # of course crecoder cannot handle wchar_t, what else?
+ } elsif ($multiline > 0) {
+ # this line connects a previous one, kill it
+ if ($line =~ /\\$/) {
+ $multiline = 1;
+ } else {
+ $multiline = 0;
+ }
+ } elsif ($line =~ /^\#/) {
# eat the line
$scndlastline = $lastline;
$lastline = $line;
+ if ($line =~ /\\$/) {
+ $multiline = 1;
+ } else {
+ $multiline = 0;
+ }
} elsif ($openbracket == 1) {
print TDF "$line";
if ((index($line, "}") > -1)) {