mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 01:34:18 +00:00 
			
		
		
		
	Work around lack of dch.
This commit is contained in:
		
							
								
								
									
										9
									
								
								CHANGES
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								CHANGES
									
									
									
									
									
								
							@@ -1,3 +1,10 @@
 | 
				
			|||||||
 | 
					13 December 2008
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Work around lack of dch. On Linux, the rxvt termcap doesn't have it (it is
 | 
				
			||||||
 | 
					  lying, but we can't really start disbelieving termcaps...). This is a bit
 | 
				
			||||||
 | 
					  horrible - I can see no way to do it without pretty much redrawing the whole
 | 
				
			||||||
 | 
					  line, but it works...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
10 December 2008
 | 
					10 December 2008
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* glibc's getopt(3) is useless: it is not POSIX compliant without jumping
 | 
					* glibc's getopt(3) is useless: it is not POSIX compliant without jumping
 | 
				
			||||||
@@ -772,7 +779,7 @@
 | 
				
			|||||||
  (including mutt, emacs). No status bar yet and no key remapping or other
 | 
					  (including mutt, emacs). No status bar yet and no key remapping or other
 | 
				
			||||||
  customisation.
 | 
					  customisation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$Id: CHANGES,v 1.172 2008-12-10 20:26:41 nicm Exp $
 | 
					$Id: CHANGES,v 1.173 2008-12-13 17:41:49 nicm Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 LocalWords:  showw utf UTF fulvio ciriaco joshe OSC APC gettime abc DEF OA clr
 | 
					 LocalWords:  showw utf UTF fulvio ciriaco joshe OSC APC gettime abc DEF OA clr
 | 
				
			||||||
 LocalWords:  rivo nurges lscm Erdely eol smysession mysession ek dstname RB
 | 
					 LocalWords:  rivo nurges lscm Erdely eol smysession mysession ek dstname RB
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										3
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								tmux.h
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
				
			|||||||
/* $Id: tmux.h,v 1.202 2008-12-10 20:25:41 nicm Exp $ */
 | 
					/* $Id: tmux.h,v 1.203 2008-12-13 17:41:49 nicm Exp $ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
					 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
				
			||||||
@@ -953,6 +953,7 @@ void		 tty_set_title(struct tty *, const char *);
 | 
				
			|||||||
int		 tty_open(struct tty *, char **);
 | 
					int		 tty_open(struct tty *, char **);
 | 
				
			||||||
void		 tty_close(struct tty *);
 | 
					void		 tty_close(struct tty *);
 | 
				
			||||||
void		 tty_free(struct tty *);
 | 
					void		 tty_free(struct tty *);
 | 
				
			||||||
 | 
					void		 tty_write(struct tty *, struct screen *, int, ...);
 | 
				
			||||||
void		 tty_vwrite(struct tty *, struct screen *s, int, va_list);
 | 
					void		 tty_vwrite(struct tty *, struct screen *s, int, va_list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* tty-keys.c */
 | 
					/* tty-keys.c */
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										43
									
								
								tty.c
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								tty.c
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
				
			|||||||
/* $Id: tty.c,v 1.53 2008-12-06 09:30:25 nicm Exp $ */
 | 
					/* $Id: tty.c,v 1.54 2008-12-13 17:41:49 nicm Exp $ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
					 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
				
			||||||
@@ -34,6 +34,8 @@ void 	tty_free_term(struct tty_term *);
 | 
				
			|||||||
void	tty_fill_acs(struct tty *);
 | 
					void	tty_fill_acs(struct tty *);
 | 
				
			||||||
u_char	tty_get_acs(struct tty *, u_char);
 | 
					u_char	tty_get_acs(struct tty *, u_char);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	tty_put_line(struct tty *, struct screen *, u_int, u_int, u_int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *tty_strip(const char *);
 | 
					const char *tty_strip(const char *);
 | 
				
			||||||
void	tty_raw(struct tty *, const char *);
 | 
					void	tty_raw(struct tty *, const char *);
 | 
				
			||||||
void	tty_puts(struct tty *, const char *);
 | 
					void	tty_puts(struct tty *, const char *);
 | 
				
			||||||
@@ -484,6 +486,16 @@ tty_set_title(struct tty *tty, const char *title)
 | 
				
			|||||||
	tty_putc(tty, '\007');
 | 
						tty_putc(tty, '\007');
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					tty_write(struct tty *tty, struct screen *s, int cmd, ...)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						va_list	ap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						va_start(ap, cmd);
 | 
				
			||||||
 | 
						tty_vwrite(tty, s, cmd, ap);
 | 
				
			||||||
 | 
						va_end(ap);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
tty_vwrite(struct tty *tty, struct screen *s, int cmd, va_list ap)
 | 
					tty_vwrite(struct tty *tty, struct screen *s, int cmd, va_list ap)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -498,6 +510,24 @@ tty_vwrite(struct tty *tty, struct screen *s, int cmd, va_list ap)
 | 
				
			|||||||
		tty_cmds[cmd](tty, s, ap);
 | 
							tty_cmds[cmd](tty, s, ap);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					tty_put_line(struct tty *tty, struct screen *s, u_int px, u_int py, u_int nx)
 | 
				
			||||||
 | 
					{	
 | 
				
			||||||
 | 
						const struct grid_cell	*gc;
 | 
				
			||||||
 | 
						struct grid_cell	 tc;
 | 
				
			||||||
 | 
						u_int			 xx;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						for (xx = px; xx < px + nx; xx++) {
 | 
				
			||||||
 | 
							gc = grid_view_peek_cell(s->grid, xx, py);
 | 
				
			||||||
 | 
							if (screen_check_selection(s, xx, py)) {
 | 
				
			||||||
 | 
								memcpy(&tc, &s->sel.cell, sizeof tc);
 | 
				
			||||||
 | 
								tc.data = gc->data;
 | 
				
			||||||
 | 
								tty_write(tty, s, TTY_CELL, &tc);
 | 
				
			||||||
 | 
							} else
 | 
				
			||||||
 | 
								tty_write(tty, s, TTY_CELL, gc);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
tty_cmd_cursorup(struct tty *tty, unused struct screen *s, va_list ap)
 | 
					tty_cmd_cursorup(struct tty *tty, unused struct screen *s, va_list ap)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -596,8 +626,15 @@ tty_cmd_deletecharacter(struct tty *tty, unused struct screen *s, va_list ap)
 | 
				
			|||||||
		while (ua-- > 0)
 | 
							while (ua-- > 0)
 | 
				
			||||||
			tty_puts(tty, delete_character);
 | 
								tty_puts(tty, delete_character);
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		while (ua-- > 0)
 | 
							/*
 | 
				
			||||||
			tty_putc(tty, '\010');
 | 
							 * XXX assumes screen already updated! I hate this... stupid
 | 
				
			||||||
 | 
							 * terms without dch...
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							if (s->cx != screen_size_x(s) - 1) {
 | 
				
			||||||
 | 
								tty_put_line(tty, s, 
 | 
				
			||||||
 | 
								    s->cx, s->cy, screen_size_x(s) - s->cx);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							tty_puts(tty, tparm(cursor_address, s->cy, s->cx));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user