[Top][All Lists]

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

Re: Bug in builtin function abspath

From: Eli Zaretskii
Subject: Re: Bug in builtin function abspath
Date: Fri, 26 May 2006 23:48:16 +0300

> Date: Fri, 26 May 2006 21:52:05 +0200
> From: Andreas =?iso-8859-1?Q?B=FCning?= <address@hidden>
> Cc: 
> make 3.81 has a new builtin function 'abspath' which doesn't support
> drive letters.

Could you please provide examples of this non-support?  At least the
simple example below works for me:

    D:\gnu\emacs>make -f-
    foo = ../../usr
            @echo $(abspath $(foo))

I've read your message from July 2005 and the ensuing discussion, and
didn't see any examples there as well.

(Yes, I see in the source code that it will not DTRT with "d:/foo" and
will not add a drive letter to "/foo", but I wonder whether there are
other examples.)

> I'm using OS/2, not Windows, so if any code is added to the w32
> subdirectory it won't solve the problem for me.

Is that the EMX port?  If not, please describe how you build Make
(i.e. what OS-dependent #define's are used).

> --- old/make-3.81/function.c  Sat Apr  1 08:36:40 2006
> +++ gnu/make-3.81/function.c  Fri May 26 20:38:16 2006

This patch is extremely complex.  Why isn't it sufficient to modify
the simple-minded test here:

  if (name[0] != '/')

copy the drive letter here:

      apath[0] = '/';
      dest = apath + 1;

and make sure each test for '/' uses IS_PATHSEP instead of a literal
comparison to '/'?  I don't see any need to ``hide'' the drive letter
from the code, but perhaps there are examples where this is needed?

reply via email to

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