fixups to vi usage, and move the initial redraw() past the

execution of commands supplied by -c or EXINIT, so their
effect is displayed correctly.
This commit is contained in:
Paul Fox 2008-03-06 16:26:12 +00:00
parent c51fc7bed6
commit 35e9c5d83a
2 changed files with 14 additions and 8 deletions

View File

@ -23,6 +23,7 @@
#include "libbb.h" #include "libbb.h"
/* the CRASHME code is unmaintained, and doesn't currently build */
#define ENABLE_FEATURE_VI_CRASHME 0 #define ENABLE_FEATURE_VI_CRASHME 0
@ -395,7 +396,7 @@ int vi_main(int argc, char **argv)
initial_cmds[0] = xstrndup(p, MAX_INPUT_LEN); initial_cmds[0] = xstrndup(p, MAX_INPUT_LEN);
} }
#endif #endif
while ((c = getopt(argc, argv, "hCR" USE_FEATURE_VI_COLON("c:"))) != -1) { while ((c = getopt(argc, argv, "hCRH" USE_FEATURE_VI_COLON("c:"))) != -1) {
switch (c) { switch (c) {
#if ENABLE_FEATURE_VI_CRASHME #if ENABLE_FEATURE_VI_CRASHME
case 'C': case 'C':
@ -407,18 +408,18 @@ int vi_main(int argc, char **argv)
SET_READONLY_MODE(readonly_mode); SET_READONLY_MODE(readonly_mode);
break; break;
#endif #endif
//case 'r': // recover flag- ignore- we don't use tmp file
//case 'x': // encryption flag- ignore
//case 'c': // execute command first
#if ENABLE_FEATURE_VI_COLON #if ENABLE_FEATURE_VI_COLON
case 'c': // cmd line vi command case 'c': // cmd line vi command
if (*optarg) if (*optarg)
initial_cmds[initial_cmds[0] != 0] = xstrndup(optarg, MAX_INPUT_LEN); initial_cmds[initial_cmds[0] != 0] = xstrndup(optarg, MAX_INPUT_LEN);
break; break;
//case 'h': // help -- just use default
#endif #endif
default: case 'H':
show_help(); show_help();
/* fall through */
default:
bb_show_usage();
return 1; return 1;
} }
} }
@ -532,7 +533,6 @@ static void edit_file(char *fn)
lmc_len = 0; lmc_len = 0;
adding2q = 0; adding2q = 0;
#endif #endif
redraw(FALSE); // dont force every col re-draw
#if ENABLE_FEATURE_VI_COLON #if ENABLE_FEATURE_VI_COLON
{ {
@ -555,6 +555,7 @@ static void edit_file(char *fn)
} }
} }
#endif #endif
redraw(FALSE); // dont force every col re-draw
//------This is the main Vi cmd handling loop ----------------------- //------This is the main Vi cmd handling loop -----------------------
while (editing > 0) { while (editing > 0) {
#if ENABLE_FEATURE_VI_CRASHME #if ENABLE_FEATURE_VI_CRASHME
@ -3849,6 +3850,7 @@ static void do_cmd(char c)
dot--; dot--;
} }
/* NB! the CRASHME code is unmaintained, and doesn't currently build */
#if ENABLE_FEATURE_VI_CRASHME #if ENABLE_FEATURE_VI_CRASHME
static int totalcmds = 0; static int totalcmds = 0;
static int Mp = 85; // Movement command Probability static int Mp = 85; // Movement command Probability

View File

@ -4237,7 +4237,11 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when
#define vi_full_usage \ #define vi_full_usage \
"Edit FILE" \ "Edit FILE" \
"\n\nOptions:\n" \ "\n\nOptions:\n" \
" -R Read-only - do not write to the file" USE_FEATURE_VI_COLON( \
" -c Initial command to run ($EXINIT also available)\n") \
USE_FEATURE_VI_READONLY( \
" -R Read-only - do not write to the file\n") \
" -H Short help regarding available features"
#define vlock_trivial_usage \ #define vlock_trivial_usage \
"[OPTIONS]" "[OPTIONS]"