/** List out help information on all the commands or print extended information about a specific passed in command. Argv[0] - "help" Argv[1] - Command to display help about @param Argc Number of command arguments in Argv @param Argv Array of strings that represent the parsed command line. Argv[0] is the command name @return EFI_SUCCESS **/ EFI_STATUS EFIAPI EblHelpCmd ( IN UINTN Argc, IN CHAR8 **Argv ) { UINTN Index; CHAR8 *Ptr; UINTN CurrentRow = 0; if (Argc == 1) { // Print all the commands AsciiPrint ("Embedded Boot Loader (EBL) commands (help command for more info):\n"); CurrentRow++; for (Index = 0; Index < mCmdTableNextFreeIndex; Index++) { EblSetTextColor (EFI_YELLOW); AsciiPrint (" %a", mCmdTable[Index]->Name); EblSetTextColor (0); AsciiPrint ("%a\n", mCmdTable[Index]->HelpSummary); // Handle multi line help summaries CurrentRow += CountNewLines (mCmdTable[Index]->HelpSummary); if (EblAnyKeyToContinueQtoQuit (&CurrentRow, FALSE)) { break; } } } else if (Argv[1] != NULL) { // Print specific help for (Index = 0, CurrentRow = 0; Index < mCmdTableNextFreeIndex; Index++) { if (AsciiStriCmp (Argv[1], mCmdTable[Index]->Name) == 0) { Ptr = (mCmdTable[Index]->Help == NULL) ? mCmdTable[Index]->HelpSummary : mCmdTable[Index]->Help; AsciiPrint ("%a%a\n", Argv[1], Ptr); // Handle multi line help summaries CurrentRow += CountNewLines (Ptr); if (EblAnyKeyToContinueQtoQuit (&CurrentRow, FALSE)) { break; } } } } return EFI_SUCCESS; }
static byte InitMenuBox(void) { int i, y; if (ShowText()) { y = CountNewLines(text) + 2; for (i = 0; i < listN; i++) { TwGotoXYWindow(Dialog_Win, 3, i+y); TwWriteAsciiWindow(Dialog_Win, strlen(list[i].tag), list[i].tag); TwGotoXYWindow(Dialog_Win, 10, i+y); TwWriteAsciiWindow(Dialog_Win, strlen(list[i].item), list[i].item); } return InitButtons(" OK ", "Cancel"); } return FALSE; }