* cygpackage.h (cygpackage): Make set_[s|l]desc virtual.
* iniparse.y (add_correct_version): Copy descriptions across.
* package_meta.cc (SDesc): Iterate through versions, return the first with a
description.
* package_version.h (packageversion): Add new virtuals set_[l|s]desc.
+2001-01-06 Robert Collins <rbtcollins@hotmail.com>
+
+ * cygpackage.h (cygpackage): Make set_[s|l]desc virtual.
+ * iniparse.y (add_correct_version): Copy descriptions across.
+ * package_meta.cc (SDesc): Iterate through versions, return the first with a
+ description.
+ * package_version.h (packageversion): Add new virtuals set_[l|s]desc.
+
2001-01-04 Robert Collins <rbtcollins@hotmail.com>
* script.cc (run_script): Change cygpath:// to cygfile://.
{
return type;
};
- void set_sdesc (char const *);
- void set_ldesc (char const *);
+ virtual void set_sdesc (char const *);
+ virtual void set_ldesc (char const *);
virtual char const *SDesc ()
{
return sdesc;
void
add_correct_version()
{
- int merged = 0;
- for (size_t n = 1; !merged && n <= cp->versions.number (); n++)
+ int merged = 0;
+ for (size_t n = 1; !merged && n <= cp->versions.number (); n++)
if (!strcasecmp(cp->versions[n]->Canonical_version(), cpv->Canonical_version()))
{
/* ASSUMPTIONS:
/* Ditto for src */
if (cpv->src.sites.number ())
cp->versions[n]->src.sites.registerbykey (cpv->src.sites[1]->key);
+ /* Copy the descriptions across */
+ if (cpv->SDesc () && !cp->versions[n]->SDesc ())
+ cp->versions[n]->set_sdesc (cpv->SDesc ());
+ if (cpv->LDesc () && !cp->versions[n]->LDesc ())
+ cp->versions[n]->set_ldesc (cpv->LDesc ());
cpv = (cygpackage *)cp->versions[n];
merged = 1;
}
char const *
packagemeta::SDesc () const
{
- return versions[1]->SDesc ();
+ for (size_t n = 1; n <= versions.number(); ++n)
+ if (versions[n]->SDesc ())
+ return versions[n]->SDesc ();
+ return NULL;
};
/* Return an appropriate caption given the current action. */
virtual const char *getfirstfile () = 0;
virtual const char *getnextfile () = 0;
virtual char const *SDesc () = 0;
+ virtual void set_sdesc (char const *) = 0;
virtual char const *LDesc () = 0;
+ virtual void set_ldesc (char const *) = 0;
/* FIXME: review this - these are UI variables, should be consistent across all
* children package types
*/