This diff is close enough, I will tweak the remaining style problems myself and commit it either later today or tomorrow.
On Mon, Feb 08, 2010 at 12:23:53AM +0100, clemens fischer wrote: > Nicholas Marriott wrote: > > > It could be much smaller by doing: > > > > if (!options_get_number(&wp->window->options, "app-private-window")) > > break; > > > > In both cases, instead of putting everything inside the if. > > Yes, but I often introduce error checking, where a function is supposed > to collect status info. At the end it should do whatever cleanup is > needed and return a meaningful status code. So I tend to have one entry > and one exit, and even use gotos to stick to this principle. > > I've seen the many sideways exits in the code, and I don't mind as long > as I don't have to repair anything. > > > You also need to set a default value in tmux.c or tmux will die with > > a fatal error the first time this code is hit, because the option > > isn't set. > > Ah, thanks! Will do ASAP. > > > I'm not sure about the option name, I think it should be something > > like use-alternate-screen. > > Ok, this is a better name. > > > Can't you change your editor to use tabs instead of spaces or enter > > a literal tab? > > Sure. I grew tired of the tab+spaces-mix found in many sources and > use spaces, but patches should be as small as possible. > > > clemens > > > Index: cmd-set-option.c > =================================================================== > --- cmd-set-option.c.orig > +++ cmd-set-option.c > @@ -155,6 +155,7 @@ const struct set_option_entry set_window > { "monitor-content", SET_OPTION_STRING, 0, 0, NULL }, > { "remain-on-exit", SET_OPTION_FLAG, 0, 0, NULL }, > { "synchronize-panes", SET_OPTION_FLAG, 0, 0, NULL }, > + { "use-alternate-screen", SET_OPTION_FLAG, 0, 0, NULL }, > { "utf8", SET_OPTION_FLAG, 0, 0, NULL }, > { "window-status-attr", SET_OPTION_ATTRIBUTES, 0, 0, NULL }, > { "window-status-bg", SET_OPTION_COLOUR, 0, 0, NULL }, > Index: input.c > =================================================================== > --- input.c.orig > +++ input.c > @@ -1178,14 +1178,17 @@ input_handle_sequence_sm(struct input_ct > case 1049: > if (wp->saved_grid != NULL) > break; > - sx = screen_size_x(s); > - sy = screen_size_y(s); > + > + if (! options_get_number(&wp->window->options, > "use-alternate-screen")) > + break; > > /* > * Enter alternative screen mode. A copy of the visible > * screen is saved and the history is not updated > */ > > + sx = screen_size_x(s); > + sy = screen_size_y(s); > wp->saved_grid = grid_create(sx, sy, 0); > grid_duplicate_lines( > wp->saved_grid, 0, s->grid, screen_hsize(s), sy); > @@ -1254,14 +1257,17 @@ input_handle_sequence_rm(struct input_ct > case 1049: > if (wp->saved_grid == NULL) > break; > - sx = screen_size_x(s); > - sy = screen_size_y(s); > + > + if (! options_get_number(&wp->window->options, > "use-alternate-screen")) > + break; > > /* > * Exit alternative screen mode and restore the copied > * grid. > */ > > + sx = screen_size_x(s); > + sy = screen_size_y(s); > /* > * If the current size is bigger, temporarily resize > * to the old size before copying back. > Index: tmux.1 > =================================================================== > --- tmux.1.orig > +++ tmux.1 > @@ -1893,6 +1893,17 @@ command. > Duplicate input to any pane to all other panes in the same window, except > for panes that are not in output mode. > .Pp > +.It Xo Ic use-alternate-screen > +.Op Ic on | off > +.Xc > +Every application initializing its window can have it all to itself. > +.Nm > +will save the previous window contents and restore it afterwards, the > +applications contents will not be saved in the history. This makes > +sense if full screen edit sessions are not supposed to clutter the > +history. > +The default is on. > +.Pp > .It Xo Ic utf8 > .Op Ic on | off > .Xc > Index: tmux.c > =================================================================== > --- tmux.c.orig > +++ tmux.c > @@ -409,6 +409,7 @@ main(int argc, char **argv) > options_set_number(wo, "xterm-keys", 0); > options_set_number(wo, "remain-on-exit", 0); > options_set_number(wo, "synchronize-panes", 0); > + options_set_number(wo, "use-alternate-screen", 1); > > if (flags & IDENTIFY_UTF8) { > options_set_number(so, "status-utf8", 1); > > > ------------------------------------------------------------------------------ > The Planet: dedicated and managed hosting, cloud storage, colocation > Stay online with enterprise data centers and the best network in the business > Choose flexible plans and management services without long-term contracts > Personal 24x7 support from experience hosting pros just a phone call away. > http://p.sf.net/sfu/theplanet-com > _______________________________________________ > tmux-users mailing list > tmux-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/tmux-users ------------------------------------------------------------------------------ The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users