*** empty log message ***
authorroot <root>
Fri, 20 Jan 2006 15:57:21 +0000 (15:57 +0000)
committerroot <root>
Fri, 20 Jan 2006 15:57:21 +0000 (15:57 +0000)
configure
configure.ac
doc/rxvt.1.html
doc/rxvt.1.man.in
doc/rxvt.1.txt
doc/rxvtperl.3.html
doc/rxvtperl.3.man.in
doc/rxvtperl.3.txt
src/urxvt.pm
src/version.h

index 26c9a603e678a07f20d8d8b405dae57ac692d8d5..0aa69c89900ba97507e041eb37e23abbcee614b0 100755 (executable)
--- a/configure
+++ b/configure
@@ -3335,7 +3335,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  echo didididid
+  :
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
index 31d90f41757da14c7968ec5941363f405caf485b..fa32f803f61c3871c310558ebe8ca3a31eb04cee 100644 (file)
@@ -55,7 +55,7 @@ dnl#
 if test -z "$orig_CXXFLAGS"; then
   if test x$GCC = xyes && test "x$GXX" = xyes; then
     CXXFLAGS="-g -O3 -fno-threadsafe-statics -fno-enforce-eh-specs"
-    AC_COMPILE_IFELSE([int i;], [echo didididid], [CXXFLAGS="-g -O3"])
+    AC_COMPILE_IFELSE([int i;], [], [CXXFLAGS="-g -O3"])
   else
     CXXFLAGS="-O"
   fi
index 0b86d86ed2534e41b4cde132dc78f14d2fffdd3b..23846d0dfa69b81d26dc7cfe7beeb108437477f2 100644 (file)
@@ -1897,7 +1897,7 @@ extension, random hacks, numerous bugfixes and extensions.
 <dt><strong><a name="item_emanuele_giaquinta__3ce_2egiaquinta_40glauco_2eit_">Emanuele Giaquinta <em><a href="mailto:<e.giaquinta@glauco.it"><e.giaquinta@glauco.it</a></em>&gt;</a></strong><br />
 </dt>
 <dd>
-Pty/tty/utmp/wtmp rewrite, lots of random hacking and bugxifing.
+Pty/tty/utmp/wtmp rewrite, lots of random hacking and bugfixing.
 </dd>
 <p></p></dl>
 
index 6811138c9bf78ecdb2b455142dbf33ae0a5ed4d8..eaac805d0576d8a5f2d8171cdf3a29da087c6bbc 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "rxvt 1"
-.TH rxvt 1 "2006-01-19" "7.1" "RXVT-UNICODE"
+.TH rxvt 1 "2006-01-20" "7.1" "RXVT-UNICODE"
 .SH "NAME"
 rxvt\-unicode (ouR XVT, unicode) \- (a VT102 emulator for the X window system)
 .SH "SYNOPSIS"
@@ -1429,4 +1429,4 @@ extension, random hacks, numerous bugfixes and extensions.
 Project Coordinator (Changes 1.0 \-)
 .IP "Emanuele Giaquinta <e.giaquinta@glauco.it>" 4
 .IX Item "Emanuele Giaquinta <e.giaquinta@glauco.it>"
-Pty/tty/utmp/wtmp rewrite, lots of random hacking and bugxifing.
+Pty/tty/utmp/wtmp rewrite, lots of random hacking and bugfixing.
index 181d3effd0fd7c9ba229b7c1560b5ef27db3dd98..1142ee76e309ed37fa1116257ec0c0f54cbce741 100644 (file)
@@ -1258,5 +1258,5 @@ AUTHORS
         Project Coordinator (Changes 1.0 -)
 
     Emanuele Giaquinta <e.giaquinta@glauco.it>
-        Pty/tty/utmp/wtmp rewrite, lots of random hacking and bugxifing.
+        Pty/tty/utmp/wtmp rewrite, lots of random hacking and bugfixing.
 
