-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello,
David Hislop wrote: >> It is possible that the msvc iostream implementation has some differences > So obviously there is something different in MSVC iostream. I think it's > in basic_istream (and so probably basic_ostream as well). It seems that > the d->buffer << d->file.rdbuf() in WPSFileStream::isOLEStream() resets > the buffer counts to make the buffer empty. Actually, that probably > makes sense (I can't believe I said that about an MS-Anything :-) ). > Anyway, their implementation seems to differ from the one at > www.cplusplus.com <http://www.cplusplus.com/> , for example. Yeah :-) It has to be my fault because I had problems with resetting the failbit eofbit and badbit on some systems, I replaced the read with readsome. Now, I read the www.cplusplus.com again and I realize that this is what they write: "Reads a block of data of up to n characters and stores it in the array pointed by s, but unlike member function read, readsome stops reading if the memory buffer associated with the stream runs out of characters, even if the End-Of-File has not yet been reached." So, I replaced it again with a checked read and it should be working now. In the fs_experimental branch I want to say. > Yes. I'm currently using the code below just directly in what would be > WPXStreamImplementation.cpp, but if you choose to use something similar, > it could perhaps be better in libwpd_internal.h. > #if (defined(_MSC_VER) && (_MSC_VER >= 1400)) // 1400 for Visual > Studio 2005 > // From Visual Studio 2005, readsome() and read() are deprecated. > #define myReadSome(BUF, SIZ, NUM) _Readsome_s(BUF, SIZ, NUM); > #define myRead(BUF, SIZ, NUM) _Read_s(BUF, SIZ, NUM); > #else // WIN32 > #define myReadSome(BUF, SIZ, NUM) readsome(BUF, NUM); > #define myRead(BUF, SIZ, NUM) read(BUF, NUM); > #endif // WIN32 My problem with this approach is that static library built with VS2005 will not be usable with the earlier MSVC versions. The linking will not find a symbol that does not exist in the earlier version (AFAIK). So, if one wants a really warning-free code, maybe a pragma to suppress this warning would do better :-) Cheers F. - -- Please avoid sending me Word, Excel or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFGGQRDu9a1imXPdA8RAnODAJ94W485AtLkX7AvuiS8FkxvnifqPACbBJU3 yppHIbRx/CHawgL1WA3055o= =sEeC -----END PGP SIGNATURE----- ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Libwpd-devel mailing list Libwpd-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libwpd-devel