www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - recls 1.9.1 (alpha 1) released

Download from https://sourceforge.net/projects/recls/files

recls 1.9.1 (alpha 1) released - 9th February 2010
==================================================

Summary:
--------

 * first release of recls 1.9
 * merging 1.8's C++ and STL APIs into one: include <recls/recls.hpp> for new
C++ API
 * prototypical code coverage
 * refactored implicit link functionality
 * API type name changes, e.g. recls_fileinfo_t => recls_entryinfo_t,
recls_info_t => recls_entry_t
 * removed the Recls_OutstandingDetails() API function
 * user-specifiable diagnostic logging
 * NOTE: this distribution contains only core library and C++ mapping; other
language mappings are not included

Details:
--------

Core:

 ~ include/recls/ftp.h:
    ~ recls support for FTP is now discriminated in main include (recls/recls.h)

 ~ include/recls/implicit_link.h:
    + added support for Intel 9, 10, 11
    ~ changed naming for 64-bit
    + added support for widestring
    + added support for (pseudo-)UNIX

 ~ include/recls/internal/platform.h:
    ~ recls support for FTP is now discriminated in main include (recls/recls.h)
    + RECLS_ARCH_IS_X64
    + RECLS_ARCH_IS_IA64
    + RECLS_ARCH_IS_X86
    ~ minor layout changes

 ~ include/recls/internal/platform_types.h:
    + string access shims for recls_entryinfo_t
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    ~ minor layout changes
    + added data+len string access shims for recls_strptrs_t

 ~ include/recls/internal/recls_filesize.h:
    ~ no-namespace compatibility
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    ~ minor layout changes
    + added data+len string access shims for recls_strptrs_t

 ~ include/recls/internal/recls_time.h:
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    ~ minor layout changes
    + added data+len string access shims for recls_strptrs_t

 ~ include/recls/internal/retcodes.h:
    ~ renamed RECLS_RC_INVALID_DIRECTORY to RECLS_RC_PATH_IS_NOT_DIRECTORY
    + added RECLS_RC_DIRECTORY_NOT_FOUND
    + RECLS_RC_ACCESS_DENIED
    ~ minor layout changes

 ~ include/recls/recls.h:
    ~ widestring compatibility
    + added RECLS_F_STOP_ON_ACCESS_FAILURE
    ~ no-namespace compatibility
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    - Recls_OutstandingDetails()
    ~ minor layout changes

 ~ include/recls/recls.hpp:
    ~ separated FTP functionality out of search_sequence, into new class
ftp_search_sequence

 ~ include/recls/windows.h:
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t

 ~ src/ReclsFileSearch.cpp:
    ~ improved error-handling (for access-denied)
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/ReclsFileSearch.hpp:
    ~ improved error-handling (for access-denied)
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t

 ~ src/ReclsFileSearchDirectoryNode.cpp:
    ~ widestring compatibility
    ~ fixed defect in (new) access-denied propagation
    ~ improved error-handling (for access-denied)
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ removal of dependency on so-called "unsafe" string functions
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable
    ~ now implemented in terms of types structure

 ~ src/ReclsFileSearchDirectoryNode.hpp:
    ~ improved error-handling (for access-denied)
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    ~ now implemented in terms of types structure

 ~ src/ReclsFtpSearchDirectoryNode_windows.cpp:
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ removed dependency on so-called "unsafe" string functions
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/ReclsFtpSearchDirectoryNode_windows.hpp:
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t

 ~ src/ReclsFtpSearch_windows.cpp:
    + added code coverage
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/ReclsSearch.cpp:
    ~ reordered coverage constructs
    ~ marking files
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage

 ~ src/ReclsSearch.hpp:
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t

 ~ src/api.entryinfo.cpp:
    ~ reordered coverage constructs
    ~ marking files
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ renaming of utility functions

 ~ src/api.error.cpp:
    ~ reordered coverage constructs
    ~ marking files
    ~ widestring compatibility
    + added code coverage
    ~ renamed RECLS_RC_INVALID_DIRECTORY to RECLS_RC_PATH_IS_NOT_DIRECTORY
    + added RECLS_RC_DIRECTORY_NOT_FOUND
    + added RECLS_RC_ACCESS_DENIED
    ~ renaming of utility functions

 ~ src/api.extended.cpp:
    ~ split Recls_CombinePaths() into its own source file
    ~ split Recls_DeriveRelativePath(), Recls_SqueezePath(), Recls_Stat() into