index 82d0c82004acbfdc7e2a4c59a1666dacadc17b69..4381c11e10a80c6e9307a178899de44cf6e44d2f 100644 (file)
@@ -30,6 +30,8 @@
                <li><a href="#the_urxvt__popup_class">The <code>urxvt::popup</code> Class</a></li>
                <li><a href="#the_urxvt__timer_class">The <code>urxvt::timer</code> Class</a></li>
                <li><a href="#the_urxvt__iow_class">The <code>urxvt::iow</code> Class</a></li>
+               <li><a href="#the_urxvt__iw_class">The <code>urxvt::iw</code> Class</a></li>
+               <li><a href="#the_urxvt__pw_class">The <code>urxvt::pw</code> Class</a></li>
        </ul>
 
        <li><a href="#environment">ENVIRONMENT</a></li>
@@ -82,6 +84,9 @@ find them in <em>/opt/rxvt/lib/urxvt/perl/</em>.</p>
 <p>You can activate them like this:</p>
 <pre>
   rxvt -pe &lt;extensionname&gt;</pre>
+<p>Or by adding them to the resource for extensions loaded by default:</p>
+<pre>
+  URxvt.perl-ext-common: default,automove-background,selection-autotransform</pre>
 <dl>
 <dt><strong><a name="item_selection">selection (enabled by default)</a></strong><br />
 </dt>
@@ -243,6 +248,19 @@ every error message as a selection pattern, and the second line transforms
 the message into vi commands to load the file.</p>
 </dd>
 <p></p>
+<dt><strong><a name="item_tabbed">tabbed</a></strong><br />
+</dt>
+<dd>
+This transforms the terminal into a tabbar with additional terminals, that
+is, it implements what is commonly refered to as ``tabbed terminal''. The topmost line
+displays a ``[NEW]'' button, which, when clicked, will add a new tab, followed by one
+button per tab.
+</dd>
+<dd>
+<p>Clicking a button will activate that tab. Pressing Shift-Left and
+Shift-Right will switch to the tab left or right of the current one.</p>
+</dd>
+<p></p>
 <dt><strong><a name="item_mark_2durls">mark-urls</a></strong><br />
 </dt>
 <dd>
@@ -410,9 +428,9 @@ Dynamically disable the given hooks.
 called whenever the relevant event happens.</p>
 <p>The first argument passed to them is an extension oject as described in
 the in the <code>Extension Objects</code> section.</p>
-<p><strong>All</strong> of these hooks must return a boolean value. If it is true, then the
-event counts as being <em>consumed</em>, and the invocation of other hooks is
-skipped, and the relevant action might not be carried out by the C++ code.</p>
+<p><strong>All</strong> of these hooks must return a boolean value. If any of the called
+hooks returns true, then the event counts as being <em>consumed</em>, and the
+relevant action might not be carried out by the C++ code.</p>
 <p><em>When in doubt, return a false value (preferably <code>()</code>). </em>&gt;</p>
 <dl>
 <dt><strong><a name="item_on_init__24term">on_init $term</a></strong><br />
@@ -421,23 +439,32 @@ skipped, and the relevant action might not be carried out by the C++ code.</p>
 Called after a new terminal object has been initialized, but before
 windows are created or the command gets run. Most methods are unsafe to
 call or deliver senseless data, as terminal size and other characteristics
-have not yet been determined. You can safely query and change resources,
-though.
+have not yet been determined. You can safely query and change resources
+and options, though. For many purposes the <code>on_start</code> hook is a better
+place.
 </dd>
 <p></p>
-<dt><strong><a name="item_on_reset__24term">on_reset $term</a></strong><br />
+<dt><strong><a name="item_on_start__24term">on_start $term</a></strong><br />
 </dt>
 <dd>
-Called after the screen is ``reset'' for any reason, such as resizing or
-control sequences. Here is where you can react on changes to size-related
-variables.
+Called at the very end of initialisation of a new terminal, just before
+trying to map (display) the toplevel and returning to the mainloop.
 </dd>
 <p></p>
