mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	And more.
This commit is contained in:
		
							
								
								
									
										51
									
								
								local.c
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								local.c
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
/* $Id: local.c,v 1.2 2007-07-09 19:34:55 nicm Exp $ */
 | 
			
		||||
/* $Id: local.c,v 1.3 2007-07-09 19:39:47 nicm Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
			
		||||
@@ -236,9 +236,10 @@ local_init(struct buffer **in, struct buffer **out)
 | 
			
		||||
	if (tcsetattr(local_fd, TCSANOW, &tio) != 0)
 | 
			
		||||
		log_fatal("tcsetattr");
 | 
			
		||||
 | 
			
		||||
	if (enter_ca_mode)
 | 
			
		||||
	if (enter_ca_mode != NULL)
 | 
			
		||||
		local_putp(enter_ca_mode);
 | 
			
		||||
	local_putp(keypad_xmit);
 | 
			
		||||
	if (keypad_xmit != NULL)
 | 
			
		||||
		local_putp(keypad_xmit);
 | 
			
		||||
	local_putp(clear_screen);
 | 
			
		||||
 | 
			
		||||
	for (lk = local_keys; lk->name != NULL; lk++) {
 | 
			
		||||
@@ -283,12 +284,15 @@ local_done(void)
 | 
			
		||||
		log_fatal("tcsetattr");
 | 
			
		||||
	close(local_fd);
 | 
			
		||||
 | 
			
		||||
	putp(keypad_local);	/* not local_putp */
 | 
			
		||||
	if (exit_ca_mode)
 | 
			
		||||
	if (keypad_local != NULL)
 | 
			
		||||
		putp(keypad_local);	/* not local_putp */
 | 
			
		||||
	if (exit_ca_mode != NULL)
 | 
			
		||||
		putp(exit_ca_mode);
 | 
			
		||||
	putp(clear_screen);
 | 
			
		||||
	putp(cursor_normal);
 | 
			
		||||
	putp(exit_attribute_mode);
 | 
			
		||||
	if (cursor_normal != NULL)
 | 
			
		||||
		putp(cursor_normal);
 | 
			
		||||
	if (exit_attribute_mode != NULL)
 | 
			
		||||
		putp(exit_attribute_mode);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Put a character. Used as parameter to tputs. */
 | 
			
		||||
@@ -370,21 +374,21 @@ local_output(struct buffer *b, size_t size)
 | 
			
		||||
		if (ch != '\e') {
 | 
			
		||||
			switch (ch) {
 | 
			
		||||
			case '\n':	/* LF */
 | 
			
		||||
				if (cursor_down) {
 | 
			
		||||
				if (cursor_down != NULL) {
 | 
			
		||||
					local_putp(cursor_down);
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
				log_warnx("cursor_down not supported");
 | 
			
		||||
				break;
 | 
			
		||||
			case '\r':	/* CR */
 | 
			
		||||
				if (carriage_return) {
 | 
			
		||||
				if (carriage_return != NULL) {
 | 
			
		||||
					local_putp(carriage_return);
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
				log_warnx("carriage_return not supported");
 | 
			
		||||
				break;
 | 
			
		||||
			case '\010':	/* BS */
 | 
			
		||||
				if (cursor_left) {
 | 
			
		||||
				if (cursor_left != NULL) {
 | 
			
		||||
					local_putp(cursor_left);
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
@@ -454,7 +458,7 @@ local_output(struct buffer *b, size_t size)
 | 
			
		||||
			size -= 4;
 | 
			
		||||
			ua = input_extract16(b);
 | 
			
		||||
			ub = input_extract16(b);
 | 
			
		||||
			if (cursor_address) {
 | 
			
		||||
			if (cursor_address == NULL) {
 | 
			
		||||
				log_warnx("cursor_address not supported");
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
@@ -489,8 +493,10 @@ local_output(struct buffer *b, size_t size)
 | 
			
		||||
			local_putp(clr_bol);
 | 
			
		||||
			break;
 | 
			
		||||
		case CODE_CLEARLINE:
 | 
			
		||||
			if (clr_eol == NULL)
 | 
			
		||||
				log_fatalx("local_output: clr_eol");
 | 
			
		||||
			if (clr_eol == NULL) {
 | 
			
		||||
				log_warnx("clr_eol not suppported");
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			local_putp(clr_eol);	/* XXX */
 | 
			
		||||
			break;
 | 
			
		||||
		case CODE_INSERTLINE:
 | 
			
		||||
@@ -546,7 +552,7 @@ local_output(struct buffer *b, size_t size)
 | 
			
		||||
			break;
 | 
			
		||||
		case CODE_CURSOROFF:
 | 
			
		||||
			if (cursor_invisible == NULL) {
 | 
			
		||||
				log_warnx("cursor_invisible");
 | 
			
		||||
				log_warnx("cursor_invisible not supported");
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			local_putp(cursor_invisible);
 | 
			
		||||
@@ -645,8 +651,7 @@ local_output(struct buffer *b, size_t size)
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			if (ua == 0) {
 | 
			
		||||
				if (exit_attribute_mode)
 | 
			
		||||
					local_putp(exit_attribute_mode);
 | 
			
		||||
				local_putp(exit_attribute_mode);
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
@@ -714,12 +719,11 @@ local_output(struct buffer *b, size_t size)
 | 
			
		||||
				case 39:
 | 
			
		||||
					if (set_a_foreground == NULL)
 | 
			
		||||
						break;
 | 
			
		||||
					if (tigetflag("AX") == TRUE)
 | 
			
		||||
					if (tigetflag("AX") == TRUE) {
 | 
			
		||||
						local_putp("\e[39m");
 | 
			
		||||
					else {
 | 
			
		||||
						local_putp(
 | 
			
		||||
						    tparm(set_a_foreground, 7));
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					local_putp(tparm(set_a_foreground, 7));
 | 
			
		||||
					break;
 | 
			
		||||
				case 40:
 | 
			
		||||
				case 41:
 | 
			
		||||
@@ -737,12 +741,11 @@ local_output(struct buffer *b, size_t size)
 | 
			
		||||
				case 49:
 | 
			
		||||
					if (set_a_background == NULL)
 | 
			
		||||
						break;
 | 
			
		||||
					if (tigetflag("AX") == TRUE)
 | 
			
		||||
					if (tigetflag("AX") == TRUE) {
 | 
			
		||||
						local_putp("\e[49m");
 | 
			
		||||
					else {
 | 
			
		||||
						local_putp(
 | 
			
		||||
						    tparm(set_a_background, 0));
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					local_putp(tparm(set_a_background, 0));
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user