*** empty log message ***
authorroot <root>
Sun, 8 Jan 2006 06:35:23 +0000 (06:35 +0000)
committerroot <root>
Sun, 8 Jan 2006 06:35:23 +0000 (06:35 +0000)
doc/rxvtperl.3.html
doc/rxvtperl.3.man.in
doc/rxvtperl.3.txt
src/command.C
src/screen.C

index 3338aa9e3b42b75e321fd3b3d0e4652f4dd4e84a..de4247a99356f84d3f28b9db1b4e899e8629531f 100644 (file)
@@ -23,6 +23,7 @@
                <li><a href="#variables_in_the_urxvt_package">Variables in the <code>urxvt</code> Package</a></li>
                <li><a href="#functions_in_the_urxvt_package">Functions in the <code>urxvt</code> Package</a></li>
                <li><a href="#rendition">RENDITION</a></li>
+               <li><a href="#the_urxvt__anyevent_class">The <code>urxvt::anyevent</code> Class</a></li>
                <li><a href="#the_urxvt__term_class">The <code>urxvt::term</code> Class</a></li>
                <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>
@@ -79,7 +80,7 @@ find them in <em>/opt/rxvt/lib/urxvt/perl/</em>.</p>
 <pre>
   rxvt -pe &lt;extensionname&gt;</pre>
 <dl>
-<dt><strong><a name="item_selection">selection</a></strong><br />
+<dt><strong><a name="item_selection">selection (enabled by default)</a></strong><br />
 </dt>
 <dd>
 Intelligent selection. This extension tries to be more intelligent when
@@ -101,6 +102,13 @@ Rot-13 the selection when activated. Used via keyboard trigger:
    URxvt.keysym.C-M-r: perl:selection:rot13</pre>
 </dd>
 <p></p></dl>
+<dt><strong><a name="item_popup">option-popup (enabled by default)</a></strong><br />
+</dt>
+<dd>
+Binds a popup menu to Ctrl-Button3 that lets you toggle (some) options at
+runtime.
+</dd>
+<p></p>
 <dt><strong><a name="item_digital_2dclock">digital-clock</a></strong><br />
 </dt>
 <dd>
@@ -439,7 +447,7 @@ Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask,
 Button4Mask, Button5Mask, AnyModifier</a></strong><br />
 </dt>
 <dd>
-Various constants for use in X events.
+Various constants for use in X calls and event processing.
 </dd>
 <p></p></dl>
 <p>
@@ -506,6 +514,14 @@ Change the custom value.
 <p></p></dl>
 <p>
 </p>
+<h2><a name="the_urxvt__anyevent_class">The <code>urxvt::anyevent</code> Class</a></h2>
+<p>The sole purpose of this class is to deliver an interface to the
+<code>AnyEvent</code> module - any module using it will work inside urxvt without
+further work. The only exception is that you cannot wait on condition
+variables, but non-blocking condvar use is ok. What this means is that you
+cannot use blocking APIs, but the non-blocking variant should work.</p>
+<p>
+</p>
 <h2><a name="the_urxvt__term_class">The <code>urxvt::term</code> Class</a></h2>
 <dl>
 <dt><strong><a name="item_destroy">$term-&gt;destroy</a></strong><br />
@@ -679,7 +695,7 @@ If visible, hide the overlay, but do not destroy it.
 If hidden, display the overlay again.
 </dd>
 <p></p></dl>
-<dt><strong><a name="item_popup">$popup = $term-&gt;popup ($event)</a></strong><br />
+<dt><strong>$popup = $term-&gt;popup ($event)</strong><br />
 </dt>
 <dd>
 Creates a new <code>urxvt::popup</code> object that implements a popup menu. The
index 3371765a4bc81b10b52e3ff3f7c592b0304a59d7..ff55a6521e9b8de02f679cea72dbd64635971b37 100644 (file)
@@ -172,8 +172,8 @@ You can activate them like this:
 .Vb 1
 \&  @@RXVT_NAME@@ -pe <extensionname>
 .Ve
-.IP "selection" 4
-.IX Item "selection"
+.IP "selection (enabled by default)" 4
+.IX Item "selection (enabled by default)"
 Intelligent selection. This extension tries to be more intelligent when
 the user extends selections (double\-click). Right now, it tries to select
 urls and complete shell-quoted arguments, which is very convenient, too,
@@ -191,6 +191,10 @@ Rot\-13 the selection when activated. Used via keyboard trigger:
 .RE
 .RS 4
 .RE
+.IP "option-popup (enabled by default)" 4
+.IX Item "option-popup (enabled by default)"
+Binds a popup menu to Ctrl\-Button3 that lets you toggle (some) options at
+runtime.
 .IP "digital-clock" 4
 .IX Item "digital-clock"
 Displays a digital clock using the built-in overlay.
