I was using strdup and it triggered this warning in gnulib:

  _GL_WARN_ON_USE (strdup, "strdup is unportable - "
                   "use gnulib module strdup for portability");

However the strdup module is deprecated according to modules/strdup:

  This module is obsolete. But you may want to use the strdup-posix module.

So string.h should probably point to strdup-posix?

But what is the purpose of the strdup module then?  According to

http://www.gnu.org/software/gnulib/manual/html_node/strdup.html

the difference is that strdup-posix also sets errno correctly on mingw
but the strdup module does not fix that bug.

Can't we just rename strdup-posix to strdup?

If the dependency on malloc-posix module is the problem, strdup.c could
easily set errno itself if it gets a NULL back from malloc, couldn't it?

I suspect strdup is one of the initial modules a new gnulib user would
import, so this complexity might be confusing and I don't see the gain.

/Simon

Reply via email to