digitalmars.D - What's the problem if add toMBSz to tango.sys.win32 ?
- yidabu (20/20) Apr 24 2008 Tango and almost all Tango based libs and tools have same issue:
- Lars Ivar Igesund (16/36) Apr 24 2008 You can't say wrong without coming with a solution, or at least an
- yidabu (14/23) Apr 24 2008 On Thu, 24 Apr 2008 21:26:28 +0200
- Lars Ivar Igesund (14/37) Apr 25 2008 This is not an answer to my statement, or at least I don't understand it...
- Frits van Bommel (10/10) Apr 25 2008 Lars Ivar Igesund wrote:
- yidabu (12/24) Apr 25 2008 Thanks.
- Lars Ivar Igesund (9/21) Apr 26 2008 Okay, thanks, that makes sense. It says little about which calls these a...
- terranium (1/2) Apr 26 2008 For example in tango.io.FileConduit an utf8 string is passed to CreateFi...
- Walter Bright (4/9) Apr 26 2008 All Windows API calls under Windows 9x should use the "A" api's whenever...
- Lars Ivar Igesund (9/14) Apr 27 2008 Ok, now I have an understanding of what is said here - the way to have t...
Tango and almost all Tango based libs and tools have same issue: use tango.stdc.stringz.toStringz(name) or name ~ '\0' instead of toMBSz(name) for calling A version Windows API, that's wrong! program may crashed if multi byte name. you might say, why not just create a ticket for Tango, right, I created it long time ago, but Kris seems not a MS fans :) http://www.dsource.org/projects/tango/ticket/653 you might say, how about the tango.sys.win32.CodePage module? but: 1 the name, "toMBSz" is better than "CodePage" in this case 2 the implementation, toMBSz is better in this case 2 Tango itself not use CodePage module in this case It is too tedious to create bug tickets for every tango based libs, tools(if have this issue)! I can't understand what's the problem if add toMBSz to tango.sys.win32, if problem, why Phobos have not this problem? -- yidabu <yidabu.spam gmail.com> http://www.dsource.org/projects/dwin D 语言-中文(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/
Apr 24 2008
yidabu wrote:Tango and almost all Tango based libs and tools have same issue: use tango.stdc.stringz.toStringz(name) or name ~ '\0' instead of toMBSz(name) for calling A version Windows API, that's wrong! program may crashed if multi byte name.You can't say wrong without coming with a solution, or at least an explanation why it is wrong.you might say, why not just create a ticket for Tango, right, I created it long time ago, but Kris seems not a MS fans :) http://www.dsource.org/projects/tango/ticket/653This ticket is closed with no comments to its resolution - what is your point? This doesn't have much to do with fan-dom either, we're just mostly Unicode users.you might say, how about the tango.sys.win32.CodePage module? but: 1 the name, "toMBSz" is better than "CodePage" in this case 2 the implementation, toMBSz is better in this case 2 Tango itself not use CodePage module in this case It is too tedious to create bug tickets for every tango based libs, tools(if have this issue)! I can't understand what's the problem if add toMBSz to tango.sys.win32, if problem, why Phobos have not this problem?The problem is that you are not explaining the problem. You say there is a problem, but you don't provide us with test cases that fail, neither give proper resolutions. Bill did provide some clarifications in the previous round, and some of those issues has been resolved, but some were still not clear enough to figure out how they could be solved. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Apr 24 2008
On Thu, 24 Apr 2008 21:26:28 +0200 Lars Ivar Igesund <larsivar igesund.net> wrote: thanks for you reply.You can't say wrong without coming with a solution, or at least an explanation why it is wrong.is it right? the solution is Phobos way: toMBSz(name)This doesn't have much to do with fan-dom either, we're just mostly Unicode users.I'm Unicode user, not the D users, A version Windows API need multi byte convert.The problem is that you are not explaining the problem. You say there is a problem, but you don't provide us with test cases that fail, neither give proper resolutions. Bill did provide some clarifications in the previous round, and some of those issues has been resolved, but some were still not clear enough to figure out how they could be solved.the problem is Tango has many bad(wrong?) sample for calling A vesion Windows API, and Tango based code have not a convenient way to calling A version Windows API. -- yidabu <yidabu.spam gmail.com> http://www.dsource.org/projects/dwin D 语言-中文(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/
Apr 24 2008
yidabu wrote:On Thu, 24 Apr 2008 21:26:28 +0200 Lars Ivar Igesund <larsivar igesund.net> wrote: thanks for you reply.This is not an answer to my statement, or at least I don't understand it as so.You can't say wrong without coming with a solution, or at least an explanation why it is wrong.is it right? the solution is Phobos way: toMBSz(name)If you create a program using Unicode, so does it's users, right? Or are you forwarding this from D users not using Unicode (and if so, why don't they use Unicode?)?This doesn't have much to do with fan-dom either, we're just mostly Unicode users.I'm Unicode user, not the D users, A version Windows API need multi byte convert.Yes, so you say - but you don't point to which are problematic, and how they should be fixed (I assume you know, since you appear to know why they are wrong). -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the TangoThe problem is that you are not explaining the problem. You say there is a problem, but you don't provide us with test cases that fail, neither give proper resolutions. Bill did provide some clarifications in the previous round, and some of those issues has been resolved, but some were still not clear enough to figure out how they could be solved.the problem is Tango has many bad(wrong?) sample for calling A vesion Windows API, and Tango based code have not a convenient way to calling A version Windows API.
Apr 25 2008
Lars Ivar Igesund wrote: [snip] I think what Yibadu is saying (and you're misunderstanding) is that Tango calls the *A functions with UTF-8 text, while they expect text in whatever the current codepage is. The way he proposes to fix this is by porting std.windows.charset.toMBSz from Phobos and using that to convert (or writing an equivalent function). I haven't checked whether his claim is correct, but I'm pretty sure you didn't understand what he was saying. I hope I managed to express it more clearly.
Apr 25 2008
On Fri, 25 Apr 2008 21:31:49 +0200 Frits van Bommel <fvbommel REMwOVExCAPSs.nl> wrote:Lars Ivar Igesund wrote: [snip] I think what Yibadu is saying (and you're misunderstanding) is that Tango calls the *A functions with UTF-8 text, while they expect text in whatever the current codepage is. The way he proposes to fix this is by porting std.windows.charset.toMBSz from Phobos and using that to convert (or writing an equivalent function). I haven't checked whether his claim is correct, but I'm pretty sure you didn't understand what he was saying. I hope I managed to express it more clearly.Thanks. If you are the member of Tango team, my posts of this are not necessary, I think:) -- yidabu <yidabu.spam gmail.com> http://www.dsource.org/projects/dwin D 语言-中文(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/
Apr 25 2008
Frits van Bommel wrote:Lars Ivar Igesund wrote: [snip] I think what Yibadu is saying (and you're misunderstanding) is that Tango calls the *A functions with UTF-8 text, while they expect text in whatever the current codepage is. The way he proposes to fix this is by porting std.windows.charset.toMBSz from Phobos and using that to convert (or writing an equivalent function). I haven't checked whether his claim is correct, but I'm pretty sure you didn't understand what he was saying. I hope I managed to express it more clearly.Okay, thanks, that makes sense. It says little about which calls these are though. Some (all?) has been fixed in SVN and/or noted in tickets - since this is brought up again I wondered if there were others. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Apr 26 2008
It says little about which calls these are though.For example in tango.io.FileConduit an utf8 string is passed to CreateFileA.
Apr 26 2008
Frits van Bommel wrote:I think what Yibadu is saying (and you're misunderstanding) is that Tango calls the *A functions with UTF-8 text, while they expect text in whatever the current codepage is. The way he proposes to fix this is by porting std.windows.charset.toMBSz from Phobos and using that to convert (or writing an equivalent function).All Windows API calls under Windows 9x should use the "A" api's whenever possible (instead of the "W" apis), and toMBSz should be called to convert unicode strings to "A" strings. Phobos does this.
Apr 26 2008
yidabu wrote:Tango and almost all Tango based libs and tools have same issue: use tango.stdc.stringz.toStringz(name) or name ~ '\0' instead of toMBSz(name) for calling A version Windows API, that's wrong! program may crashed if multi byte name.Ok, now I have an understanding of what is said here - the way to have this fixed is (as always) to create a ticket, preferably with a patch tested by someone who needs to use *A functions of the Win API. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the Tango
Apr 27 2008