[MOAB-dev] r3509 - MOAB/trunk

Tim Tautges tautges at mcs.anl.gov
Fri Jan 29 10:35:57 CST 2010


Thanks.

- tim

kraftche at cae.wisc.edu wrote:
> Author: kraftche
> Date: 2010-01-29 10:23:40 -0600 (Fri, 29 Jan 2010)
> New Revision: 3509
> 
> Modified:
>    MOAB/trunk/MBReaderWriterSet.cpp
> Log:
> Fix some bugs in MBReaderWriterSet
> 
> o One registration of CCMIO reader and writer, rather than separate 
>   registration of each.
>   
> o Report an error if there are two registrations with the same 
>   string name.
> 
> o Fix case-insensitive comparison of file name extensions.
> 
> 
> 
> Modified: MOAB/trunk/MBReaderWriterSet.cpp
> ===================================================================
> --- MOAB/trunk/MBReaderWriterSet.cpp	2010-01-29 05:24:00 UTC (rev 3508)
> +++ MOAB/trunk/MBReaderWriterSet.cpp	2010-01-29 16:23:40 UTC (rev 3509)
> @@ -117,8 +117,7 @@
>  
>  #ifdef CCMIO_FILE  
>    const char* ccmio_sufxs[] = { "ccm", "ccmg", NULL };
> -  register_factory( NULL, WriteCCMIO::factory, "CCMIO files", ccmio_sufxs, "CCMIO");
> -  register_factory( ReadCCMIO::factory, NULL, "CCMIO files", ccmio_sufxs, "CCMIO");
> +  register_factory( ReadCCMIO::factory, WriteCCMIO::factory, "CCMIO files", ccmio_sufxs, "CCMIO");
>  #endif
>  
>    register_factory( NULL, WriteGMV::factory, "GMV", "gmv", "GMV" );
> @@ -147,12 +146,20 @@
>  {
>    if (!reader && !writer)
>      return MB_FAILURE;
> +    
> +    // check for duplicate names
> +  iterator h = handler_by_name( name );
> +  if (h != end()) {
> +    mbError->set_last_error( "Conflicting string name for file formats: \"%s\"",
> +                             name );
> +    return MB_FAILURE;
> +  }
>    
>      // count extensions and check for duplicates
>    const char* const* iter;
>    for (iter = extensions; *iter; ++iter)
>    {
> -    iterator h = handler_from_extension( *iter );
> +    h = handler_from_extension( *iter );
>      if (h != end())
>      {
>        if (NULL != reader && h->have_reader())
> @@ -245,8 +252,8 @@
>      // try case-insensitive compare
>    for (iter = begin(); iter != end(); ++iter)
>    {
> -    if ((with_reader && iter->have_reader()) ||
> -        (with_writer && iter->have_writer()))
> +    if ((with_reader && !iter->have_reader()) ||
> +        (with_writer && !iter->have_writer()))
>        continue;
>   
>      for (siter = iter->mExtensions.begin(); siter != iter->mExtensions.end(); ++siter)
> 
> 

-- 
================================================================
"You will keep in perfect peace him whose mind is
   steadfast, because he trusts in you."               Isaiah 26:3

              Tim Tautges            Argonne National Laboratory
          (tautges at mcs.anl.gov)      (telecommuting from UW-Madison)
          phone: (608) 263-8485      1500 Engineering Dr.
            fax: (608) 263-4499      Madison, WI 53706



More information about the moab-dev mailing list