Revision: | 1.1 |
Committed: | Mon Nov 24 17:28:08 2003 UTC (20 years, 7 months ago) by pcg |
Content type: | text/plain |
Branch: | MAIN |
CVS Tags: | rel-7_0, post_menubar_removal, rel-6_2, rel-6_3, rel-6_0, rel-6_1, rel-2_1_0, rel-5_5, rel-5_4, rel-5_7, rel-5_1, rel-5_0, rel-5_3, rel-5_2, rel-4_4, rel-4_6, rel-4_7, rel-5_9, rel-5_8, rel-4_2, rel-4_3, rel-3_7, rel-3_8, rel-3_5, rel-3_4, rel-3_3, rel-3_2, rel-2_8, rel-3_0, rel-4_0, rel-2_4, rel-2_5, rel-2_2, rel-2_3, rel-2_0, rel-4_1, rel-1-9, rel-1-3, rel-1-2, rxvt-2-0, rel-1_9, rel-3_6, rel-2_7, rel-4_8, rel-4_9 |
Log Message: | *** empty log message *** |
# | User | Rev | Content |
---|---|---|---|
1 | pcg | 1.1 | #! perl |
2 | |||
3 | $file = join("",<>); | ||
4 | $file=~s/[^\000]+\/\* functions \*\///; | ||
5 | $file=~s/#endif\s+$//; | ||
6 | foreach my $def (split(/\s*;\s*/,$file)) | ||
7 | { | ||
8 | $def =~ s/\s+/ /g; | ||
9 | my $paren = ($def=~s/\(([^\(\)]*)\)\s*//)?$1:''; | ||
10 | my $type = ($def=~s/^([^\000]*\s+\*?)//)?$1:''; | ||
11 | $type=~s/^\s+//; | ||
12 | $type=~s/\s+$//; | ||
13 | push(@list,{def=>$def,type=>$type,paren=>$paren}); | ||
14 | } | ||
15 | foreach my $s (sort {$a->{def} cmp $b->{def}} @list) | ||
16 | { | ||
17 | my $def = $s->{def}; | ||
18 | my $type = $s->{type}; | ||
19 | my $paren=$s->{paren}; | ||
20 | my $params = $paren; | ||
21 | $params=~s/[\[\]\*]//g; | ||
22 | $params=~s/\s+,/,/g; | ||
23 | $params=~s/[^,\s]+\s+//g; | ||
24 | next if ($params =~ /\.\.\./); | ||
25 | next if ($def eq 'XOpenDisplay'); | ||
26 | my $return = $type eq 'void' ? '':'return '; | ||
27 | print " | ||
28 | typedef $type (proto_$def)($paren); | ||
29 | static proto_$def *func_$def = NULL; | ||
30 | $type $def($paren) { | ||
31 | if (!func_$def) func_$def=(proto_$def *)_loadfunc(\"$def\"); | ||
32 | $return(func_$def)($params); | ||
33 | } | ||
34 | "; | ||
35 | |||
36 | } |