www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - utf and std.file

reply Carlos Santander B. <Carlos_member pathlink.com> writes:
This simple program:

import std.file;
import std.c.stdio;
import std.path;
import std.utf;
void main() {
char [][] archivos = listdir( curdir ) ;
foreach ( char [] a ; archivos )
try 
validate(a);
catch (UtfError)
printf("%.*s: invalid\n",a);
}

Outputs "invalid" for any file that contains in its name any of: áéíóúñÁÉÍÓÚÑ,
and maybe other characters. That means that for any file named, say,
"año2004.dat", I can't do anything with it because DMD thinks its name is not
valid. That's annoying, at least for me, because those are characters that are
used all the time in Spanish and other languages, so I tend to name my files
using those characters.

-------------------
Carlos Santander B.
Apr 29 2004
next sibling parent reply C <dont respond.com> writes:
Sorry if this is a stupid question , but does that mean file names can 
be anything ?  Do the Russians use russian charaters for their files etc. ?

C

Carlos Santander B. wrote:
 This simple program:
 
 import std.file;
 import std.c.stdio;
 import std.path;
 import std.utf;
 void main() {
 char [][] archivos = listdir( curdir ) ;
 foreach ( char [] a ; archivos )
 try 
 validate(a);
 catch (UtfError)
 printf("%.*s: invalid\n",a);
 }
 
 Outputs "invalid" for any file that contains in its name any of: áéíóúñÁÉÍÓÚÑ,
 and maybe other characters. That means that for any file named, say,
 "año2004.dat", I can't do anything with it because DMD thinks its name is not
 valid. That's annoying, at least for me, because those are characters that are
 used all the time in Spanish and other languages, so I tend to name my files
 using those characters.
 
 -------------------
 Carlos Santander B.
Apr 29 2004
parent "Matthew" <matthew.hat stlsoft.dot.org> writes:
He, he. You're American, right?

<G>

"C" <dont respond.com> wrote in message news:c6rcsk$1sei$1 digitaldaemon.com...
 Sorry if this is a stupid question , but does that mean file names can
 be anything ?  Do the Russians use russian charaters for their files etc. ?

 C

 Carlos Santander B. wrote:
 This simple program:

 import std.file;
 import std.c.stdio;
 import std.path;
 import std.utf;
 void main() {
 char [][] archivos = listdir( curdir ) ;
 foreach ( char [] a ; archivos )
 try
 validate(a);
 catch (UtfError)
 printf("%.*s: invalid\n",a);
 }

 Outputs "invalid" for any file that contains in its name any of:
áéíóúñÁÉÍÓÚÑ,
 and maybe other characters. That means that for any file named, say,
 "año2004.dat", I can't do anything with it because DMD thinks its name is not
 valid. That's annoying, at least for me, because those are characters that
are
 used all the time in Spanish and other languages, so I tend to name my files
 using those characters.

 -------------------
 Carlos Santander B.
Apr 30 2004
prev sibling next sibling parent reply "Walter" <newshound digitalmars.com> writes:
"Carlos Santander B." <Carlos_member pathlink.com> wrote in message
news:c6rbd4$1q4a$1 digitaldaemon.com...
 Outputs "invalid" for any file that contains in its name any of:
áéíóúñÁÉÍÓÚÑ,
 and maybe other characters. That means that for any file named, say,
 "año2004.dat", I can't do anything with it because DMD thinks its name is
not
 valid. That's annoying, at least for me, because those are characters that
are
 used all the time in Spanish and other languages, so I tend to name my
files
 using those characters.
Is it possible to use a unicode text editor instead? D doesn't support code pages, relying instead on unicode.
May 02 2004
parent reply "Carlos Santander B." <carlos8294 msn.com> writes:
"Walter" <newshound digitalmars.com> wrote in message
news:c747m1$5te$1 digitaldaemon.com
| "Carlos Santander B." <Carlos_member pathlink.com> wrote in message
| news:c6rbd4$1q4a$1 digitaldaemon.com...
|| Outputs "invalid" for any file that contains in its name any of:
| áéíóúñÁÉÍÓÚÑ,
|| and maybe other characters. That means that for any file named, say,
|| "año2004.dat", I can't do anything with it because DMD thinks its name is
| not
|| valid. That's annoying, at least for me, because those are characters
that
| are
|| used all the time in Spanish and other languages, so I tend to name my
| files
|| using those characters.
|
| Is it possible to use a unicode text editor instead? D doesn't support
code
| pages, relying instead on unicode.

I don't understand. Let's say I have a file "año" and I want to read it from
my D program. D won't let me because it says it's not a valid string. At the
very least I'd like to read the file, but I can't.

-----------------------
Carlos Santander Bernal
May 02 2004
parent reply "Walter" <newshound digitalmars.com> writes:
"Carlos Santander B." <carlos8294 msn.com> wrote in message
news:c74do5$e3t$1 digitaldaemon.com...
 "Walter" <newshound digitalmars.com> wrote in message
 news:c747m1$5te$1 digitaldaemon.com
 | "Carlos Santander B." <Carlos_member pathlink.com> wrote in message
 | news:c6rbd4$1q4a$1 digitaldaemon.com...
 || Outputs "invalid" for any file that contains in its name any of:
 | áéíóúñÁÉÍÓÚÑ,
 || and maybe other characters. That means that for any file named, say,
 || "año2004.dat", I can't do anything with it because DMD thinks its name
is
 | not
 || valid. That's annoying, at least for me, because those are characters
 that
 | are
 || used all the time in Spanish and other languages, so I tend to name my
 | files
 || using those characters.
 |
 | Is it possible to use a unicode text editor instead? D doesn't support
 code
 | pages, relying instead on unicode.

 I don't understand. Let's say I have a file "año" and I want to read it
