Subject: Re: removing duplication and improving the readlink code

From: Paul Eggert <[email-masked]>
Date: Fri, 01 Apr 2011 12:00:28 -0700

On 04/01/2011 01:33 AM, Eli Zaretskii wrote:
> Isn't much easier and much more elegant to use ssize_t instead of an
> int for the buffer sizes in both cases?

That doesn't suffice; the code should not only use ssize_t for
readlink's returned value, but it should also use size_t for the
buffer size, and it should check that neither type overflows.

We could modify both copies of Emacs's readlink-using
code to fix these problems, but when there's duplication like
this, it's typically better to have just one copy of the code,
and make any necessary fixes in that copy.

On 04/01/2011 01:33 AM, Eli Zaretskii wrote:
> If this patch is accepted, the new emacs_readlink function will be a
> trivial "fail" stub on Windows.

That would introduce an unnecessary "#ifdef DOS_NT" into the mainline
code.  We should strive to keep the mainline code free of
porting #ifdefs when it is easy, as it is in this case.
The proposed code should run just fine on Windows, using
the already-existing stubs.  We shouldn't need to clutter up
up the mainline code with unnecessary Windows-specific
microoptimizations.