digitalmars.D.bugs - bug in command line arguments parsing?
- novice2 (25/25) Jul 10 2005 hello!
- Manfred Nowak (6/8) Jul 10 2005 Seems to be a bug in the parameter handling by dmc:
- Vathix (10/15) Jul 10 2005 Currently, D expects everyone to set their terminal to UTF-8.
- novice2 (4/7) Jul 11 2005 Again and again :(
- Stewart Gordon (20/38) Jul 11 2005 This would enable Win9x apps to use Unicode command lines, but since
- Uwe Salomon (4/7) Jul 11 2005 By the way, did you already decide if you want to work on a TextStream? ...
- Stewart Gordon (12/19) Jul 12 2005 Sorry, I was away for the weekend, and so haven't had much time to look
hello! i use dmd 0.127 under Windows XP. i need analyse command lime parameters in my program. i use main() parameters char[][] args for this. but it seems it not works with non-english letters. Test program: ///// test.d ///// void main(char[][] args) { int len1 = args[1].length; int len2 = args[2].length; int len3 = args[3].length; printf("len1=%d, len2=%d, len3=%d", len1, len2, len3); } //////// When i run it as test.exe param1 param2 param3 then it print to console len1=6, len2=6, len3=6 When i replace word "param" by national letters (same length) test.exe парам1 парам2 парам3 then it print to console len1=1, len2=6, len3=6 First parameter length wrong :( Is it bug?
Jul 10 2005
novice2 <novice2_member pathlink.com> wrote: [...]First parameter length wrong :( Is it bug?Seems to be a bug in the parameter handling by dmc: first non-ascii sequence of characters is suppressed. gcc does not have this problem. -manfred
Jul 10 2005
On Sun, 10 Jul 2005 07:09:21 -0400, novice2 <novice2_member pathlink.com> wrote:hello! i use dmd 0.127 under Windows XP. i need analyse command lime parameters in my program. i use main() parameters char[][] args for this. but it seems it not works with non-english letters.Currently, D expects everyone to set their terminal to UTF-8. I've complained about this before because there appears to be an easy solution. If D would just use GetCommandLineW(), which IS supported on win9x/me and NT, and convert it to UTF-8, Windows would convert from the current charset. While this solution would make main(args[]) happy, you'd need to set your terminal to UTF-8 in order to writef() correctly, but that's not such a big deal because it won't result in an exception.
Jul 10 2005
While this solution would make main(args[]) happy, you'd need to set your terminal to UTF-8 in order to writef() correctly, but that's not such a big deal because it won't result in an exception.Again and again :( Every time i use user input or works with filenames in D i realize, that default UTF-8 strings - big pain (for me at least). In Delphi i have not any problems with non-english letters, excsept oem<->ansi conversion.
Jul 11 2005
Vathix wrote:On Sun, 10 Jul 2005 07:09:21 -0400, novice2 <novice2_member pathlink.com> wrote:This would enable Win9x apps to use Unicode command lines, but since Win9x DOS windows can't use UTF-8, it would break the hello.d example. Nonetheless, I've started working on something to this effect....hello! i use dmd 0.127 under Windows XP. i need analyse command lime parameters in my program. i use main() parameters char[][] args for this. but it seems it not works with non-english letters.Currently, D expects everyone to set their terminal to UTF-8. I've complained about this before because there appears to be an easy solution. If D would just use GetCommandLineW(), which IS supported on win9x/me and NT, and convert it to UTF-8, Windows would convert from the current charset.While this solution would make main(args[]) happy, you'd need to set your terminal to UTF-8 in order to writef() correctly, but that's not such a big deal because it won't result in an exception.How does the Windows XP "terminal" work? Is it somehow different from an MS-DOS window under Win9x, such that it makes sense to use UTF-8 with it? Moreover, can console apps under XP auto-detect the terminal encoding? And can it be done in such a way that the app will work under 9x as well? We ought to have an I/O system that supports different encodings. See my little conversation with Uwe Salomon starting here: http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D.announce/906 Stewart. -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M d- s:- a->--- UB P+ L E W++ N+++ o K- w++ O? M V? PS- PE- Y? PGP- t- 5? X? R b DI? D G e++>++++ h-- r-- !y ------END GEEK CODE BLOCK------ My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.
Jul 11 2005
We ought to have an I/O system that supports different encodings. See my little conversation with Uwe Salomon starting here: http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D.announce/906By the way, did you already decide if you want to work on a TextStream? Just curious... :) Ciao uwe
Jul 11 2005
Uwe Salomon wrote:Sorry, I was away for the weekend, and so haven't had much time to look at the possibility. But I will soon. Stewart. -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M d- s:- a->--- UB P+ L E W++ N+++ o K- w++ O? M V? PS- PE- Y? PGP- t- 5? X? R b DI? D G e++>++++ h-- r-- !y ------END GEEK CODE BLOCK------ My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.We ought to have an I/O system that supports different encodings. See my little conversation with Uwe Salomon starting here: http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D.announce/906By the way, did you already decide if you want to work on a TextStream? Just curious... :)
Jul 12 2005