diff options
Diffstat (limited to 'src/print_help.cpp')
-rw-r--r-- | src/print_help.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/print_help.cpp b/src/print_help.cpp new file mode 100644 index 00000000..da401134 --- /dev/null +++ b/src/print_help.cpp @@ -0,0 +1,36 @@ + +/** \file print_help.c + Print help message for the specified command +*/ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <stddef.h> +#include <sys/types.h> + +#include "print_help.h" + +#define CMD_LEN 1024 + +#define HELP_ERR "Could not show help message\n" + +/* defined in common.h */ +ssize_t write_loop(int fd, const char *buff, size_t count); + + +void print_help(const char *c, int fd) +{ + char cmd[ CMD_LEN]; + int printed = snprintf(cmd, CMD_LEN, "fish -c '__fish_print_help %s >&%d'", c, fd); + + if (printed < CMD_LEN) + { + if ((system(cmd) == -1)) + { + write_loop(2, HELP_ERR, strlen(HELP_ERR)); + } + + } + +} |