[PATCH] gpt: allow spaces in partition list

Mikhail Kshevetskiy mikhail.kshevetskiy at genexis.eu
Wed Jul 3 03:29:47 CEST 2024


On 7/2/24 19:51, Simon Glass wrote:
> Hi Mikhail,
>
> On Tue, 2 Jul 2024 at 10:42, Mikhail Kshevetskiy
> <mikhail.kshevetskiy at genexis.eu> wrote:
>>
>> On 27.06.2024 22:05, Simon Glass wrote:
>>> Hi Mikhail,
>>>
>>> On Thu, 27 Jun 2024 at 12:29, Mikhail Kshevetskiy
>>> <mikhail.kshevetskiy at iopsys.eu> wrote:
>>>> This allows spliting partition list to several lines in environment file
>>>>
>>>> ex:
>>>> --------------------
>>>> gpt_partition_list=
>>>>         name=boot1,size=5MiB,start=0x100000;
>>>>         name=boot2,size=5MiB;
>>>>         name=rootfs1,size=70MiB;
>>>>         name=rootfs2,size=70MiB;
>>>>         name=overlay1,size=20MiB;
>>>>         name=overlay2,size=20MiB;
>>>>         name=art,size=4MiB;
>>> Is this referring to a .env file, i.e. a text environment file? If so,
>>> I would hope that spaces at the start of a line would be automatically
>>> removed.
>> This is refer to a .env file, so starting space/tabs will be removed,
>> all '\n' will be replaced by spaces. Thus we will get a single line where
>> each partition divided from other with a single space (like below)
>>
>> gpt_partition_list=name=boot1,size=5MiB,start=0x100000; name=boot2,size=5MiB; ...
> Reviewed-by: Simon Glass <sjg at chromium.org>
>
> But I wonder if the \t is needed?

no, \t is not mandatory. Spaces can be used instead.

>
>>>> Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy at iopsys.eu>
>>>> ---
>>>>  cmd/gpt.c | 2 ++
>>>>  1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/cmd/gpt.c b/cmd/gpt.c
>>>> index 7aaf1889a5a..2b29ab98ccc 100644
>>>> --- a/cmd/gpt.c
>>>> +++ b/cmd/gpt.c
>>>> @@ -117,6 +117,7 @@ static char *extract_val(const char *str, const char *key)
>>>>                 k = strsep(&v, "=");
>>>>                 if (!k)
>>>>                         break;
>>>> +               k += strspn(k, " \t");
>>>>                 if  (strcmp(k, key) == 0) {
>>>>                         new = strdup(v);
>>>>                         break;
>>>> @@ -151,6 +152,7 @@ static bool found_key(const char *str, const char *key)
>>>>                 k = strsep(&s, ",");
>>>>                 if (!k)
>>>>                         break;
>>>> +               k += strspn(k, " \t");
>>>>                 if  (strcmp(k, key) == 0) {
>>>>                         result = true;
>>>>                         break;
>>>> --
>>>> 2.43.0
> Regards,
> Simon


More information about the U-Boot mailing list