/* $Date: 9/10/03 15:44 $ $Revision: 14 $ Copyright © 2007, FSL Technologies Limited. Contact "http://fost.3.felspar.com". */ #include "stdafx.h" using namespace std; using namespace FSLib; namespace { Revision c_revision( L"$Archive: $", __DATE__, L"$Revision: $", L"$Date: $" ); } template<> const void *FSLib::memmem( const void *mem, std::size_t mem_size, const void *pattern, std::size_t pattern_size ) { if ( pattern_size == 0 || mem_size == 0 || pattern_size > mem_size ) return NULL; char first = reinterpret_cast< const char * >( pattern )[ 0 ]; for ( const char *p = reinterpret_cast< const char * >( mem ); p < reinterpret_cast< const char * >( mem ) + mem_size; ++p ) if ( *p == first ) { if ( std::memcmp( p, pattern, pattern_size ) == 0 ) return p; } return NULL; }