mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-22 08:17:01 +00:00
109 lines
3.4 KiB
Diff
109 lines
3.4 KiB
Diff
|
--- tmp/parser/gapi2xml.pl 2009-04-13 19:44:48.000000000 +0200
|
||
|
+++ gapi2xml.pl 2009-06-05 21:03:21.000000000 +0200
|
||
|
@@ -32,6 +32,9 @@
|
||
|
}
|
||
|
|
||
|
$ns = $ARGV[0];
|
||
|
+$ns_main = $ns;
|
||
|
+$ns_main =~ s/\..*//g;
|
||
|
+
|
||
|
$libname = $ARGV[2];
|
||
|
|
||
|
# Used by name mangling sub
|
||
|
@@ -231,7 +234,7 @@
|
||
|
$def = $edefs{$cname};
|
||
|
$cname = $etypes{$cname} if (exists($etypes{$cname}));
|
||
|
$enums{lc($cname)} = $cname;
|
||
|
- $enum_elem = addNameElem($ns_elem, 'enum', $cname, $ns);
|
||
|
+ $enum_elem = addNameElem($ns_elem, 'enum', $cname, $ns_main);
|
||
|
if ($def =~ /^deprecated/) {
|
||
|
$enum_elem->setAttribute("deprecated", "1");
|
||
|
$def =~ s/deprecated//g;
|
||
|
@@ -296,7 +299,7 @@
|
||
|
next if ($cbname =~ /^_/);
|
||
|
$cbcnt++;
|
||
|
$fdef = $cb = $fpdefs{$cbname};
|
||
|
- $cb_elem = addNameElem($ns_elem, 'callback', $cbname, $ns);
|
||
|
+ $cb_elem = addNameElem($ns_elem, 'callback', $cbname, $ns_main);
|
||
|
$cb =~ /typedef\s+(.*)\(.*\).*\((.*)\);/;
|
||
|
$ret = $1; $params = $2;
|
||
|
addReturnElem($cb_elem, $ret);
|
||
|
@@ -318,7 +321,7 @@
|
||
|
delete $types{$inst};
|
||
|
|
||
|
$ifacecnt++;
|
||
|
- $iface_el = addNameElem($ns_elem, 'interface', $inst, $ns);
|
||
|
+ $iface_el = addNameElem($ns_elem, 'interface', $inst, $ns_main);
|
||
|
|
||
|
$elem_table{lc($inst)} = $iface_el;
|
||
|
|
||
|
@@ -355,7 +358,7 @@
|
||
|
warn "Strange Class $inst\n" if (!$instdef && $debug);
|
||
|
|
||
|
$classcnt++;
|
||
|
- $obj_el = addNameElem($ns_elem, 'object', $inst, $ns);
|
||
|
+ $obj_el = addNameElem($ns_elem, 'object', $inst, $ns_main);
|
||
|
|
||
|
$elem_table{lc($inst)} = $obj_el;
|
||
|
|
||
|
@@ -424,7 +427,7 @@
|
||
|
} elsif ($types{$type} =~ /struct/ && $type =~ /^$ns/) {
|
||
|
$def = $types{$type};
|
||
|
} else {
|
||
|
- $elem = addNameElem($ns_elem, 'alias', $key, $ns);
|
||
|
+ $elem = addNameElem($ns_elem, 'alias', $key, $ns_main);
|
||
|
$elem->setAttribute('type', $lasttype);
|
||
|
warn "alias $key to $lasttype\n" if $debug;
|
||
|
next;
|
||
|
@@ -432,11 +435,11 @@
|
||
|
|
||
|
# fixme: hack
|
||
|
if ($key eq "GdkBitmap") {
|
||
|
- $struct_el = addNameElem($ns_elem, 'object', $key, $ns);
|
||
|
+ $struct_el = addNameElem($ns_elem, 'object', $key, $ns_main);
|
||
|
} elsif (exists($boxdefs{$key})) {
|
||
|
- $struct_el = addNameElem($ns_elem, 'boxed', $key, $ns);
|
||
|
+ $struct_el = addNameElem($ns_elem, 'boxed', $key, $ns_main);
|
||
|
} else {
|
||
|
- $struct_el = addNameElem($ns_elem, 'struct', $key, $ns);
|
||
|
+ $struct_el = addNameElem($ns_elem, 'struct', $key, $ns_main);
|
||
|
}
|
||
|
|
||
|
if ($def =~ /^deprecated/) {
|
||
|
@@ -459,7 +462,7 @@
|
||
|
foreach $key (sort (keys (%ptrs))) {
|
||
|
next if $ptrs{$key} !~ /struct\s+(\w+)/;
|
||
|
$type = $1;
|
||
|
- $struct_el = addNameElem ($ns_elem, 'struct', $key, $ns);
|
||
|
+ $struct_el = addNameElem ($ns_elem, 'struct', $key, $ns_main);
|
||
|
$struct_el->setAttribute('opaque', 'true');
|
||
|
$elem_table{lc($key)} = $struct_el;
|
||
|
}
|
||
|
@@ -761,6 +764,8 @@
|
||
|
|
||
|
$ns_prefix = "";
|
||
|
$global_el = "";
|
||
|
+ $ns_clean = lc($ns);
|
||
|
+ $ns_clean =~ s/\.//g;
|
||
|
|
||
|
for ($i = 0; $i < $mcount; $i++) {
|
||
|
$mname = $mnames[$i];
|
||
|
@@ -770,7 +775,7 @@
|
||
|
if ($ns_prefix eq "") {
|
||
|
my (@toks) = split(/_/, $prefix);
|
||
|
for ($j = 0; $j < @toks; $j++) {
|
||
|
- if (join ("", @toks[0 .. $j]) eq lc($ns)) {
|
||
|
+ if (join ("", @toks[0 .. $j]) eq $ns_clean) {
|
||
|
$ns_prefix = join ("_", @toks[0 .. $j]);
|
||
|
last;
|
||
|
}
|
||
|
@@ -885,7 +890,7 @@
|
||
|
if ($parm =~ /(.*)\(\s*\**\s*(\w+)\)\s+\((.*)\)/) {
|
||
|
my $ret = $1; my $cbn = $2; my $params = $3;
|
||
|
my $type = $parent->getAttribute('name') . StudlyCaps($cbn);
|
||
|
- $cb_elem = addNameElem($ns_elem, 'callback', $type, $ns);
|
||
|
+ $cb_elem = addNameElem($ns_elem, 'callback', $type, $ns_main);
|
||
|
addReturnElem($cb_elem, $ret);
|
||
|
if ($params && ($params ne "void")) {
|
||
|
addParamsElem($cb_elem, split(/,/, $params));
|