diff -Nurp rxvt-unicode-8.3/src/command.C rxvt-unicode/src/command.C --- rxvt-unicode-8.3/src/command.C 2007-08-01 19:32:51.000000000 +0200 +++ rxvt-unicode/src/command.C 2007-08-17 18:13:56.000000000 +0200 @@ -1227,6 +1227,7 @@ rxvt_term::pty_fill () if (r > 0) { + HOOK_INVOKE ((this, HOOK_TT_READ, DT_STR_LEN, cmdbuf_endp, r, DT_END)); cmdbuf_endp += r; return true; } diff -Nurp rxvt-unicode-8.3/src/hookinc.h rxvt-unicode/src/hookinc.h --- rxvt-unicode-8.3/src/hookinc.h 2007-06-26 01:47:14.000000000 +0200 +++ rxvt-unicode/src/hookinc.h 2007-08-17 18:14:50.000000000 +0200 @@ -21,6 +21,7 @@ def (OSC_SEQ) def (OSC_SEQ_PERL) def (TT_WRITE) + def (TT_READ) def (REFRESH_BEGIN) def (REFRESH_END) diff -Nurp rxvt-unicode-8.3/src/perl/mvgdbg rxvt-unicode/src/perl/mvgdbg --- rxvt-unicode-8.3/src/perl/mvgdbg 1970-01-01 01:00:00.000000000 +0100 +++ rxvt-unicode/src/perl/mvgdbg 2007-08-17 21:17:20.000000000 +0200 @@ -0,0 +1,34 @@ +#! perl + +sub on_tt_read { + my ($term, $octets) = @_; + my $handle = $term->{'mvgdbg:handle'}; + $octets =~ s/([^ -\[\]-~])/sprintf('\x%02x', ord($1))/eg; + print $handle "> $octets\n"; + return (); +} + +sub on_tt_write { + my ($term, $octets) = @_; + my $handle = $term->{'mvgdbg:handle'}; + $octets =~ s/([^ -\[\]-~])/sprintf('\x%02x', ord($1))/eg; + print $handle "\t\t< $octets\n"; + return (); +} + +sub on_start { + my ($term) = @_; + my $handle; + open $handle, ">", "/tmp/mvgdbg.txt" + or urxvt::warn "Error opening debug file: $?"; + $term->{'mvgdbg:handle'} = $handle; + return (); +} + +sub on_destroy { + my ($term) = @_; + my $handle = $term->{'mvgdbg:handle'}; + close $handle + or urxvt::warn "Error opening debug file: $?"; + return (); +}