1 /* 2 * Copyright (c) 2018 Nordic Semiconductor ASA 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef SHELL_SHELL_WILDCARDS_H__ 8 #define SHELL_SHELL_WILDCARDS_H__ 9 10 #include <shell/shell.h> 11 12 enum shell_wildcard_status { 13 SHELL_WILDCARD_CMD_ADDED, 14 SHELL_WILDCARD_CMD_MISSING_SPACE, 15 SHELL_WILDCARD_CMD_NO_MATCH_FOUND, /* no matching command */ 16 SHELL_WILDCARD_NOT_FOUND /* wildcard character not found */ 17 }; 18 19 /* Function initializing wildcard expansion procedure. 20 * 21 * @param[in] shell Pointer to the shell instance. 22 */ 23 void z_shell_wildcard_prepare(const struct shell *shell); 24 25 /* Function returns true if string contains wildcard character: '?' or '*' 26 * 27 * @param[in] str Pointer to string. 28 * 29 * @retval true wildcard character found 30 * @retval false wildcard character not found 31 */ 32 bool z_shell_has_wildcard(const char *str); 33 34 /* Function expands wildcards in the shell temporary buffer 35 * 36 * @brief Function evaluates one command. If command contains wildcard patter, 37 * function will expand this command with all commands matching wildcard 38 * pattern. 39 * 40 * Function will print a help string with: the currently entered command, its 41 * options,and subcommands (if they exist). 42 * 43 * @param[in] shell Pointer to the shell instance. 44 * @param[in] cmd Pointer to command which will be processed. 45 * @param[in] pattern Pointer to wildcard pattern. 46 */ 47 enum shell_wildcard_status z_shell_wildcard_process(const struct shell *shell, 48 const struct shell_static_entry *cmd, 49 const char *pattern); 50 51 /* Function finalizing wildcard expansion procedure. 52 * 53 * @param[in] shell Pointer to the shell instance. 54 */ 55 void z_shell_wildcard_finalize(const struct shell *shell); 56 57 58 #endif /* SHELL_SHELL_WILDCARDS_H__ */ 59