their own source files
    ~ marking files
    ~ stat() now rejects too-large path
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ verifies the path for length, either too small or too large
    ~ fixed defect in stat(), when target does not exist
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/api.ftp.windows.cpp:
    ~ reordered coverage constructs
    ~ marking files
    + added code coverage
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/api.search.cpp:
    ~ reordered coverage constructs
    ~ marking files
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ removal of dependency on so-called "unsafe" string functions
    ~ verifies the path for length, either too small or too large
    ~ recls_debug_printf_() => recls_trace_printf_()
    - removal of Recls_OutstandingDetails()
    ~ using union cast for function cast
    ~ using constants class constants
    ~ simplified tracing functionality, and made it programmable
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/api.unix.cpp:
    ~ reordered coverage constructs
    ~ marking files
    + added code coverage

 ~ src/api.util.combine_paths.cpp:
    ~ exception refactoring
    ~ split Recls_CombinePaths() into its own source file
    ~ split Recls_DeriveRelativePath(), Recls_SqueezePath(), Recls_Stat() into
their own source files
    ~ marking files
    ~ stat() now rejects too-large path
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ verifies the path for length, either too small or too large
    ~ fixed defect in stat(), when target does not exist
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/api.util.create_directory.cpp:
    ~ separating out exception-handling from main function body, to work around
code-generation defect in VC++ 9 (debug, dll)
    ~ split create_directory and remove_directory into their own source files
    ~ marking files
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage

 ~ src/api.util.derive_relative_path.cpp:
    ~ reordered coverage constructs
    ~ split Recls_DeriveRelativePath(), Recls_SqueezePath(), Recls_Stat() into
their own source files
    ~ marking files
    ~ stat() now rejects too-large path
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ verifies the path for length, either too small or too large
    ~ fixed defect in stat(), when target does not exist
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/api.util.remove_directory.cpp:
    ~ improved exception-handling
    ~ separating out exception-handling from main function body, to work around
code-generation defect in VC++ 9 (debug, dll)
    ~ split create_directory and remove_directory into their own source files
    ~ marking files
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage

 ~ src/api.util.squeeze_path.cpp:
    ~ refactored exception-handling
    ~ split Recls_DeriveRelativePath(), Recls_SqueezePath(), Recls_Stat() into
their own source files
    ~ marking files
    ~ stat() now rejects too-large path
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ verifies the path for length, either too small or too large
    ~ fixed defect in stat(), when target does not exist
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/api.util.stat.cpp:
    ~ exception refactoring
    ~ reordered coverage constructs
    ~ split Recls_DeriveRelativePath(), Recls_SqueezePath(), Recls_Stat() into
their own source files
    ~ marking files
    ~ stat() now rejects too-large path
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ verifies the path for length, either too small or too large
    ~ fixed defect in stat(), when target does not exist
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/api.windows.cpp:
    ~ reordered coverage constructs
    ~ marking files
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable
    ~ renaming of utility functions

 ~ src/impl.atomic.h:
    ~ recls_debug_printf_() => recls_trace_printf_()

 ~ src/impl.constants.hpp:
    ~ reordered coverage constructs
    ~ marking files
    ~ improved error-handling (for access-denied)
    + added code coverage
    + constants class
    - removal of char array constants

 ~ src/impl.cover.h:
    ~ marking files
    + xCover

 ~ src/impl.entryfunctions.h:
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t

 ~ src/impl.entryinfo.cpp:
    ~ reordered coverage constructs
    ~ marking files
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage
    ~ removal of dependency on so-called "unsafe" string functions
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/impl.entryinfo.hpp:
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    ~ now implemented in terms of types structure

 ~ src/impl.fileinfo.cpp:
    ~ reordered coverage constructs
    ~ marking files
    ~ recls_fileinfo_t => recls_entryinfo_t and recls_info_t => recls_entry_t
    + added code coverage

 ~ src/impl.fileinfo.unix.cpp:
    + added code coverage
    ~ recls_debug_printf_() => recls_trace_printf_()

 ~ src/impl.fileinfo.windows.cpp:
    + added code coverage
    ~ recls_debug_printf_() => recls_trace_printf_()

 ~ src/impl.root.h:
    - RECLS_TRACE_LEVEL removed, and is not dynamic
    ~ recls_debug_printf_() => recls_trace_printf_()

 ~ src/impl.trace.cpp:
    ~ debug-logging not enabled in release builds
    + added code coverage
    ~ logging now in terms of recls_char_t
    + added default debug logging functionality
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable

 ~ src/impl.trace.h:
    ~ logging now in terms of recls_char_t
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable

 ~ src/impl.types.ftp.hpp:
    ~ improved error-handling (for access-denied)
    + added code coverage
    + count_char_instances()
    + count_dir_parts()

 ~ src/impl.types.hpp:
    ~ improved error-handling (for access-denied)
    + added code coverage
    + count_char_instances()
    + count_dir_parts()

 ~ src/impl.util.cpp:
    + added code coverage
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

 ~ src/impl.util.h:
    ~ renaming of utility functions

 ~ src/impl.util.unix.cpp:
    + added code coverage
    ~ removal of dependency on so-called "unsafe" string functions
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ renaming of utility functions

 ~ src/impl.util.windows.cpp:
    + added code coverage
    ~ recls_debug_printf_() => recls_trace_printf_()
    ~ simplified tracing functionality, and made it programmable
    ~ renaming of utility functions
    ~ now implemented in terms of types structure

