On Tue, Sep 16 2014, Theodore Ts'o <[email protected]> wrote: > On Tue, Sep 16, 2014 at 10:51:14PM +0200, Rasmus Villemoes wrote: >> The kernel used to contain two functions for length-delimited, >> case-insensitive string comparison, strnicmp with correct semantics >> and a slightly buggy strncasecmp. The latter is the POSIX name, so >> strnicmp was renamed to strncasecmp, and strnicmp made into a wrapper >> for the new strncasecmp to avoid breaking existing users. > > For the sake of those people who need to review the patches, can you > say a bit more about the difference in semantics between strnicmp and > strncasecmp, and why it's safe to do a global search and replace > without worrying about the semantic differences? >
The new strncasecmp is exactly the old strnicmp, making s/strnicmp/strncasecmp/g a semantic noop. But of course it needs to be applied after the renaming. Andrew said he'd take these follow-up patches and make sure they're applied in proper order. Even without the follow-up patches, strnicmp users shouldn't be affected except for a very small extra indirection overhead. The two functions behaved identically whenever the length argument was non-zero. For len==0, the old strncasecmp however effectively became strcasecmp. http://thread.gmane.org/gmane.linux.kernel/1775150/focus=1775152 Thanks, Rasmus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

