[Top][All Lists]

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

Re: canonicalize_file_name should support win32 shortcuts

From: Sam Steingold
Subject: Re: canonicalize_file_name should support win32 shortcuts
Date: Tue, 23 Aug 2011 10:41:07 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

> * Eric Blake <address@hidden> [2011-08-23 08:03:02 -0600]:
> On 08/23/2011 07:56 AM, Sam Steingold wrote:
>> Let me reiterate that the size of canonicalize is plain absurd:
>> <https://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00143.html>.
>> 150+ files to implement a single function which takes ~160 lines of C code.
>> These files includes things like hash.c and fchownat.c (why?!)
> hash.c in order to properly detect ELOOP, which must be done as part of
> an unlimited-depth link following algorithm.  (If we didn't have the GNU
> mantra of no arbitrary limits, then we could declare ELOOP at
> SYMLOOP_MAX instead.)

ELOOP at SYMLOOP_MAX sounds good to me.
Please note that gnulib's mandate (as far as _I_ understand it) is
to turn a random system into a POSIX system, not a GNU system.
Please provide a separate module when you want to follow the GNU mantra,
like you do with fnmatch.


> fchownat.c because the openat module has too many functions.

I would say that all the "f*" (i.e., using FILE*) files are an overkill.

> Anyone willing to split openat into multiple modules, one per
> function, more like other gnulib modules?


>> as well as __BOTH__ malloc.c and xmalloc.c.
> Depending on xmalloc is probably overkill - having a version of
> canonicalize that returns NULL with ENOMEM instead of abort()ing would
> indeed be nicer.  Anyone willing to contribute patches to break that
> part of the dependency chain()


Sam Steingold (http://sds.podval.org/) on CentOS release 5.6 (Final) X 
http://pmw.org.il http://iris.org.il http://ffii.org http://honestreporting.com
http://www.PetitionOnline.com/tap12009/ http://openvotingconsortium.org
(let((a'(list'let(list(list'a(list'quote a)))a)))`(let((a(quote ,a))),a))

reply via email to

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