strim: Sync up with Linux version
Linux changed the behaviour of strim() so that a string with only spaces reduces places the terminator at the start of the string, rather than returning a pointer to the end of the string. Bring in this version, from Linux v6.14 Add a comment about the new behaviour. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -31,13 +31,15 @@ char *skip_spaces(const char *str)
|
|||||||
* Note that the first trailing whitespace is replaced with a %NUL-terminator
|
* Note that the first trailing whitespace is replaced with a %NUL-terminator
|
||||||
* in the given string @s. Returns a pointer to the first non-whitespace
|
* in the given string @s. Returns a pointer to the first non-whitespace
|
||||||
* character in @s.
|
* character in @s.
|
||||||
|
*
|
||||||
|
* Note that if the string consist of only spaces, then the terminator is placed
|
||||||
|
* at the start of the string, with the return value pointing there also.
|
||||||
*/
|
*/
|
||||||
char *strim(char *s)
|
char *strim(char *s)
|
||||||
{
|
{
|
||||||
size_t size;
|
size_t size;
|
||||||
char *end;
|
char *end;
|
||||||
|
|
||||||
s = skip_spaces(s);
|
|
||||||
size = strlen(s);
|
size = strlen(s);
|
||||||
if (!size)
|
if (!size)
|
||||||
return s;
|
return s;
|
||||||
@@ -47,5 +49,5 @@ char *strim(char *s)
|
|||||||
end--;
|
end--;
|
||||||
*(end + 1) = '\0';
|
*(end + 1) = '\0';
|
||||||
|
|
||||||
return s;
|
return skip_spaces(s);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user