IF_FEATURE_VI_SEARCH(last_search_pattern = xzalloc(2);) \
} while (0)
-
-static void show_status_line(void); // put a message on the bottom line
-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_status_line(void); // put a message on the bottom line
+static void status_line_bold(const char *, ...);
+
static void show_help(void)
{
puts("These features are available:"
}
//----- format the status buffer, the bottom line of screen ------
-// format status buffer, with STANDOUT mode
-static void status_line_bold(const char *format, ...)
+static void status_line(const char *format, ...)
{
va_list args;
va_start(args, format);
- strcpy(status_buffer, ESC_BOLD_TEXT);
- vsprintf(status_buffer + sizeof(ESC_BOLD_TEXT)-1, format, args);
- strcat(status_buffer, ESC_NORM_TEXT);
+ vsnprintf(status_buffer, STATUS_BUFFER_LEN, format, args);
va_end(args);
- have_status_msg = 1 + sizeof(ESC_BOLD_TEXT) + sizeof(ESC_NORM_TEXT) - 2;
-}
-
-static void status_line_bold_errno(const char *fn)
-{
- status_line_bold("'%s' "STRERROR_FMT, fn STRERROR_ERRNO);
+ have_status_msg = 1;
}
-
-// format status buffer
-static void status_line(const char *format, ...)
+static void status_line_bold(const char *format, ...)
{
va_list args;
va_start(args, format);
- vsprintf(status_buffer, format, args);
+ strcpy(status_buffer, ESC_BOLD_TEXT);
+ 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);
va_end(args);
- have_status_msg = 1;
+ have_status_msg = 1 + (sizeof(ESC_BOLD_TEXT)-1) + (sizeof(ESC_NORM_TEXT)-1);
+}
+static void status_line_bold_errno(const char *fn)
+{
+ status_line_bold("'%s' "STRERROR_FMT, fn STRERROR_ERRNO);
}
// copy s to buf, convert unprintable
break;
}
}
-
static void not_implemented(const char *s)
{
char buf[MAX_INPUT_LEN];
-
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
static char *text_yank(char *p, char *q, int dest) // copy text into a register
{
#if ENABLE_FEATURE_VI_UNDO
/* undo_stack_tail = NULL; - already is */
-#if ENABLE_FEATURE_VI_UNDO_QUEUE
+# if ENABLE_FEATURE_VI_UNDO_QUEUE
undo_queue_state = UNDO_EMPTY;
/* undo_q = 0; - already is */
-#endif
+# endif
#endif
#if ENABLE_FEATURE_VI_CRASHME