ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/urxvt.pm
(Generate patch)

Comparing rxvt-unicode/src/urxvt.pm (file contents):
Revision 1.88 by root, Thu Jan 12 12:05:28 2006 UTC vs.
Revision 1.94 by root, Sun Jan 15 06:02:41 2006 UTC

117 URxvt.selection-autotransform.0: transform 117 URxvt.selection-autotransform.0: transform
118 URxvt.selection-autotransform.1: transform 118 URxvt.selection-autotransform.1: transform
119 ... 119 ...
120 120
121For example, the following will transform selections of the form 121For example, the following will transform selections of the form
122C<word:number> into C<vi +$number $word>: 122C<filename:number>, often seen in compiler messages, into C<vi +$filename
123$word>:
123 124
124 URxvt.selection-autotransform.0: s/^(S+):(d+):?$/vi +$2 $1\\x0d/ 125 URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/
125 126
126And this example matches the same,but replaces it with vi-commands you can 127And this example matches the same,but replaces it with vi-commands you can
127paste directory into your (vi :) editor: 128paste directly into your (vi :) editor:
128 129
129 URxvt.selection-autotransform.0: s/^(S+):(d+):?$/\\x1b:e $1\\x0d:$2\\x0d/ 130 URxvt.selection-autotransform.0: s/^([^:[:space:]]+(\\d+):?$/\\x1b:e \\Q$1\\E\\x0d:$2\\x0d/
131
132Of course, this can be modified to suit your needs and your editor :)
133
134To expand the example above to typical perl error messages ("XXX at
135FILENAME line YYY."), you need a slightly more elaborate solution:
136
137 URxvt.selection.pattern-0: ( at .*? line \\d+\\.)
138 URxvt.selection-autotransform.0: s/^ at (.*?) line (\\d+)\\.$/\x1b:e \\Q$1\E\\x0d:$2\\x0d/
139
140The first line tells the selection code to treat the unchanging part of
141every error message as a selection pattern, and the second line transforms
142the message into vi commands to load the file.
130 143
131=item mark-urls 144=item mark-urls
132 145
133Uses per-line display filtering (C<on_line_update>) to underline urls and 146Uses per-line display filtering (C<on_line_update>) to underline urls and
134make them clickable. When middle-clicked, the program specified in the 147make them clickable. When middle-clicked, the program specified in the
358 371
359Called whenever the user presses a key combination that has a 372Called whenever the user presses a key combination that has a
360C<perl:string> action bound to it (see description of the B<keysym> 373C<perl:string> action bound to it (see description of the B<keysym>
361resource in the @@RXVT_NAME@@(1) manpage). 374resource in the @@RXVT_NAME@@(1) manpage).
362 375
376=item on_x_event $term, $event
377
378Called on every X event received on the vt window (and possibly other
379windows). Should only be used as a last resort. Most event structure
380members are not passed.
381
363=item on_focus_in $term 382=item on_focus_in $term
364 383
365Called whenever the window gets the keyboard focus, before rxvt-unicode 384Called whenever the window gets the keyboard focus, before rxvt-unicode
366does focus in processing. 385does focus in processing.
367 386
477=item urxvt::CurrentTime 496=item urxvt::CurrentTime
478 497
479=item urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, 498=item urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask,
480Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, 499Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask,
481Button4Mask, Button5Mask, AnyModifier 500Button4Mask, Button5Mask, AnyModifier
501
502=item urxvt::NoEventMask, KeyPressMask, KeyReleaseMask,
503ButtonPressMask, ButtonReleaseMask, EnterWindowMask, LeaveWindowMask,
504PointerMotionMask, PointerMotionHintMask, Button1MotionMask, Button2MotionMask,
505Button3MotionMask, Button4MotionMask, Button5MotionMask, ButtonMotionMask,
506KeymapStateMask, ExposureMask, VisibilityChangeMask, StructureNotifyMask,
507ResizeRedirectMask, SubstructureNotifyMask, SubstructureRedirectMask,
508FocusChangeMask, PropertyChangeMask, ColormapChangeMask, OwnerGrabButtonMask
509
510=item urxvt::KeyPress, KeyRelease, ButtonPress, ButtonRelease, MotionNotify,
511EnterNotify, LeaveNotify, FocusIn, FocusOut, KeymapNotify, Expose,
512GraphicsExpose, NoExpose, VisibilityNotify, CreateNotify, DestroyNotify,
513UnmapNotify, MapNotify, MapRequest, ReparentNotify, ConfigureNotify,
514ConfigureRequest, GravityNotify, ResizeRequest, CirculateNotify,
515CirculateRequest, PropertyNotify, SelectionClear, SelectionRequest,
516SelectionNotify, ColormapNotify, ClientMessage, MappingNotify
482 517
483Various constants for use in X calls and event processing. 518Various constants for use in X calls and event processing.
484 519
485=back 520=back
486 521
554 delete $ENV{CDPATH}; 589 delete $ENV{CDPATH};
555 delete $ENV{BASH_ENV}; 590 delete $ENV{BASH_ENV};
556 $ENV{PATH} = "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin:/opt/sbin"; 591 $ENV{PATH} = "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin:/opt/sbin";
557} 592}
558 593
559my @hook_count;
560my $verbosity = $ENV{URXVT_PERL_VERBOSITY}; 594my $verbosity = $ENV{URXVT_PERL_VERBOSITY};
561 595
562sub verbose { 596sub verbose {
563 my ($level, $msg) = @_; 597 my ($level, $msg) = @_;
564 warn "$msg\n" if $level <= $verbosity; 598 warn "$msg\n" if $level <= $verbosity;
652 verbose 11, "$HOOKNAME[$htype] returning <$retval>" 686 verbose 11, "$HOOKNAME[$htype] returning <$retval>"
653 if $verbosity >= 11; 687 if $verbosity >= 11;
654 } 688 }
655 689
656 if ($htype == 1) { # DESTROY 690 if ($htype == 1) { # DESTROY
657 if (my $hook = delete $TERM->{_hook}) {
658 for my $htype (0..$#$hook) {
659 $hook_count[$htype] -= scalar keys %{ $hook->[$htype] || {} }
660 or set_should_invoke $htype, 0;
661 }
662 }
663
664 # clear package objects 691 # clear package objects
665 %$_ = () for values %{ $TERM->{_pkg} }; 692 %$_ = () for values %{ $TERM->{_pkg} };
666 693
667 # clear package 694 # clear package
668 %$TERM = (); 695 %$TERM = ();
694 while (my ($name, $cb) = each %hook) { 721 while (my ($name, $cb) = each %hook) {
695 my $htype = $HOOKTYPE{uc $name}; 722 my $htype = $HOOKTYPE{uc $name};
696 defined $htype 723 defined $htype
697 or Carp::croak "unsupported hook type '$name'"; 724 or Carp::croak "unsupported hook type '$name'";
698 725
726 $self->set_should_invoke ($htype, +1)
699 unless (exists $self->{term}{_hook}[$htype]{$pkg}) { 727 unless exists $self->{term}{_hook}[$htype]{$pkg};
700 $hook_count[$htype]++
701 or urxvt::set_should_invoke $htype, 1;
702 }
703 728
704 $self->{term}{_hook}[$htype]{$pkg} = $cb; 729 $self->{term}{_hook}[$htype]{$pkg} = $cb;
705 } 730 }
706} 731}
707 732
712 for my $name (@hook) { 737 for my $name (@hook) {
713 my $htype = $HOOKTYPE{uc $name}; 738 my $htype = $HOOKTYPE{uc $name};
714 defined $htype 739 defined $htype
715 or Carp::croak "unsupported hook type '$name'"; 740 or Carp::croak "unsupported hook type '$name'";
716 741
742 $self->set_should_invoke ($htype, -1)
717 if (delete $self->{term}{_hook}[$htype]{$pkg}) { 743 if delete $self->{term}{_hook}[$htype]{$pkg};
718 --$hook_count[$htype]
719 or urxvt::set_should_invoke $htype, 0;
720 }
721 } 744 }
722} 745}
723 746
724our $AUTOLOAD; 747our $AUTOLOAD;
725 748
1130 1153
1131=item $windowid = $term->vt 1154=item $windowid = $term->vt
1132 1155
1133Return the window id of the terminal window. 1156Return the window id of the terminal window.
1134 1157
1158=item $term->vt_emask_add ($x_event_mask)
1159
1160Adds the specified events to the vt event mask. Useful e.g. when you want
1161to receive pointer events all the times:
1162
1163 $term->vt_emask_add (urxvt::PointerMotionMask);
1164
1135=item $window_width = $term->width 1165=item $window_width = $term->width
1136 1166
1137=item $window_height = $term->height 1167=item $window_height = $term->height
1138 1168
1139=item $font_width = $term->fwidth 1169=item $font_width = $term->fwidth
1152 1182
1153=item $max_scrollback = $term->saveLines 1183=item $max_scrollback = $term->saveLines
1154 1184
1155=item $nrow_plus_saveLines = $term->total_rows 1185=item $nrow_plus_saveLines = $term->total_rows
1156 1186
1157=item $lines_in_scrollback = $term->nsaved 1187=item $topmost_scrollback_row = $term->top_row
1158 1188
1159Return various integers describing terminal characteristics. 1189Return various integers describing terminal characteristics.
1160 1190
1161=item $x_display = $term->display_id 1191=item $x_display = $term->display_id
1162 1192
1190Return the modifier masks corresponding to the "ISO Level 3 Shift" (often 1220Return the modifier masks corresponding to the "ISO Level 3 Shift" (often
1191AltGr), the meta key (often Alt) and the num lock key, if applicable. 1221AltGr), the meta key (often Alt) and the num lock key, if applicable.
1192 1222
1193=item $view_start = $term->view_start ([$newvalue]) 1223=item $view_start = $term->view_start ([$newvalue])
1194 1224
1195Returns the negative row number of the topmost line. Minimum value is 1225Returns the row number of the topmost displayed line. Maximum value is
1196C<0>, which displays the normal terminal contents. Larger values scroll 1226C<0>, which displays the normal terminal contents. Lower values scroll
1197this many lines into the scrollback buffer. 1227this many lines into the scrollback buffer.
1198 1228
1199=item $term->want_refresh 1229=item $term->want_refresh
1200 1230
1201Requests a screen refresh. At the next opportunity, rxvt-unicode will 1231Requests a screen refresh. At the next opportunity, rxvt-unicode will

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines