This looks pretty good on a quick look, although why do you need a
backing_written count? Why not write the CRLF after the line rather than before?
I'll try it later tonight.
On Sat, Feb 13, 2010 at 05:24:17PM -0800, Micah Cowan wrote:
> This is a code-only patch. I'll submit a separate one for the manual.
>
> This patch eliminates "output" (or "more") mode, which is used to view
> command output within an attached tmux client. It's the mode you use
> when you type <prefix> ? to get a list of bindings.
>
> Reasons behind this change:
> - Now you can search and copy from the key-binding lists or option
> settings (I've been wanting to do this).
> - Ensures that "more" mode uses the {emacs,vi}-copy bindings, rather
> than the {emacs,vi}-choice mode bindings, which seemed more natural
> to me.
> - Consolidates code. Less to maintain :)
>
> Biggest changes in behavior
> - If your copy-mode bindings differ from your choice-mode bindings,
> you're now using the copy-mode ones.
> - Output mode used to show how many lines from the top you are; copy
> mode shows how many lines from the bottom (how far into "history").
> - "Up" and "down" used to just scroll up and down; now they move the
> cursor (and scroll if it's at the edges).
>
> Application:
>
> After applying the patch, please also remove (cvs remove) window-more.c,
> which is no longer used.
>
> Details:
>
> The code for copy-mode in window-copy.c assumed everywhere that it was
> "backed" by the window pane's "base" screen. This has been replaced by a
> generic "backing" screen.
>
> It's no longer enough to simply set a pane into "copy" mode. You also
> then have to follow it with a call to window_copy_from_pane, which sets
> things up to work like normal copy mode, or you have to call
> window_copy_backing_init, which creates a fresh screen as the backing,
> for writing to.
>
> Places that used to set window_more_mode and call window_more_(v)add,
> now set window_copy_mode, and call window_copy_backing_init, then
> window_more_(v)add.
>
> A new flag was added to the screen structure, "wrap", which is normally
> set to true. It is set to false for the output-mode-style backing, so
> that lines are written fully (but don't display fully), and are
> available when you resize (enlarge) the pane (this mimics the behavior
> of output mode). Allowing writes to a grid line past the actual width of
> the grid necessitated the removal of all the grid_check_x invocations
> (and so I also eliminated the function definition). These were never
> really necessary anyway: grid lines longer than the grid width were
> already possible (when you shrink a pane; this lets them remain
> available for when you enlargen it again), but these checks merely
> prevented one from writing/reading the rest of the data past the grid width.
>
> --
> Micah J. Cowan
> http://micah.cowan.name/
> ------------------------------------------------------------------------------
> SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
> Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
> http://p.sf.net/sfu/solaris-dev2dev
> _______________________________________________
> tmux-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/tmux-users
------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
tmux-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-users