66 lines
1.7 KiB
C
66 lines
1.7 KiB
C
|
/*
|
||
|
* cons_help.h
|
||
|
*
|
||
|
* Created on: Nov 6, 2024
|
||
|
* Author: true
|
||
|
*/
|
||
|
|
||
|
#ifndef USER_SHELL_COMMANDS_HELP_H_
|
||
|
#define USER_SHELL_COMMANDS_HELP_H_
|
||
|
|
||
|
|
||
|
|
||
|
void cons_help_real(int argc, char **argv, command_table_t *p)
|
||
|
{
|
||
|
int i;
|
||
|
|
||
|
if (argc < 2) {
|
||
|
// print help list
|
||
|
if ((shell_flags & 0x02) == 0) {
|
||
|
CONS_PRINT("Tip: You only need to use the first two characters ");
|
||
|
CONS_PRINT("of a command.\r\n\r\n");
|
||
|
shell_flags |= 0x02;
|
||
|
}
|
||
|
|
||
|
while (p->cmd != 0) {
|
||
|
if (strlen(p->desc)) {
|
||
|
strcpy( console_line, "* ");
|
||
|
strncat(console_line, p->cmd, 12);
|
||
|
for (i = strlen(console_line); i <= 12; i++) {
|
||
|
console_line[i] = 0x20;
|
||
|
}
|
||
|
console_line[i] = 0x00;
|
||
|
strncat(console_line, p->desc, 77);
|
||
|
strncat(console_line, "\r\n", 79);
|
||
|
console_line[63] = 0;
|
||
|
CONS_PRINT(console_line);
|
||
|
}
|
||
|
p++;
|
||
|
}
|
||
|
} else {
|
||
|
while (p->cmd != 0) {
|
||
|
// calling the callback with argc/argv set to 0 should instruct it to print help/usage
|
||
|
if (strcmp(argv[1], p->cmd) == 0) {
|
||
|
p->go(0, (char **)0);
|
||
|
return;
|
||
|
}
|
||
|
p++;
|
||
|
}
|
||
|
|
||
|
// looks like the command wasn't found
|
||
|
strcpy( console_line, "* no help found for command called '");
|
||
|
strncat(console_line, argv[1], 60);
|
||
|
strncat(console_line, "'\r\n", 62);
|
||
|
CONS_PRINT(console_line);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void cons_help(int argc, char **argv)
|
||
|
{
|
||
|
cons_help_real(argc, argv, (command_table_t *)console_cmdlist);
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
#endif /* USER_SHELL_COMMANDS_HELP_H_ */
|