Bruno Haible <[EMAIL PROTECTED]> 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