-<dt><strong><a name="item_on_start__24term">on_start $term</a></strong><br />
+<dt><strong><a name="item_on_destroy__24term">on_destroy $term</a></strong><br />
 </dt>
 <dd>
-Called at the very end of initialisation of a new terminal, just before
-returning to the mainloop.
+Called whenever something tries to destroy terminal, before doing anything
+yet. If this hook returns true, then destruction is skipped, but this is
+rarely a good idea.
+</dd>
+<p></p>
+<dt><strong><a name="item_on_reset__24term">on_reset $term</a></strong><br />
+</dt>
+<dd>
+Called after the screen is ``reset'' for any reason, such as resizing or
+control sequences. Here is where you can react on changes to size-related
+variables.
 </dd>
 <p></p>
 <dt><strong><a name="item_on_child_start__24term_2c__24pid">on_child_start $term, $pid</a></strong><br />
@@ -639,6 +666,17 @@ output, if any, in locale-specific encoding.</p>
 <dd>
 <p>subwindow.</p>
 </dd>
+<p></p>
+<dt><strong><a name="item_on_client_message__24term_2c__24event">on_client_message $term, $event</a></strong><br />
+</dt>
+<dt><strong><a name="item_on_wm_protocols__24term_2c__24event">on_wm_protocols $term, $event</a></strong><br />
+</dt>
+<dt><strong><a name="item_on_wm_delete_window__24term_2c__24event">on_wm_delete_window $term, $event</a></strong><br />
+</dt>
+<dd>
+Called when various types of ClientMessage events are received (all with
+format=32, WM_PROTOCOLS or WM_PROTOCOLS:WM_DELETE_WINDOW).
+</dd>
 <p></p></dl>
 <p>
 </p>
@@ -669,6 +707,27 @@ The basename of the installed binaries, usually <code>urxvt</code>.
 The current terminal. This variable stores the current <code>urxvt::term</code>
 object, whenever a callback/hook is executing.
 </dd>
+<p></p>
+<dt><strong><a name="item__40urxvt_3a_3aterm_init">@urxvt::TERM_INIT</a></strong><br />
+</dt>
+<dd>
+All coderefs in this array will be called as methods of the next newly
+created <code>urxvt::term</code> object (during the <code>on_init</code> phase). The array
+gets cleared before the codereferences that were in it are being executed,
+so coderefs can push themselves onto it again if they so desire.
+</dd>
+<dd>
+<p>This complements to the perl-eval commandline option, but gets executed
+first.</p>
+</dd>
+<p></p>
+<dt><strong><a name="item__40urxvt_3a_3aterm_ext">@urxvt::TERM_EXT</a></strong><br />
+</dt>
+<dd>
+Works similar to <code>@TERM_INIT</code>, but contains perl package/class names, which
+get registered as normal extensions after calling the hooks in <code>@TERM_INIT</code>
+but before other extensions. Gets cleared just like <code>@TERM_INIT</code>.
+</dd>
 <p></p></dl>
 <p>
 </p>
@@ -1543,6 +1602,77 @@ Stop watching for events on the given filehandle.
 <p></p></dl>
 <p>
 </p>
