Add --right-prompt flag to read

Add a flag to read to allow for setting the right prompt command in
addition to the existing support for setting the prompt command.

Fixes #1698.
This commit is contained in:
Kevin Ballard 2014-09-21 21:09:21 -07:00
parent b480c8ce79
commit fe9cf673a2
2 changed files with 13 additions and 1 deletions

View file

@ -2310,6 +2310,7 @@ static int builtin_read(parser_t &parser, wchar_t **argv)
int i, argc = builtin_count_args(argv); int i, argc = builtin_count_args(argv);
int place = ENV_USER; int place = ENV_USER;
const wchar_t *prompt = DEFAULT_READ_PROMPT; const wchar_t *prompt = DEFAULT_READ_PROMPT;
const wchar_t *right_prompt = L"";
const wchar_t *commandline = L""; const wchar_t *commandline = L"";
int exit_res=STATUS_BUILTIN_OK; int exit_res=STATUS_BUILTIN_OK;
const wchar_t *mode_name = READ_MODE_NAME; const wchar_t *mode_name = READ_MODE_NAME;
@ -2350,6 +2351,10 @@ static int builtin_read(parser_t &parser, wchar_t **argv)
L"prompt", required_argument, 0, 'p' L"prompt", required_argument, 0, 'p'
} }
, ,
{
L"right-prompt", required_argument, 0, 'R'
}
,
{ {
L"command", required_argument, 0, 'c' L"command", required_argument, 0, 'c'
} }
@ -2388,7 +2393,7 @@ static int builtin_read(parser_t &parser, wchar_t **argv)
int opt = wgetopt_long(argc, int opt = wgetopt_long(argc,
argv, argv,
L"xglUup:c:hm:n:saz", L"xglUup:R:c:hm:n:saz",
long_options, long_options,
&opt_index); &opt_index);
if (opt == -1) if (opt == -1)
@ -2431,6 +2436,10 @@ static int builtin_read(parser_t &parser, wchar_t **argv)
prompt = woptarg; prompt = woptarg;
break; break;
case L'R':
right_prompt = woptarg;
break;
case L'c': case L'c':
commandline = woptarg; commandline = woptarg;
break; break;
@ -2556,6 +2565,7 @@ static int builtin_read(parser_t &parser, wchar_t **argv)
reader_push(mode_name); reader_push(mode_name);
reader_set_left_prompt(prompt); reader_set_left_prompt(prompt);
reader_set_right_prompt(right_prompt);
if (shell) if (shell)
{ {
reader_set_complete_function(&complete); reader_set_complete_function(&complete);

View file

@ -23,6 +23,8 @@ The following options are available:
- `-p PROMPT_CMD` or `--prompt=PROMPT_CMD` uses the output of the shell command `PROMPT_CMD` as the prompt for the interactive mode. The default prompt command is <code>set_color green; echo read; set_color normal; echo "> "</code>. - `-p PROMPT_CMD` or `--prompt=PROMPT_CMD` uses the output of the shell command `PROMPT_CMD` as the prompt for the interactive mode. The default prompt command is <code>set_color green; echo read; set_color normal; echo "> "</code>.
- `-R RIGHT_PROMPT_CMD` or `--right-prompt=RIGHT_PROMPT_CMD` uses the output of the shell command `RIGHT_PROMPT_CMD` as the right prompt for the interactive mode. There is no default right prompt command.
- `-s` or `--shell` enables syntax highlighting, tab completions and command termination suitable for entering shellscript code in the interactive mode. - `-s` or `--shell` enables syntax highlighting, tab completions and command termination suitable for entering shellscript code in the interactive mode.
- `-u` or `--unexport` prevents the variables from being exported to child processes (default behaviour). - `-u` or `--unexport` prevents the variables from being exported to child processes (default behaviour).