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.175 by root, Sat May 30 08:51:23 2009 UTC vs.
Revision 1.180 by root, Sat Dec 26 09:42:16 2009 UTC

1124is that you cannot use blocking APIs, but the non-blocking variant should 1124is that you cannot use blocking APIs, but the non-blocking variant should
1125work. 1125work.
1126 1126
1127=cut 1127=cut
1128 1128
1129our $VERSION = '3.4'; 1129our $VERSION = '5.23';
1130 1130
1131$INC{"urxvt/anyevent.pm"} = 1; # mark us as there 1131$INC{"urxvt/anyevent.pm"} = 1; # mark us as there
1132push @AnyEvent::REGISTRY, [urxvt => urxvt::anyevent::]; 1132push @AnyEvent::REGISTRY, [urxvt => urxvt::anyevent::];
1133 1133
1134sub timer { 1134sub timer {
1136 1136
1137 my $cb = $arg{cb}; 1137 my $cb = $arg{cb};
1138 1138
1139 urxvt::timer 1139 urxvt::timer
1140 ->new 1140 ->new
1141 ->start (urxvt::NOW + $arg{after}) 1141 ->after ($arg{after}, $arg{interval})
1142 ->cb (sub { 1142 ->cb ($arg{interval} ? $cb : sub {
1143 $_[0]->stop; # need to cancel manually 1143 $_[0]->stop; # need to cancel manually
1144 $cb->(); 1144 $cb->();
1145 }) 1145 })
1146} 1146}
1147 1147
1148sub io { 1148sub io {
1149 my ($class, %arg) = @_; 1149 my ($class, %arg) = @_;
1150 1150
1151 my $cb = $arg{cb}; 1151 my $cb = $arg{cb};
1152 my $fd = fileno $arg{fh};
1153 defined $fd or $fd = $arg{fh};
1152 1154
1153 bless [$arg{fh}, urxvt::iow 1155 bless [$arg{fh}, urxvt::iow
1154 ->new 1156 ->new
1155 ->fd (fileno $arg{fh}) 1157 ->fd ($fd)
1156 ->events (($arg{poll} =~ /r/ ? 1 : 0) 1158 ->events (($arg{poll} =~ /r/ ? 1 : 0)
1157 | ($arg{poll} =~ /w/ ? 2 : 0)) 1159 | ($arg{poll} =~ /w/ ? 2 : 0))
1158 ->start 1160 ->start
1159 ->cb (sub { 1161 ->cb ($cb)
1160 $cb->(($_[1] & 1 ? 'r' : '')
1161 . ($_[1] & 2 ? 'w' : ''));
1162 })],
1163 urxvt::anyevent:: 1162 ], urxvt::anyevent::
1163}
1164
1165sub idle {
1166 my ($class, %arg) = @_;
1167
1168 my $cb = $arg{cb};
1169
1170 urxvt::iw
1171 ->new
1172 ->start
1173 ->cb ($cb)
1174}
1175
1176sub child {
1177 my ($class, %arg) = @_;
1178
1179 my $cb = $arg{cb};
1180
1181 urxvt::pw
1182 ->new
1183 ->start ($arg{pid})
1184 ->cb (sub {
1185 $_[0]->stop; # need to cancel manually
1186 $cb->($_[0]->rpid, $_[0]->rstatus);
1187 })
1164} 1188}
1165 1189
1166sub DESTROY { 1190sub DESTROY {
1167 $_[0][1]->stop; 1191 $_[0][1]->stop;
1168} 1192}
1348 1372
1349=item ($row, $col) = $term->selection_beg ([$row, $col]) 1373=item ($row, $col) = $term->selection_beg ([$row, $col])
1350 1374
1351=item ($row, $col) = $term->selection_end ([$row, $col]) 1375=item ($row, $col) = $term->selection_end ([$row, $col])
1352 1376
1353Return the current values of the selection mark, begin or end positions, 1377Return the current values of the selection mark, begin or end positions.
1354and optionally set them to new values. 1378
1379When arguments are given, then the selection coordinates are set to
1380C<$row> and C<$col>, and the selection screen is set to the current
1381screen.
1382
1383=item $screen = $term->selection_screen ([$screen])
1384
1385Returns the current selection screen, and then optionally sets it.
1355 1386
1356=item $term->selection_make ($eventtime[, $rectangular]) 1387=item $term->selection_make ($eventtime[, $rectangular])
1357 1388
1358Tries to make a selection as set by C<selection_beg> and 1389Tries to make a selection as set by C<selection_beg> and
1359C<selection_end>. If C<$rectangular> is true (default: false), a 1390C<selection_end>. If C<$rectangular> is true (default: false), a
2029 2060
2030=item $timer = $timer->cb (sub { my ($timer) = @_; ... }) 2061=item $timer = $timer->cb (sub { my ($timer) = @_; ... })
2031 2062
2032Set the callback to be called when the timer triggers. 2063Set the callback to be called when the timer triggers.
2033 2064
2034=item $tstamp = $timer->at
2035
2036Return the time this watcher will fire next.
2037
2038=item $timer = $timer->set ($tstamp) 2065=item $timer = $timer->set ($tstamp[, $interval])
2039 2066
2040Set the time the event is generated to $tstamp. 2067Set the time the event is generated to $tstamp (and optionally specifies a
2068new $interval).
2041 2069
2042=item $timer = $timer->interval ($interval) 2070=item $timer = $timer->interval ($interval)
2043 2071
2044Normally (and when C<$interval> is C<0>), the timer will automatically 2072By default (and when C<$interval> is C<0>), the timer will automatically
2045stop after it has fired once. If C<$interval> is non-zero, then the timer 2073stop after it has fired once. If C<$interval> is non-zero, then the timer
2046is automatically rescheduled at the given intervals. 2074is automatically rescheduled at the given intervals.
2047 2075
2048=item $timer = $timer->start 2076=item $timer = $timer->start
2049 2077
2050Start the timer. 2078Start the timer.
2051 2079
2052=item $timer = $timer->start ($tstamp) 2080=item $timer = $timer->start ($tstamp[, $interval])
2053 2081
2054Set the event trigger time to C<$tstamp> and start the timer. 2082Set the event trigger time to C<$tstamp> and start the timer. Optionally
2083also replaces the interval.
2055 2084
2056=item $timer = $timer->after ($delay) 2085=item $timer = $timer->after ($delay[, $interval])
2057 2086
2058Like C<start>, but sets the expiry timer to c<urxvt::NOW + $delay>. 2087Like C<start>, but sets the expiry timer to c<urxvt::NOW + $delay>.
2059 2088
2060=item $timer = $timer->stop 2089=item $timer = $timer->stop
2061 2090

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines