Hi Junling,

On 2018/4/3 10:15, Junling Zheng wrote:
> Hi, Chao
> 
> On 2018/4/2 21:35, Chao Yu wrote:
>> On 2018/4/2 12:19, Junling Zheng wrote:
>>> Now one "-O" option can support multiple features separated
>>> by a comma or blank, such as:
>>> feature1,feature2,... or "feature1 feature2 ..."
>>
>> At a glance, can last sector number be parsed as feature name?
>>
> 
> No, we should use quotation marks to wrap whole features while separating 
> them with blanks.

Sorry, that's right.

> 
> Thanks,
> Junling
> 
>> Thanks,
>>
>>>
>>> Signed-off-by: Junling Zheng <zhengjunl...@huawei.com>
>>> ---
>>>  mkfs/f2fs_format_main.c | 30 +++++++++++++++++++++++++++---
>>>  1 file changed, 27 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/mkfs/f2fs_format_main.c b/mkfs/f2fs_format_main.c
>>> index 741600e..76ff296 100644
>>> --- a/mkfs/f2fs_format_main.c
>>> +++ b/mkfs/f2fs_format_main.c
>>> @@ -80,10 +80,8 @@ static void f2fs_show_info()
>>>     MSG(0, "Info: Trim is %s\n", c.trim ? "enabled": "disabled");
>>>  }
>>>  
>>> -static void parse_feature(const char *features)
>>> +static void set_feature_bits(char *features)
>>>  {
>>> -   while (*features == ' ')
>>> -           features++;
>>>     if (!strcmp(features, "encrypt")) {
>>>             c.feature |= cpu_to_le32(F2FS_FEATURE_ENCRYPT);
>>>     } else if (!strcmp(features, "verity")) {
>>> @@ -108,6 +106,32 @@ static void parse_feature(const char *features)
>>>     }
>>>  }
>>>  
>>> +static void parse_feature(const char *features)
>>> +{
>>> +   char *buf, *sub, *next;
>>> +
>>> +   buf = calloc(strlen(features) + 1, sizeof(char));
>>> +   ASSERT(buf);
>>> +   strncpy(buf, features, strlen(features) + 1);
>>> +
>>> +   for (sub = buf; sub && *sub; sub = next ? next + 1 : NULL) {
>>> +           /* Skip the beginning blanks */
>>> +           while (*sub && *sub == ' ')
>>> +                   sub++;
>>> +           next = sub;
>>> +           /* Skip a feature word */
>>> +           while (*next && *next != ' ' && *next != ',')
>>> +                   next++;
>>> +
>>> +           if (*next == 0)
>>> +                   next = NULL;
>>> +           else
>>> +                   *next = 0;
>>> +
>>> +           set_feature_bits(sub);
>>> +   }

free(buf);?

Thanks,

>>> +}
>>> +
>>>  static void f2fs_parse_options(int argc, char *argv[])
>>>  {
>>>     static const char *option_string = "qa:c:d:e:E:il:mo:O:s:S:z:t:f";
>>>
>>
>> .
>>
> 
> 
> 
> .
> 


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to