- elsif ( $arg =~ /pair_content\((screen\d+,)?\d+(,0x[[:xdigit:]]+){2}/i ) {
- $arg =~ s/(,0x[[:xdigit:]]+){2}[)]/,\&fg,\&bg)/i;
+ if ( &has_addr($arg) and $arg =~ /called\s+\{/ ) {
+ my $func = $arg;
+ chomp $func;
+ $func =~ s/^.*called\s+\{([[:alnum:]_]+)\(.*$/$1/;
+ if ( defined $known_p1{$func} ) {
+ my $addr = $arg;
+ my $type = $known_p1{$func};
+ chomp $addr;
+ $addr =~ s/^[^(]+\((0x[[:xdigit:]]+).*/$1/i;
+ if ( $addr !~ /^0x[[:xdigit:]]+$/i ) {
+ printf "OOPS - expected type #$type, skipping\n>>$addr\n";
+ }
+ elsif ( $type == 1 ) {
+ $scr_addr{$addr} = ++$scr_nums;
+ $arg = &transaddr($arg);
+ }
+ elsif ( $type == 2 ) {
+ $win_addr{$addr} = ++$win_nums;
+ $arg = &transaddr($arg);
+ }
+ elsif ( $type == 4 ) {
+ $trm_addr{$addr} = ++$trm_nums;
+ $arg = &transaddr($arg);
+ }
+ }