@@ -454,7 +458,7 @@ Returns the \*(L"current time\*(R" (as per the event loop).
 .IP "urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, Button4Mask, Button5Mask, AnyModifier" 4
 .IX Item "urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, Button4Mask, Button5Mask, AnyModifier"
 .PD
-Various constants for use in X events.
+Various constants for use in X calls and event processing.
 .Sh "\s-1RENDITION\s0"
 .IX Subsection "RENDITION"
 Rendition bitsets contain information about colour, font, font styles and
@@ -504,6 +508,14 @@ zero.
 .el .IP "$rend = urxvt::SET_CUSTOM ($rend, \f(CW$new_value\fR)" 4
 .IX Item "$rend = urxvt::SET_CUSTOM ($rend, $new_value)"
 Change the custom value.
+.ie n .Sh "The ""urxvt::anyevent"" Class"
+.el .Sh "The \f(CWurxvt::anyevent\fP Class"
+.IX Subsection "The urxvt::anyevent Class"
+The sole purpose of this class is to deliver an interface to the
+\&\f(CW\*(C`AnyEvent\*(C'\fR module \- any module using it will work inside urxvt without
+further work. The only exception is that you cannot wait on condition
+variables, but non-blocking condvar use is ok. What this means is that you
+cannot use blocking APIs, but the non-blocking variant should work.
 .ie n .Sh "The ""urxvt::term"" Class"
 .el .Sh "The \f(CWurxvt::term\fP Class"
 .IX Subsection "The urxvt::term Class"
index d77a90d84a04471174890b0f121c3e16320570ae..342d6401654e893ea409fad841bbb50edd42360e 100644 (file)
@@ -31,7 +31,7 @@ DESCRIPTION
 
       rxvt -pe <extensionname>
 
-    selection
+    selection (enabled by default)
         Intelligent selection. This extension tries to be more intelligent
         when the user extends selections (double-click). Right now, it tries
         to select urls and complete shell-quoted arguments, which is very
@@ -44,6 +44,10 @@ DESCRIPTION
 
                URxvt.keysym.C-M-r: perl:selection:rot13
 
+    option-popup (enabled by default)
+        Binds a popup menu to Ctrl-Button3 that lets you toggle (some)
+        options at runtime.
+
     digital-clock
         Displays a digital clock using the built-in overlay.
 
@@ -277,7 +281,7 @@ DESCRIPTION
     urxvt::ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask,
     Mod4Mask, Mod5Mask, Button1Mask, Button2Mask, Button3Mask, Button4Mask,
     Button5Mask, AnyModifier
-        Various constants for use in X events.
+        Various constants for use in X calls and event processing.
 
   RENDITION
     Rendition bitsets contain information about colour, font, font styles
@@ -318,6 +322,13 @@ DESCRIPTION
     $rend = urxvt::SET_CUSTOM ($rend, $new_value)
         Change the custom value.
 
+  The "urxvt::anyevent" Class
+    The sole purpose of this class is to deliver an interface to the
+    "AnyEvent" module - any module using it will work inside urxvt without
+    further work. The only exception is that you cannot wait on condition
+    variables, but non-blocking condvar use is ok. What this means is that
+    you cannot use blocking APIs, but the non-blocking variant should work.
+
   The "urxvt::term" Class
     $term->destroy
         Destroy the terminal object (close the window, free resources etc.).
index f15a9b3a14138220ed164fdc146731cdd12b61ec..e3bf8924a9031e16c5589b2299c249ca6629b9e4 100644 (file)
@@ -975,18 +975,19 @@ rxvt_term::flush ()
       if (SHOULD_INVOKE (HOOK_LINE_UPDATE))
         {
           int row = -view_start;
+          int end_row = row + nrow;
 
           while (row > -nsaved && ROW (row - 1).is_longer ())
             --row;
 
-          while (row < -view_start + nrow)
+          do
             {
               int start_row = row;
               line_t *l;
 
               do
                 {
-                  l = &ROW (row);
+                  l = &ROW (row++);
 
                   if (!(l->f & LINE_FILTERED))
                     {
@@ -994,7 +995,7 @@ rxvt_term::flush ()
                       l->f |= LINE_FILTERED;
                       while (l->is_longer ())
                         {
-                          l = &ROW (++row);
+                          l = &ROW (row++);
                           l->f |= LINE_FILTERED;
                         }
 
@@ -1004,11 +1005,9 @@ rxvt_term::flush ()
                       break;
                     }
                 }
-              while (l->is_longer ());
-
-              row++;
+              while (l->is_longer () && row < end_row);
             }
-         
+          while (++row < end_row);
         }
 
       scr_refresh (refresh_type);
index f8f9f33cb4bea5d2a7e73a8fad9bc49aa45634a2..aeaf02d9ba0fbcc06ea39560faa0c00c56b3c9b2 100644 (file)
@@ -147,6 +147,9 @@ void
 rxvt_term::scr_blank_screen_mem (line_t &l, rend_t efs)
 {
   scr_blank_line (l, 0, ncol, efs);
+
+  l.l = 0;
+  l.f = 0;
 }
 
 /* ------------------------------------------------------------------------- *
@@ -640,10 +643,7 @@ rxvt_term::scr_scroll_text (int row1, int row2, int count)
         }
 
       for (int i = count; i--; )
-        {
-          ROW(row2 - i).l = 0;
-          scr_blank_screen_mem (ROW(row2 - i), rstyle);
-        }
+        scr_blank_screen_mem (ROW(row2 - i), rstyle);
       
       if (OPTION (Opt_scrollWithBuffer)
           && view_start != 0
@@ -1305,10 +1305,7 @@ rxvt_term::scr_erase_screen (int mode)
 
   for (; num--; row++)
     {
-      line_t &l = ROW(row);
-      l.l = 0;
-      l.is_longer (0);
-      scr_blank_screen_mem (l, rstyle);
+      scr_blank_screen_mem (ROW(row), rstyle);
       scr_blank_line (drawn_buf [row], 0, ncol, ren);
     }
 }