bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mingw and memcmp


From: Paul Eggert
Subject: Re: mingw and memcmp
Date: Fri, 21 Dec 2007 15:14:21 -0800
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)

Bruno Haible <address@hidden> writes:

>   - You can bury the 'memcmp' module. It's not needed by ANSI C systems,
>     and gnulib assumes ANSI C for ca. 2 years already.

I think we're assuming freestanding C89 or better, right?
memcmp is required for hosted C89, but not for freestanding.

It's no big deal, but since the code already uses strncmp, I think the
objection about brain cycles being wasted has less force than usual.
For many people at least, I expect it'll take more brain cycles to
read code that uses both strncmp and memcmp than to read code that
uses only strncmp.

That being said, I do have a bit of trouble reading the code, though.
It doesn't seem to match the comment: e.g., it strips a leading "lt-"
even when there's no "/.libs/".  How about if we change this:

  const char *slash;
  const char *base;

  slash = strrchr (argv0, '/');
  base = (slash != NULL ? slash + 1 : argv0);
  if (base - argv0 >= 7 && strncmp (base - 7, "/.libs/", 7) == 0)
    argv0 = base;
  if (strncmp (base, "lt-", 3) == 0)
    argv0 = base + 3;
  program_name = argv0;

to this:

  char const *slash = strrchr (argv0, '/');
  if (slash && 6 <= slash - argv0 && strncmp (slash - 6, "/.libs", 6) == 0)
    argv0 = slash + (strncmp (slash, "/lt-", 4) == 0 ? 4 : 1);
  program_name = argv0;

?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]