www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 8643] New: [snn] _wfopen and other non-standard wide-character functions fail with non-ASCII symbols

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

           Summary: [snn] _wfopen and other non-standard wide-character
                    functions fail with non-ASCII symbols
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: major
          Priority: P2
         Component: druntime
        AssignedTo: nobody puremagic.com
        ReportedBy: verylonglogin.reg gmail.com
            Blocks: 7648



00:15:52 MSD ---
---
import std.file: write;
import core.stdc.stdio: perror;

extern (C) nothrow int _wrename(in wchar* from, in wchar* to);

void main()
{
    // write("1.txt", "123");
    if(_wrename("1.txt"w.ptr, "2Ю.txt"w.ptr))
        perror("Error renaming file");
}
---

Output:
---
Error renaming file: Invalid argument
---
if:
* there is no 1.txt file
* there is 1.txt file
* there is no 1.txt file and `write` is uncommented

Output:
---
Error renaming file: File exists
---
if:
* there is 1.txt file and `write` is uncommented

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 11 2012
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8643




00:27:31 MSD ---
These functions treats every UTF-16 codepoint as CP_ACP byte followed by zero
byte (if second byte is non-zero, "Invalid argument" is returned). E.g. this
will work:
---
import std.file: write;
import std.windows.charset: toMBSz;
import core.stdc.stdio: perror;
import std.exception: enforce;

extern (C) nothrow int _wrename(in wchar* from, in wchar* to);

void main()
{
    write("1.txt", "123");

    arr[1] = toMBSz("Ю")[0];
    enforce(_wrename("1.txt"w.ptr, arr.ptr) == 0);
}
---
(still don't understand "File exists" output of original example in
description)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 11 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8643




Commit pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/d7a60b3b8a5a4d0ebc7743ae1a1502133521b571
Disable non-ASCII characters test because of snn.lib Issue 8643

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 16 2012
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8643


Sönke Ludwig <sludwig outerproduct.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|major                       |critical



PDT ---
Increasing severity as this is really basic functionality.

This was also reported as a DUB bug: 
https://github.com/rejectedsoftware/dub/issues/130

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


Denis Shelomovskij <verylonglogin.reg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|critical                    |major



09:59:12 MSD ---

 Increasing severity as this is really basic functionality.
One can use `std.stream` which contains this functionality. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 17 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=8643


Denis Shelomovskij <verylonglogin.reg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|nobody puremagic.com        |verylonglogin.reg gmail.com



13:34:42 MSD ---
Assigned to myself. Reassign is somebody feels he can do it faster.

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


Denis Shelomovskij <verylonglogin.reg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|verylonglogin.reg gmail.com |nobody puremagic.com



14:02:11 MSD ---

 Assigned to myself. Reassign is somebody feels he can do it faster.
Sorry, this is not the issue I'm solving. Reset assignee to default and opened Issue 11298 which will allow Issue 7648 to be resolved without fixing this one. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 19 2013