Re: Lfn.e
- Posted by Robert Elia <bobelia200 at netzero.net> Dec 23, 2002
- 436 views
--=======1CD93C2B======= Juergen and Ricardo, I must apologize for my bad eyesight and 14" monitor. I believe=20 it actually was the 'registered trademark' symbol ( R with a circle around= =20 it ) in my filename. At least, I can't find the @ symbol. "=AB" I just typed Alt-174 (#AE) before this sentence between= quotes=20 in Eudora. It looks the same in DOS on my machine. So, that's not part of= =20 the problem, I think. Anyway, I'm still getting the failure. Ralf Browns list also=20 shows this: INT 21 - Windows95 - LONG FILENAME - FIND FIRST MATCHING FILE AX =3D 714Eh CL =3D allowable-attributes mask (see #01397 at AX=3D4301h) (bits 0 and 5 ignored) CH =3D required-attributes mask (see #01397) SI =3D date/time format (see #01755) DS:DX -> ASCIZ filespec (both "*" and "*.*" match any filename) ES:DI -> FindData record (see #01756) Return: CF clear if successful AX =3D filefind handle (needed to continue search) CX =3D Unicode conversion flags (see #01757) CF set on error AX =3D error code 7100h if function not supported <snip> Bitfields for Windows95 Unicode conversion flags: Bit(s) Description (Table 01757) 0 the returned full filename contains underscores for un-convertable Unicode characters 1 the returned short filename contains underscores for= un-convertable Unicode characters SeeAlso: #01756 INT 21:AX =3D 714Eh reg_list[REG_CX] bit 0 *IS* returning 1 on the bad=20 filenames. and, indeed, lfn_dir() is showing them with underscores (#5F)=20 instead of #AE. I even tried replacing the #5F with #AE before calling=20 lfn_open() but that didn't work either. My "Regional Settings" in Win98 are set to "English (United= States)" and, in Dos, c:\windows\personal>chcp Active code page: 437 I don't know enough about Unicode to say why the offending=20 character is considered "un-convertible" by INT21714Eh. I don't know how to= =20 determine whether my system is broken or just set to some odd but legal=20 configuration. From what I've read so far, windows uses the ANSI code page= =20 and DOS uses OEM. There are some "extended" characters which don't map=20 properly. I have been able to create a file on the command line using=20 Alt-keypad a file with your codes in the name. They work fine with my test= =20 program using lfn.e and they probably display the way you see them. I see= =20 the lower and upper case a, o, u (alles mit umlaut) followed by the letter= =20 whose name I can't remember. =E4=C4=F6=D6=FC=DC=DF I even used #AE in a= filename and=20 that worked but in the long form it's changed to #AB on disk. I will try=20 to take screen shots and show what I mean. It may be that there's some windows setting that's causing this=20 behavior. I will share what I find with you if I think I understand it. Thanks for your effort, Bob --=======1CD93C2B======= Content-Type: text/plain; charset=us-ascii; x-avg=cert; x-avg-checked=avg-ok-27CE47D Content-Disposition: inline --- --=======1CD93C2B=======--