+<h2><a name="the_urxvt__iw_class">The <code>urxvt::iw</code> Class</a></h2>
+<p>This class implements idle watchers, that get called automatically when
+the process is idle. They should return as fast as possible, after doing
+some useful work.</p>
+<dl>
+<dt><strong><a name="item__24iw__3d_new_urxvt_3a_3aiw">$iw = new urxvt::iw</a></strong><br />
+</dt>
+<dd>
+Create a new idle watcher object in stopped state.
+</dd>
+<p></p>
+<dt><strong>$iw = $iw-&gt;cb (sub { my ($iw) = @_; ... })</strong><br />
+</dt>
+<dd>
+Set the callback to be called when the watcher triggers.
+</dd>
+<p></p>
+<dt><strong>$timer = $timer-&gt;start</strong><br />
+</dt>
+<dd>
+Start the watcher.
+</dd>
+<p></p>
+<dt><strong>$timer = $timer-&gt;stop</strong><br />
+</dt>
+<dd>
+Stop the watcher.
+</dd>
+<p></p></dl>
+<p>
+</p>
+<h2><a name="the_urxvt__pw_class">The <code>urxvt::pw</code> Class</a></h2>
+<p>This class implements process watchers. They create an event whenever a
+process exits, after which they stop automatically.</p>
+<pre>
+   my $pid = fork;
+   ...
+   $term-&gt;{pw} = urxvt::pw
+                    -&gt;new
+                    -&gt;start ($pid)
+                    -&gt;cb (sub {
+                       my ($pw, $exit_status) = @_;
+                       ...
+                    });</pre>
+<dl>
+<dt><strong><a name="item__24pw__3d_new_urxvt_3a_3apw">$pw = new urxvt::pw</a></strong><br />
+</dt>
+<dd>
+Create a new process watcher in stopped state.
+</dd>
+<p></p>
+<dt><strong>$pw = $pw-&gt;cb (sub { my ($pw, $exit_status) = @_; ... })</strong><br />
+</dt>
+<dd>
+Set the callback to be called when the timer triggers.
+</dd>
+<p></p>
+<dt><strong>$pw = $timer-&gt;start ($pid)</strong><br />
+</dt>
+<dd>
+Tells the wqtcher to start watching for process <code>$pid</code>.
+</dd>
+<p></p>
+<dt><strong>$pw = $pw-&gt;stop</strong><br />
+</dt>
+<dd>
+Stop the watcher.
+</dd>
+<p></p></dl>
+<p>
+</p>
 <hr />
 <h1><a name="environment">ENVIRONMENT</a></h1>
 <p>
index ac316052fdaee19179237361a746db5dee8e26bb..b7cc04f5b8aa08033df53488852c8a5e01dfb741 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "rxvt 3"
-.TH rxvt 3 "2006-01-19" "7.1" "RXVT-UNICODE"
+.TH rxvt 3 "2006-01-20" "7.1" "RXVT-UNICODE"
 .SH "NAME"
 @@RXVT_NAME@@perl \- rxvt\-unicode's embedded perl interpreter
 .SH "SYNOPSIS"
@@ -172,6 +172,12 @@ You can activate them like this:
 .Vb 1
 \&  @@RXVT_NAME@@ -pe <extensionname>
 .Ve
+.PP
+Or by adding them to the resource for extensions loaded by default:
+.PP
+.Vb 1
+\&  URxvt.perl-ext-common: default,automove-background,selection-autotransform
+.Ve
 .IP "selection (enabled by default)" 4
 .IX Item "selection (enabled by default)"
 (More) intelligent selection. This extension tries to be more intelligent
