On Mon, 6 Aug 2012, Pavel Vasilyev wrote:
06.08.2012 18:36, Alan Stern ÐÐÑÐÑ:On Mon, 6 Aug 2012, Pavel Machek wrote:
On Thu 2012-07-26 21:39:38, Len Brown wrote:...both give the number of chars in the string
without the '\0', as strncmp() wants,
but sizeof() is compile-time.
What about introducing something like streq() to do this
automatically? This is ugly....
#define streq(a, b) ... if (_buildin_constant(b)) ...
?
- if (!strncmp(val, "enable", strlen("enable"))) {
+ if (!strncmp(val, "enable", sizeof("enable") - 1)) {
While you're at it, there's no point using strncmp when you know the
length of one of the strings beforehand. Just use memcmp, and don't
subtract 1 from the sizeof value.
http://www.gossamer-threads.com/lists/engine?do=post_attachment;postatt_id=41157;list=linux
Interestingly, many (all?) of the changes in that patch are wrong
because they don't try to match the terminating '\0'. As a result,
they will match against extensions of the target string as well as the
target string itself.