www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 6814] New: Calling std.file.readLink causes code to not compile.

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6814

           Summary: Calling std.file.readLink causes code to not compile.
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: nobody puremagic.com
        ReportedBy: opantm+spam gmail.com



The function std.file.readLink attempts to convert a char[2048] to a char*
implicitly, causing any code calling it to result in a compiler error.

Test Case:

import std.stdio;
import std.file;

void main() {
        string Path = readLink("/proc/self/exe");
        writefln(Path);
}

Output:

/usr/include/d/dmd/phobos/std/file.d(1834): Error: function
core.sys.posix.unistd.readlink (in const(char*), char*, ulong) is not callable
using argument types (const(char*),char[2048LU],ulong)
/usr/include/d/dmd/phobos/std/file.d(1835): Error: cannot implicitly convert
expression (buffer) of type char[2048LU] to char*

Fix:
Just add a .ptr when calling the core.sys version.

As an unrelated issue, readLink will also truncate without warning if the path
resolves to more than 2047 characters, but I'm not sure if that's worth opening
a separate bug report for.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 15 2011
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6814


Jonathan M Davis <jmdavisProg gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jmdavisProg gmx.com



PDT ---
This is very bizarre, because the unit tests compile and run just fine for
readLink. But your example does indeed fail to compile.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 15 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6814




PDT ---
https://github.com/D-Programming-Language/phobos/pull/294

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 15 2011
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=6814


Brad Roberts <braddr puremagic.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |braddr puremagic.com
         Resolution|                            |FIXED



---
Fix pulled back in Oct 2011.  Closing.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 07 2012