--- rxvt-unicode/src/urxvt.pm 2009/05/30 08:47:07 1.174 +++ rxvt-unicode/src/urxvt.pm 2010/07/02 12:44:45 1.185 @@ -343,7 +343,7 @@ =item selection-pastebin -This is a little rarely useful extension that Uploads the selection as +This is a little rarely useful extension that uploads the selection as textfile to a remote site (or does other things). (The implementation is not currently secure for use in a multiuser environment as it writes to F directly.). @@ -372,10 +372,10 @@ I xrdb uses the C preprocessor, which might interpret the double C characters as comment start. Use C<\057\057> instead, -which works regardless of wether xrdb is used to parse the resource file +which works regardless of whether xrdb is used to parse the resource file or not. -=item macosx-pastebin and macosx-pastebin-native +=item macosx-clipboard and macosx-clipboard-native These two modules implement an extended clipboard for Mac OS X. They are used like this: @@ -385,7 +385,7 @@ URxvt.keysym.M-v: perl:macosx-clipboard:paste The difference between them is that the native variant requires a -perl from apple's devkit or so, and C requires the +perl from apple's devkit or so, and C requires the C module, works with other perls, has fewer bugs, is simpler etc. etc. @@ -419,7 +419,7 @@ =item $text -Rxvt-unicodes special way of encoding text, where one "unicode" character +Rxvt-unicode's special way of encoding text, where one "unicode" character always represents one screen cell. See L for a discussion of this format. =item $string @@ -690,8 +690,8 @@ =item on_unmap_notify $term, $event -Called whenever the corresponding X event is received for the terminal If -the hook returns true, then the even will be ignored by rxvt-unicode. +Called whenever the corresponding X event is received for the terminal. If +the hook returns true, then the event will be ignored by rxvt-unicode. The event is a hash with most values as named by Xlib (see the XEvent manpage), with the additional members C and C, which are the @@ -711,6 +711,10 @@ Called when various types of ClientMessage events are received (all with format=32, WM_PROTOCOLS or WM_PROTOCOLS:WM_DELETE_WINDOW). +=item on_bell $term + +Called on receipt of a bell character. + =back =cut @@ -1126,7 +1130,7 @@ =cut -our $VERSION = '3.4'; +our $VERSION = '5.23'; $INC{"urxvt/anyevent.pm"} = 1; # mark us as there push @AnyEvent::REGISTRY, [urxvt => urxvt::anyevent::]; @@ -1138,8 +1142,8 @@ urxvt::timer ->new - ->start (urxvt::NOW + $arg{after}) - ->cb (sub { + ->after ($arg{after}, $arg{interval}) + ->cb ($arg{interval} ? $cb : sub { $_[0]->stop; # need to cancel manually $cb->(); }) @@ -1149,18 +1153,42 @@ my ($class, %arg) = @_; my $cb = $arg{cb}; + my $fd = fileno $arg{fh}; + defined $fd or $fd = $arg{fh}; bless [$arg{fh}, urxvt::iow ->new - ->fd (fileno $arg{fh}) + ->fd ($fd) ->events (($arg{poll} =~ /r/ ? 1 : 0) | ($arg{poll} =~ /w/ ? 2 : 0)) ->start - ->cb (sub { - $cb->(($_[1] & 1 ? 'r' : '') - . ($_[1] & 2 ? 'w' : '')); - })], - urxvt::anyevent:: + ->cb ($cb) + ], urxvt::anyevent:: +} + +sub idle { + my ($class, %arg) = @_; + + my $cb = $arg{cb}; + + urxvt::iw + ->new + ->start + ->cb ($cb) +} + +sub child { + my ($class, %arg) = @_; + + my $cb = $arg{cb}; + + urxvt::pw + ->new + ->start ($arg{pid}) + ->cb (sub { + $_[0]->stop; # need to cancel manually + $cb->($_[0]->rpid, $_[0]->rstatus); + }) } sub DESTROY { @@ -1300,9 +1328,9 @@ borderLess chdir color cursorBlink cursorUnderline cutchars delete_key display_name embed ext_bwidth fade font geometry hold iconName imFont imLocale inputMethod insecure int_bwidth intensityStyles - italicFont jumpScroll lineSpace loginShell mapAlert meta8 modifier - mouseWheelScrollPage name override_redirect pastableTabs path perl_eval - perl_ext_1 perl_ext_2 perl_lib pointerBlank pointerBlankDelay + italicFont jumpScroll lineSpace letterSpace loginShell mapAlert meta8 + modifier mouseWheelScrollPage name override_redirect pastableTabs path + perl_eval perl_ext_1 perl_ext_2 perl_lib pointerBlank pointerBlankDelay preeditType print_pipe pty_fd reverseVideo saveLines scrollBar scrollBar_align scrollBar_floating scrollBar_right scrollBar_thickness scrollTtyKeypress scrollTtyOutput scrollWithBuffer scrollstyle @@ -1350,25 +1378,38 @@ =item ($row, $col) = $term->selection_end ([$row, $col]) -Return the current values of the selection mark, begin or end positions, -and optionally set them to new values. +Return the current values of the selection mark, begin or end positions. + +When arguments are given, then the selection coordinates are set to +C<$row> and C<$col>, and the selection screen is set to the current +screen. + +=item $screen = $term->selection_screen ([$screen]) + +Returns the current selection screen, and then optionally sets it. =item $term->selection_make ($eventtime[, $rectangular]) Tries to make a selection as set by C and C. If C<$rectangular> is true (default: false), a -rectangular selection will be made. This is the prefered function to make +rectangular selection will be made. This is the preferred function to make a selection. -=item $success = $term->selection_grab ($eventtime) +=item $success = $term->selection_grab ($eventtime[, $clipboard]) -Try to request the primary selection text from the server (for example, as -set by the next method). No visual feedback will be given. This function +Try to acquire ownership of the primary (clipboard if C<$clipboard> is +true) selection from the server. The corresponding text can be set +with the next method. No visual feedback will be given. This function is mostly useful from within C hooks. -=item $oldtext = $term->selection ([$newtext]) +=item $oldtext = $term->selection ([$newtext, $clipboard]) + +Return the current selection (clipboard if C<$clipboard> is true) text +and optionally replace it by C<$newtext>. -Return the current selection text and optionally replace it by C<$newtext>. +=item $term->selection_clear ([$clipboard]) + +Revoke ownership of the primary (clipboard if C<$clipboard> is true) selection. =item $term->overlay_simple ($x, $y, $text) @@ -1832,7 +1873,7 @@ =item $term->ungrab -Calls XUngrab for the most recent grab. Is called automatically on +Calls XUngrabPointer and XUngrabKeyboard for the most recent grab. Is called automatically on evaluation errors, as it is better to lose the grab in the error case as the session. @@ -1864,7 +1905,7 @@ Various X or X-related functions. The C<$term> object only serves as the source of the display, otherwise those functions map more-or-less -directory onto the X functions of the same name. +directly onto the X functions of the same name. =back @@ -2031,17 +2072,14 @@ Set the callback to be called when the timer triggers. -=item $tstamp = $timer->at - -Return the time this watcher will fire next. - -=item $timer = $timer->set ($tstamp) +=item $timer = $timer->set ($tstamp[, $interval]) -Set the time the event is generated to $tstamp. +Set the time the event is generated to $tstamp (and optionally specifies a +new $interval). =item $timer = $timer->interval ($interval) -Normally (and when C<$interval> is C<0>), the timer will automatically +By default (and when C<$interval> is C<0>), the timer will automatically stop after it has fired once. If C<$interval> is non-zero, then the timer is automatically rescheduled at the given intervals. @@ -2049,11 +2087,12 @@ Start the timer. -=item $timer = $timer->start ($tstamp) +=item $timer = $timer->start ($tstamp[, $interval]) -Set the event trigger time to C<$tstamp> and start the timer. +Set the event trigger time to C<$tstamp> and start the timer. Optionally +also replaces the interval. -=item $timer = $timer->after ($delay) +=item $timer = $timer->after ($delay[, $interval]) Like C, but sets the expiry timer to c.