Thread overview
STLSoft 1.9.70 released
Jan 24, 2009
Matt Wilson
Jan 27, 2009
Florin L
Jan 27, 2009
Matthew Wilson
Jan 28, 2009
Matt Wilson
January 24, 2009
Download from http://stlsoft.org/

============================================================================

Changes for 1.9.70 (25th January 2009)

Summary:
========

 * improved stlsoft::find_next_token() function templates to ensure that all empty fields are reported to caller
 * added char_copy() methods to filesystem_traits classes in InetSTL and WinSTL, as part of move away from "unsafe" string functions
 * minor enhancements to platformstl::readdir_sequence, to disambiguate constructor overloads
 * removed all "unsafe" string functions from winstl::basic_findfile_sequence class template and supporting components
 * improved winstl::basic_path class template to ensure proper behaviour in corner cases of use of push() and pop() methods

Changes:
========

 STLSoft:
 ========

 ~ include/stlsoft/string/tokeniser_functions.hpp:
    ~ fixed benign defects in find_next_token() overloads, whereby certain empty fields were not reported to caller
    ~ documentation enhancements
    ~ adding in more pre-condition enforcements

 InetSTL:
 ========

 ~ include/inetstl/filesystem/filesystem_traits.hpp:
    + char_copy() operations

 PlatformstSTL:
 ==============

 ~ include/platformstl/filesystem/readdir_sequence.hpp:
    ~ separation and disambiguation of constructor overloads

 WinSTL:
 =======

 ~ include/winstl/filesystem/findfile_sequence.hpp:
    + added defaulted parameter to get_directory() to retrieve the directory length
    ~ replaced all instances of so-called "unsafe" string functions with system_traits::char_copy()

 ~ include/winstl/filesystem/path.hpp:
    ~ various fixes to push() and push_sep()
    ~ corrected defects in pop(), seen in root directory paths, and paths involving UNC

 ~ include/winstl/system/system_traits.hpp:
    + added char_copy() to system_traits specialisations
    ~ trivial documentation markup modifications

============================================================================

January 27, 2009
The following code failed to build under 1.9.70 version:

#include <algorithm>    // std::copy
#include <iterator>     // std::ostream_iterator
#include <iostream>     // std::cout, std::endl
#include <string>       // std::string

using namespace std;
using platformstl::readdir_sequence;

void listDir( const string &dirName )
{
    readdir_sequence dir( dirName, readdir_sequence::directories );

    std::copy( dir.begin(), dir.end(), std::ostream_iterator<std::string>( std::cout, "\n" ) );
}

int main()
{
    // lists the content of a directory
    listDir("C:\\");

    return 0;
}

The error message is :

E:\dm\stlsoft-1.9.70\include\winstl/filesystem/findfile_sequence.hpp(956) : Error: undefined identifier 'CO_E_PATHTOOLONG'


The compiler is:

Digital Mars Compiler Version 8.50.
January 27, 2009
Bah! stupid me.

Thanks, I'll fix it today

"Florin L" <florinl_ro@yahoo.com> wrote in message news:glmsos$1fgq$1@digitalmars.com...
> The following code failed to build under 1.9.70 version:
>
> #include <algorithm>    // std::copy
> #include <iterator>     // std::ostream_iterator
> #include <iostream>     // std::cout, std::endl
> #include <string>       // std::string
>
> using namespace std;
> using platformstl::readdir_sequence;
>
> void listDir( const string &dirName )
> {
>     readdir_sequence dir( dirName, readdir_sequence::directories );
>
>     std::copy( dir.begin(), dir.end(), std::ostream_iterator<std::string>( std::cout, "\n" ) );
> }
>
> int main()
> {
>     // lists the content of a directory
>     listDir("C:\\");
>
>     return 0;
> }
>
> The error message is :
>
> E:\dm\stlsoft-1.9.70\include\winstl/filesystem/findfile_sequence.hpp(956) : Error: undefined identifier 'CO_E_PATHTOOLONG'
>
>
> The compiler is:
>
> Digital Mars Compiler Version 8.50.


January 28, 2009
Now fixed. See: http://www.digitalmars.com/webnews/newsgroups.php?art_group=c%2B%2B.stlsoft&article_id=1796

Florin L Wrote:

> The following code failed to build under 1.9.70 version:
> 
> #include <algorithm>    // std::copy
> #include <iterator>     // std::ostream_iterator
> #include <iostream>     // std::cout, std::endl
> #include <string>       // std::string
> 
> using namespace std;
> using platformstl::readdir_sequence;
> 
> void listDir( const string &dirName )
> {
>     readdir_sequence dir( dirName, readdir_sequence::directories );
> 
>     std::copy( dir.begin(), dir.end(), std::ostream_iterator<std::string>( std::cout, "\n" ) );
> }
> 
> int main()
> {
>     // lists the content of a directory
>     listDir("C:\\");
> 
>     return 0;
> }
> 
> The error message is :
> 
> E:\dm\stlsoft-1.9.70\include\winstl/filesystem/findfile_sequence.hpp(956) : Error: undefined identifier 'CO_E_PATHTOOLONG'
> 
> 
> The compiler is:
> 
> Digital Mars Compiler Version 8.50.