@@ -303,6 +309,15 @@ To expand the example above to typical perl error messages (\*(L"\s-1XXX\s0 at
 The first line tells the selection code to treat the unchanging part of
 every error message as a selection pattern, and the second line transforms
 the message into vi commands to load the file.
+.IP "tabbed" 4
+.IX Item "tabbed"
+This transforms the terminal into a tabbar with additional terminals, that
+is, it implements what is commonly refered to as \*(L"tabbed terminal\*(R". The topmost line
+displays a \*(L"[\s-1NEW\s0]\*(R" button, which, when clicked, will add a new tab, followed by one
+button per tab.
+.Sp
+Clicking a button will activate that tab. Pressing Shift-Left and
+Shift-Right will switch to the tab left or right of the current one.
 .IP "mark-urls" 4
 .IX Item "mark-urls"
 Uses per-line display filtering (\f(CW\*(C`on_line_update\*(C'\fR) to underline urls and
@@ -431,9 +446,9 @@ called whenever the relevant event happens.
 The first argument passed to them is an extension oject as described in
 the in the \f(CW\*(C`Extension Objects\*(C'\fR section.
 .PP
-\&\fBAll\fR of these hooks must return a boolean value. If it is true, then the
-event counts as being \fIconsumed\fR, and the invocation of other hooks is
-skipped, and the relevant action might not be carried out by the \*(C+ code.
+\&\fBAll\fR of these hooks must return a boolean value. If any of the called
+hooks returns true, then the event counts as being \fIconsumed\fR, and the
+relevant action might not be carried out by the \*(C+ code.
 .PP
 \&\fIWhen in doubt, return a false value (preferably \f(CI\*(C`()\*(C'\fI).\fR
 .ie n .IP "on_init $term" 4
@@ -442,19 +457,26 @@ skipped, and the relevant action might not be carried out by the \*(C+ code.
 Called after a new terminal object has been initialized, but before
 windows are created or the command gets run. Most methods are unsafe to
 call or deliver senseless data, as terminal size and other characteristics
-have not yet been determined. You can safely query and change resources,
-though.
+have not yet been determined. You can safely query and change resources
+and options, though. For many purposes the \f(CW\*(C`on_start\*(C'\fR hook is a better
+place.
+.ie n .IP "on_start $term" 4
+.el .IP "on_start \f(CW$term\fR" 4
+.IX Item "on_start $term"
+Called at the very end of initialisation of a new terminal, just before
+trying to map (display) the toplevel and returning to the mainloop.
+.ie n .IP "on_destroy $term" 4
+.el .IP "on_destroy \f(CW$term\fR" 4
+.IX Item "on_destroy $term"
+Called whenever something tries to destroy terminal, before doing anything
+yet. If this hook returns true, then destruction is skipped, but this is
+rarely a good idea.
 .ie n .IP "on_reset $term" 4
 .el .IP "on_reset \f(CW$term\fR" 4
 .IX Item "on_reset $term"
 Called after the screen is \*(L"reset\*(R" for any reason, such as resizing or
 control sequences. Here is where you can react on changes to size-related
 variables.
-.ie n .IP "on_start $term" 4
-.el .IP "on_start \f(CW$term\fR" 4
-.IX Item "on_start $term"
-Called at the very end of initialisation of a new terminal, just before
-returning to the mainloop.
 .ie n .IP "on_child_start $term\fR, \f(CW$pid" 4
 .el .IP "on_child_start \f(CW$term\fR, \f(CW$pid\fR" 4
 .IX Item "on_child_start $term, $pid"
@@ -618,6 +640,19 @@ and column under the mouse cursor.
 output, if any, in locale-specific encoding.
 .Sp
 subwindow.
+.ie n .IP "on_client_message $term\fR, \f(CW$event" 4
+.el .IP "on_client_message \f(CW$term\fR, \f(CW$event\fR" 4
+.IX Item "on_client_message $term, $event"
+.PD 0
+.ie n .IP "on_wm_protocols $term\fR, \f(CW$event" 4
+.el .IP "on_wm_protocols \f(CW$term\fR, \f(CW$event\fR" 4
+.IX Item "on_wm_protocols $term, $event"
+.ie n .IP "on_wm_delete_window $term\fR, \f(CW$event" 4
+.el .IP "on_wm_delete_window \f(CW$term\fR, \f(CW$event\fR" 4
+.IX Item "on_wm_delete_window $term, $event"
+.PD
+Called when various types of ClientMessage events are received (all with
+format=32, \s-1WM_PROTOCOLS\s0 or \s-1WM_PROTOCOLS:WM_DELETE_WINDOW\s0).
 .ie n .Sh "Variables in the ""urxvt"" Package"
 .el .Sh "Variables in the \f(CWurxvt\fP Package"
 .IX Subsection "Variables in the urxvt Package"
@@ -636,6 +671,20 @@ The basename of the installed binaries, usually \f(CW\*(C`urxvt\*(C'\fR.
 .IX Item "$urxvt::TERM"
 The current terminal. This variable stores the current \f(CW\*(C`urxvt::term\*(C'\fR
 object, whenever a callback/hook is executing.
+.IP "@urxvt::TERM_INIT" 4
+.IX Item "@urxvt::TERM_INIT"
+All coderefs in this array will be called as methods of the next newly
+created \f(CW\*(C`urxvt::term\*(C'\fR object (during the \f(CW\*(C`on_init\*(C'\fR phase). The array
+gets cleared before the codereferences that were in it are being executed,
+so coderefs can push themselves onto it again if they so desire.
+.Sp
+This complements to the perl-eval commandline option, but gets executed
+first.
+.IP "@urxvt::TERM_EXT" 4
+.IX Item "@urxvt::TERM_EXT"
+Works similar to \f(CW@TERM_INIT\fR, but contains perl package/class names, which
+get registered as normal extensions after calling the hooks in \f(CW@TERM_INIT\fR
+but before other extensions. Gets cleared just like \f(CW@TERM_INIT\fR.
 .ie n .Sh "Functions in the ""urxvt"" Package"
 .el .Sh "Functions in the \f(CWurxvt\fP Package"
 .IX Subsection "Functions in the urxvt Package"
@@ -1308,6 +1357,59 @@ Start watching for requested events on the given handle.
 .el .IP "$iow = \f(CW$iow\fR\->stop" 4
 .IX Item "$iow = $iow->stop"
 Stop watching for events on the given filehandle.
+.ie n .Sh "The ""urxvt::iw"" Class"
+.el .Sh "The \f(CWurxvt::iw\fP Class"
+.IX Subsection "The urxvt::iw Class"
+This class implements idle watchers, that get called automatically when
+the process is idle. They should return as fast as possible, after doing
+some useful work.
+.IP "$iw = new urxvt::iw" 4
+.IX Item "$iw = new urxvt::iw"
+Create a new idle watcher object in stopped state.
+.ie n .IP "$iw = $iw\fR\->cb (sub { my ($iw) = \f(CW@_; ... })" 4
+.el .IP "$iw = \f(CW$iw\fR\->cb (sub { my ($iw) = \f(CW@_\fR; ... })" 4
+.IX Item "$iw = $iw->cb (sub { my ($iw) = @_; ... })"
+Set the callback to be called when the watcher triggers.
+.ie n .IP "$timer = $timer\->start" 4
+.el .IP "$timer = \f(CW$timer\fR\->start" 4
+.IX Item "$timer = $timer->start"
+Start the watcher.
+.ie n .IP "$timer = $timer\->stop" 4
+.el .IP "$timer = \f(CW$timer\fR\->stop" 4
+.IX Item "$timer = $timer->stop"
+Stop the watcher.
+.ie n .Sh "The ""urxvt::pw"" Class"
+.el .Sh "The \f(CWurxvt::pw\fP Class"
+.IX Subsection "The urxvt::pw Class"
+This class implements process watchers. They create an event whenever a
+process exits, after which they stop automatically.
+.PP
+.Vb 9
+\&   my $pid = fork;
+\&   ...
+\&   $term->{pw} = urxvt::pw
+\&                    ->new
+\&                    ->start ($pid)
+\&                    ->cb (sub {
+\&                       my ($pw, $exit_status) = @_;
+\&                       ...
+\&                    });
+.Ve
+.IP "$pw = new urxvt::pw" 4
+.IX Item "$pw = new urxvt::pw"
+Create a new process watcher in stopped state.
+.ie n .IP "$pw = $pw\fR\->cb (sub { my ($pw, \f(CW$exit_status\fR) = \f(CW@_; ... })" 4
+.el .IP "$pw = \f(CW$pw\fR\->cb (sub { my ($pw, \f(CW$exit_status\fR) = \f(CW@_\fR; ... })" 4
+.IX Item "$pw = $pw->cb (sub { my ($pw, $exit_status) = @_; ... })"
+Set the callback to be called when the timer triggers.
+.ie n .IP "$pw = $timer\->start ($pid)" 4
+.el .IP "$pw = \f(CW$timer\fR\->start ($pid)" 4
+.IX Item "$pw = $timer->start ($pid)"
+Tells the wqtcher to start watching for process \f(CW$pid\fR.
+.ie n .IP "$pw = $pw\->stop" 4
+.el .IP "$pw = \f(CW$pw\fR\->stop" 4
+.IX Item "$pw = $pw->stop"
+Stop the watcher.
 .SH "ENVIRONMENT"
 .IX Header "ENVIRONMENT"
 .Sh "\s-1URXVT_PERL_VERBOSITY\s0"
index 8b86656d9d1e1598f3a999b145df6c507b7e7639..6db9b434fbed01e6ce788de7737d4a025fa2a0c7 100644 (file)
@@ -31,6 +31,10 @@ PREPACKAGED EXTENSIONS
 
       rxvt -pe <extensionname>
 
+    Or by adding them to the resource for extensions loaded by default:
+
+      URxvt.perl-ext-common: default,automove-background,selection-autotransform
+
     selection (enabled by default)
         (More) intelligent selection. This extension tries to be more
         intelligent when the user extends selections (double-click and
@@ -145,6 +149,16 @@ PREPACKAGED EXTENSIONS
         of every error message as a selection pattern, and the second line
         transforms the message into vi commands to load the file.
 
+    tabbed
+        This transforms the terminal into a tabbar with additional
+        terminals, that is, it implements what is commonly refered to as
+        "tabbed terminal". The topmost line displays a "[NEW]" button,
+        which, when clicked, will add a new tab, followed by one button per
+        tab.
+
+        Clicking a button will activate that tab. Pressing Shift-Left and
+        Shift-Right will switch to the tab left or right of the current one.
+
     mark-urls
         Uses per-line display filtering ("on_line_update") to underline urls
         and make them clickable. When middle-clicked, the program specified
@@ -262,10 +276,9 @@ API DOCUMENTATION
     The first argument passed to them is an extension oject as described in
     the in the "Extension Objects" section.
 
-    All of these hooks must return a boolean value. If it is true, then the
-    event counts as being *consumed*, and the invocation of other hooks is
-    skipped, and the relevant action might not be carried out by the C++
-    code.
+    All of these hooks must return a boolean value. If any of the called
+    hooks returns true, then the event counts as being *consumed*, and the
+    relevant action might not be carried out by the C++ code.
 
     *When in doubt, return a false value (preferably "()").*
 
@@ -274,17 +287,24 @@ API DOCUMENTATION
         windows are created or the command gets run. Most methods are unsafe
         to call or deliver senseless data, as terminal size and other
         characteristics have not yet been determined. You can safely query
-        and change resources, though.
+        and change resources and options, though. For many purposes the
+        "on_start" hook is a better place.
+
+    on_start $term
+        Called at the very end of initialisation of a new terminal, just
+        before trying to map (display) the toplevel and returning to the
+        mainloop.
+
+    on_destroy $term
+        Called whenever something tries to destroy terminal, before doing
+        anything yet. If this hook returns true, then destruction is
+        skipped, but this is rarely a good idea.
 
     on_reset $term
         Called after the screen is "reset" for any reason, such as resizing
         or control sequences. Here is where you can react on changes to
         size-related variables.
 
-    on_start $term
-        Called at the very end of initialisation of a new terminal, just
-        before returning to the mainloop.
-
     on_child_start $term, $pid
         Called just after the child process has been "fork"ed.
 
@@ -419,6 +439,12 @@ API DOCUMENTATION
 
         subwindow.
 
+    on_client_message $term, $event
+    on_wm_protocols $term, $event
+    on_wm_delete_window $term, $event
+        Called when various types of ClientMessage events are received (all
+        with format=32, WM_PROTOCOLS or WM_PROTOCOLS:WM_DELETE_WINDOW).
+
   Variables in the "urxvt" Package
     $urxvt::LIBDIR
         The rxvt-unicode library directory, where, among other things, the
@@ -435,6 +461,22 @@ API DOCUMENTATION
         The current terminal. This variable stores the current "urxvt::term"
         object, whenever a callback/hook is executing.
 
+    @urxvt::TERM_INIT
+        All coderefs in this array will be called as methods of the next
+        newly created "urxvt::term" object (during the "on_init" phase). The
+        array gets cleared before the codereferences that were in it are
+        being executed, so coderefs can push themselves onto it again if
+        they so desire.
+
+        This complements to the perl-eval commandline option, but gets
+        executed first.
+
+    @urxvt::TERM_EXT
+        Works similar to @TERM_INIT, but contains perl package/class names,
+        which get registered as normal extensions after calling the hooks in
+        @TERM_INIT but before other extensions. Gets cleared just like
+        @TERM_INIT.
+
   Functions in the "urxvt" Package
     urxvt::fatal $errormessage
         Fatally aborts execution with the given error message. Avoid at all
@@ -994,6 +1036,49 @@ API DOCUMENTATION
     $iow = $iow->stop
         Stop watching for events on the given filehandle.
 
+  The "urxvt::iw" Class
+    This class implements idle watchers, that get called automatically when
+    the process is idle. They should return as fast as possible, after doing
+    some useful work.
+
+    $iw = new urxvt::iw
+        Create a new idle watcher object in stopped state.
+
+    $iw = $iw->cb (sub { my ($iw) = @_; ... })
+        Set the callback to be called when the watcher triggers.
+
+    $timer = $timer->start
+        Start the watcher.
+
+    $timer = $timer->stop
+        Stop the watcher.
+
+  The "urxvt::pw" Class
+    This class implements process watchers. They create an event whenever a
+    process exits, after which they stop automatically.
+
+       my $pid = fork;
+       ...
+       $term->{pw} = urxvt::pw
+                        ->new
+                        ->start ($pid)
+                        ->cb (sub {
+                           my ($pw, $exit_status) = @_;
+                           ...
+                        });                                                                                                                                      
+
+    $pw = new urxvt::pw
+        Create a new process watcher in stopped state.
+
+    $pw = $pw->cb (sub { my ($pw, $exit_status) = @_; ... })
+        Set the callback to be called when the timer triggers.
+
+    $pw = $timer->start ($pid)
+        Tells the wqtcher to start watching for process $pid.
+
+    $pw = $pw->stop
+        Stop the watcher.
+
 ENVIRONMENT
   URXVT_PERL_VERBOSITY
     This variable controls the verbosity level of the perl extension. Higher
index d028b7cae3a87dc548ee2ecc8c48f5b09e578976..9334c44c19defc3e70a62f049e3f41be808650eb 100644 (file)
@@ -164,6 +164,16 @@ The first line tells the selection code to treat the unchanging part of
 every error message as a selection pattern, and the second line transforms
 the message into vi commands to load the file.
 
+=item tabbed
+
+This transforms the terminal into a tabbar with additional terminals, that
+is, it implements what is commonly refered to as "tabbed terminal". The topmost line
+displays a "[NEW]" button, which, when clicked, will add a new tab, followed by one
+button per tab.
+
+Clicking a button will activate that tab. Pressing Shift-Left and
+Shift-Right will switch to the tab left or right of the current one.
+
 =item mark-urls
 
 Uses per-line display filtering (C<on_line_update>) to underline urls and
index 09f111ceae3689ca7822767cfe1d4c6a7c263fdf..d8be22d53bf3df094638b4666dd607fe7561cd4e 100644 (file)
@@ -1,3 +1,3 @@
 // VERSION _must_ be \d.\d+
-#define VERSION "7.1"
+#define VERSION "7.2"
 #define DATE   "2006-01-19"