From 4111b4e3cc31f074d65f65ceeb637f3d0e7e5f0d Mon Sep 17 00:00:00 2001 From: root Date: Sun, 8 Jan 2006 06:35:23 +0000 Subject: [PATCH] *** empty log message *** --- doc/rxvtperl.3.html | 22 +++++++++++++++++++--- doc/rxvtperl.3.man.in | 18 +++++++++++++++--- doc/rxvtperl.3.txt | 15 +++++++++++++-- src/command.C | 13 ++++++------- src/screen.C | 13 +++++-------- 5 files changed, 58 insertions(+), 23 deletions(-) diff --git a/doc/rxvtperl.3.html b/doc/rxvtperl.3.html index 3338aa9e..de4247a9 100644 --- a/doc/rxvtperl.3.html +++ b/doc/rxvtperl.3.html @@ -23,6 +23,7 @@
  • Variables in the urxvt Package
  • Functions in the urxvt Package
  • RENDITION
  • +
  • The urxvt::anyevent Class
  • The urxvt::term Class
  • The urxvt::popup Class
  • The urxvt::timer Class
  • @@ -79,7 +80,7 @@ find them in /opt/rxvt/lib/urxvt/perl/.

       rxvt -pe <extensionname>
    -
    selection
    +
    selection (enabled by default)
    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

    +
    option-popup (enabled by default)
    +
    +
    +Binds a popup menu to Ctrl-Button3 that lets you toggle (some) options at +runtime. +
    +

    digital-clock
    @@ -439,7 +447,7 @@ 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.

    @@ -506,6 +514,14 @@ 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
    @@ -679,7 +695,7 @@ If visible, hide the overlay, but do not destroy it. If hidden, display the overlay again.

    -
    $popup = $term->popup ($event)
    +
    $popup = $term->popup ($event)
    Creates a new urxvt::popup object that implements a popup menu. The diff --git a/doc/rxvtperl.3.man.in b/doc/rxvtperl.3.man.in index 3371765a..ff55a652 100644 --- a/doc/rxvtperl.3.man.in +++ b/doc/rxvtperl.3.man.in @@ -172,8 +172,8 @@ You can activate them like this: .Vb 1 \& @@RXVT_NAME@@ -pe .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" diff --git a/doc/rxvtperl.3.txt b/doc/rxvtperl.3.txt index d77a90d8..342d6401 100644 --- a/doc/rxvtperl.3.txt +++ b/doc/rxvtperl.3.txt @@ -31,7 +31,7 @@ DESCRIPTION rxvt -pe - 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.). diff --git a/src/command.C b/src/command.C index f15a9b3a..e3bf8924 100644 --- a/src/command.C +++ b/src/command.C @@ -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); diff --git a/src/screen.C b/src/screen.C index f8f9f33c..aeaf02d9 100644 --- a/src/screen.C +++ b/src/screen.C @@ -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); } } -- 2.34.1