mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 01:34:18 +00:00 
			
		
		
		
	Sync OpenBSD patchset 223:
Using the alternative screen (smcup/rmcup) should also preserve the current colours and attributes. Found thanks to a report from Taylor Venable. While here also nuke a couple of extra blank lines.
This commit is contained in:
		
							
								
								
									
										8
									
								
								input.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								input.c
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
				
			|||||||
/* $Id: input.c,v 1.88 2009-07-22 17:46:53 tcunha Exp $ */
 | 
					/* $Id: input.c,v 1.89 2009-08-09 16:57:49 tcunha Exp $ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
					 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
				
			||||||
@@ -1189,6 +1189,8 @@ input_handle_sequence_sm(struct input_ctx *ictx)
 | 
				
			|||||||
			    wp->saved_grid, 0, s->grid, screen_hsize(s), sy);
 | 
								    wp->saved_grid, 0, s->grid, screen_hsize(s), sy);
 | 
				
			||||||
			wp->saved_cx = s->cx;
 | 
								wp->saved_cx = s->cx;
 | 
				
			||||||
			wp->saved_cy = s->cy;
 | 
								wp->saved_cy = s->cy;
 | 
				
			||||||
 | 
								memcpy(&wp->saved_cell,
 | 
				
			||||||
 | 
								    &ictx->cell, sizeof wp->saved_cell);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			grid_view_clear(s->grid, 0, 0, sx, sy);
 | 
								grid_view_clear(s->grid, 0, 0, sx, sy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1261,7 +1263,7 @@ input_handle_sequence_rm(struct input_ctx *ictx)
 | 
				
			|||||||
			if (sy > wp->saved_grid->sy)
 | 
								if (sy > wp->saved_grid->sy)
 | 
				
			||||||
				screen_resize(s, sx, wp->saved_grid->sy);
 | 
									screen_resize(s, sx, wp->saved_grid->sy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			/* Restore the grid and cursor position. */
 | 
								/* Restore the grid, cursor position and cell. */
 | 
				
			||||||
			grid_duplicate_lines(
 | 
								grid_duplicate_lines(
 | 
				
			||||||
			    s->grid, screen_hsize(s), wp->saved_grid, 0, sy);
 | 
								    s->grid, screen_hsize(s), wp->saved_grid, 0, sy);
 | 
				
			||||||
			s->cx = wp->saved_cx;
 | 
								s->cx = wp->saved_cx;
 | 
				
			||||||
@@ -1270,6 +1272,7 @@ input_handle_sequence_rm(struct input_ctx *ictx)
 | 
				
			|||||||
			s->cy = wp->saved_cy;
 | 
								s->cy = wp->saved_cy;
 | 
				
			||||||
			if (s->cy > screen_size_y(s) - 1)
 | 
								if (s->cy > screen_size_y(s) - 1)
 | 
				
			||||||
				s->cy = screen_size_y(s) - 1;
 | 
									s->cy = screen_size_y(s) - 1;
 | 
				
			||||||
 | 
								memcpy(&ictx->cell, &wp->saved_cell, sizeof ictx->cell);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			/*
 | 
								/*
 | 
				
			||||||
			 * Turn history back on (so resize can use it) and then
 | 
								 * Turn history back on (so resize can use it) and then
 | 
				
			||||||
@@ -1326,7 +1329,6 @@ input_handle_sequence_dsr(struct input_ctx *ictx)
 | 
				
			|||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								tmux.h
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
				
			|||||||
/* $Id: tmux.h,v 1.403 2009-08-09 16:48:34 tcunha Exp $ */
 | 
					/* $Id: tmux.h,v 1.404 2009-08-09 16:57:49 tcunha Exp $ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
					 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
				
			||||||
@@ -601,7 +601,6 @@ struct input_ctx {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	struct grid_cell cell;
 | 
						struct grid_cell cell;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
	struct grid_cell saved_cell;
 | 
						struct grid_cell saved_cell;
 | 
				
			||||||
	u_int		 saved_cx;
 | 
						u_int		 saved_cx;
 | 
				
			||||||
	u_int		 saved_cy;
 | 
						u_int		 saved_cy;
 | 
				
			||||||
@@ -673,6 +672,7 @@ struct window_pane {
 | 
				
			|||||||
 	u_int		 saved_cx;
 | 
					 	u_int		 saved_cx;
 | 
				
			||||||
 	u_int		 saved_cy;
 | 
					 	u_int		 saved_cy;
 | 
				
			||||||
	struct grid	*saved_grid;
 | 
						struct grid	*saved_grid;
 | 
				
			||||||
 | 
						struct grid_cell saved_cell;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const struct window_mode *mode;
 | 
						const struct window_mode *mode;
 | 
				
			||||||
	void		*modedata;
 | 
						void		*modedata;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user