Better docs and structure
This commit is contained in:
@@ -1,5 +1,16 @@
|
||||
/*
|
||||
* string_utils.c – Wide-character (CHAR16) string helpers.
|
||||
*
|
||||
* Provides basic string operations used throughout the kernel,
|
||||
* particularly by the command parser in commands.c.
|
||||
*/
|
||||
|
||||
#include "string_utils.h"
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* Character classification / conversion
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
BOOLEAN is_space16(CHAR16 Ch)
|
||||
{
|
||||
return (Ch == L' ' || Ch == L'\t');
|
||||
@@ -13,6 +24,10 @@ CHAR16 ascii_lower16(CHAR16 Ch)
|
||||
return Ch;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* String comparison
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
BOOLEAN ascii_streq_ci(const CHAR16 *A, const CHAR16 *B)
|
||||
{
|
||||
if (A == NULL || B == NULL) {
|
||||
@@ -30,6 +45,10 @@ BOOLEAN ascii_streq_ci(const CHAR16 *A, const CHAR16 *B)
|
||||
return (*A == L'\0' && *B == L'\0');
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* In-place trimming
|
||||
* ---------------------------------------------------------------- */
|
||||
|
||||
void trim_spaces_inplace(CHAR16 *Cmd)
|
||||
{
|
||||
UINTN start = 0;
|
||||
@@ -40,19 +59,23 @@ void trim_spaces_inplace(CHAR16 *Cmd)
|
||||
return;
|
||||
}
|
||||
|
||||
/* Find first non-space character */
|
||||
while (Cmd[start] != L'\0' && is_space16(Cmd[start])) {
|
||||
start++;
|
||||
}
|
||||
|
||||
/* Find end of string */
|
||||
end = start;
|
||||
while (Cmd[end] != L'\0') {
|
||||
end++;
|
||||
}
|
||||
|
||||
/* Trim trailing spaces */
|
||||
while (end > start && is_space16(Cmd[end - 1])) {
|
||||
end--;
|
||||
}
|
||||
|
||||
/* Shift trimmed content to the beginning */
|
||||
while (i < (end - start)) {
|
||||
Cmd[i] = Cmd[start + i];
|
||||
i++;
|
||||
|
||||
Reference in New Issue
Block a user