from
 my D program. D won't let me because it says it's not a valid string. At
the
 very least I'd like to read the file, but I can't.
There are two ways to do international character sets - one way is using unicode, which D supports (as does Win32 with 16 bit wchar's). The other way is a horrible kludge called "code pages". I presume you are using code pages. Can you switch to using unicode?
May 02 2004
parent reply J C Calvarese <jcc7 cox.net> writes:
Walter wrote:
 "Carlos Santander B." <carlos8294 msn.com> wrote in message
 news:c74do5$e3t$1 digitaldaemon.com...
 
"Walter" <newshound digitalmars.com> wrote in message
news:c747m1$5te$1 digitaldaemon.com
| "Carlos Santander B." <Carlos_member pathlink.com> wrote in message
| news:c6rbd4$1q4a$1 digitaldaemon.com...
|| Outputs "invalid" for any file that contains in its name any of:
| áéíóúñÁÉÍÓÚÑ,
|| and maybe other characters. That means that for any file named, say,
|| "año2004.dat", I can't do anything with it because DMD thinks its name
is
| not
|| valid. That's annoying, at least for me, because those are characters
that
| are
|| used all the time in Spanish and other languages, so I tend to name my
| files
|| using those characters.
|
| Is it possible to use a unicode text editor instead? D doesn't support
code
| pages, relying instead on unicode.

I don't understand. Let's say I have a file "año" and I want to read it
from
my D program. D won't let me because it says it's not a valid string. At
the
very least I'd like to read the file, but I can't.
There are two ways to do international character sets - one way is using unicode, which D supports (as does Win32 with 16 bit wchar's). The other way is a horrible kludge called "code pages". I presume you are using code pages. Can you switch to using unicode?
I think Carlos Santander is trying to use a non-English character in a filename. I attached an example of what I found won't work. The compiler won't even admit the file is there. I suspect this is a moot point if the linker (written in hand-tuned assembly) wouldn't handle such a filename either. -- Justin http://jcc_7.tripod.com/d/
May 02 2004
parent reply "Walter" <newshound digitalmars.com> writes:
"J C Calvarese" <jcc7 cox.net> wrote in message
news:c74m7l$qk3$1 digitaldaemon.com...
 Walter wrote:
 "Carlos Santander B." <carlos8294 msn.com> wrote in message
 news:c74do5$e3t$1 digitaldaemon.com...

"Walter" <newshound digitalmars.com> wrote in message
news:c747m1$5te$1 digitaldaemon.com
| "Carlos Santander B." <Carlos_member pathlink.com> wrote in message
| news:c6rbd4$1q4a$1 digitaldaemon.com...
|| Outputs "invalid" for any file that contains in its name any of:
| áéíóúñÁÉÍÓÚÑ,
|| and maybe other characters. That means that for any file named, say,
|| "año2004.dat", I can't do anything with it because DMD thinks its
name
 is

| not
|| valid. That's annoying, at least for me, because those are characters
that
| are
|| used all the time in Spanish and other languages, so I tend to name
my
| files
|| using those characters.
|
| Is it possible to use a unicode text editor instead? D doesn't support
code
| pages, relying instead on unicode.

I don't understand. Let's say I have a file "año" and I want to read it
from
my D program. D won't let me because it says it's not a valid string. At
the
very least I'd like to read the file, but I can't.
There are two ways to do international character sets - one way is using unicode, which D supports (as does Win32 with 16 bit wchar's). The other
way
 is a horrible kludge called "code pages". I presume you are using code
 pages. Can you switch to using unicode?
I think Carlos Santander is trying to use a non-English character in a filename. I attached an example of what I found won't work.
I think he's talking about non-english characters in D strings, not in D source code filenames.
 The compiler won't even admit the file is there. I suspect this is a
 moot point if the linker (written in hand-tuned assembly) wouldn't
 handle such a filename either.

 -- 
 Justin
 http://jcc_7.tripod.com/d/
May 02 2004
parent J C Calvarese <jcc7 cox.net> writes:
In article <c7521v$1dnt$3 digitaldaemon.com>, Walter says...
"J C Calvarese" <jcc7 cox.net> wrote in message
news:c74m7l$qk3$1 digitaldaemon.com...
 Walter wrote:
 "Carlos Santander B." <carlos8294 msn.com> wrote in message
 news:c74do5$e3t$1 digitaldaemon.com...

"Walter" <newshound digitalmars.com> wrote in message
news:c747m1$5te$1 digitaldaemon.com
| "Carlos Santander B." <Carlos_member pathlink.com> wrote in message
| news:c6rbd4$1q4a$1 digitaldaemon.com...
|| Outputs "invalid" for any file that contains in its name any of:
| áéíóúñÁÉÍÓÚÑ,
|| and maybe other characters. That means that for any file named, say,
|| "año2004.dat", I can't do anything with it because DMD thinks its
name
 is

| not
|| valid. That's annoying, at least for me, because those are characters
that
| are
|| used all the time in Spanish and other languages, so I tend to name
my
| files
|| using those characters.
|
| Is it possible to use a unicode text editor instead? D doesn't support
code
| pages, relying instead on unicode.

I don't understand. Let's say I have a file "año" and I want to read it
from
my D program. D won't let me because it says it's not a valid string. At
the
very least I'd like to read the file, but I can't.
There are two ways to do international character sets - one way is using unicode, which D supports (as does Win32 with 16 bit wchar's). The other
way
 is a horrible kludge called "code pages". I presume you are using code
 pages. Can you switch to using unicode?
I think Carlos Santander is trying to use a non-English character in a filename. I attached an example of what I found won't work.
I think he's talking about non-english characters in D strings, not in D source code filenames.
Oops. What was I thinking? I must have been half-asleep. Justin
May 03 2004
prev sibling parent reply "Carlos Santander B." <carlos8294 msn.com> writes:
"Carlos Santander B." <Carlos_member pathlink.com> wrote in message
news:c6rbd4$1q4a$1 digitaldaemon.com
| This simple program:
|
| import std.file;
| import std.c.stdio;
| import std.path;
| import std.utf;
| void main() {
| char [][] archivos = listdir( curdir ) ;
| foreach ( char [] a ; archivos )
| try
| validate(a);
| catch (UtfError)
| printf("%.*s: invalid\n",a);
| }
|
| Outputs "invalid" for any file that contains in its name any of:
áéíóúñÁÉÍÓÚÑ,
| and maybe other characters. That means that for any file named, say,
| "año2004.dat", I can't do anything with it because DMD thinks its name is
not
| valid. That's annoying, at least for me, because those are characters that
are
| used all the time in Spanish and other languages, so I tend to name my
files
| using those characters.
|

Walter, did you do any changes to the compiler for 0.86 regarding UTF?
Because now I ran the same code but on WinXP Pro (previously it was in
Win98) and it works just well. I'm gonna test it again tomorrow on 98 to see
if it's the OS.

-----------------------
Carlos Santander Bernal
May 03 2004
parent reply "Walter" <newshound digitalmars.com> writes:
"Carlos Santander B." <carlos8294 msn.com> wrote in message
news:c766k4$3ad$1 digitaldaemon.com...
 Walter, did you do any changes to the compiler for 0.86 regarding UTF?
 Because now I ran the same code but on WinXP Pro (previously it was in
 Win98) and it works just well. I'm gonna test it again tomorrow on 98 to
see
 if it's the OS.
I don't think so.
May 03 2004
next sibling parent reply "Walter" <newshound digitalmars.com> writes:
"Walter" <newshound digitalmars.com> wrote in message
news:c775i2$1jo3$1 digitaldaemon.com...
 "Carlos Santander B." <carlos8294 msn.com> wrote in message
 news:c766k4$3ad$1 digitaldaemon.com...
 Walter, did you do any changes to the compiler for 0.86 regarding UTF?
 Because now I ran the same code but on WinXP Pro (previously it was in
 Win98) and it works just well. I'm gonna test it again tomorrow on 98 to
see
 if it's the OS.
I think Stewart Gordon put the finger on the problem. Filenames are used as part of the name mangling, and so need to contain valid identifier characters.
May 04 2004
parent Carlos Santander B. <Carlos_member pathlink.com> writes:
In article <c78kcm$p7n$3 digitaldaemon.com>, Walter says...
"Walter" <newshound digitalmars.com> wrote in message
news:c775i2$1jo3$1 digitaldaemon.com...

I think Stewart Gordon put the finger on the problem. Filenames are used as
part of the name mangling, and so need to contain valid identifier
characters.
That's not the problem. I can create "año.d", and compile and link it without an itch (in both WinXP and 98). ------------------- Carlos Santander B.
May 04 2004
prev sibling parent reply Carlos Santander B. <Carlos_member pathlink.com> writes:
In article <c775i2$1jo3$1 digitaldaemon.com>, Walter says...
"Carlos Santander B." <carlos8294 msn.com> wrote in message
news:c766k4$3ad$1 digitaldaemon.com...
 Walter, did you do any changes to the compiler for 0.86 regarding UTF?
 Because now I ran the same code but on WinXP Pro (previously it was in
 Win98) and it works just well. I'm gonna test it again tomorrow on 98 to
see
 if it's the OS.
I don't think so.
It must be. Like I said, it passed on XP, but it didn't pass on 98. The real problem, like I said, is that std.utf.validate("áéíóúÚÓÍÉÁÑñ") throws an UTFError, but it doesn't happen on XP (haven't tried on Linux). Since it doesn't seem to be a Phobos bug, is there something that can be done to fix that? ------------------- Carlos Santander B.
May 04 2004
parent reply "Walter" <newshound digitalmars.com> writes:
"Carlos Santander B." <Carlos_member pathlink.com> wrote in message
news:c78qhg$141i$1 digitaldaemon.com...
 In article <c775i2$1jo3$1 digitaldaemon.com>, Walter says...
"Carlos Santander B." <carlos8294 msn.com> wrote in message
news:c766k4$3ad$1 digitaldaemon.com...
 Walter, did you do any changes to the compiler for 0.86 regarding UTF?
 Because now I ran the same code but on WinXP Pro (previously it was in
 Win98) and it works just well. I'm gonna test it again tomorrow on 98
to
see
 if it's the OS.
I don't think so.
It must be. Like I said, it passed on XP, but it didn't pass on 98. The real problem, like I said, is that std.utf.validate("áéíóúÚÓÍÉÁÑñ")
throws
 an UTFError, but it doesn't happen on XP (haven't tried on Linux). Since
it
 doesn't seem to be a Phobos bug, is there something that can be done to
fix
 that?
Is the string you're passing to validate in UTF-8 format?
May 07 2004
parent reply "Carlos Santander B." <carlos8294 msn.com> writes:
"Walter" <newshound digitalmars.com> wrote in message
news:c7fgtd$2g2b$1 digitaldaemon.com
| "Carlos Santander B." <Carlos_member pathlink.com> wrote in message
| news:c78qhg$141i$1 digitaldaemon.com...
|| It must be. Like I said, it passed on XP, but it didn't pass on 98.
||
|| The real problem, like I said, is that std.utf.validate("áéíóúÚÓÍÉÁÑñ")
| throws
|| an UTFError, but it doesn't happen on XP (haven't tried on Linux). Since
| it
|| doesn't seem to be a Phobos bug, is there something that can be done to
| fix
|| that?
|
| Is the string you're passing to validate in UTF-8 format?

My bad there. std.utf.validate("áéíóúÚÓÍÉÁÑñ") throws "invalid UTF-8
sequence" when the file is not in UTF-8 format. However, like I've said
before, if a file is named "á", I get its name (with listdir) and pass it to
validate, it fails on Win98.
I just thought of something else: could it be the file system? My XP is
running on NTFS, but at work, 98 is on FAT32. Could that be, instead?

-----------------------
Carlos Santander Bernal
May 08 2004
parent reply "Carlos Santander B." <carlos8294 msn.com> writes:
I'm really lost about this thing. There are only 2 things I can think of
that are causing the problem: the OS (XP vs 98) and the filesystem (NTFS vs
FAT32).
The following file compiles and runs perfectly fine on WinXP Pro, saved
either as 8-bit or any kind of Unicode.

//-------------------------
import std.file;
import std.c.stdio;
import std.path;
import std.utf;

void main() {
 char [][] archivos = listdir( curdir ) ;
 foreach ( char [] a ; archivos ) {
  try
   validate(a);
  catch (UtfError) {
   printf("%.*s: inválido\n",a);
   continue;
  }
  if (isfile(a))
   printf("%.*s: %d\n",a, read(a).length);
 }
}
//-------------------------

That is, it outputs the size of every file in the current directory without
any complain.
On Win98, the same happens only if the file is saved as some Unicode flavor.
If saved as 8-bit, it prints "invalid" for any file containing an accented
character or anything like that. Now, I really don't understand how in this
particular case, the format of the file affects the outcome.
I tried to test the same on Linux, but since listdir doesn't seem to work
there, I haven't been able to do it.
I don't know where the problem is, but I know it's a annoying.

-----------------------
Carlos Santander Bernal
May 10 2004
parent reply "Walter" <newshound digitalmars.com> writes:
"Carlos Santander B." <carlos8294 msn.com> wrote in message
news:c7pd5l$1ohk$1 digitaldaemon.com...
 I'm really lost about this thing. There are only 2 things I can think of
 that are causing the problem: the OS (XP vs 98) and the filesystem (NTFS
vs
 FAT32).
 The following file compiles and runs perfectly fine on WinXP Pro, saved
 either as 8-bit or any kind of Unicode.

 //-------------------------
 import std.file;
 import std.c.stdio;
 import std.path;
 import std.utf;

 void main() {
  char [][] archivos = listdir( curdir ) ;
  foreach ( char [] a ; archivos ) {
   try
    validate(a);
   catch (UtfError) {
    printf("%.*s: inválido\n",a);
    continue;
   }
   if (isfile(a))
    printf("%.*s: %d\n",a, read(a).length);
  }
 }
 //-------------------------

 That is, it outputs the size of every file in the current directory
without
 any complain.
 On Win98, the same happens only if the file is saved as some Unicode
flavor.
 If saved as 8-bit, it prints "invalid" for any file containing an accented
 character or anything like that. Now, I really don't understand how in
this
 particular case, the format of the file affects the outcome.
 I tried to test the same on Linux, but since listdir doesn't seem to work
 there, I haven't been able to do it.
 I don't know where the problem is, but I know it's a annoying.
The problem is that Win98 does not support unicode, *unless* the unicode can be translated into the current code page. You can see this happening in std.file.isfile(), it calls std.file.toMBSz(). That relies on WideCharToMultiByte(), a Win32 API function with limited functionality under Win9x.
May 19 2004
parent reply "Carlos Santander B." <carlos8294 msn.com> writes:
"Walter" <newshound digitalmars.com> escribió en el mensaje
news:c8f5n8$167q$1 digitaldaemon.com
| The problem is that Win98 does not support unicode, *unless* the unicode
can
| be translated into the current code page. You can see this happening in
| std.file.isfile(), it calls std.file.toMBSz(). That relies on
| WideCharToMultiByte(), a Win32 API function with limited functionality
under
| Win9x.

So what's the solution? Write this in every program that uses std.file
(pseudo-code, btw):

if (OS.type == "win9x")
    printf("sorry, can't be run here. get nt,2k,xp,2k3,etc.\n");

?
That just doesn't make sense to me. What about modifying Phobos so things
like this don't happen?

-----------------------
Carlos Santander Bernal
May 19 2004
parent reply "Walter" <newshound digitalmars.com> writes:
"Carlos Santander B." <carlos8294 msn.com> wrote in message
news:c8h3f5$1coh$1 digitaldaemon.com...
 "Walter" <newshound digitalmars.com> escribió en el mensaje
 news:c8f5n8$167q$1 digitaldaemon.com
 | The problem is that Win98 does not support unicode, *unless* the unicode
 can
 | be translated into the current code page. You can see this happening in
 | std.file.isfile(), it calls std.file.toMBSz(). That relies on
 | WideCharToMultiByte(), a Win32 API function with limited functionality
 under
 | Win9x.

 So what's the solution? Write this in every program that uses std.file
 (pseudo-code, btw):

 if (OS.type == "win9x")
     printf("sorry, can't be run here. get nt,2k,xp,2k3,etc.\n");

 ?
 That just doesn't make sense to me. What about modifying Phobos so things
 like this don't happen?
It will work on win9x if the unicode characters you're using are representable in the system code page you've set on win9x.
May 19 2004
parent reply "Carlos Santander B." <carlos8294 msn.com> writes:
"Walter" <newshound digitalmars.com> escribió en el mensaje
news:c8hkht$25vt$1 digitaldaemon.com
| It will work on win9x if the unicode characters you're using are
| representable in the system code page you've set on win9x.

But that'd be an imposition for the end user of the application, not even
for the developer, wouldn't it? Please correct me if I'm wrong. But if I'm
not, then there must be something better to be done.

-----------------------
Carlos Santander Bernal
May 20 2004
next sibling parent J C Calvarese <jcc7 cox.net> writes:
Carlos Santander B. wrote:
 "Walter" <newshound digitalmars.com> escribió en el mensaje
 news:c8hkht$25vt$1 digitaldaemon.com
 | It will work on win9x if the unicode characters you're using are
 | representable in the system code page you've set on win9x.
 
 But that'd be an imposition for the end user of the application, not even
 for the developer, wouldn't it? Please correct me if I'm wrong. But if I'm
 not, then there must be something better to be done.
 
 -----------------------
 Carlos Santander Bernal
Microsoft would probably tell you to upgrade to Windows XP because they want your money. As a free alternative, have you looked at using MSLU? http://msdn.microsoft.com/msdnmag/issues/01/10/MSLU/default.aspx http://www.microsoft.com/globaldev/handson/dev/mslu_announce.mspx There'd still be a burden for Win9X users (they'd have to install it), and I don't even know that it'd help with your specific problem, but it might be useful to you. -- Justin (a/k/a jcc7) http://jcc_7.tripod.com/d/
May 20 2004
prev sibling next sibling parent "Walter" <newshound digitalmars.com> writes:
"Carlos Santander B." <carlos8294 msn.com> wrote in message
news:c8jd77$gk8$1 digitaldaemon.com...
 "Walter" <newshound digitalmars.com> escribió en el mensaje
 news:c8hkht$25vt$1 digitaldaemon.com
 | It will work on win9x if the unicode characters you're using are
 | representable in the system code page you've set on win9x.

 But that'd be an imposition for the end user of the application, not even
 for the developer, wouldn't it? Please correct me if I'm wrong. But if I'm
 not, then there must be something better to be done.
Actually, I think I know what the problem is. listdir() is not converting the returned filenames into unicode as it should.
May 21 2004
prev sibling parent reply "Walter" <newshound digitalmars.com> writes:
"Carlos Santander B." <carlos8294 msn.com> wrote in message
news:c8jd77$gk8$1 digitaldaemon.com...
 "Walter" <newshound digitalmars.com> escribió en el mensaje
 news:c8hkht$25vt$1 digitaldaemon.com
 | It will work on win9x if the unicode characters you're using are
 | representable in the system code page you've set on win9x.

 But that'd be an imposition for the end user of the application, not even
 for the developer, wouldn't it? Please correct me if I'm wrong. But if I'm
 not, then there must be something better to be done.
Try the following std.file.d and see if it works. begin 666 file.d M"B\O($%L;"!2:6=H=', 4F5S97)V960-"B\O('=W=RYD:6=I=&%L;6%R<RYC M8RYS=&1I;SL-"G!R:79A=&4 :6UP;W)T('-T9"YP871H.PT*<')I=F%T92!I M;7!O<G0 <W1D+G-T<FEN9SL-" T*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M8V5P=&EO; T*>PT*(" ('!R:79A=&4 :6UP;W)T('-T9"YS>7-E<G)O<CL- M" T*(" ('5I;G0 97)R;F\["0D)+R\ ;W!E<F%T:6YG('-Y<W1E;2!E<G)O M*&YA;64L(")F:6QE($DO3R(I.PT*(" ('T-" T*(" ('1H:7,H8VAA<EM= M(&YA;64L(&-H87);72!M97-S86=E*0T*(" ('L-" ES=7!E<BAN86UE('X M(CH (B!^(&UE<W-A9V4I.PT*(" ('T-" T*(" ('1H:7,H8VAA<EM=(&YA M/3T]/3T]/3T]/3T]/3T](%=I;C,R(#T]/3T]/3T]/3T]/3T]/3T]/3T]/3T] M="!T:&4 5R!F=6YC=&EO;G,-"B ("!U<V579G5N8W, /2 H1V5T5F5R<VEO M;B I(#P M(" 1%=/4D0 ;G5M<F5A9#L-"B ("!(04Y$3$4 :#L-"B ("!B>71E6UT M;65Z(#T <W1D+G5T9BYT;U541C$V>BAN86UE*3L-" EH(#T 0W)E871E1FEL M95<H;F%M97HL1T5.15))0U]214%$+$9)3$5?4TA!4D5?4D5!1"QN=6QL+$]0 M24Q%7U-(05)%7U)%040L;G5L;"Q/4$5.7T5825-424Y'+ T*"2 ("!&24Q% M7T%45%))0E5415].3U)-04P ?"!&24Q%7T9,04=?4T51545.5$E!3%]30T%. M+&-A<W0H2$%.1$Q%*6YU;&PI.PT*(" ('T-" T*(" (&EF("AH(#T]($E. M5D%,241?2$%.1$Q%7U9!3%5%*0T*"6=O=&\ 97)R,3L-" T*(" ('-I>F4 M/2!'971&:6QE4VEZ92AH+"!N=6QL*3L-"B ("!I9B H<VEZ92 ]/2!)3E9! M8GET95MS:7IE73L-" T*(" (&EF("A296%D1FEL92AH+&)U9BQS:7IE+"9N M8G5F.PT*97)R,3H-"B ("!T:')O=R!N97< 1FEL945X8V5P=&EO;BAN86UE M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH-"B J(%=R:71E(&$ 9FEL92X- M*&-H87);72!N86UE+"!V;VED6UT 8G5F9F5R*0T*>PT*(" ($A!3D1,12!H M*0T*(" ('L-" EW8VAA<BH ;F%M97H /2!S=&0N=71F+G1O551&,39Z*&YA M04P ?"!&24Q%7T9,04=?4T51545.5$E!3%]30T%.+&-A<W0H2$%.1$Q%*6YU M0E5415].3U)-04P ?"!&24Q%7T9,04=?4T51545.5$E!3%]30T%.+&-A<W0H M2$%.1$Q%*6YU;&PI.PT*(" ('T-"B ("!I9B H:" ]/2!)3E9!3$E$7TA! M3D1,15]604Q512D-" EG;W1O(&5R<CL-" T*(" (&EF("A7<FET949I;&4H M:"QB=69F97(L8G5F9F5R+FQE;F=T:"PF;G5M=W)I='1E;BQN=6QL*2 A/2 Q M*0T*"6=O=&\ 97)R,CL-" T*(" (&EF("AB=69F97(N;&5N9W1H("$](&YU M(" ($-L;W-E2&%N9&QE*& I.PT*97)R. T*(" ('1H<F]W(&YE=R!&:6QE M72!N86UE+"!V;VED6UT 8G5F9F5R*0T*>PT*(" ($A!3D1,12!H.PT*(" M('L-" EW8VAA<BH ;F%M97H /2!S=&0N=71F+G1O551&,39Z*&YA;64I.PT* M4$5.7T%,5T%94RP-" D (" 1DE,15]!5%1224)55$5?3D]234%,('P 1DE, M15]&3$%'7U-%455%3E1)04Q?4T-!3BQC87-T*$A!3D1,12EN=6QL*3L-"B M86UE*3L-" EH(#T 0W)E871E1FEL94$H;F%M97HL1T5.15))0U]74DE412PP M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH-"B J(%)E M(&-H87);72!T;RD-"GL-"B ("!"3T],(')E<W5L=#L-" T*(" (&EF("AU M<F5S=6QT(#T 36]V949I;&5!*'1O34)3>BAF<F]M*2P =&]-0E-Z*'1O*2D[ M97-U;'0 /2!$96QE=&5&:6QE5RAS=&0N=71F+G1O551&,39Z*&YA;64I*3L- M*3L-"B ("!I9B H(7)E<W5L="D-" ET:')O=R!N97< 1FEL945X8V5P=&EO M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* T*("H M86UE*0T*>PT*(" ($A!3D1,12!F:6YD:&YD;#L-"B ("!U:6YT(')E<W5L M;F1H;F1L(#T 1FEN9$9I<G-T1FEL95<H<W1D+G5T9BYT;U541C$V>BAN86UE M*2P )F9I;&5F:6YD8G5F*3L-" ER97-U;'1H(#T 9FEL969I;F1B=68N;D9I M;&53:7IE2&EG:#L-" ER97-U;'1L(#T 9FEL969I;F1B=68N;D9I;&53:7IE M02!F:6QE9FEN9&)U9CL-" T*"69I;F1H;F1L(#T 1FEN9$9I<G-T1FEL94$H M=&]-0E-Z*&YA;64I+" F9FEL969I;F1B=68I.PT*"7)E<W5L=& /2!F:6QE M9FEN9&)U9BYN1FEL95-I>F5(:6=H.PT*"7)E<W5L=&P /2!F:6QE9FEN9&)U M(&-A<W0H2$%.1$Q%*2TQ*0T*(" ('L-" ET:')O=R!N97< 1FEL945X8V5P M=& /#P ,S(I("L <F5S=6QT;#L-"GT-" T*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* T*("H 1&]E<R!F M=7-E5V9U;F-S*0T*"2\O(&AT=' Z+R]M<V1N+FUI8W)O<V]F="YC;VTO;&EB M=')I8G5T97-7*'-T9"YU=&8N=&]55$8Q-GHH;F%M92DI.PT*(" (&5L<V4- M" ER97-U;'0 /2!'971&:6QE071T<FEB=71E<T$H=&]-0E-Z*&YA;64I*3L- M" T*(" (')E='5R;B H<F5S=6QT(#T M" T*=6EN="!G971!='1R:6)U=&5S*&-H87);72!N86UE*0T*>PT*(" ('5I M(" 96QS90T*"7)E<W5L=" ]($=E=$9I;&5!='1R:6)U=&5S02AT;TU"4WHH M;F%M92DI.PT*(" (&EF("AR97-U;'0 /3T ,'A&1D9&1D9&1BD-"B ("![ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M6UT ;F%M92D-"GL-"B ("!R971U<FX *&=E=$%T=')I8G5T97,H;F%M92D M)B!&24Q%7T%45%))0E5415]$25)%0U1/4EDI(#T M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M<BAC:&%R6UT ;F%M92D-"GL-"B ("!R971U<FX *&=E=$%T=')I8G5T97,H M"B\J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M"7)E<W5L=" ](%-E=$-U<G)E;G1$:7)E8W1O<GE!*'1O34)3>BAP871H;F%M M=&]R>5<H<W1D+G5T9BYT;U541C$V>BAP871H;F%M92DL(&YU;&PI.PT*(" M<F]W(&YE=R!&:6QE17AC97!T:6]N*'!A=&AN86UE+"!'971,87-T17)R;W(H M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* T*("H 4F5M;W9E(&1I<F5C=&]R M3T],(')E<W5L=#L- M4F5M;W9E1&ER96-T;W)Y5RAS=&0N=71F+G1O551&,39Z*'!A=&AN86UE*2D[ M;W< ;F5W($9I;&5%>&-E<'1I;VXH<&%T:&YA;64L($=E=$QA<W1%<G)O<B I M(#T M<F5C=&]R>5<H;&5N9W1H+"!D:7(I.PT*"6EF(" A;&5N9W1H*0T*"2 ("!G M;F=T:%TI.R O+R!L96%V92!O9F8 =&5R;6EN871I;F< , T*(" ('T-"B M97< 8VAA<EML96YG=&A=.PT*"6QE;F=T:" ]($=E=$-U<G)E;G1$:7)E8W1O M<GE!*&QE;F=T:"P 9&ER*3L-" EI9B H(6QE;F=T:"D-" D (" 9V]T;R!, M97)R.PT*"7)E='5R;B!D:7);," N+B!L96YG=&A=.PD)+R\ ;&5A=F4 ;V9F M($9I;&5%>&-E<'1I;VXH(F=E=&-W9"(L($=E=$QA<W1%<G)O<B I*3L-"GT- M" T*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ* T*("H 4F5T=7)N(&-O;G1E;G1S(&]F(&1I<F5C=&]R>2X- M9BYT;U541C$V>BAC*2P )F9I;&5I;F9O*3L-" EI9B H:" A/2!)3E9!3$E$ M:68 *'-T9"YS=')I;F<N=V-S8VUP*&9I;&5I;F9O+F-&:6QE3F%M92P (BXB M1FEL94YA;64L("(N+B(I(#T M(#T <F5S=6QT+FQE;F=T:#L-" D)<F5S=6QT+FQE;F=T:" ](&D *R Q.PT* M"0EC;&5N9W1H(#T <W1D+G-T<FEN9RYW8W-L96XH9FEL96EN9F\N8T9I;&5. M86UE*3L-" D)<F5S=6QT6VE=(#T <W1D+G5T9BYT;U541C H9FEL96EN9F\N M8T9I;&5.86UE6S +BX 8VQE;F=T:%TI.PT*"2 ("!]('=H:6QE("A&:6YD M34)3>BAC*2P )F9I;&5I;F9O*3L-" EI9B H:" A/2!)3E9!3$E$7TA!3D1, M4VMI<" B+B( 86YD("(N+B(-" D):68 *'-T9"YS=')I;F<N<W1R8VUP*&9I M:6YG+G-T<F-M<"AF:6QE:6YF;RYC1FEL94YA;64L("(N+B(I(#T M"2 ("!C;VYT:6YU93L-" T*"0EI(#T <F5S=6QT+FQE;F=T:#L-" D)<F5S M=6QT+FQE;F=T:" ](&D *R Q.PT*"0EC;&5N9W1H(#T <W1D+G-T<FEN9RYS M=')L96XH9FEL96EN9F\N8T9I;&5.86UE*3L-" T*"0DO+W)E<W5L=%MI72 ] M(&9I;&5I;F9O+F-&:6QE3F%M95LP("XN(&-L96YG=&A=+F1U<#L-" T*"0DO M*3L-" D)<F5S=6QT6VE=(#T M(" ?2!W:&EL92 H1FEN9$YE>'1&:6QE02AH+"9F:6QE:6YF;RD (3T 1D%, M<BP =&AE;B!C;VYV97)T('1O(&UU;'1I8GET92!U<VEN9R!T:&4 8W5R<F5N M+R\ 3VYL>2!N965D('1O(&1O('1H:7, :68 86YY(&-H87)S(&AA=F4 =&AE M(&AI9V 8FET('-E= T*(" (&9O<F5A8V *&-H87( 8SL <RD-"B ("![ M;'0N;&5N9W1H+"!N=6QL+"!N=6QL*3L-" D (" 87-S97)T*&D /3T <F5S M" T*+RH /3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T](&QI;G5X(#T]/3T] M=6EN="!S:7IE.PT*(" ('5I;G0 ;G5M<F5A9#L- M(" <W1R=6-T7W-T870 <W1A=&)U9CL-"B ("!B>71E6UT 8G5F.PT*(" M(" 9F0 /2!S=&0N8RYL:6YU>"YL:6YU>"YO<&5N*&YA;65Z+"!/7U)$3TY, M=&8H(EQT;W!E;B!E<G)O<BP 97)R;F\ /2 E9%QN(BQG971%<G)N;R I*3L- M"B (" (" 9V]T;R!E<G(Q.PT*(" ('T-" T*(" ("\O<')I;G1F*")< M=&9I;&4 ;W!E;F5D7&XB*3L-"B ("!I9B H<W1D+F,N;&EN=7 N;&EN=7 N M*")<=&9S=&%T(&5R<F]R+"!E<G)N;R ]("5D7&XB+&=E=$5R<FYO*"DI.PT* M=6UR96%D(#T <W1D+F,N;&EN=7 N;&EN=7 N<F5A9"AF9"P 8V%S="AC:&%R M>PT*(" (" (" O+W!R:6YT9B B7'1R96%D(&5R<F]R+"!E<G)N;R ]("5D M;VED6UT 8G5F9F5R*0T*>PT*(" (&EN="!F9#L-"B ("!I;G0 ;G5M=W)I M='1E;CL-"B ("!C:&%R("IN86UE>CL-" T*(" (&YA;65Z(#T =&]3=')I M;F=Z*&YA;64I.PT*(" (&9D(#T <W1D+F,N;&EN=7 N;&EN=7 N;W!E;BAN M(" :68 *&9D(#T]("TQ*0T*(" (" ("!G;W1O(&5R<CL-" T*(" (&YU M;7=R:71T96X /2!S=&0N8RYL:6YU>"YL:6YU>"YW<FET92AF9"P 8G5F9F5R M+"!B=69F97(N;&5N9W1H*3L-"B ("!I9B H8G5F9F5R+FQE;F=T:" A/2!N M+F,N;&EN=7 N;&EN=7 N8VQO<V4H9F0I(#T]("TQ*0T*(" (" ("!G;W1O M(&5R<CL-" T*(" (')E='5R;CL-" T*97)R,CH-"B ("!S=&0N8RYL:6YU M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* T*("H 07!P M4W1R:6YG>BAN86UE*3L-"B ("!F9" ]('-T9"YC+FQI;G5X+FQI;G5X+F]P M96XH;F%M97HL($]?05!014Y$('P 3U]74D].3%D ?"!/7T-214%4+" P-C8P M(" ;G5M=W)I='1E;B ]('-T9"YC+FQI;G5X+FQI;G5X+G=R:71E*&9D+"!B M=69F97(L(&)U9F9E<BYL96YG=& I.PT*(" (&EF("AB=69F97(N;&5N9W1H M+FQI;G5X+FQI;G5X+F-L;W-E*&9D*3L-"F5R<CH-"B ("!T:')O=R!N97< M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*3L-" T*(" (&EF("AS=&0N8RYS=&1I;RYR96YA;64H9G)O;7HL('1O>BD M+G-T9&EO+G)E;6]V92AT;U-T<FEN9WHH;F%M92DI(#T]("TQ*0T*"71H<F]W M"B\J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M:6YT9B B9FEL92YG9713:7IE*"<E<R<I7&XB+&YA;65Z*3L-"B ("!F9" ] M('-T9"YC+FQI;G5X+FQI;G5X+F]P96XH;F%M97HL($]?4D1/3DQ9*3L-"B M<&5N(&5R<F]R+"!E<G)N;R ]("5D7&XB+&=E=$5R<FYO*"DI.PT*(" (" M<&5N961<;B(I.PT*(" (&EF("AS=&0N8RYL:6YU>"YL:6YU>"YF<W1A="AF M9"P )G-T871B=68I*0T*(" ('L-"B (" (" +R]P<FEN=&8H(EQT9G-T M870 97)R;W(L(&5R<FYO(#T M93L-" T*(" (&EF("AS=&0N8RYL:6YU>"YL:6YU>"YC;&]S92AF9"D /3T M("5D7&XB+&=E=$5R<FYO*"DI.PT*(" (" ("!G;W1O(&5R<CL-"B ("!] M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M971!='1R:6)U=&5S*&-H87);72!N86UE*0T*>PT*(" ('-T<G5C=%]S=&%T M4W1R:6YG>BAN86UE*3L-"B ("!I9B H<W1D+F,N;&EN=7 N;&EN=7 N<W1A M="AN86UE>BP )G-T871B=68I*0T*(" ('L-" ET:')O=R!N97< 1FEL945X M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* T*("H 1&]E<R!F M("!I9B H<W1D+F,N;&EN=7 N;&EN=7 N<W1A="AN86UE>BP )G-T871B=68I M*0T*(" ('L-" ER971U<FX ,#L- M"GT-" T*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M8G5T97,H;F%M92D )B!37TE&4D5'.PDO+R!R96=U;&%R(&9I;&4-"GT-" T* M+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M(&ES9&ER*&-H87);72!N86UE*0T*>PT*(" (')E='5R;B!G971!='1R:6)U M=&5S*&YA;64I("8 4U])1D1)4CL-"GT-" T*+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH-"B J($-H86YG M:6YG>BAP871H;F%M92DI*0T*(" ('L-" ET:')O=R!N97< 1FEL945X8V5P M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M:')O=R!N97< 1FEL945X8V5P=&EO;BAP871H;F%M92P 9V5T17)R;F\H*2D[ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* T*("H 4F5M;W9E(&1I<F5C=&]R>2X- M9B H<W1D+F,N;&EN=7 N;&EN=7 N<FUD:7(H=&]3=')I;F=Z*'!A=&AN86UE M(" 8VAA<BH <#L-" T*(" (' /2!S=&0N8RYL:6YU>"YL:6YU>"YG971C M1FEL945X8V5P=&EO;B B8V%N;F]T(&=E="!C=V0B+"!G971%<G)N;R I*3L- M8G5F6UT /2!P6S +BX ;&5N9W1H73L-"B ("!S=&0N8RYS=&1L:6(N9G)E M<W1D:7(H8VAA<EM=('!A=&AN86UE*0T*>PT*(" (&%S<V5R=" P*3L)"2\O $"GT-" `` ` end
May 24 2004
parent "Carlos Santander B." <carlos8294 msn.com> writes:
"Walter" <newshound digitalmars.com> escribió en el mensaje
news:c8trd4$q9q$1 digitaldaemon.com
| "Carlos Santander B." <carlos8294 msn.com> wrote in message
| news:c8jd77$gk8$1 digitaldaemon.com...
|| "Walter" <newshound digitalmars.com> escribió en el mensaje
|| news:c8hkht$25vt$1 digitaldaemon.com
||| It will work on win9x if the unicode characters you're using are
||| representable in the system code page you've set on win9x.
||
|| But that'd be an imposition for the end user of the application, not even
|| for the developer, wouldn't it? Please correct me if I'm wrong. But if
I'm
|| not, then there must be something better to be done.
|
| Try the following std.file.d and see if it works.

Yes, it worked. Thanks.

-----------------------
Carlos Santander Bernal
May 25 2004