Hi Michael, Many thanks for putting into place these changes. I'm just about to make a dev release so I'm tag 2.7.4, have a bit of rest, then come back to reviewing your changes.
Cheers, Robert. On Tue, Oct 28, 2008 at 7:32 PM, Michael Platings <[EMAIL PROTECTED]> wrote: > Hi Robert, I'm resubmitting with the changes you suggested. > The great majority of the changes here are just fopen -> osgDB::fopen > and std::fstream/ifstream/ofstream to osgDB::fstream/ifstream/ofstream > Thanks > Michael Platings > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Robert Osfield > Sent: 07 October 2008 13:24 > To: OpenSceneGraph Submissions > Subject: Re: [osg-submissions] Unicode support for Windows > > Hi Michael, > > I have just done a review of all the changes, and rather than > overwhelmed by the extent of the changes. While I'm impressed at how > thorough you've been - it's clearly taken quite a bit of work, I am > rather concerned about the nature of the changes and in particular the > ongoing readability and maintainability of them. For this reason I > won't be merging this submission as is. > > I do understand the need to be able to cope with this issue, so would > suggest an discussion about the different ways we could tackle it, since > the way we use ifstream, ostream and fopen usage will all have to > altered in some way I believe that this type of discussion should be > done on osg-users. Hopefully we'll be able to come up with an approach > that is straight forward to implementent and maintain and we can then go > do a pure on the code base to move it across to using the new scheme. > > Could you introduce the topic on osg-users? > > Robert. > > On Mon, Oct 6, 2008 at 2:28 PM, Michael Platings > <[EMAIL PROTECTED]> wrote: >> Hi Robert, >> Windows doesn't support the UTF-8 code-page. Therefore any filename >> containing a character outside the current code-page cannot be loaded >> by OpenSceneGraph. >> To fix this I have added a OSG_USE_UTF8_FILENAME advanced option for >> CMake (off by default) When enabled, all file access functions use the > >> wide-character alternative (e.g. _wfopen instead of fopen). The >> filename argument is assumed to be a >> UTF-8 string which is converted to a UTF-16 string. >> >> Thanks, >> Michael Platings >> >> BTW, here's a good discussion of the problem previously posted by Ben >> Discoe. His statement that C++ stream IO doesn't support wide >> filenames seems to be true in the standard, however Visual C++ does >> allow wide-string filenames. >> >> OSG on Windows passes your strings directly to fopen, or the C++ >> stream equivalent. File paths are assumed to be in the local OS's >> filesystem character set. This means that e.g. Chinese filenames can >> be opened on computers with Chinese version of Windows, and Western >> filenames can be opened on computer with Western version of Windows. >> So, to do exactly what you describe below, OSG already does it. >> >> However, it is true that if a Chinese user sent you a file with a >> Chinese filename, you could not open it with OSG on your non-Chinese >> OS. To do that, OSG would indeed have to add Unicode filename support. > >> Unicode means that any file can be opened on any machine. >> >> To support Unicode ,with the C standard lib on Windows, it is quite >> easy to replace usage of fopen with _wfopen. However, there are many >> places in OSG's code base where the C++ stream IO is used instead of >> fopen. AFAIK, there is no _w version of those methods, so OSG is > stuck. >> >> Just as a note, this whole thing is delightfully a non-issue on Mac OS > >> X, and (some?) flavors of Linux, in which UTF-8 is the filesystem >> charset, so plain old fopen() handles everything. >> >> -Ben >> >>> ---------- >> >>> From: Reed McKenna >> >>> Sent: Tuesday, April 22, 2008 4:00 PM >> >>> >> >>> We build an application for Windows XP using OpenSceneGraph. We have >> >>> more and more users from Asian countries who want to read in files >> >>> that have names with Asian characters. Windows' NTFS file system >> >>> stores file names in Unicode. How can I have osgDB::readNodeFile (and >> >>> writeNodeFile, etc.) read from and write to these files, using the >>> full NTFS Unicode file name? >> >>> If it is not currently possible, are there any plans in the works to >> >>> make it possible? >> >>> >> >>> Reed >> >> _______________________________________________ >> >> osg-users mailing list >> >> [EMAIL PROTECTED] >> >> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph. >> org >> ______________________________________________________________________ >> This email and any files transmitted with it are confidential and >> intended solely for the use of the individual or entity to whom they >> are addressed. If you have received this email in error please notify >> the system manager. >> >> This email has been scanned by the MessageLabs Email Security System. >> For more information please visit http://www.messagelabs.com/email >> ______________________________________________________________________ >> >> _______________________________________________ >> osg-submissions mailing list >> [email protected] >> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscene >> graph.org >> >> > _______________________________________________ > osg-submissions mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegr > aph.org > > ______________________________________________________________________ > This email has been scanned by the MessageLabs Email Security System. > For more information please visit http://www.messagelabs.com/email > ______________________________________________________________________ > > ______________________________________________________________________ > This email and any files transmitted with it are confidential and > intended solely for the use of the individual or entity to whom they > are addressed. If you have received this email in error please notify > the system manager. > > This email has been scanned by the MessageLabs Email Security System. > For more information please visit http://www.messagelabs.com/email > ______________________________________________________________________ > _______________________________________________ > osg-submissions mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > > _______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
