[U-Boot] [PATCH 02/15] efi_loader: rename utf16_strlen, utf16_strnlen
Heinrich Schuchardt
xypron.glpk at gmx.de
Sun Aug 26 18:21:35 UTC 2018
On 08/26/2018 07:52 PM, Alexander Graf wrote:
>
>
> On 11.08.18 17:28, Heinrich Schuchardt wrote:
>> The function names utf16_strlen() and utf16_strnlen() are misnomers.
>> The functions do not count utf-16 characters but non-zero words.
>> So let's rename them to u16_strlen and u16_strnlen().
>>
>> In utf16_dup() avoid assignment in if clause.
>>
>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>> ---
>> include/charset.h | 28 +++++++++++-----------------
>> lib/charset.c | 10 +++++++---
>> lib/efi_loader/efi_bootmgr.c | 2 +-
>> lib/efi_loader/efi_console.c | 2 +-
>> lib/efi_loader/efi_file.c | 2 +-
>> lib/efi_loader/efi_variable.c | 2 +-
>> lib/vsprintf.c | 2 +-
>> 7 files changed, 23 insertions(+), 25 deletions(-)
>>
>> diff --git a/include/charset.h b/include/charset.h
>> index 11832cbd12..2307559890 100644
>> --- a/include/charset.h
>> +++ b/include/charset.h
>> @@ -13,29 +13,23 @@
>> #define MAX_UTF8_PER_UTF16 3
>>
>> /**
>> - * utf16_strlen() - Get the length of an utf16 string
>> + * u16_strlen - count non-zero words
>
> This really just implements wcslen() now, right?
>
>> *
>> - * Returns the number of 16 bit characters in an utf16 string, not
>> - * including the terminating NULL character.
>> - *
>> - * @in the string to measure
>> - * @return the string length
>> + * @in: utf-16 string
>
> Is "in" really a utf-16 string? Probably rather a null-terminated string
> of words.
I will update the comment.
>
>> + * ReturnValue: number of non-zero words.
>> + * This is not the number of utf-16 letters!
>> */
>> -size_t utf16_strlen(const uint16_t *in);
>> +size_t u16_strlen(const u16 *in);
>>
>> /**
>> - * utf16_strnlen() - Get the length of a fixed-size utf16 string.
>> - *
>> - * Returns the number of 16 bit characters in an utf16 string,
>> - * not including the terminating NULL character, but at most
>> - * 'count' number of characters. In doing this, utf16_strnlen()
>> - * looks at only the first 'count' characters.
>> + * u16_strlen - count non-zero words
>
> This really just implements wcsnlen() now, right?
Currently we have set wchar size to 16bit using a compiler flag. In my
opinion this was not necessary. In C11 we could have use the u"text"
notation for utf-8 string constants instead of L"text".
This function really is for u16[] and not for wchar_t[].
I would hesitate to call this function wcsnlen() as the working of
wcsnlen() depends on said compiler setting.
>
>> *
>> - * @in the string to measure
>> - * @count the maximum number of characters to count
>> - * @return the string length, up to a maximum of 'count'
>> + * @in: utf-16 string
>
Yes u16 string.
Thanks for reviewing.
Heinrich
> Same comment here.
>
>
> Alex
>
More information about the U-Boot
mailing list