Re: [PATCH] Fix strim() semantics for strings that have only blanks

From: André Goddard Rosa
Date: Mon Oct 17 2011 - 07:25:20 EST


Hello Michael,

On Thu, Oct 13, 2011 at 8:54 PM, Andrew Morton
<akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Wed, 12 Oct 2011 10:31:57 +0200
> Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx> wrote:
>
>> Hello Andre,
>>
>> With git commit 84c95c9acf088c99d8793d78036b67faa5d0b851 a patch from
>> you went upstream where you wanted to improve the performance of the
>> strim() function.
>>
>> Unfortunately this changed the semantics of strim() and broke my code. Before
>> the patch it was possible to use strim() without using the return value for
>> removing trailing spaces from strings that had either only blanks or only
>> trailing blanks.
>>
>> Now this does not work any longer for strings that *only* have blanks.
>>
>> Before patch: "   " -> ""    (empty string)
>> After patch:  "   " -> "   " (no change)
>>
>> I think we should remove your patch to restore the old behavior.
>>
>> >From the description (lib/string.c):
>>
>>  * Note that the first trailing whitespace is replaced with a %NUL-terminator
>>
>> => The first trailing whitespace of a string that only has whitespace
>>    characters is the first whitespace
>
> Yes, that change makes sense.

breaking your code was not good at all. Is it maintained off tree?
I believe It happened because you use strim() without using its return.
In any case, I'm OK on reverting it to fix your problem.

Thanks,
André
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/