diff options
Diffstat (limited to 'harness/tools/genbuild.pl')
-rw-r--r-- | harness/tools/genbuild.pl | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/harness/tools/genbuild.pl b/harness/tools/genbuild.pl index 7020e81..1acabc0 100644 --- a/harness/tools/genbuild.pl +++ b/harness/tools/genbuild.pl @@ -24,15 +24,24 @@ print " plug->state = NULL;\n"; print " plug->library_handle = dl;\n"; print "\n"; while (<>) { - if (/^\s*EXPORT\(\s*((?:\w|\s*\*\s*)+)\s*\(\*(\w+)\)\s*\((.*)\)\);/) { - print "\n"; - print " ptr = dlsym(dl, \"$2\");\n"; - print " if (!ptr) {\n"; - print " fprintf(stderr, \"Plugin missing %s\\n\", \"$2\");\n"; - print " ret |= 1;\n"; - print " }\n"; - print " plug->$2 = ptr;\n"; - $comment=""; + if (/^\s*EXPORT/) { + my $line = "$_"; + while (not ($line =~ /;$/)) { + my $nextline = <STDIN>; + last unless defined $nextline; + + $line="$line$nextline"; + } + if ($line =~ /^\s*EXPORT\(\s*((?:\w|\s*\*\s*)+)\s*\(\*(\w+)\)\s*\((.*)\)\);/s) { + print "\n"; + print " ptr = dlsym(dl, \"$2\");\n"; + print " if (!ptr) {\n"; + print " fprintf(stderr, \"Plugin missing %s\\n\", \"$2\");\n"; + print " ret |= 1;\n"; + print " }\n"; + print " plug->$2 = ptr;\n"; + $comment=""; + } } } print "\n return ret;\n"; |