X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=test%2Ftracemunch;h=13a3b64719efffd68bd826552d14e9325fed8b93;hb=a28e782d7794ddeec23e7cb212dc455f0d93dc22;hp=9d15dd58fbcb3dcd80bb659b1734a3953b9dadf6;hpb=3e91848cbe3dad23fdb60962fa9b678592591c34;p=ncurses.git diff --git a/test/tracemunch b/test/tracemunch index 9d15dd58..13a3b647 100755 --- a/test/tracemunch +++ b/test/tracemunch @@ -1,5 +1,5 @@ #!/usr/bin/env perl -# $Id: tracemunch,v 1.29 2020/04/18 23:52:24 tom Exp $ +# $Id: tracemunch,v 1.33 2020/12/26 23:56:50 tom Exp $ ############################################################################## # Copyright 2018-2019,2020 Thomas E. Dickey # # Copyright 1998-2005,2017 Free Software Foundation, Inc. # @@ -72,8 +72,10 @@ our $tracelevel = 0; # 1 = SCREEN* # 2 = WINDOW* # 4 = TERMINAL* +# 8 = PANEL* our %known_p1 = qw( TransformLine 1 + _nc_console_read 1 _nc_freewin 2 _nc_initscr 1 _nc_makenew 1 @@ -89,6 +91,7 @@ our %known_p1 = qw( baudrate 1 beep 1 border_set 2 + bottom_panel 8 box 2 box_set 2 can_change_color 1 @@ -102,6 +105,7 @@ our %known_p1 = qw( def_shell_mode 1 define_key 1 del_curterm 1 + del_panel 8 delay_output 1 delscreen 1 delwin 2 @@ -129,6 +133,7 @@ our %known_p1 = qw( has_ic 1 has_il 1 has_key 1 + hide_panel 8 idcok 2 idlok 2 immedok 2 @@ -161,6 +166,7 @@ our %known_p1 = qw( meta 2 mouseinterval 1 mousemask 1 + move_panel 8 mvcur 1 mvderwin 2 mvwadd_wch 2 @@ -200,6 +206,7 @@ our %known_p1 = qw( mvwinwstr 2 mvwvline 2 mvwvline_set 2 + new_panel 2 newpad 1 newterm 1 newwin 1 @@ -216,6 +223,11 @@ our %known_p1 = qw( overlay 2 overwrite 2 pair_content 1 + panel_above 8 + panel_below 8 + panel_hidden 8 + panel_userptr 8 + panel_window 8 pecho_wchar 2 pechochar 2 pnoutrefresh 2 @@ -223,6 +235,7 @@ our %known_p1 = qw( qiflush 1 raw 1 redrawwin 2 + replace_panel 8 reset_prog_mode 1 reset_shell_mode 1 resetty 1 @@ -237,7 +250,9 @@ our %known_p1 = qw( scroll 2 scrollok 2 set_curterm 4 + set_panel_userptr 8 set_term 1 + show_panel 8 slk_attr 1 slk_attr_set 1 slk_attroff 1 @@ -263,6 +278,7 @@ our %known_p1 = qw( tigetnum 1 tigetstr 1 tinfo 1 + top_panel 8 touchline 2 touchwin 2 typeahead 1 @@ -361,18 +377,24 @@ our %known_p1 = qw( wvline 2 ); +our $pan_nums = 0; our $scr_nums = 0; our $thr_nums = 0; our $trm_nums = 0; our $try_nums = 0; +our $usr_nums = 0; our $win_nums = 0; -our $curscr = ""; -our $newscr = ""; -our $stdscr = ""; + +our $curscr = ""; +our $newscr = ""; +our $stdscr = ""; + +our %pan_addr; our %scr_addr; our %thr_addr; our %trm_addr; our %try_addr; +our %usr_addr; our %win_addr; sub has_addr($) { @@ -389,6 +411,12 @@ sub transaddr($) { $arg =~ s/\b$curscr\b/curscr/g if ($curscr); $arg =~ s/\b$newscr\b/newscr/g if ($newscr); $arg =~ s/\b$stdscr\b/stdscr/g if ($stdscr); + if ( &has_addr($arg) ) { + foreach my $addr ( keys %pan_addr ) { + $n = $pan_addr{$addr}; + $arg =~ s/\b$addr\b/panel$n/g if ( defined $n ); + } + } if ( &has_addr($arg) ) { foreach my $addr ( keys %scr_addr ) { $n = $scr_addr{$addr}; @@ -413,6 +441,12 @@ sub transaddr($) { $arg =~ s/\b$addr\b/tries_$n/g if ( defined $n ); } } + if ( &has_addr($arg) ) { + foreach my $addr ( keys %usr_addr ) { + $n = $usr_addr{$addr}; + $arg =~ s/\b$addr\b/user_ptr$n/g if ( defined $n ); + } + } if ( &has_addr($arg) ) { foreach my $addr ( keys %win_addr ) { $n = $win_addr{$addr}; @@ -457,6 +491,10 @@ sub transaddr($) { $trm_addr{$addr} = ++$trm_nums; $arg = &transaddr($arg); } + elsif ( $type == 8 ) { + $pan_addr{$addr} = ++$pan_nums; + $arg = &transaddr($arg); + } } } @@ -473,6 +511,8 @@ sub muncher($) { CLASSIFY: { + next unless $_; + # just in case someone tries a file with cr/lf line-endings: $_ =~ s/\r\n/\n/g; $_ =~ s/\r/\n/g; @@ -513,6 +553,16 @@ sub muncher($) { } $awaiting = ""; } + elsif ( $_ =~ /^create :(root|new)_panel 0x([[:xdigit:]]+)/ ) { + $addr = "0x$2"; + $pan_addr{$addr} = $pan_nums++; + $_ = &transaddr($_); + } + elsif ( $_ =~ /^create :user_ptr 0x([[:xdigit:]]+)/ ) { + $addr = "0x$1"; + $usr_addr{$addr} = $usr_nums++; + $_ = &transaddr($_); + } elsif ( $_ =~ /^(\+ )*called \{set_curterm\((0x[[:xdigit:]]+)\)/ ) { $trm_addr{$2} = ++$trm_nums unless defined $trm_addr{$2}; } @@ -547,6 +597,11 @@ sub muncher($) { undef $win_addr{$addr}; } } + elsif ( $_ =~ /^\.\.\.deleted pan=\"0x([[:xdigit:]]+)\"/ ) { + $addr = "0x$1"; + $_ = &transaddr($_); + undef $pan_addr{$addr}; + } # Compactify runs of PutAttrChar if ( ( ( $tracelevel & $TR{CHARPUT} ) != 0 ) and $_ =~ /$putattr/ )