On 5 July 2016 at 15:14, Joe Perches <joe@xxxxxxxxxxx> wrote: > On Tue, 2016-07-05 at 13:47 -0700, Markus Mayer wrote: >> This series introduces a family of generic string case conversion >> functions. This kind of functionality is needed in several places in >> the kernel. Right now, everybody seems to be implementing their own >> copy of this functionality. >> >> Based on the discussion of the previous version of this series[1] and >> the use cases found in the kernel, it does look like having several >> flavours of case conversion functions is beneficial. The use cases fall >> into three categories: >> - copying a string and converting the case while specifying a >> maximum length to mimic strncpy() >> - copying a string and converting the case without specifying a >> length to mimic strcpy() >> - converting the case of a string in-place (i.e. modifying the >> string that was passed in) >> >> Consequently, I am proposing these new functions: >> char *strncpytoupper(char *dst, const char *src, size_t len); >> char *strncpytolower(char *dst, const char *src, size_t len); >> char *strcpytoupper(char *dst, const char *src); >> char *strcpytolower(char *dst, const char *src); >> char *strtoupper(char *s); >> char *strtolower(char *s); > > I think there isn't much value in anything other > than strto<upper|lower>. > > Using str[n]cpy followed by strto<upper|lower> is > pretty obvious and rarely used anyway. First time around, folks were proposing the "copy" variants when I submitted just strtolower() by itself[1]. They just asked for source and destination parameters to strtolower(), but looking at the use cases that wouldn't have worked so well. Hence it evolved into these 6 functions. Here's a breakdown of how the functions are being used (patches 2-7), see also [2]: Patch 2: strncpytolower() Patch 3: strtolower() Patch 4: strncpytolower() and strtolower() Patch 5: strtolower() Patch 6: strcpytoupper() Patch 7: strcpytoupper() So it does look like the copy + change case variant is more frequently used than just strto<upper|lower>. Regards, -Markus [1] https://lkml.org/lkml/2016/7/1/652 [2] https://lkml.org/lkml/2016/7/5/542 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel