less: code shrink
function old new delta restore_tty - 29 +29 less_main 2107 2105 -2 getch_nowait 253 251 -2 buffer_print 614 612 -2 less_exit 51 12 -39 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/4 up/down: 29/-45) Total: -16 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		| @@ -325,15 +325,18 @@ static void print_statusline(const char *str) | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Exit the program gracefully */ | /* Exit the program gracefully */ | ||||||
| static void less_exit(int code) | static void restore_tty(void) | ||||||
| { | { | ||||||
| 	set_tty_cooked(); | 	set_tty_cooked(); | ||||||
| 	if (!(G.kbd_fd_orig_flags & O_NONBLOCK)) | 	if (!(G.kbd_fd_orig_flags & O_NONBLOCK)) | ||||||
| 		ndelay_off(kbd_fd); | 		ndelay_off(kbd_fd); | ||||||
| 	clear_line(); | 	clear_line(); | ||||||
| 	if (code < 0) | } | ||||||
| 		kill_myself_with_sig(- code); /* does not return */ |  | ||||||
| 	exit(code); | static void less_exit(void) | ||||||
|  | { | ||||||
|  | 	restore_tty(); | ||||||
|  | 	exit(EXIT_SUCCESS); | ||||||
| } | } | ||||||
|  |  | ||||||
| #if (ENABLE_FEATURE_LESS_DASHCMD && ENABLE_FEATURE_LESS_LINENUMS) \ | #if (ENABLE_FEATURE_LESS_DASHCMD && ENABLE_FEATURE_LESS_LINENUMS) \ | ||||||
| @@ -913,7 +916,7 @@ static void buffer_print(void) | |||||||
| 	) { | 	) { | ||||||
| 		i = option_mask32 & FLAG_F ? 0 : cur_fline; | 		i = option_mask32 & FLAG_F ? 0 : cur_fline; | ||||||
| 		if (max_fline - i <= max_displayed_line) | 		if (max_fline - i <= max_displayed_line) | ||||||
| 			less_exit(EXIT_SUCCESS); | 			less_exit(); | ||||||
| 	} | 	} | ||||||
| 	status_print(); | 	status_print(); | ||||||
| } | } | ||||||
| @@ -1146,7 +1149,7 @@ static int64_t getch_nowait(void) | |||||||
| 			goto again; | 			goto again; | ||||||
| 		} | 		} | ||||||
| 		/* EOF/error (ssh session got killed etc) */ | 		/* EOF/error (ssh session got killed etc) */ | ||||||
| 		less_exit(EXIT_SUCCESS); | 		less_exit(); | ||||||
| 	} | 	} | ||||||
| 	set_tty_cooked(); | 	set_tty_cooked(); | ||||||
| 	return key64; | 	return key64; | ||||||
| @@ -1297,7 +1300,7 @@ static void colon_process(void) | |||||||
| 		change_file(-1); | 		change_file(-1); | ||||||
| 		break; | 		break; | ||||||
| 	case 'q': | 	case 'q': | ||||||
| 		less_exit(EXIT_SUCCESS); | 		less_exit(); | ||||||
| 		break; | 		break; | ||||||
| 	case 'x': | 	case 'x': | ||||||
| 		change_file(0); | 		change_file(0); | ||||||
| @@ -1715,7 +1718,7 @@ static void keypress_process(int keypress) | |||||||
| 		buffer_line(cur_fline); | 		buffer_line(cur_fline); | ||||||
| 		break; | 		break; | ||||||
| 	case 'q': case 'Q': | 	case 'q': case 'Q': | ||||||
| 		less_exit(EXIT_SUCCESS); | 		less_exit(); | ||||||
| 		break; | 		break; | ||||||
| #if ENABLE_FEATURE_LESS_MARKS | #if ENABLE_FEATURE_LESS_MARKS | ||||||
| 	case 'm': | 	case 'm': | ||||||
| @@ -1793,7 +1796,8 @@ static void keypress_process(int keypress) | |||||||
|  |  | ||||||
| static void sig_catcher(int sig) | static void sig_catcher(int sig) | ||||||
| { | { | ||||||
| 	less_exit(- sig); | 	restore_tty(); | ||||||
|  | 	kill_myself_with_sig(sig); /* does not return */ | ||||||
| } | } | ||||||
|  |  | ||||||
| #if ENABLE_FEATURE_LESS_WINCH | #if ENABLE_FEATURE_LESS_WINCH | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user