From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/7620 Path: news.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general,gmane.comp.standards.posix.austin.general,gmane.comp.compilers.clang.devel Subject: Re: Re: [cfe-dev] Is that getting wchar_t to be 32bit on win32 a good idea for compatible with Unix world by implement posix layer on win32 API? Date: Sun, 10 May 2015 09:42:30 -0400 Message-ID: <20150510134230.GN17573@brightrain.aerifal.cx> References: <20150509103645.GG29035@port70.net> <20150509200535.GK17573@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1431265377 28290 80.91.229.3 (10 May 2015 13:42:57 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 10 May 2015 13:42:57 +0000 (UTC) Cc: John Sully , Karsten Blees , musl@lists.openwall.com, dplakosh@cert.org, austin-group-l@opengroup.org, hsutter@microsoft.com, Clang Dev , James McNellis To: =?utf-8?B?572X5YuH5YiaKFlvbmdnYW5nIEx1byk=?= Original-X-From: musl-return-7633-gllmg-musl=m.gmane.org@lists.openwall.com Sun May 10 15:42:50 2015 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1YrRVJ-0000K7-Dw for gllmg-musl@m.gmane.org; Sun, 10 May 2015 15:42:49 +0200 Original-Received: (qmail 30090 invoked by uid 550); 10 May 2015 13:42:47 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 30069 invoked from network); 10 May 2015 13:42:47 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Original-Sender: Rich Felker Xref: news.gmane.org gmane.linux.lib.musl.general:7620 gmane.comp.standards.posix.austin.general:10765 gmane.comp.compilers.clang.devel:42681 Archived-At: On Sun, May 10, 2015 at 08:31:54PM +0800, 罗勇刚(Yonggang Luo) wrote: > For example, the open function exist both in msvcrt and posix, > int open(const char *path, int oflag, ...); > > But in msvcrt, the path is ANSI encoding, and in posix, path is utf8 encoding, > > So if we need to developing a cross-platform application, On Win32, > the open function should not be used. > But in fact, there is no openw(const wchar*path) API in posix or Win32, > So we need to re-implement open function on win32 with the same API, > and convert to > the wchar_t version of Window 32 API, _wopen, > That's would be a chaos for those developers want to use open function > in both posix and win32. I assumed you were already planning for your POSIX layer an open function which takes a UTF-8 string and converts it transparently to whatever encoding (i.e. UTF-16) the underlying Windows operations need. If you don't have that, then you're a step behind even Cygwin and significantly behind midipix in terms of the ability to provide a POSIX+Unicode environment that can run existing POSIX-targeted applications unmodified. Anyone wanting Unicode filename support would have to fill their codebase with Windows-specific openw() calls, which is basically the same situation you have now on Windows. > And if we turn the wchar_t to be 32 bit on win32, > first, posix still have no wide version of open function > second, to implement open function on win32, we need to consider the > fact wchar_t is 32bit now, and should re-use the exist _wopen in > a different way and all other exist wide version of Win32 API. I don't follow what you're saying here. Rich