Hi

On 8/7/06, Christian Ehrlicher <[EMAIL PROTECTED]> wrote:
> >>>> #ifdef WIN32
> >>>>         info.name         = static_cast<const char*>(f.lower());
> >>>> #else
> >>>>         info.name                = strdup(QFile::encodeName(f));
> >>>> #endif
> >>>> Why was this small memleak only fixed for win32? And why isn't the
> >>> filename encoded on win32?
> >>>
> >>> 1. http://doc.trolltech.com/3.3/qfile.html#encodeName :
> >>> On Windows NT/2000, Unicode file names are supported directly in the
> >>> file system and this function should be avoided.
> >>>
> >> This has imho nothing to do with the problem because we don't use native 
> >> file functions here. Only Qt ones. And if you don't encode a name but 
> >> later decode them for e.g. QFile() it is wrong afterwards...
> >
> > what do you mean?
> > the above sentence about avoiding the QFile::encodeName() is quoted
> > from Qt's documentation, so it is Trolltech who recommends against
> > using it.
> > I would follow their recommendations.
> >
> The tt-statement is for things like OpenFile(myFileName,..) and
> OpenFile(QFile::encodeName(myFileName),...) where both are wrong - you
> should use OpenFile(myFileName.ucs2(),...) because OpenFile is OpenFileW
> (per macro)
>
> What happened in sim sources before my changes was:
>
> QString myFileName("test.txt");
> #if unix
> string fn = QFile::encodeName(myFileName);
> #else
> string fn = myFileName; // == filename.ascii();
> #endif
> ...
> QFile(QFile::decodeName(fn));
>
> which is definitifly wrong.

ah, now I understand, thanks for your patience

> Christian
>
-- 
BR. Alexander 'zowers' Petrov.    jabber:[EMAIL PROTECTED]    icq:69694782
http://zowers.googlepages.com/    mailto:[EMAIL PROTECTED]
_______________________________________________
sim-im-main mailing list
[email protected]
https://mailman.dg.net.ua/listinfo/sim-im-main

Reply via email to