Sort xtldr modules alphabetically

This commit is contained in:
2026-08-03 15:02:09 +02:00
parent 328b785b18
commit c6020578ce

View File

@@ -807,7 +807,7 @@ Shell::ReadCommand(OUT PWCHAR Buffer,
* @param Handler * @param Handler
* Supplies a pointer to the function that implements the command. * Supplies a pointer to the function that implements the command.
* *
* @return This routine returns a status code. * @return This routine returns a status code indicating the success or failure of the operation.
* *
* @since XT 1.0 * @since XT 1.0
*/ */
@@ -835,6 +835,13 @@ Shell::RegisterCommand(IN PCWSTR Command,
return STATUS_EFI_INVALID_PARAMETER; return STATUS_EFI_INVALID_PARAMETER;
} }
/* Check if the existing command string is lexicographically greater than the new command */
if(RTL::WideString::CompareWideStringInsensitive(CommandEntry->Command, Command, 0) > 0)
{
/* Break the traversal loop */
break;
}
/* Advance to the next entry */ /* Advance to the next entry */
ListEntry = ListEntry->Flink; ListEntry = ListEntry->Flink;
} }
@@ -852,8 +859,17 @@ Shell::RegisterCommand(IN PCWSTR Command,
CommandEntry->Description = (PWCHAR)Description; CommandEntry->Description = (PWCHAR)Description;
CommandEntry->Handler = Handler; CommandEntry->Handler = Handler;
/* Append the command to the global shell commands list */ /* Check if the traversal reached the end of the command list */
RTL::LinkedList::InsertTailList(&ShellCommands, &CommandEntry->Flink); if(ListEntry == &ShellCommands)
{
/* Append the new command entry to the tail of the list */
RTL::LinkedList::InsertTailList(&ShellCommands, &CommandEntry->Flink);
}
else
{
/* Insert the new command entry before the current item */
RTL::LinkedList::InsertHeadList(ListEntry->Blink, &CommandEntry->Flink);
}
/* Return success */ /* Return success */
return STATUS_EFI_SUCCESS; return STATUS_EFI_SUCCESS;