mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-27 05:13:10 +00:00
Update status builtin to properly handle and document all of its options.
darcs-hash:20070801194450-35ec8-e2fe5b798e728d1caef474295a92230c35c79c17.gz
This commit is contained in:
parent
88199d6b51
commit
8ed521c817
2 changed files with 59 additions and 8 deletions
59
builtin.c
59
builtin.c
|
@ -364,6 +364,18 @@ static void builtin_unknown_option( const wchar_t *cmd, const wchar_t *opt )
|
||||||
builtin_print_help( cmd, sb_err );
|
builtin_print_help( cmd, sb_err );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Perform error reporting for encounter with missing argument
|
||||||
|
*/
|
||||||
|
static void builtin_missing_argument( const wchar_t *cmd, const wchar_t *opt )
|
||||||
|
{
|
||||||
|
sb_printf( sb_err,
|
||||||
|
BUILTIN_ERR_MISSING,
|
||||||
|
cmd,
|
||||||
|
opt );
|
||||||
|
builtin_print_help( cmd, sb_err );
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Here follows the definition of all builtin commands. The function
|
Here follows the definition of all builtin commands. The function
|
||||||
names are all on the form builtin_NAME where NAME is the name of the
|
names are all on the form builtin_NAME where NAME is the name of the
|
||||||
|
@ -1913,19 +1925,19 @@ static int builtin_status( wchar_t **argv )
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{
|
{
|
||||||
L"is-command-substitution", no_argument, &mode, IS_SUBST
|
L"is-command-substitution", no_argument, 0, 'c'
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{
|
{
|
||||||
L"is-block", no_argument, &mode, IS_BLOCK
|
L"is-block", no_argument, 0, 'b'
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{
|
{
|
||||||
L"is-interactive", no_argument, &mode, IS_INTERACTIVE
|
L"is-interactive", no_argument, 0, 'i'
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{
|
{
|
||||||
L"is-login", no_argument, &mode, IS_LOGIN
|
L"is-login", no_argument, 0, 'l'
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{
|
{
|
||||||
|
@ -1941,11 +1953,11 @@ static int builtin_status( wchar_t **argv )
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{
|
{
|
||||||
L"current-filename", no_argument, &mode, CURRENT_FILENAME
|
L"current-filename", no_argument, 0, 'f'
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{
|
{
|
||||||
L"current-line-number", no_argument, &mode, CURRENT_LINE_NUMBER
|
L"current-line-number", no_argument, 0, 'n'
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
{
|
{
|
||||||
|
@ -1968,7 +1980,7 @@ static int builtin_status( wchar_t **argv )
|
||||||
|
|
||||||
int opt = wgetopt_long( argc,
|
int opt = wgetopt_long( argc,
|
||||||
argv,
|
argv,
|
||||||
L"hj:t",
|
L":cbilfnhj:t",
|
||||||
long_options,
|
long_options,
|
||||||
&opt_index );
|
&opt_index );
|
||||||
if( opt == -1 )
|
if( opt == -1 )
|
||||||
|
@ -1984,9 +1996,32 @@ static int builtin_status( wchar_t **argv )
|
||||||
argv[0],
|
argv[0],
|
||||||
long_options[opt_index].name );
|
long_options[opt_index].name );
|
||||||
builtin_print_help( argv[0], sb_err );
|
builtin_print_help( argv[0], sb_err );
|
||||||
|
|
||||||
return STATUS_BUILTIN_ERROR;
|
return STATUS_BUILTIN_ERROR;
|
||||||
|
|
||||||
|
case 'c':
|
||||||
|
mode = IS_SUBST;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'b':
|
||||||
|
mode = IS_BLOCK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'i':
|
||||||
|
mode = IS_INTERACTIVE;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'l':
|
||||||
|
mode = IS_LOGIN;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'f':
|
||||||
|
mode = CURRENT_FILENAME;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'n':
|
||||||
|
mode = CURRENT_LINE_NUMBER;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'h':
|
case 'h':
|
||||||
builtin_print_help( argv[0], sb_out );
|
builtin_print_help( argv[0], sb_out );
|
||||||
return STATUS_BUILTIN_OK;
|
return STATUS_BUILTIN_OK;
|
||||||
|
@ -2013,6 +2048,14 @@ static int builtin_status( wchar_t **argv )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
case 't':
|
||||||
|
mode = STACK_TRACE;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ':':
|
||||||
|
builtin_missing_argument( argv[0], argv[woptind-1] );
|
||||||
|
return STATUS_BUILTIN_ERROR;
|
||||||
|
|
||||||
case '?':
|
case '?':
|
||||||
builtin_unknown_option( argv[0], argv[woptind-1] );
|
builtin_unknown_option( argv[0], argv[woptind-1] );
|
||||||
return STATUS_BUILTIN_ERROR;
|
return STATUS_BUILTIN_ERROR;
|
||||||
|
|
|
@ -8,3 +8,11 @@
|
||||||
- <tt>-b</tt> or <tt>--is-block</tt> returns 0 if fish is currently executing a block of code
|
- <tt>-b</tt> or <tt>--is-block</tt> returns 0 if fish is currently executing a block of code
|
||||||
- <tt>-i</tt> or <tt>--is-interactive</tt> returns 0 if fish is interactive, i.e.connected to a keyboard
|
- <tt>-i</tt> or <tt>--is-interactive</tt> returns 0 if fish is interactive, i.e.connected to a keyboard
|
||||||
- <tt>-l</tt> or <tt>--is-login</tt> returns 0 if fish is a login shell, i.e. if fish should perform login tasks such as setting up the PATH.
|
- <tt>-l</tt> or <tt>--is-login</tt> returns 0 if fish is a login shell, i.e. if fish should perform login tasks such as setting up the PATH.
|
||||||
|
- <tt>--is-full-job-control</tt> returns 0 if full job control is enabled
|
||||||
|
- <tt>--is-interactive-job-control</tt> returns 0 if interactive job control is enabled
|
||||||
|
- <tt>--is-no-job-control</tt> returns 0 if no job control is enabled
|
||||||
|
- <tt>-f</tt> or <tt>--current-filename</tt> prints the filename of the currently running script
|
||||||
|
- <tt>-n</tt> or <tt>--current-line-number</tt> prints the line number of the currently running script
|
||||||
|
- <tt>-j CONTROLTYPE</tt> or <tt>--job-control=CONTROLTYPE</tt> set the job control type. Can be one of: none, full, interactive
|
||||||
|
- <tt>-t</tt> or <tt>--print-stack-trace</tt>
|
||||||
|
- <tt>-h</tt> or <tt>--help</tt> display a help message and exit
|
||||||
|
|
Loading…
Reference in a new issue