summaryrefslogtreecommitdiff
path: root/plugins/adplug/adplug/players.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/adplug/adplug/players.cpp')
-rw-r--r--plugins/adplug/adplug/players.cpp35
1 files changed, 18 insertions, 17 deletions
diff --git a/plugins/adplug/adplug/players.cpp b/plugins/adplug/adplug/players.cpp
index 09c32b73..c8884fcd 100644
--- a/plugins/adplug/adplug/players.cpp
+++ b/plugins/adplug/adplug/players.cpp
@@ -32,8 +32,9 @@ CPlayerDesc::CPlayerDesc()
}
CPlayerDesc::CPlayerDesc(const CPlayerDesc &pd)
- : factory(pd.factory), filetype(pd.filetype), extlength(pd.extlength)
+ : factory(pd.factory), extlength(pd.extlength)
{
+ memcpy (filetype, pd.filetype, sizeof (filetype));
if(pd.extensions) {
extensions = (char *)malloc(extlength);
memcpy(extensions, pd.extensions, extlength);
@@ -41,9 +42,10 @@ CPlayerDesc::CPlayerDesc(const CPlayerDesc &pd)
extensions = 0;
}
-CPlayerDesc::CPlayerDesc(Factory f, const std::string &type, const char *ext)
- : factory(f), filetype(type), extensions(0)
+CPlayerDesc::CPlayerDesc(Factory f, const char *type, const char *ext)
+ : factory(f), extensions(0)
{
+ strcpy (filetype, type);
const char *i = ext;
// Determine length of passed extensions list
@@ -80,26 +82,25 @@ const char *CPlayerDesc::get_extension(unsigned int n) const
/***** CPlayers *****/
-const CPlayerDesc *CPlayers::lookup_filetype(const std::string &ftype) const
+const CPlayerDesc *CPlayers::lookup_filetype(const char *ftype) const
{
- const_iterator i;
-
- for(i = begin(); i != end(); i++)
- if((*i)->filetype == ftype)
- return *i;
+ for (const CPlayerDesc *i = head; i; i = i->next) {
+ if(!strcmp (i->filetype, ftype))
+ return i;
+ }
return 0;
}
-const CPlayerDesc *CPlayers::lookup_extension(const std::string &extension) const
+const CPlayerDesc *CPlayers::lookup_extension(const char *extension) const
{
- const_iterator i;
- unsigned int j;
-
- for(i = begin(); i != end(); i++)
- for(j = 0; (*i)->get_extension(j); j++)
- if(!stricmp(extension.c_str(), (*i)->get_extension(j)))
- return *i;
+ for (const CPlayerDesc *i = head; i; i = i->next) {
+ for(int j = 0; i->get_extension(j); j++) {
+ if(!strcmp (i->get_extension (j), extension)) {
+ return i;
+ }
+ }
+ }
return 0;
}