[sword-devel] OSIS Bible Name guidelines ?

Eeli Kaikkonen eekaikko at mail.student.oulu.fi
Tue Dec 23 08:07:34 MST 2008


Chris Little wrote:
>
>
> I have never heard of the module renaming facility that Eeli suggests, 
> and it is not part of the Sword library itself. When InstallMgr 
> discovers modules with the same ID in multiple repositories, it 
> assumes they refer to the same module (though possibly different 
> versions of it). By this facility, we publish one version via the 
> public repository while publishing a beta version (with an incremented 
> version number) from the beta repository. When testers download the 
> beta version, it overwrites the publicly released version, which can 
> only be regained by uninstalling and re-installing from the public 
> repository.
>

What's this then? The result is seen at least in BibleTime, and BT code 
does nothing for it. It's from SWMgr::augmentModules():

 // fix config's Section names to rename modules which are available 
more than once
                        // find out which sections are in both config 
objects
                        // inserting all configs first is not good 
because that overwrites old keys and new modules would share the same config
                        for (SectionMap::iterator it = 
config->Sections.begin(); it != config->Sections.end(); ++it) {
                                if (saveConfig->Sections.find( 
(*it).first ) != saveConfig->Sections.end()) { //if the new section is 
already present rename it
                                        ConfigEntMap entMap((*it).second);

                                        SWBuf name;
                                        int i = 1;
                                        do { //module name already used?
                                                
name.setFormatted("%s_%d", (*it).first.c_str(), i);
                                                i++;
                                        } while 
(config->Sections.find(name) != config->Sections.end());

                                        
config->Sections.insert(SectionMap::value_type(name, entMap) );
                                        config->Sections.erase(it);
                                }
                        }


--Eeli Kaikkonen



More information about the sword-devel mailing list