vi: trivial size optimization -65 bytes
This commit is contained in:
parent
25497c1d92
commit
267e16c74a
34
editors/vi.c
34
editors/vi.c
@ -348,6 +348,7 @@ static void place_cursor(int, int, int);
|
|||||||
static void screen_erase(void);
|
static void screen_erase(void);
|
||||||
static void clear_to_eol(void);
|
static void clear_to_eol(void);
|
||||||
static void clear_to_eos(void);
|
static void clear_to_eos(void);
|
||||||
|
static void go_bottom_and_clear_to_eol(void);
|
||||||
static void standout_start(void); // send "start reverse video" sequence
|
static void standout_start(void); // send "start reverse video" sequence
|
||||||
static void standout_end(void); // send "end reverse video" sequence
|
static void standout_end(void); // send "end reverse video" sequence
|
||||||
static void flash(int); // flash the terminal screen
|
static void flash(int); // flash the terminal screen
|
||||||
@ -645,8 +646,7 @@ static void edit_file(char *fn)
|
|||||||
}
|
}
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
|
|
||||||
place_cursor(rows - 1, 0, FALSE); // go to bottom of screen
|
go_bottom_and_clear_to_eol();
|
||||||
clear_to_eol(); // erase to end of line
|
|
||||||
cookmode();
|
cookmode();
|
||||||
#undef cur_line
|
#undef cur_line
|
||||||
}
|
}
|
||||||
@ -842,8 +842,7 @@ static void colon(char *buf)
|
|||||||
else if (strncmp(cmd, "!", 1) == 0) { // run a cmd
|
else if (strncmp(cmd, "!", 1) == 0) { // run a cmd
|
||||||
int retcode;
|
int retcode;
|
||||||
// :!ls run the <cmd>
|
// :!ls run the <cmd>
|
||||||
place_cursor(rows - 1, 0, FALSE); // go to Status line
|
go_bottom_and_clear_to_eol();
|
||||||
clear_to_eol(); // clear the line
|
|
||||||
cookmode();
|
cookmode();
|
||||||
retcode = system(orig_buf + 1); // run the cmd
|
retcode = system(orig_buf + 1); // run the cmd
|
||||||
if (retcode)
|
if (retcode)
|
||||||
@ -920,8 +919,7 @@ static void colon(char *buf)
|
|||||||
}
|
}
|
||||||
} else if (strncasecmp(cmd, "features", i) == 0) { // what features are available
|
} else if (strncasecmp(cmd, "features", i) == 0) { // what features are available
|
||||||
// print out values of all features
|
// print out values of all features
|
||||||
place_cursor(rows - 1, 0, FALSE); // go to Status line, bottom of screen
|
go_bottom_and_clear_to_eol();
|
||||||
clear_to_eol(); // clear the line
|
|
||||||
cookmode();
|
cookmode();
|
||||||
show_help();
|
show_help();
|
||||||
rawmode();
|
rawmode();
|
||||||
@ -931,8 +929,7 @@ static void colon(char *buf)
|
|||||||
q = begin_line(dot); // assume .,. for the range
|
q = begin_line(dot); // assume .,. for the range
|
||||||
r = end_line(dot);
|
r = end_line(dot);
|
||||||
}
|
}
|
||||||
place_cursor(rows - 1, 0, FALSE); // go to Status line, bottom of screen
|
go_bottom_and_clear_to_eol();
|
||||||
clear_to_eol(); // clear the line
|
|
||||||
puts("\r");
|
puts("\r");
|
||||||
for (; q <= r; q++) {
|
for (; q <= r; q++) {
|
||||||
int c_is_no_print;
|
int c_is_no_print;
|
||||||
@ -1032,8 +1029,7 @@ static void colon(char *buf)
|
|||||||
// only blank is regarded as args delmiter. What about tab '\t' ?
|
// only blank is regarded as args delmiter. What about tab '\t' ?
|
||||||
if (!args[0] || strcasecmp(args, "all") == 0) {
|
if (!args[0] || strcasecmp(args, "all") == 0) {
|
||||||
// print out values of all options
|
// print out values of all options
|
||||||
place_cursor(rows - 1, 0, FALSE); // go to Status line, bottom of screen
|
go_bottom_and_clear_to_eol();
|
||||||
clear_to_eol(); // clear the line
|
|
||||||
printf("----------------------------------------\r\n");
|
printf("----------------------------------------\r\n");
|
||||||
#if ENABLE_FEATURE_VI_SETOPTS
|
#if ENABLE_FEATURE_VI_SETOPTS
|
||||||
if (!autoindent)
|
if (!autoindent)
|
||||||
@ -2169,8 +2165,7 @@ static void cont_sig(int sig UNUSED_PARAM)
|
|||||||
//----- Come here when we get a Suspend signal -------------------
|
//----- Come here when we get a Suspend signal -------------------
|
||||||
static void suspend_sig(int sig UNUSED_PARAM)
|
static void suspend_sig(int sig UNUSED_PARAM)
|
||||||
{
|
{
|
||||||
place_cursor(rows - 1, 0, FALSE); // go to bottom of screen
|
go_bottom_and_clear_to_eol();
|
||||||
clear_to_eol(); // erase to end of line
|
|
||||||
cookmode(); // terminal to "cooked"
|
cookmode(); // terminal to "cooked"
|
||||||
|
|
||||||
signal(SIGCONT, cont_sig);
|
signal(SIGCONT, cont_sig);
|
||||||
@ -2253,8 +2248,7 @@ static char readit(void) // read (maybe cursor) key from stdin
|
|||||||
n = safe_read(0, readbuffer, 1);
|
n = safe_read(0, readbuffer, 1);
|
||||||
if (n <= 0) {
|
if (n <= 0) {
|
||||||
error:
|
error:
|
||||||
place_cursor(rows - 1, 0, FALSE); // go to bottom of screen
|
go_bottom_and_clear_to_eol();
|
||||||
clear_to_eol(); // erase to end of line
|
|
||||||
cookmode(); // terminal to "cooked"
|
cookmode(); // terminal to "cooked"
|
||||||
bb_error_msg_and_die("can't read user input");
|
bb_error_msg_and_die("can't read user input");
|
||||||
}
|
}
|
||||||
@ -2367,8 +2361,7 @@ static char *get_input_line(const char *prompt)
|
|||||||
|
|
||||||
strcpy(buf, prompt);
|
strcpy(buf, prompt);
|
||||||
last_status_cksum = 0; // force status update
|
last_status_cksum = 0; // force status update
|
||||||
place_cursor(rows - 1, 0, FALSE); // go to Status line, bottom of screen
|
go_bottom_and_clear_to_eol();
|
||||||
clear_to_eol(); // clear the line
|
|
||||||
write1(prompt); // write out the :, /, or ? prompt
|
write1(prompt); // write out the :, /, or ? prompt
|
||||||
|
|
||||||
i = strlen(buf);
|
i = strlen(buf);
|
||||||
@ -2572,6 +2565,12 @@ static void clear_to_eol(void)
|
|||||||
write1(Ceol); // Erase from cursor to end of line
|
write1(Ceol); // Erase from cursor to end of line
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void go_bottom_and_clear_to_eol(void)
|
||||||
|
{
|
||||||
|
place_cursor(rows - 1, 0, FALSE); // go to bottom of screen
|
||||||
|
clear_to_eol(); // erase to end of line
|
||||||
|
}
|
||||||
|
|
||||||
//----- Erase from cursor to end of screen -----------------------
|
//----- Erase from cursor to end of screen -----------------------
|
||||||
static void clear_to_eos(void)
|
static void clear_to_eos(void)
|
||||||
{
|
{
|
||||||
@ -2643,9 +2642,8 @@ static void show_status_line(void)
|
|||||||
}
|
}
|
||||||
if (have_status_msg || ((cnt > 0 && last_status_cksum != cksum))) {
|
if (have_status_msg || ((cnt > 0 && last_status_cksum != cksum))) {
|
||||||
last_status_cksum = cksum; // remember if we have seen this line
|
last_status_cksum = cksum; // remember if we have seen this line
|
||||||
place_cursor(rows - 1, 0, FALSE); // put cursor on status line
|
go_bottom_and_clear_to_eol();
|
||||||
write1(status_buffer);
|
write1(status_buffer);
|
||||||
clear_to_eol();
|
|
||||||
if (have_status_msg) {
|
if (have_status_msg) {
|
||||||
if (((int)strlen(status_buffer) - (have_status_msg - 1)) >
|
if (((int)strlen(status_buffer) - (have_status_msg - 1)) >
|
||||||
(columns - 1) ) {
|
(columns - 1) ) {
|
||||||
|
Loading…
Reference in New Issue
Block a user