C++ API:

 ~ include/recls/cpp/exceptions.hpp:
    ~ documentation corrections
    ~ no-namespace compatibility

 ~ include/recls/cpp/ftp_search_sequence.hpp:
    ~ separated FTP functionality out of search_sequence, into new class
ftp_search_sequence
    ~ search_sequence is now a non-template class
    ~ safe-string compatible
    ~ ensures forward compatibility with recls 1.9
    ~ corrected defect in get_search_relative_path()

 ~ include/recls/cpp/root_sequence.hpp:
    ~ root_sequence is now a non-template class

 ~ include/recls/cpp/search_sequence.hpp:
    ~ separated FTP functionality out of search_sequence, into new class
ftp_search_sequence
    ~ search_sequence is now a non-template class
    ~ safe-string compatible
    ~ ensures forward compatibility with recls 1.9
    ~ corrected defect in get_search_relative_path()

 ~ include/recls/cpp/traits.hpp:
    ~ separated FTP functionality out of search_sequence, into new class
ftp_search_sequence
    ~ safe-string compatible

 ~ include/recls/cpp/util.hpp:
    ~ documentation corrections
    ~ no-namespace compatibility

Makefiles:

 ~ recls.vc6.dsw:
    + added test.component.util.cpp.remove_directory

 ~ projects/core/vc6/recls.core.dsp:
    ~ split Recls_CombinePaths() into its own source file
    ~ split Recls_DeriveRelativePath(), Recls_SqueezePath(), Recls_Stat() into
their own source files
    ~ split api.extended.2.cpp into api.util.create_directory.cpp and
api.util.remove_directory.cpp

 ~ build/bc56/makefile:
 ~ build/bc582/makefile:
 ~ build/cw8.unix/makefile:
 ~ build/cw8.win32/makefile:
 ~ build/dm/makefile:
 ~ build/gcc34.win32/makefile:
 ~ build/gcc40.unix/makefile:
 ~ build/gcc41.unix/makefile:
 ~ build/gcc42.unix/makefile:
 ~ build/gcc43.unix/makefile:
 ~ build/icl10.win32/makefile:
 ~ build/icl11.win32/makefile:
 ~ build/icl8.win32/makefile:
 ~ build/icl9.win32/makefile:
 ~ build/vc6.unixem/makefile:
 ~ build/vc6/makefile:
 ~ build/vc71/makefile:
 ~ build/vc8.unixem/makefile:
 ~ build/vc8.x64/makefile:
 ~ build/vc8/makefile:
 ~ build/vc9.unixem/makefile:
 ~ build/vc9.x64/makefile:
 ~ build/vc9/makefile:
    ~ split Recls_CombinePaths() into its own source file
    ~ split Recls_DeriveRelativePath(), Recls_SqueezePath(), Recls_Stat() into
their own source files
    ~ split create_directory and remove_directory into their own source files
    + added test.component.util.cpp.remove_directory
    + added test.component.util.cpp.create_directory
    ~ cleaning up all files properly
    ~ updated makefiles, including xCover
    ~ libs only; xCover-compatibility

Examples:

Test.Unit:

 ~ test/unit/test.unit.api.squeeze_path/test.unit.api.squeeze_path.c:
    + added code coverage reporting

 ~ test/unit/test.unit.cpp.squeeze_path/test.unit.cpp.squeeze_path.cpp:
    + added code coverage reporting

Depends on:

 * STLSoft 1.9.91 or later
   (http://stlsoft.org/)
Feb 09 2010