mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-27 16:50:58 +01:00
27755: add "zsystem supports" to zsh/system
This commit is contained in:
parent
bec3de98df
commit
a3b971a27e
3 changed files with 47 additions and 1 deletions
|
|
@ -491,6 +491,35 @@ bin_zsystem_flock(char *nam, char **args, UNUSED(Options ops), UNUSED(int func))
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* Return status zero if the zsystem feature is supported, else 1.
|
||||
* Operates silently for future-proofing.
|
||||
*/
|
||||
/**/
|
||||
static int
|
||||
bin_zsystem_supports(char *nam, char **args,
|
||||
UNUSED(Options ops), UNUSED(int func))
|
||||
{
|
||||
if (!args[0]) {
|
||||
zwarnnam(nam, "supports: not enough arguments");
|
||||
return 255;
|
||||
}
|
||||
if (args[1]) {
|
||||
zwarnnam(nam, "supports: too many arguments");
|
||||
return 255;
|
||||
}
|
||||
|
||||
/* stupid but logically this should work... */
|
||||
if (!strcmp(*args, "supports"))
|
||||
return 0;
|
||||
#ifdef HAVE_FCNTL_H
|
||||
if (!strcmp(*args, "flock"))
|
||||
return 0;
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/**/
|
||||
static int
|
||||
bin_zsystem(char *nam, char **args, Options ops, int func)
|
||||
|
|
@ -498,6 +527,8 @@ bin_zsystem(char *nam, char **args, Options ops, int func)
|
|||
/* If more commands are implemented, this can be more sophisticated */
|
||||
if (!strcmp(*args, "flock")) {
|
||||
return bin_zsystem_flock(nam, args+1, ops, func);
|
||||
} else if (!strcmp(*args, "supports")) {
|
||||
return bin_zsystem_supports(nam, args+1, ops, func);
|
||||
}
|
||||
zwarnnam(nam, "unknown subcommand: %s", *args);
|
||||
return 1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue