vi: use vsnprintf to format status line
This is the last use of "vsprintf" in busybox: function old new delta status_line_bold 72 77 +5 status_line 40 45 +5 vsprintf 23 - -23 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 2/0 up/down: 10/-23) Total: -13 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
d4f2e7ff71
commit
6ce60b9cca
49
editors/vi.c
49
editors/vi.c
@ -482,16 +482,13 @@ struct globals {
|
|||||||
IF_FEATURE_VI_SEARCH(last_search_pattern = xzalloc(2);) \
|
IF_FEATURE_VI_SEARCH(last_search_pattern = xzalloc(2);) \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#if ENABLE_FEATURE_VI_CRASHME
|
||||||
|
static int crashme = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
static void show_status_line(void); // put a message on the bottom line
|
static void show_status_line(void); // put a message on the bottom line
|
||||||
static void status_line_bold(const char *, ...);
|
static void status_line_bold(const char *, ...);
|
||||||
|
|
||||||
#if ENABLE_FEATURE_VI_CRASHME
|
|
||||||
static void crash_dummy();
|
|
||||||
static void crash_test();
|
|
||||||
static int crashme = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void show_help(void)
|
static void show_help(void)
|
||||||
{
|
{
|
||||||
puts("These features are available:"
|
puts("These features are available:"
|
||||||
@ -1218,37 +1215,36 @@ static void show_status_line(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//----- format the status buffer, the bottom line of screen ------
|
//----- format the status buffer, the bottom line of screen ------
|
||||||
// format status buffer, with STANDOUT mode
|
static void status_line(const char *format, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
|
||||||
|
va_start(args, format);
|
||||||
|
vsnprintf(status_buffer, STATUS_BUFFER_LEN, format, args);
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
|
have_status_msg = 1;
|
||||||
|
}
|
||||||
static void status_line_bold(const char *format, ...)
|
static void status_line_bold(const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
va_start(args, format);
|
va_start(args, format);
|
||||||
strcpy(status_buffer, ESC_BOLD_TEXT);
|
strcpy(status_buffer, ESC_BOLD_TEXT);
|
||||||
vsprintf(status_buffer + sizeof(ESC_BOLD_TEXT)-1, format, args);
|
vsnprintf(status_buffer + (sizeof(ESC_BOLD_TEXT)-1),
|
||||||
|
STATUS_BUFFER_LEN - sizeof(ESC_BOLD_TEXT) - sizeof(ESC_NORM_TEXT),
|
||||||
|
format, args
|
||||||
|
);
|
||||||
strcat(status_buffer, ESC_NORM_TEXT);
|
strcat(status_buffer, ESC_NORM_TEXT);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
||||||
have_status_msg = 1 + sizeof(ESC_BOLD_TEXT) + sizeof(ESC_NORM_TEXT) - 2;
|
have_status_msg = 1 + (sizeof(ESC_BOLD_TEXT)-1) + (sizeof(ESC_NORM_TEXT)-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void status_line_bold_errno(const char *fn)
|
static void status_line_bold_errno(const char *fn)
|
||||||
{
|
{
|
||||||
status_line_bold("'%s' "STRERROR_FMT, fn STRERROR_ERRNO);
|
status_line_bold("'%s' "STRERROR_FMT, fn STRERROR_ERRNO);
|
||||||
}
|
}
|
||||||
|
|
||||||
// format status buffer
|
|
||||||
static void status_line(const char *format, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
|
|
||||||
va_start(args, format);
|
|
||||||
vsprintf(status_buffer, format, args);
|
|
||||||
va_end(args);
|
|
||||||
|
|
||||||
have_status_msg = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// copy s to buf, convert unprintable
|
// copy s to buf, convert unprintable
|
||||||
static void print_literal(char *buf, const char *s)
|
static void print_literal(char *buf, const char *s)
|
||||||
{
|
{
|
||||||
@ -1290,15 +1286,14 @@ static void print_literal(char *buf, const char *s)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void not_implemented(const char *s)
|
static void not_implemented(const char *s)
|
||||||
{
|
{
|
||||||
char buf[MAX_INPUT_LEN];
|
char buf[MAX_INPUT_LEN];
|
||||||
|
|
||||||
print_literal(buf, s);
|
print_literal(buf, s);
|
||||||
status_line_bold("\'%s\' is not implemented", buf);
|
status_line_bold("'%s' is not implemented", buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----- Block insert/delete, undo ops --------------------------
|
||||||
#if ENABLE_FEATURE_VI_YANKMARK
|
#if ENABLE_FEATURE_VI_YANKMARK
|
||||||
static char *text_yank(char *p, char *q, int dest) // copy text into a register
|
static char *text_yank(char *p, char *q, int dest) // copy text into a register
|
||||||
{
|
{
|
||||||
@ -4318,10 +4313,10 @@ int vi_main(int argc, char **argv)
|
|||||||
|
|
||||||
#if ENABLE_FEATURE_VI_UNDO
|
#if ENABLE_FEATURE_VI_UNDO
|
||||||
/* undo_stack_tail = NULL; - already is */
|
/* undo_stack_tail = NULL; - already is */
|
||||||
#if ENABLE_FEATURE_VI_UNDO_QUEUE
|
# if ENABLE_FEATURE_VI_UNDO_QUEUE
|
||||||
undo_queue_state = UNDO_EMPTY;
|
undo_queue_state = UNDO_EMPTY;
|
||||||
/* undo_q = 0; - already is */
|
/* undo_q = 0; - already is */
|
||||||
#endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLE_FEATURE_VI_CRASHME
|
#if ENABLE_FEATURE_VI_CRASHME
|
||||||
|
Loading…
Reference in New Issue
Block a user