]> cygwin.com Git - cygwin-apps/setup.git/blobdiff - ChangeLog
2002-07-15 Robert Collins <rbtcollins@hotmail.com>
[cygwin-apps/setup.git] / ChangeLog
index 3edc7988e6c1cc818dd814a774988a3720f7e71a..634f974982b909c0ac9b14a14d4934a696883717 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2002-07-15  Robert Collins  <rbtcollins@hotmail.com>
+
+       * package_version.cc (packageversion::sources): Implement this.
+       * download.cc (do_download_thread): Support multiple files per package.
+
+2002-07-15  Robert Collins  <rbtcollins@hotmail.com>
+
+       * package_version.h (packageversion::sources): Support multiple files in
+       a single package version.
+       * package_version.cc (_packageversion::accessible): Ditto.
+       (packageversion::source): Ditto.
+
+2002-07-15  Robert Collins  <rbtcollins@hotmail.com>
+
+       * iniparse.y: Implement support for multiple source files for a source
+       package.
+       * IniDBBuilder.h (IniDBBuilder::buildSourceFile): Ditto.
+       * IniDBBuilderPackage.h (IniDBBuilder::buildSourceFile): Ditto.
+       * IniDBBuilder.cc (IniDBBuilder::buildSourceFile): Ditto.
+       * IniDBBuilderPackage.cc (IniDBBuilder::buildSourceFile): Implement a 
+       stub as preparation.
+
+2002-07-13  Robert Collins  <rbtcollins@hotmail.com>
+
+       * PickPackageLine.cc (PickPackageLine::click): Set requirements for 
+       packages under all circumstances - slightly higher overheader, simpler
+       code.
+       * download.cc (do_download_thread): Correctly download source 
+       packages.
+       * package_meta.cc (checkForInstalled): Remove.
+       (checkForUpgradeable): Ditto.
+       (checkForSatisfiable): Ditto.
+       (processOneDependency): Ditto.
+       (packagemeta::set_requirements): Move guts to packageversion.
+       * package_version.cc (checkForInstalled): Copied from package_meta.cc.
+       (checkForUpgradeable): Ditto.
+       (checkForSatisfiable): Ditto.
+       (processOneDependency): Ditto.
+       (packageversion::set_requirements): Ditto.
+       * package_version.h (packageversion::set_requirements): Declare.
+
+2002-07-13  Robert Collins  <rbtcollins@hotmail.com>
+
+       * IniDBBuilder.cc (IniDBBuilder::buildBeginBuildDepends): Implement.
+       (IniDBBuilder::buildBeginBinary): Implement.
+       * IniDBBuilder.h (IniDBBuilder::buildBeginBuildDepends): Declare.
+       (IniDBBuilder::buildBeginBinary): Ditto.
+       * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildBeginBuildDepends):
+       Implement.
+       (IniDBBuilderPackage::buildBeginBinary): Ditto.
+       * IniDBBuilderPackage.h (IniDBBuilderPackage::buildBeginBuildDepends):
+       Declare.
+       (IniDBBuilderPackage::buildBeginBinary): Ditto.
+       * inilex.l: Recognise Build-Depends-Indep, [,], >, < and remove
+       T_UNKNOWN.
+       * iniparse.y: Full support for parsing a debian Sources file in-line in
+       setup.ini.
+       * package_version.cc (packageversion::binaries): Implement.
+       * package_version.h (packageversion::binaries): Declare list of what
+       packages are created from a given source package.
+       (_packageversion::binaries): Ditto.
+
+2002-07-10  Robert Collins  <rbtcollins@hotmail.com>
+
+       * iniparse.y: Add basis for support for parsing a debian Sources file.
+       * inilex.l: Ditto.
+
+2002-07-09  Robert Collins  <rbtcollins@hotmail.com>
+
+       Change custom container code for packagedb::packages to STL containers
+       throughout.
+       * IniDBBuilderPackage.cc: Ditto.
+       * PickView.cc: Ditto.
+       * choose.cc: Ditto.
+       * desktop.cc: Ditto.
+       * download.cc: Ditto.
+       * install.cc: Ditto.
+       * package_db.cc: Ditto.
+       * package_db.h: Ditto.
+       * Makefile.am: Remove list.h references.
+       * list.h: Remove.
+
+2002-07-08  Max Bowsher  <maxb@ukf.net>
+
+       * PickView.cc (PickView::PickView): Set font of package list header to
+       the same as used in the rest of the package list.
+               
+2002-07-08  Robert Collins  <rbtcollins@hotmail.com>
+
+       * install.cc (NoReplaceOnReboot): New command line option to prevent
+       replacing in use files.
+       (install_one_source): Check the option and use it.
+       * README: Update TODO lists.
+
+2002-07-08  Robert Collins  <rbtcollins@hotmail.com>
+
+       * PickCategoryLine.cc: Change bucket to use STL container syntax 
+       throughout.
+       (PickCategoryLine::paint): Use new Category type syntax.
+       * PickCategoryLine.h: Use STL vectors rather than custom containers 
+       throughout.
+       * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackageCategory):
+       Use new add_category syntax.
+       * PickView.cc (PickView::insert_pkg): Use new Category type syntax.
+       (PickView::insert_category): Ditto.
+       (PickView::init_headers): Ditto.
+       * category.cc: Trim obsolete code.
+       * category.h: Replace interconnecting class with a typedef to 
+       facilitate leveraging STL maps.
+       * choose.cc (fill_missing_category): Use updated pkg.add_category
+       syntax.
+       (default_trust): Use new Category type syntax.
+       (set_view_mode): Ditto.
+       (create_listview): Ditto.
+       * package_db.cc (categories): Ditto.
+       * package_db.h: Update headers list to include needed headers.
+       (packagedb::categories): Replace custom list with STL map.
+       * package_meta.cc: Use new Category type syntax throughout.
+       (packagemeta::add_category): Implement new syntax.
+       * package_meta.h: Remove commented out source.
+       (packagemeta::add_category): Update syntax to decouple interface from
+       packagedb.
+
+2002-07-06  Christopher Faylor  <cgf@redhat.com>
+
+       * site.cc (do_download_site_info_thread): Correct spelling error.
+
+2002-07-06  Robert Collins  <rbtcollins@hotmail.com>
+
+       * PickCategoryLine.h: Include required header list.h.
+       * PickPackageLine.cc (PickPackageLine::paint): Adjust to use STL
+       containers for listing of packages per category and vice verca.
+       * PickView.cc (PickView::insert_pkg): Ditto.
+       (PickView::insert_category): Ditto.
+       * String++.h (String::caseless): STL helper to allow trivial containers
+       of Strings with case insensitive comparisons.
+       * category.h: Adjust to use STL containers for listing of packages per
+       category and vice verca.
+       * choose.cc (fill_missing_category): Ditto.
+       (default_trust): Ditto.
+       (ChooserPage::OnNext): Ditto.
+       * package_meta.cc (CategoryPackage::~CategoryPackage): Remove.
+       (packagemeta::packagemeta): Adjust for new category list name.
+       (packagemeta::~packagemeta): Adjust to use STL containers for listing
+       of packages per category and vice verca.
+       (packagemeta::set_action): Ditto.
+       * package_meta.h (CategoryPackage): Remove.
+       (packagemeta): Adjust to use STL containers for listing of packages per
+       category and vice verca.
+
+2002-07-05  Robert Collins  <rbtcollins@hotmail.com>
+
+       * io_stream.cc: Use STL containers rather than custom ones.
+       (io_stream::registerProvider): Ditto.
+       (findProvider): Ditto.
+
+2002-07-05  Robert Collins  <rbtcollins@hotmail.com>
+
+       * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackageSource):
+       Use STL collections for download site collections.
+       (IniDBBuilderPackage::add_correct_version): Ditto.
+       (IniDBBuilderPackage::process_src): Ditto.
+       * PickPackageLine.cc (PickPackageLine::click): Use the packageversion
+       accessible() call to abstract package availability.
+       * choose.cc (scanAVersion): Use STL collections for download site 
+       collections.
+       * download.cc (check_for_cached): Ditto.
+       (download_one): Ditto.
+       * package_meta.cc (packagemeta::set_action): Use the packageversion
+       accessible() call to abstract package availability.
+       * package_source.h: Use STL containers rather than custom containers.
+       (site): Create a == operator to allow STL container use.
+       (packagesource::sites): Use STL containers rather than custom
+       containers.
+       * package_version.cc (_packageversion::accessible): Use STL containers
+       for download site containers.
+
+2002-07-05  Robert Collins  <rbtcollins@hotmail.com>
+
+       * LogFile.cc: Use STL containers rather than custom containers.
+       (filedef): Create == and < operators for STL use.
+       (files): Convert to an STL set.
+       (LogFile::setFile): Use STL operations on files.
+       (LogFile::exit): Ditto.
+
+2002-07-05  Robert Collins  <rbtcollins@hotmail.com>
+
+       * ini.cc (do_remote_ini): Use STL collection for site collection.
+       * site.cc: Include site.h first to ensure it's parsable standalone.
+       Use STL algorithms.
+       (site_list): Convert to an STL container.
+       (all_site_list): Ditto.
+       (site_list_type::site_list_type): Implement copy constructor.
+       (site_list_type::operator=): Implement assignment operator.
+       (site_list_type::operator ==): Implement.
+       (site_list_type::operator <): Ditto.
+       (save_dialog): Use STL collection calls for site collection.
+       (save_site_url): Ditto.
+       (get_site_list): Ditto.
+       (get_saved_sites): Ditto.
+       (do_download_site_info_thread): Ditto.
+       (SitePage::OnNext): Ditto.
+       (SitePage::PopulateListBox): Ditto.
+       (SitePage::OnMessageCmd): Ditto.
+       * site.h: Use STL vectors instead of custom code.
+       (site_list_type::site_list_type): Declare.
+       (site_list_type::operator=): Ditto.
+       (site_list_type::operator ==): Ditto.
+       (site_list_type::operator !=): Ditto.
+       (site_list_type::operator <): Ditto.
+       (site_list_type::operator <=): Ditto.
+       (site_list_type::operator >): Ditto.
+       (site_list_type::operator >=): Ditto.
+       (site_list): Convert to an STL container.
+       (all_site_list): Ditto.
+
+2002-07-05  Robert Collins  <rbtcollins@hotmail.com>
+
+       * choose.cc (default_trust): Check package accessibility before
+       triggering an install. (Suggested by Pavel).
+
+2002-07-03  Pavel Tsekov  <ptsekov@gmx.net>
+
+       * compress_gz.cc (compress_gz::construct): Always initialize key members
+       to ensure the destructor does the right thing.
+
+2002-07-03  Pavel Tsekov  <ptsekov@gmx.net>
+
+       * filemanip.cc (parse_filename): Do not try to parse empty
+       strings (filenames).
+       * package_db.cc (packagedb::packagedb): For each line check if sscanf()
+       extracted good package name and filename.
+
+2002-07-03  Robert Collins  <rbtcollins@hotmail.com>
+
+       * package_meta.cc (packagemeta::set_requirements): Automatically select
+       version of dependent packages that satisfies the requirements. 
+       Use processOneDependency to trigger the install of those packages.
+       (checkForInstalled): Check that the package remains installed.
+       (processOneDependency): Helper function for dependent packages.
+       * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackage): Add more
+       debug information.
+       Clear out all current state on new packages.
+       (IniDBBuilderPackage::add_correct_version): Copy the dependency list 
+       across.
+
+2002-07-02  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am (inilint_SOURCES): Add PackageSpecification sources.
+       nb: inilint is still incomplete, as the packageversion code is not
+       ready for database-less linking.
+       * site.cc (get_site_list): When the same site is reentered by the user
+       replace the old one. (Suggested by John Marshall).
+
+2002-07-02  Robert Collins  <rbtcollins@hotmail.com>
+
+       * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackageSource):
+       Clear out package selections when generating implicit source packages.
+       * PackageSpecification.cc (PackageSpecification::satisfies): Implement.
+       (PackageSpecification::_operators::satisfies): Implement.
+       * PackageSpecification.h (PackageSpecification::_operators::satisfies):
+       Worker function for testing versions.
+
+2002-07-01  Robert Collins  <rbtcollins@hotmail.com>
+
+       * IniDBBuilder.cc (IniDBBuilder::buildPackageRequirement): Remove.
+       * IniDBBuilder.h (IniDBBuilder::buildPackageRequirement): Ditto.
+       * IniDBBuilderPackage.cc: Use the STL algorithms.
+       Change cpv to cbpv throughout. Adjust -> to ., and use the new accessor
+       functions for the same variable throughout.
+       (IniDBBuilderPackage::IniDBBuilderPackage): Initialise new members.
+       (IniDBBuilderPackage::buildPackage): Use new cygpackage syntax,
+       and set an empty source package.
+       (IniDBBuilderPackage::buildPackageInstall): Use the new source member
+       to record an install package.
+       (IniDBBuilderPackage::buildPackageSource): Move source package logic
+       out from process_src, as it now occurs at separate times.
+       (IniDBBuilderPackage::buildPackageRequirement): Remove.
+       (IniDBBuilderPackage::buildSourceName): Use renamed package 
+       specifiation accessor for clarity.
+       (IniDBBuilderPackage::buildSourceNameVersion): Ditto.
+       (IniDBBuilderPackage::add_correct_version): Use STL iterators rather
+       than custom code.
+       Remove source package references.
+       (IniDBBuilderPackage::process_src): Remove source package code as it's
+       now handled separately.
+       Set Path information before merging versions, to prevent dangling
+       pointers.
+       * IniDBBuilderPackage.h (IniDBBuilderPackage::buildPackageRequirement):
+       Remove.
+       (IniDBBuilderPackage::cpv): Remove.
+       (IniDBBuilderPackage::cbpv): New generic binary working variable.
+       (IniDBBuilderPackage::cspv): Ditto, but for source packages.
+       (IniDBBuilderPackage::csp): Source package variable for disjoint
+       source packages.
+       * Makefile.am (AM_CFLAGS): Remove -Winline to allow stl set code
+       to compile. If it compiles cleanly in gcc 3.1, then reinstate.
+       * PickPackageLine.cc: Adjust packageversion accessors to the new
+       reference calls. (i.e. -> to .) throughout.
+       (PickPackageLine::paint): Use accessible() for clarity.
+       Use new split out source package logic.
+       (PickPackageLine::click): Ditto.
+       * PickView.cc (PickView::init_headers): Adjust packageversion accessors
+       to the new reference calls. (i.e. -> to .) throughout.
+       Use new split out source package logic.
+       * choose.cc: Don't depend on a specific package type.
+       Adjust packageversion accessors to the new reference calls. (i.e. -> to 
+       .) throughout.
+       (set_existence): Use accessible () for clarity.
+       (default_trust): Simplify a little.
+       (scanAVersion): Factored out code from scan_downloaded_files for 
+       clarity.
+       (scan_downloaded_files): Factor out inner loop for clarity.
+       (ChooserPage::OnNext): Don't dump the dependency list,
+       it's parsing is robust now!. 
+       * cygpackage.cc (createInstance): Use a factory method to create new
+       objects.
+       (cygpackage::cygpackage): Make this private for use by the factory.
+       (cygpackage::setCanonicalVersion): Renamed from set_canonical_version.
+       Remove key usage as it's obsolete.
+       * cygpackage.h (cygpackage): Inherit from _packageversion, not
+       packageversion.
+       (cygpackage::createInstance): New factory.
+       (cygpackage::cygpackage): Make private.
+       * desktop.cc (make_passwd_group): Use new packageversion reference.
+       * download.cc (do_download_thread): Use changeRequested() for clarity.
+       Use new packageversion reference calls.
+       * iniparse.y (REQUIRES): Reuse the packageList code and dump the one-off
+       requires code.
+       * install.cc: Adjust -> to ., and use the new accessor functions for
+       packageversion throughout.
+       * package_db.cc: Adjust -> to ., and use the new accessor functions for
+       packageversion throughout.
+       (packagedb::packagedb): Use the new cygpackage factory.
+       (packagedb::flush): Leverage String to remove buffer overflow chance in
+       sprintf.
+       (packagedb::findBinary): Find a binary meta package that has a version
+       matching a given specification.
+       (packagedb::findSource): Ditto, but for source.
+       * package_db.h (packagedb::findBinary): Declare.
+       (packagedb::findSource): Ditto.
+       * package_meta.cc: Adjust packageversion accessors to the new
+       reference calls. (i.e. -> to .) throughout.
+       Include the package_meta header first to ensure it parses standalone.
+       Use the STL algorithms.
+       (packagemeta::packagemeta): Create a copy constructor to allowing
+       cloning binary package metadata to source package metadata.
+       (packagemeta::~packagemeta): Use the STL coleltion code rather than 
+       custom  collection code.
+       (packagemeta::add_version): Ditto.
+       (packagemeta::set_installed): Ditto.
+       (packagemeta::SDesc): Ditto.
+       (hasSDesc): Helper function for find_if.
+       (checkForInstalled): Ditto.
+       (checkForUpgradeable): Ditto.
+       (checkForSatisfiable): Ditto.
+       (packagemeta::action_caption): Update for split out source packages.
+       (packagemeta::set_action): Ditto.
+       (packagemeta::set_requirements): Support multi-valued dependency
+       lists - a|b & c|d - with versioned package specifications.
+       (packagemeta::accessible): Helper member to improve abstraction.
+       (packagemeta::sourceAccessible): Ditto.
+       * package_meta.h: Adjust packageversion accessors to the new
+       reference calls. (i.e. "->" to "." and"*" to "" ) throughout.
+               (packagemeta::packagemeta): Declare copy constructor.
+       Remove self initialising members.
+       (packagemeta::set_action): Update parameters for new packageversion.
+       (packagemeta::trustp): Ditto.
+       (packagemeta::versions): Becomes an STL set.
+       * package_source.h (packagesource::Cached): Const correctness change.
+       * package_version.cc: Rewrite the packageversion interface to remove
+       the cygpackage nonvirtual members, and provide a copy by value,
+       pointer semantics reference counting wrapper class to ease use and
+       comparison of packageversions.
+       Change existing packageversion class to _packageversion throughout.
+       (_defaultversion): A trivial concrete class to prevent specialcasing
+       the default constructor for packageversion;
+       (packageversion::packageversion): Implement.
+       (packageversion::~packageversion): Ditto.
+       (packageversion::operator=): Ditto.
+       (packageversion::operator !): Ditto.
+       (packageversion::operator bool): Ditto.
+       (packageversion::operator ==): Ditto.
+       (packageversion::operator !=): Ditto.
+       (packageversion::operator <): Ditto.
+       (packageversion::Name): Ditto.
+       (packageversion::Canonical_version): Ditto.
+       (packageversion::setCanonicalVersion): Ditto.
+       (packageversion::getfirstfile): Ditto.
+       (packageversion::getnextfile): Ditto.
+       (packageversion::SDesc): Ditto.
+       (packageversion::set_sdesc): Ditto.
+       (packageversion::LDesc): Ditto.
+       (packageversion::set_ldesc): Ditto.
+       (packageversion::sourcePackage): Ditto.
+       (packageversion::sourcePackageSpecification): Ditto.
+       (packageversion::setSourcePackageSpecification): Ditto.
+       (packageversion::depends): Ditto.
+       (packageversion::predepends): Ditto.
+       (packageversion::recommends): Ditto.
+       (packageversion::suggests): Ditto.
+       (packageversion::replaces): Ditto.
+       (packageversion::conflicts): Ditto.
+       (packageversion::provides): Ditto.
+       (packageversion::picked): Ditto.
+       (packageversion::pick): Ditto.
+       (packageversion::changeRequested): Ditto.
+       (packageversion::uninstall): Ditto.
+       (packageversion::source): Ditto.
+       (packageversion::accessible): Ditto.
+       (_packageversion::sourcePackage): Ditto.
+       (_packageversion::accessible): Ditto.
+       (_packageversion::changeRequested): Ditto.
+       * package_version.h: Rewrite the packageversion interface to remove
+       the cygpackage nonvirtual members, and provide a copy by value,
+       pointer semantics reference counting wrapper class to ease use and
+       comparison of packageversions.
+       Change existing packageversion class to _packageversion throughout.
+       (Dependency): Remove.
+       (packageversion): New wrapper class.
+       (_packageversion): Renamed from packageversion.
+       (_packageversion::setCanonicalVersion): New method.
+       (_packageversion::sourcePackage): Ditto.
+       (_packageversion::sourcePackageSpecification): Ditto.
+       (_packageversion::setSourcePackageSpecification): Ditto.
+       (_packageversion::changeRequested): Ditto.
+       (_packageversion::bin): Rename to source.
+       (_packageversion::src): Remove.
+       (_packageversion::accessible): New method.
+       (_packageversion::references): Allow reference counting.
+       (_packageversion::sourceVersion): Cached the best-match source 
+       package version.
+
+2002-06-27  Robert Collins  <rbtcollins@hotmail.com>
+
+       * compress_bz.h (compress_bz::position): Track how much has been read.
+       * compress_bz.cc (compress_bz::compress_bz): And initialise it.
+       (compress_bz::read): Track amount read by the client.
+       (compress_bz::tell): And report it when asked.
+
+2002-06-27  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am (snapshot): Automate snapshot creation some more.
+
+2002-06-27  Robert Collins  <rbtcollins@hotmail.com>
+
+       * msg.cc (msg): Use vsnprintf to avoid buffer overflows.
+       (mbox): Ditto.
+       * ini.cc (fprintf): Ditto.
+       * log.cc (log): Ditto.
+       * package_db.cc (packagedb::sourcePackages): Split out source packages
+       from binary packages.
+       * package_db.h: Ditto.
+
+2002-06-27  Robert Collins  <rbtcollins@hotmail.com>
+
+       * PackageSpecification.h: New file. Abstracts the ability to refer
+       to another package, by name, or name and version.
+       * PackageSpecification.cc: Ditto.
+       * IniDBBuilder.cc (IniDBBuilder::buildPackageInstall): Simplify.
+       (IniDBBuilder::buildPackageSource): Ditto.
+       (IniDBBuilder::buildBeginDepends): New method for versioned
+       dependencies.
+       (IniDBBuilder::buildBeginPreDepends): Likewise, for dependencies to be
+       satisfied before pre-install.
+       (IniDBBuilder::buildPriority): New method, for getting the package
+       Priority.
+       (IniDBBuilder::buildInstalledSize): How much disk space does it need?
+       (IniDBBuilder::buildMaintainer): Who maintains the package?
+       (IniDBBuilder::buildArchitecture): What platform is it for?
+       (IniDBBuilder::buildInstallSize): How big is the binary download?
+       (IniDBBuilder::buildInstallMD5): Whats the MD5 on the binary?
+       (IniDBBuilder::buildSourceMD5): Whats the MD5 on the source package?
+       (IniDBBuilder::buildBeginRecommends): What other packages are
+       recommended with this one?
+       (IniDBBuilder::buildBeginSuggests): And suggested?
+       (IniDBBuilder::buildBeginReplaces): What packages does this replace?
+       (IniDBBuilder::buildBeginConflicts): And collide with?
+       (IniDBBuilder::buildBeginProvides): What virtual packages (or obsolete
+       package names) does this provide?
+       (IniDBBuilder::buildDescription): Grab a multi line description one
+       line at a time.
+       (IniDBBuilder::buildSourceName): What source package should be used to
+       install the source for this binary package?
+       (IniDBBuilder::buildSourceNameVersion): Is a specific version needed?
+       (IniDBBuilder::buildPackageListAndNode): Add another AND clause to a 
+       list of package specifications.
+       (IniDBBuilder::buildPackageListOrNode): Add another OR clause.
+       (IniDBBuilder::buildPackageListOperator): Add a versioning operator
+       to the current specification.
+       (IniDBBuilder::buildPackageListOperatorVersion): What version does the
+       operator act on?
+       * IniDBBuilder.h: Declare all the IniDBBuilder.cc changes.
+       * IniDBBuilderPackage.cc: As for IniDBBuilder.cc.
+       (IniDBBuilderPackage::IniDBBuilderPackage): Iniitialize new members.
+       (IniDBBuilderPackage::process_src): Streamline and split out 
+       functionality.
+       (IniDBBuilderPackage::setSourceSize): From process_src.
+       * IniDBBuilderPackage.h: Declare the IniDBBuilderPackage.cc changes.
+       (IniDBBuilderPackage::currentSpec): Track the in-progress specifiation.
+       (IniDBBuilderPackage::currentOrList): Track the current Or list.
+       (IniDBBuilderPackage::currentAndList): Track the current And list.
+       * IniParseFeedback.cc (IniParseFeedback::progress): Provide completion
+               progress on parsing.
+       (IniParseFeedback::iniName): Tell what ini filename we are currently
+       processing.
+       * IniParseFeedback.h: Declare IniParseFeedback.cc changes.
+       * IniParseFindVisitor.cc (IniParseFindVisitor::IniParseFindVisitor): 
+       Make the feedback object non-const to allow mutating methods which are
+       needed when the object has state.
+       (IniParseFindVisitor::visitFile): Tell the caller the name of each
+       .ini found.
+       Initialise the parser with the feedback object to allow it to tell of
+       progress.
+       * IniParseFindVisitor.h: Declare IniParseFindVisitor.cc changes.
+       * Makefile.am (inilinst_SOURCES): Add more requisite classes.
+       (setup_SOURCES): Add the new PackageSpecification sources.
+       * ScanFindVisitor.cc (ScanFindVisitor::visitFile): Use the new
+       builder syntax to setup binary package details.
+       * choose.cc: Use the LogSingleton calls throughout.
+       * configure.in: Create the INILINT substitution correctly for recent
+       autotool configurations.
+       * cygpackage.cc (cygpackage::getfirstfile): Return an empty String
+       rather than a string built from an int. Thanks to Pavel Tsekov for
+       identifying the bug.
+       (cygpackage::getnextfile): Ditto.
+       * download.cc: Use LogSIngletion calls throughout.
+               (validateCachedPackage): A refactoring of the 
+       check_for_cached code to eliminate duplciation.
+       (check_for_cached): Use validateCachedPackage to check packages.
+       * ini.cc (GuiParseFeedback): Provide gui feedback on ini name and 
+       parsing progress.
+       (do_remote_ini): Ditto.
+       * ini.h (ini_init): Pass a IniParseFeedback to the parser, to allow
+       progress reporting.
+       * inilex.l: Identify new symbols - operators, and multi line plain text.
+       Releases files.
+       * inilintmain.cc (show_help): Provide basic infomation on inilint.
+       * iniparse.y: Adjust for the new builder syntax, and process debian
+       Release files.
+       * io_stream_file.cc: Always include mkdir.h.
+       * list.h: Factor index location into a private routine.
+       (list::findindex): Implement this.
+       * mkdir.cc (mkdir_p): Make the use of WIN32 code conditional on mingw 
+       builds. NB: This breaks cygwin build functionality still.
+       * package_meta.cc: Use the LogSingleton calls throughout.
+       (packagemeta::set_requirements): Adjust for object changes in
+       dependencies.
+       * package_meta.h (packagemeta::packagemeta): Initialise new members.
+       (packagemeta::architecture): What platform does this package run on? 
+       This may need to move in the future to a per packagefile object.
+               (packagemeta::priority): What priority does this package have?
+       * package_source.h (packagesource::packagesource): Initialise new
+       members.
+       (packagesource::installedSize): How much space does the package need?
+       (packagesource::setInstalledSize): Tell the amount.
+       (packagesource::_installedSize): And store it.
+       * package_version.cc (packageversion::sourcePackage): return the 
+       source package.
+       (packageversion::setSourcePackage): And set it.
+       * package_version.h: Declare the package_version.cc changes.
+       (packageversion::depends): New package specification AND list.
+       (packageversion::predepends): Ditto.
+       (packageversion::recommends): Ditto.
+       (packageversion::suggests): Ditto.
+       (packageversion::replaces): Ditto.
+       (packageversion::conflicts): Ditto.
+       (packageversion::provides): Ditto.
+       (packageversion::sourcePackage): What source package is needed?
+       * threebar.cc (ThreeBarProgressPage::SetText4): Set the label beside
+       the bottom bar.
+       * threebar.h: Declare the threebar.cc change.
+
+2002-06-27  John Marshall  <johnm@falch.net>
+
+       * res.rc (SETUPINI_MISSING): Make trailing spaces visible.
+       * site.cc (SitePage::OnMessageCmd): Ditto
+
+2002-06-15  Robert Collins  <rbtcollins@hotmail.com>
+
+       * nio-ie5.cc (NetIO_IE5::NetIO_IE): Allow cached data.
+
+2002-06-15  Robert Collins  <rbtcollins@hotmail.com>
+
+       * package_meta.cc (packagemeta::set_action): When installing packages
+       with no binaries, choose the source package.
+
+2002-06-10  Robert Collins  <rbtcollins@hotmail.com>
+
+       * IniParseFindVisitor (IniParseFindVisitor::visitFile): Apply Max
+       Bowshers fix for the crash with a root level setup.ini. 
+       * README: Update todos.
+
+2002-05-26 Ralf Habacker  <ralf.habacker@freenet.de>
+
+       * archive_tar.cc (archive_tar::next_file_name()): fixed broken
+       GNU long name extension support.
+    
+2002-05-27  Robert Collins  <rbtcollins@hotmail.com>
+
+       * IniParseFindVisitor.cc (IniParseFindVisitor::visitFile): Don't 
+       unescape 0 length strings.
+
+2002-05-20  Robert Collins  <rbtcollins@hotmail.com>
+
+       * package_meta.cc (packagemeta::set_action): Don't allow reinstall
+       when local with no cached file, and install the default source if the
+       default version has no binary.
+
+2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
+
+       * IniDBBuilderPackage.cc (IniDBBuilderPackage::IniDBBuilderPackage): New
+               method.
+       (IniDBBuilderPackage::buildVersion): Provide a warning when a newer 
+       setup version created the ini file.
+       * IniDBBuilderPackage.h (IniDBBuilderPackage::IniDBBuilderPackage): New
+       method.
+       * IniParseFindVisitor.cc (IniParseFindVisitor::visitFile): Use the new
+       feedback strategy.
+       * IniParseFindVisitor.h (IniParseFindVisitor::IniParseFindVisitor):
+       Require a feedback strategy.
+       * Makefile.am (setup_SOURCES): Add IniParseFeedback sources.
+       * Makefile.in: Regenerate.
+
+2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
+
+       * io_stream_file.cc (io_stream_file::remove): Use the SetFileAttributes
+       trick to delete read only files.
+       * io_stream_cygfile.cc (io_stream_cygfile::remove): Use file:// to 
+       remove files.
+       * Makefile.am (release): Tweak to be more helpful.
+       * Makefile.in: Regenerate.
+
+2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am (release): Tweak to be more helpful.
+       * Makefile.in: Regenerate.
+               
+2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am (release): Tweak to be more helpful.
+       * Makefile.in: Regenerate.
+
+2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
+
+       * choose.cc (scan_downloaded_files): When a non-installed version 
+       has neither bin nor src cached files for local installs,
+       remove the version from availability.
+
+2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
+
+       * ini.cc (do_remote_ini): Save uncompressed ini's correctly.
+
+2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
+
+       * rsync: New support library, contains librsync. This is not (yet)
+       rsync interoperable.
+       * configure.in: --with-rsync to enable rsync support. (Not complete).
+       * Makefile.am: Enable building with rsync.
+       * Makefile.in: Regenerate.
+       * configure: Ditto.
+       * IniDBBuilder.cc (IniDBBuilder::buildPackageInstall): Pass the md5 as
+       an array.
+       (IniDBBuilder::buildPackageSource): Ditto.
+       * IniDBBuilder.h: Ditto.
+       * IniDBBuilderPackage.cc: Ditto.
+       * IniDBBuilderPackage.h: Ditto.
+       * FindVisitor.cc: New file.
+       * FindVisitor.h: New file, interface for visiting a file system
+       aggregate.
+       * IniParseFindVisitor.cc: New file.
+       * IniParseFindVisitor.h: New file, concrete FindVisitor that parses 
+       found setup.ini's.
+       * README: Update TODO's.
+       * String++.cc (String::String): New constructor for <string> inter-
+       operability.
+       (String::substr): New method.
+       * String++.h: Ditto.
+       * choose.cc (scan2): Remove.
+       (scan_downloaded_files): Simplify.
+       * dialog.h: Include parsing pre-requirements.
+       * download.cc (check_for_cached): Fullname was used incorrectly - fix.
+       * filemanip.cc (parse_filename): -src packages where incorrectly parsed.
+       * find.cc: Rewrite. Now uses a Visitor pattern and is re-entrant.
+       * find.h: Ditto.
+       * fromcwd.cc: Remove unneeded includes.
+       (is_test_version): Remove.
+       (found_file): Remove.
+       (SetupFindVisitor): Trivial visitor to detect setup.ini's.
+       (found_ini): Remove.
+       (do_fromcwd): Remove commented code that has be replaced elsewhere.
+       * ini.cc (local_ini): Remove.
+       (findBuilder): Remove.
+       (find_routine): Remove.
+       (do_local_ini): Use new IniParseFindVisitor.
+       * iniparse.y: Typecase MD5 arrays, as we know they are allocated as
+       unsigned char.
+       * postinstall.cc: Remove non-core includes.
+       (run_script_in_postinstall): Remove.
+       (RunFindVisitor): Trivial Visitor, runs each found script.
+       (do_postinstall): Use new find syntax.
+
+2002-05-14  Christopher Faylor  <cgf@redhat.com>
+
+       * ini.cc (find_routine): Don't clear buffer it it's NULL.
+
+2002-05-14  Christopher Faylor  <cgf@redhat.com>
+
+       * filemanip.h (trail): Declare.
+       * filemanip.cc (trail): New function.
+       (find_tar_ext): Use trail() instead of strstr().
+       * fromcwd.cc (check_ini): Ditto.
+       * ini.cc (find_routine): Ditto.  Don't tack local_dir to path since it
+       should now be fully qualified.  Set ini_filename.  Reset error_buf and
+       error_count for any subsequent ini file parsing.
+       (ini_filename): New static variable for parse error reporting.
+       (yyerror): Use full path of setup.ini in error message.  Subtract one
+       from line number if at bol.
+       * find.cc (found_part): Eliminate.
+       (find_sub): Call for_each with full path found rather than just file
+       component.
+       (find): Don't calculate found_part.
+       * inilex.l (ini_init): Flush input buffer and reset line number.
+       (yybol): New function.  Exports YY_AT_BOL.
+       * iniparse.y: Increase stack depth to allow more tokens to be processed.
+       (yyparse): Remove newline from error condition to allow subsequent
+       per-line error processing to proceed normally.
+
+2002-05-14  Christopher Faylor  <cgf@redhat.com>
+
+       * find.cc (find_sub): Be more defensive in preserving trailing parts of
+       components when doing recursive directory searches or calling user
+       supplied for_each().
+       * ini.cc (find_routine): Don't assume that any path name with
+       "setup.ini" in it is actually a setup.ini file.  Only honor trailing
+       components.  Copy path argument to temporary storage when unescaping
+       to prevent nuking of argument.
+
+2002-05-12  Robert Collins  <rbtcollins@hotmail.com>
+
+       * CONTRIBUTORS: New file.
+
+2002-04-02  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
+
+       * choose.cc: Run indent.
+       (nextbutton): Remove static variable.
+       (default_trust): Remove use of nextbutton.
+       (set_view_mode): Ditto.
+       (create_listview): Add IDC_CHOOSE_PREV and IDC_CHOOSE_NEXT to ta[] so
+       rbset() sets the prev/next/curr radio buttons properly.
+       (dialog_cmd): Delete function.
+       (dialog_proc): Delete function.  Move WM_INITDIALOG functionality to
+       ChooserPage::OnInit.
+       (do_choose): Delete function.  Move pre-DialogBox() code to
+       ChooserPage::OnInit(), post-DialogBox() code to ChooserPage::OnNext.
+       (WM_APP_START_CHOOSE): Remove define.
+       (WM_APP_CHOOSE_IS_FINISHED): Remove define.
+       (do_choose_thread): Delete function.
+       (ChooserPage::OnActivate): Delete method.
+       (ChooserPage::OnMessageApp): Delete method.
+       (ChooserPage::OnInit): New method.
+       (ChooserPage::OnNext): New method.
+       (ChooserPage::OnBack): New method.
+       (ChooserPage::OnMessageCmd): New method.
+       * choose.h: Run indent.
+       (ChooserPage::OnMessageApp): Delete declaration.
+       (ChooserPage::OnActivate): Ditto.
+       (ChooserPage::OnMessageCmd): New declaration.
+       (ChooserPage::OnInit): Ditto.
+       (ChooserPage::OnNext): Ditto.
+       (ChooserPage::OnBack): Ditto.
+       * desktop.cc (DesktopSetupPage::OnBack): Replace use of IDD_CHOOSER
+       with IDD_CHOOSE.
+       * fromcwd.cc (do_fromcwd): Replace use of IDD_CHOOSER with IDD_CHOOSE.
+       * ini.cc (do_ini_thread): Replace use of IDD_CHOOSER with IDD_CHOOSE.
+       * res.rc (IDD_CHOOSE): Remove dialog template.
+       (IDD_CHOOSER): Alter dialog template to fit wizard size and format.
+
+2002-05-12  Robert Collins  <rbtcollins@hotmail.com>
+
+       * LogFile.cc (endLog): Work around an apparent libg++-3 bug causing
+       corrupt log file entries.
+       * geturl.cc: Convert to the new LogSingleton logging.
+
+2002-05-12  Robert Collins  <rbtcollins@hotmail.com>
+
+       * ini.cc (do_remote_ini): Use setup.bz2 if it exists in preference to
+       setup.ini.
+
+2002-05-12  Robert Collins  <rbtcollins@hotmail.com>
+
+       * geturl.h: Declare getUrlToStream.
+       * geturl.cc (getUrlToStream):  New function.
+       (get_url_to_membuf): Refactor to use getUrlToStream.
+
+2002-05-11  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am: Add a release target to automate some of the routine
+       work.
+       * Makefile.in: Regenerate.
+
+2002-05-11  Robert Collins  <rbtcollins@hotmail.com>
+
+       * choose.cc (scan_downloaded_files): On local installs remove all
+       mirror sites if no cached copy of a package is found.
+
+2002-05-10  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.in: Regenerate.
+       * iniparse.y: Use left recursion, not right in the lines rule to
+       avoid stack overflows.
+       * README: Update TODO's.
+       * io_stream_file.cc: Native builds need to include sys/stat.h
+
+2002-05-06  John Marshall  <jmarshall@acm.org>
+
+       * site.cc (SitePage::OnMessageCmd): recalculate navigation
+       button activation when "Add" is pressed.
+       (SitePage::CheckControlsAndDisableAccordingly): tweak comment.
+
+2002-05-07 Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am (inlint_SOURCES): Add conditional objects to inilint
+       depending on platform.
+       Add file:// support.
+       * configure.in: Set conditional MINGWTARGET if compiling against mingw
+       libraries.
+       * Makefile.in: Regenerate.
+       * configure: Ditto.
+       * io_stream_file.cc: Only use win32 calls when building for mingw.
+
+2002-05-05 Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am (noinst_PROGRAMS): Make inilint configurable.
+       * configure.in: Ditto.
+       Fix incorrect header checking syntax.
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+       * Makefile.in: Regenerate.
+       * io_stream.cc: Remove platform specific and provider specific code.
+       (io_stream::registerProvider): New method, registers a Url provider with
+       the io_stream code.
+       Make all methods consistently throw invalid_argument exceptions when
+       a provider that is requested is not present.
+       (findProvider): New private function, finds a provider.
+       * io_stream.h: Declare io_stream::registerProvider.
+       * io_stream_cygfile.cc: Create a Provider class to register with
+       io_stream.cc.
+       * io_stream_file.cc: Ditto.
+       * archive.cc: Remove unneeded includes.
+       * archive_tar.cc: Remove unneeded includes.
+       * archive_tar.h: Add required include.
+       * archive_tar_file.cc: Remove unneded includes.
+       * choose.cc: Remove unneeded includes:
+
+2002-05-04 Robert Collins  <rbtcollins@hotmail.com>
+
+       * io_stream.cc: Use the new log interface thruout.
+
+2002-05-04 Robert Collins  <rbtcollins@hotmail.com>
+
+       * log.cc (log): Reimplement via LogSingleton.
+       (log_save): Remove.
+       (exit_setup): Remove.
+       * log.h (log_save): Remove.
+       (exit_setup): Remove.
+       * LogSingleton.cc: New file.
+       * LogSingleton.h: New file.
+       * LogFile.cc: New file.
+       * LogFile.h: New file.
+       * Makefile.am (inilint_SOURCES): Add the new log interface.
+       (setup_SOURCES): Add the new log interface and the concrete File
+       implementation.
+       * Makefile.in: Regenerate.
+       * archive.cc: Use the new log interface thruout.
+       * archive_tar.cc: Ditto.
+       * main.cc: Ditto.
+       * dialog.cc (fatal): Use the new log interface.
+       * ini.cc (do_ini_thread): Use the log interface to exit.
+       * isntall.cc (do_install_thread): Ditto.
+       * netio.cc (auth_cmd): Ditto.
+       * msg.cc (fatal): Ditto.
+       * localdir.cc (save_local_dir): Save to different files depending on
+       the mode, and if a root dir exists.
+
+2002-05-04 Robert Collins  <rbtcollins@hotmail.com>
+
+       * IniDBBuilder.cc: New file.
+       * IniDBBuilder.h: New file.
+       * IniDBBuilderPackage.cc: New file.
+       * IniDBBuilderPackage.h: New file.
+       * PackageTrust.h: New file.
+       * IniState.h: Remove, wasn't thought out well enough.
+       * Makefile.am (inilint_SOURCES): Add more requirements.
+       (setup_SOURCES): Add new Builder base and concrete classes.
+       * Makefile.in: Regenerate.
+       * String++.cc (String::String): Implement int contructor.
+       * String++.h (String): Declare int constructor.
+       * archive_tar.cc (archive_tar::next_file_name): Return String() when
+       no filename exists.
+       * archive_tar.h (archive_tar_file): Remove get_next_filename method,
+       it's not needed.
+       * ini.cc: Replace IniState wuth IniDBBuilderPacakge.
+       (find_routine): Use new IniDBBuilder to configure the parser.
+       (do_local_ini): Ditto.
+       (do_remote_ini): Ditto.
+       * ini.h: Use IniDBBuilder to initialise parsing.
+       * inilex.l (MD5): Parse the MD5 string correctly, we had the nibbles 
+       swapped.
+       (ini_init): Use an IniDBBuilder rather than static variables.
+       * iniparse.y: Hand off all the object creation to a builder, rather
+       than hardcoding the behaviour. This allows run-time configured 
+       behaviour.
+       * io_stream_cygfile.h (io_stream_cygfile): Remove get_next_filename 
+       method, it's not needed.
+       * io_stream_file.h (io_stream_file): Ditto.
+       * mount.cc (cygpath): Return String() for missing mounts.
+       * package_meta.cc (packagemeta::SDesc): Return String() for blank
+       descriptions.
+       * package_meta.h (trusts): Remove - replaced by PackageTrust.h.
+       (packagemeta::packagemeta): Fix incorrect syntax in String constructor
+       usage.
+       * cygpackage.cc (cygpackage::cygpackage): Fix incorrect syntax in 
+       String constructor usage.
+       * site.h (site_list_type): Ditto.
+
+2002-05-03 Robert Collins  <rbtcollins@hotmail.com>
+
+       * String++.h: Declare a << operator that accepts String objects.
+       * String++.cc: We need iostream for..
+       (operator <<): this. Provide a << operator that accepts String objects.
+       * ini.cc (yyerror): Remove the "C" classifier - it's not needed.
+       Change from vargs to a String parameter.
+       * inilintmail.cc: Remove the gui related headers.
+       (yyerror): Implement this for parsing.
+       * iniparse.y: Use the new yyerror syntax.
+
+2002-05-03 Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am: Add IniState.h.
+       * Makefile.in: Regenerate.
+       * IniState.h: New file.
+       * choose.cc: Don't include ini.h - it's not needed.
+       * configure: Regenerate.
+       * desktop.cc: Don't include ini.h - it's not needed.
+       * download.cc: Ditto.
+       * fromcwd.cc: Ditto.
+       * ini.cc: Use IniState.h to track each parsing calling.
+       (find_routine): Ditto.
+       (do_remote_ini): Ditto.
+       (do_ini_thread): Ditto.
+       * ini.h (ini_init): Adjust parameters to include state object.
+       * inilex.l: Declare parser state variable.
+       (ini_init): Adjust parameters to include state object.
+       * iniparse.y: Remove obsolete setup_timestamp and setup_version 
+       declarations.
+       (setup_header): Use new state variable to track time and version.
+       (add_correct_version): Ditto.
+       * install.cc: Don't include ini.h - it's not needed.
+
+2002-05-03 Robert Collins  <rbtcollins@hotmail.com>
+
+       * nio-files.cc (NetIO): Use io_stream syntax for get_file_size.
+       * io_stream_file.cc: Don't include filemanip.h.
+       (io_stream_file::get_size): Implement here to remove filemanip
+       dependency.
+       * io_stream_cygfile.cc: Don't include filemanip.h.
+       (io_stream_cygfile::get_size): Implement here to remove filemanip
+       dependency.
+       Implement a stat based version for when win32 is not available.
+       * filemanip.h (get_file_size): Return size_t - it's more appropriate.
+       * filemanip.cc: Don't include win32.h - be platform independent.
+       Include strings.h and io_stream.h as part of that.
+       (get_file_size): Leverage io_streams and remove win32 implementation.
+       * download.cc (check_for_cached): Use io_stream syntax for
+       get_file_size.
+       (download_one): Ditto.
+
+2002-05-02 Robert Collins  <rbtcollins@hotmail.com>
+
+       * configure.in: Correct a typo in last change.
+       * configure: Regenerate.
+       * Makefile.in: Regenerate.
+
+2002-05-02 Robert Collins  <rbtcollins@hotmail.com>
+
+       * configure.in: Check for string.h and string.
+       * configure: Regenerate.
+       * Makefile.in: Regenerate.
+
+2002-05-01  Robert Collins  <rbtcollins@hotmail.com>
+
+       * res.rc (IDD_SPLASH): Remove white box.
+
+2002-05-01  Robert Collins  <rbtcollins@hotmail.com>
+
+       Oops! forgot to list these in the last checkin.
+       * inilintmain.cc: New file.
+       * md5.h: New file - imported md5 source, BSD style licence.
+       * md5.cc: New file - imported md5 source, BSD style licence.
+       * Exception.cc: New file.
+       * Exception.h: New file.
+       * MD5++.cc: New file.
+       * MD5++.h: New file.
+
+2002-05-01  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am (AM_CFLAGS): Remove -mwindows, it's a linker flag. 
+       Remove -fno-rtti, we need it for exceptions.
+       (AM_CXXFLAGS): Ditto.
+       (WARNONLY_CFLAGS): Ditto.
+       (EXTRA_PROGRAMS): Add with initial linter sources - not functional yet.
+       (setup_LDFLAGS): Add and set to -mwindows.
+       (setup_SOURCES): Add new sources.
+       * Makefile.in: Regenerate.
+       * README: Update TODO.
+       * choose.cc (scan_downloaded_files): Use ini information if it's
+       available.
+       * configure: Regenerate.
+       * download.cc (check_for_cached): Make reusable from elsewhere.
+       Throw exceptions on errors (as opposed to failures).
+       Check MD5 sum when it's known.
+       (download_one): Never force a download.
+       Handle corrupt package exceptions.
+       * ini.cc (find_routine): Reverse escape the URL to correctly identify
+       the site URL.
+       * inilex.l (MD5): Provide a parsing rule (note: lowercase is required).
+       * iniparse.y: Allow calculation of MD5 sums, and allow src only 
+       packages.
+       (process_src): New helper function.
+       * isntall.cc (install_one_source): Check MD5 sums when possible.
+       Throw exceptions on errors.
+       (do_install_thread): Handle exceptions for installation calls.
+       * package_source.h: Store MD5 information.
+       * propsheet.cc (PropSheet::Create): Add a useful comment.
+       * res.rc (IDS_INSTALL_ERROR): Define.
+       (IDS_CORRUPT_PACKAGE): Define.
+       * resource.h (IDS_INSTALL_ERROR): Define.
+       (IDS_CORRUPT_PACKAGE): Define.
+       * rfc1738.cc (rfc1738_unescape_part): Implement.
+       * rfc1738.h (rfc1738_unescape_part): Declare.
+
+2002-04-29  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am: Remove dependecy rules that automake emits.
+       Correct badly copied dependency info for manually compiled files.
+               (setup_SOURCES): Add all used headers.
+       (EXTRA_DIST): Include non compilate but required sources.
+       (setup_LDADD): Remove mingw32, it is autodetected.
+       * Makefile.in: Regenerate.
+       * String++.h: sys/types is a system header.
+       * choose.cc (do_choose_thread): Make into a Win32 thread routine.
+       Use ExitThread.
+       (ChooserPage::OnMessageApp): Use Win32 threads. (_beginthread is not
+       portable).
+       * configure: Regenerate.
+       * configure.in: Check for mingw32/cygwin specific headers and libraries.
+       * cygpackage.h: Include the win32.h header to get correct macro 
+       definitions in all situations.
+       * download.cc (do_download_reflector): Make into a Win32 thread routine.
+       Use ExitThread.
+       (do_download): Use Win32 threads.
+       * ini.cc: Ditto.
+       * install.cc: Ditto.
+       * (WinMain): Adjust to build valid command line using application 
+       under both mingw32 and cygwin.
+       * mount.cc (set)cygdrive_flags): Create new system flags if the 
+       user requests system and the value does not exist.
+       * nio-http.cc: Define a _strnicmp for cygwin.
+       * package_db.cc: Include <errno.h> if it exists.
+       * site.cc (do_download_site_info_thread): Make into a Win32 thread 
+       routine.
+       Use ExitThread.
+       (do_download_site-Info): Use Win32 threads.
+       * state.cc: Explicity declare variables to avoid header conflicts 
+       caused by '#define extern" on cygwin.
+       * win32.h: Include <alloca.h> if it exists.
+       (_MAX_PATH): Define as MAX_PATH when not defined by windows.h.
+       (_access): Define as access if not defined by windows.h.
+
+2002-04-27  Robert Collins  <rbtcollins@hotmail.com>
+
+       * compress_gz.cc (compress_gz::error): EOF is not an error condition.
+
+2002-04-27  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am: Add libgetopt++ to the subdirs list.
+       Search the libgetopt++ header directory.
+       Link against libgetopt++.la.
+       (setup_SOURCES): Remove GetOption.cc and getopt.c and Option.cc.
+       (setup_LDADD): Explicitly include res.o.
+       * Makefile.in: Regenerate.
+       * aclocal.m4: Regenerate.
+       * bootstrap.sh: Call libtoolize.
+       * configure: Regenerate.
+       * configure.in: Add libtool support and configure libgetopt++.
+       * desktop.cc (NoShortcutsOption): Turn into a BoolOption.
+       (DesktopSetupPage::OnInit): Use the simpler syntax.
+       * desktop.h: Remove dependency on Option.h, and remove NoShortcustOption
+       declaration.
+       * main.cc: Include getopt++/GetOption.h.
+       (main): Use simpler syntax.
+       * cdefs.h: Remove.
+       * getopt.h: Remove.
+       * getopt.c: Remove.
+       * GetOption.h: Remove.
+       * GetOption.cc: Remove.
+       * Option.h: Remove.
+       * Option.cc: Remove.
+
+2002-04-26  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.am: Add zlib and bz2lib to SUBDIRS.
+
+2002-04-26  Robert Collins  <rbtcollins@hotmail.com>
+
+       * aclocal.m4: New file, cached macros.
+       * bootstrap.sh: New file, calls required autotools in appropriate 
+       order.
+       * Makefile.am: New file, input Makefile for automake.
+       * Makefile,in: Now a generated file - regenerate.
+       * configure: Regenerate.
+       * configure.in: Add automake support.
+       * inilex.l: Change VERSION to PACKAGEVERSION to avoid a collision with
+       automake's VERSION define.
+       * iniparse.y: Ditto.
+
+2002-04-26  Robert Collins  <rbtcollins@hotmail.com>
+
+       * cdefs.h: New file, imported to allow getopt.c to build without
+       cygwin headers.
+       * getopt.h: New file, imported to allow building without cygwin headers.
+       * getopt.c: Ditto.
+       * bz2lib: New directory, contains copy of bz2lib.
+       * cfgaux: New directory, contains autotool helper scripts.
+       * Makefile,in: Adjust library and target definitions for building 
+       outside the sourceware tree.
+       * compress_bz.h: Use new bz2lib header location.
+       * mount.cc: Import key defines and enums to be independent of cygwin
+       headers.
+       * configure.in: Update to autoconf 2.53, and to be sourceware 
+       independent.
+       * configure: Regenerate.
+
+2002-04-12  Robert Collins  <rbtcollins@hotmail.com>
+
+       * mklink2.cc (make_link_2): Tweak to work with current w32api
+       headers.
+               
+2002-04-10  Pavel Tsekov  <ptsekov@gmx.net>
+
+       * version.cc (canonicalize_version): Fix a call delete[]
+       to delete the allocated address.
+
+2002-03-29  Robert Collins  <rbtcollins@hotmail.com>
+
+       * PickView.cc (PickView::set_headers): Set last_col correctly. Thanks
+       to Ton van Overbeek for locating the bug area.
+
+2003-03-27  Robert Collins  <rbtcollins@hotmail.com>
+
+       * PickView.cc (PickView::insert_pkg): Be more generic with
+       object use.
+       (PickView::insert_category): Ditto.
+       (PickView::~PickView): Create.
+       * PickView.h (PickView::~PickView): Declare.
+
+2003-03-27  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.in (OBJS): Add new commandline objects.
+       * desktop.cc (NoShortCutsOption): New option code.
+       (DesktopSetupPage::OnInit): Check whether to skip shortcuts.
+       * desktop.h (NoShortCutsOption): New concrete command line option class.
+       * main.cc (WinMain): Process command line options.
+       * GetOption.h: New file, singleton command line class.
+       * GetOption.cc: New file, implementation of the above.
+       * Option.h : New file, abstract option for GetOption.
+       * Option.cc: New file, implement constructor and destructor.
+
+2002-03-26  Pavel Tsekov  <ptsekov@gmx.net>
+
+        * mkdir.cc (mkdir_p): Stop processing if the path is exhausted.
+
+2002-03-26 Ton van Overbeek  <tvoverbe@cistron.nl>
+
+        * PickPackageLine.cc (PickPackageline::paint): Adjust clipping rectangle
+        to textheight, so large fonts work.
+
+2003-03-26  Robert Collins  <rbtcollins@hotmail.com>
+
+        * io_stream_cygfile.cc (io_stream_cygfile::mklink): Don't translate
+        symlinks.
+
+2003-03-26  Robert Collins  <rbtcollins@hotmail.com>
+
+        * io_stream_cygfile.cc (cwd): New static for cwd storage.
+        (io_stream_cygfile::normalise): New method.
+        (io_stream_cygfile::io_stream_cygfile): Use it.
+        (io_stream_cygfile::exists): Ditto.
+        (io_stream_cygfile::remove): Ditto.
+        (io_stream_cygfile::mklink): And again.
+        (cygmkdir_p): Yes, again.
+        (io_stream_cygfile::move): And once more.
+        * io_stream_cygfile.h (io_stream_cygfile::normalise): Declare.
+        (io_stream_cygfile::cwd): Ditto.
+
+2003-03-26  Robert Collins  <rbtcollins@hotmail.com>
+
+       * package_meta.cc (package_meta::~package_meta): Remove duplicate.
+       (CategoryPackage::~CategoryPackage): Ditto. (Thanks to Ton van 
+       Overbeek for the report).
+       * mklink2.cc: Moved from mklink2.c to avoid 'not a prototype error'.
+       Make g++ compatible.
+       * mklink2.c: Remove.
+       * site.cc (site_list_type::init): Delete the correct memory addres.
+       Thanks to Pavel Tsekov for tracking this down.
+
+2002-03-20  Robert Collins  <rbtcollins@hotmail.com>
+
+       * win32.h: Only define alloca if it's not already.
+
+2002-03-20  Robert Collins  <rbtcollins@hotmail.com>
+
+       * package_meta.h (packamgemeta::trustp): Make 'test' choice leave installed
+       packages alone.
+       * README: Update with latest requests.
+       * Various: MTC fixes from setup200202 branch.
+
+2002-03-19  Christopher Faylor  <cgf@redhat.com>
+
+       * Makefile.in (setup_version.c): Add back magic which allows detection
+       of setup.exe version number.
+
+2002-03-17  Robert Collins <rbtcollins@hotmail.com>
+
+       * * PickPackageLine.cc (PickPackageLine::paint): Fix incorrect clip region
+       calculation on win9x systems.
+
+2002-03-16  Robert Collins <rbtcollins@hotmail.com>
+
+       * install.cc (install_one_source): Write the correct length of a string to the
+       lst file (Thanks to Pavel Tsekov for reporting the bug).
+
+2002-03-15  Robert Collins <rbtcollins@hotmail.com>
+
+       * choose.cc (list_click): Always refresh the entire chooser, as our
+       package state change mechanism is broken with the new improved list classes.
+
+2002-03-15  Robert Collins <rbtcollins@hotmail.com>
+
+       * desktop.cc (make_passwd_group): Check for .lnk suffix on /etc/passwd and
+       /etc/group.
+
+2002-03-15  Robert Collins <rbtcollins@hotmail.com>
+
+       * PickPackageLine.cc (PickPackageLine::DrawCheck): New method factored out from
+       paint().
+       (PickPackageLine::paint): Use DrawCheck to draw the src tick box, and the new
+       bin tickbox.
+       (PickPackageLine::click): Handle the new bin tickbox.
+       * PickPackageLine.h (PickPackageLine::DrawCheck): Declare this.
+       * PickView.cc (pkg_headers): Add a Bin? column.
+       (cat_headers): Ditto.
+       (PickView::set_headers): Ditto.
+       (PickView::init_headers): Ditto.
+       * PickView.h (PickView): Ditto.
+       * choose.cc (list_click): Use the new name for src_col to set the clip rectangle.
+
+2002-02-24  Michael A Chase <mchase@ix.netcom.com>
+
+       * io_stream_cygfile.cc (io_stream_cygfile::mklink): Fix up Robert's
+       fixup.
+
+2002-02-24  Michael A Chase <mchase@ix.netcom.com>
+
+       * desktop.cc (make_link): Add "file://" prefix to io_stream::mkpath_p()
+       call.
+       (make_passwd_group): Ditto.
+       * localdir.cc (save_local_dir): Ditto.
+       * io_stream_cygfile.cc (io_stream_cygfile::mklink): Wrap long lines.
+       Add "cygfile://" prefix to io_stream::open() calls.
+
+2002-02-24  Robert Collins <rbtcollins@hotmail.com>
+
+       * log.cc (log_save): Fix creating /var/log.
+       * packate_meta.cc (standard_dirs): Remove duplicate '/''s.
+
+2002-02-24  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
+
+       * res.rc (STRINGTABLE): Add IDS_CYGWIN_SETUP and
+       IDS_CYGWIN_SETUP_WITH_PROGRESS strings.
+       * resource.h: Add IDS_CYGWIN_SETUP and
+       IDS_CYGWIN_SETUP_WITH_PROGRESS IDs.
+
+       * splash.cc (OnInit): Qualify SetWindowText() call with global scope
+       operator (::SetWindowText()).
+
+       * threebar.cc: Run indent.
+       (cistring.h): Add include.
+       (SetText1, SetText2, SetText3): Qualify SetWindowText() call with
+       global scope operator.
+       (SetBar2): Add logic for writing percent complete into window title.
+
+       * window.h: Run indent.
+       (SetWindowText): New function.
+       (String): Add forward declaration.
+       * window.cc: Run indent.
+       (String++.h): Add include.
+       (SetWindowText): New function.
+
+2002-02-24  Robert Collins <rbtcollins@hotmail.com>
+
+       * README: Update TODO list.
+       * install.cc (install_one): Fix src package location.
+       (do_install_thread): Fix creating directories.
+               
+2002-02-19  Robert Collins <rbtcollins@hotmail.com>
+
+       * choose.cc: Include cygpackage.h for scan2 use.
+       (set_existence): Ignore setup.ini mirrors when installing from cwd.
+       (scan2): Process any valid file.
+       Add cache entries when a file matching a setup.ini listed version is found.
+       * filemanip.cc (parse_filename): Remove pkgtar - not used anywhere else.
+       * filemanip.h (filemanip::pkgtar): Remove.
+       * package_meta.cc (CategoryPackage::~CategoryPackage): New method.
+       (packagemeta::~packagemeta): Move from package_meta.h
+       Remove and delete all version and category information.
+       * package_meta.h (CategoryPackage): Create a destructor.
+       (packagemeta::~packagemeta): Move to .cc file.
+
+2002-02-19  Robert Collins <rbtcollins@hotmail.com>
+
+       * install.cc (install_one_source): Make NULL cached package names cause
+       errors.
+
+2002-02-18  Michael A Chase <mchase@ix.netcom.com>
+
+       * desktop.cc (make_passwd_group): Don't create passwd-grp.bat
+       unnecessarily.
+       
+2002-02-18  Michael A Chase <mchase@ix.netcom.com>
+
+       * log.cc (log_save): Put "\n" at end of log lines instead of "'".
+
+2002-02-19  Robert Collins <rbtcollins@hotmail.com>
+
+       * mount.cc (create_mount): Avoid a const char*->char* warning.
+       (read_mounts): Ditto.
+
+2002-02-05  Jason Tishler  <jason@tishler.net>
+
+        * download.cc (do_download_thread): Fix off-by-one error.
+       
+2002-02-19  Robert Collins  <rbtcollins@hotmail.com>
+
+       * configure.in (CXXFLAGS): Substitute at configure time, not runtime.
+       * configure (CXXFLAGS): Regenerate.
+       * Makefile.in (iniparse.o): Build via default rules - no errors now.
+       * README: TODO list updates.
+
+2002-02-19  Michael A Chase  <mchase@ix.netcom.com>
+
+       * String++.cc (String::concat):: Remove.
+       (String::vconcat):: Ditto.
+       * String++.h (String::concat):: Remove.
+       (String::vconcat):: Ditto.
+       * archive_tar.cc: Don't include concat.h.
+       * archive_tar_file.cc: Don't include concat.h.
+       * compress_bz.cc (compress_bz::peek): Don't log unneeded messages.
+       (compress_bz::seek): Ditto.
+       (compress_bz::~compress_bz): Ditto.
+       * compress_gz.cc (compress_gz::peek): Ditto.
+       (compress_gz::error): Ditto.
+       (compress_gz::~compress_gz): Ditto.
+       * concat.cc (vconcat): Remove.
+       (concat): Ditto.
+       * concat.h (vconcat): Remove.
+       (concat): Ditto.
+       * desktop.cc (desktop_icon): Use new cygpath.
+       (make_etc_profile): Ditto.
+       (uexists): Ditto.
+       (make_passwd_group): Ditto.
+       (save_icon): Ditto.
+       (check_desktop): Remove concat use.
+       (check_start_menu): Ditto.
+       * download.cc (download_one): Use new mkpath_p correctly.
+       Use LOG_PLAIN.
+       * fromcwd.cc: Don't include concat.h.
+       * geturl.cc (get_url_to_membuf): Use String log() call.
+       (get_url_to_file): Ditto.
+       * install.cc: Don't include concat.h.
+       (uninstall_one): Use LOG_PLAIN.
+       (replace_one): Ditto.
+       (install_one_source): Ditto.
+       (install_one): More char to String conversion.
+       (do_install_thread): Use new cygpath.
+       Use new create_mount.
+       * io_stream.cc (io_stream::move): Use new log().
+       * io_stream_cygfile (io_stream_cygfile::io_stream_cygfile): Use new cygpath.
+       (io_stream_cygfile::exists): Ditto.
+       (io_stream_cygfile::remove): Ditto.
+       (io_stream_cygfile::mklink): Ditto.
+       (io_stream_cygfile::write): Ditto.
+       (cygmkdir_p): Ditto.
+       (io_stream_cygfile::move): Ditto.
+       * io_stream_file.cc: Don't include log.h.
+       (io_stream_file::write): Don't log unneeded messages.
+       * localdir.cc: Don't include concat.h.
+       (LocalDirPage::OnNext): Use LOG_PLAIN.
+       * log.cc: Don't include log.h.
+       (exit_setup): Use new cygpath.
+       * log.h (log_level): Add new level LOG_PLAIN.
+       * main.cc (WinMain): Use new log().
+       * mount.cc (SLASH_P): New macro from concat.h.
+       (cygpath): Make String version globally visible.
+       Remove varargs version.
+       * mount,h: Ditto.
+       * msg.cc (mbox): Use LOG_PLAIN.
+       * net.cc (NetPage::OnNext): Ditto.
+       * nio-ftp.cc (ftp_line): Use new log().
+       * nio-http.cc: Don't include log.h.
+       (retry_get): Use alternative url variable.
+       * package_db.cc: Don't include concat.h.
+       (packagedb::flush): Don't use concat.
+       * package_meta.cc: Don't include concat.h.
+       (packagemeta::uninstall): Use new cygpath.
+       * postinstall.cc (do_postinstall): Ditto.
+       * root.cc (RootPage::OnNext): Use LOG_PLAIN.
+       * script.cc: Don't include concat.h.
+       (init_run_script): Use new cygpath.
+       (run_script): More char * to String conversion.
+       (try_run_script): Ditto.
+       * site.cc: Don't include concat.h.
+       (SitePage::OnNext): Use LOG_PLAIN.
+       (SitePage::OnMessageCmd): Use new log().
+       * source.cc (SourcePage::OnDeactivate): Use LOG_PLAIN.
+
+2002-02-19  Robert Collins  <rbtcollins@hotmail.com>
+
+       * Makefile.in (OBJS): Add new object.
+       * PickCategoryLine.cc (PickCategoryLine::paint): Print a "+" before the name.
+       * PickCategoryLine.h (PickCategoryLine::bucket): Use the String class.
+       * PickLine.h (Pickline::key): Change to a String to help plug leaks.
+       (PickLine::Pickline): Accept a String for the key.
+       * PickPackageLine.cc (PickPackageLine::paint): Convert all char use to Strings.
+       * PickPackageLine.h (PickPackageLine::PickPackageLine): The key is automatically
+       initialisednow.
+       * PickView.cc (PickView::note_width): Convert all char * use to Strings.
+       (PickView::init_header): Move category length checking out of the inner loop for
+       efficiency.
+       Convert all char use to Strings.
+       * PickView.h: Include the String++ header.
+       (PickView::note_width): Update the prototype.
+       * String++.cc: New file, implements a reference counting string class.
+       * String++.h: New file, declares a reference counting string class.
+       * archive.cc: Include String++ instead of concat.
+       (archive::extract_file): Convert char * usage to Strings.
+       * archive.h: Inlude the String++ header.
+       (archive::extract_file): Update prototype.
+       (archive::next_file_name): Convert to a String.
+       (archive::linktarget): Ditto.
+       * archive_tar.cc (archive_tar::next_file_name): Convert to String usage.
+       (archive_tar::linktarget): Ditto.
+       * arhive_tar.h: Update the copyright.
+       Explicitly include the relevant headers.
+       (tar_map_result_type): Convert to String usage.
+       (archive_tar::next_file_name): Update prototype.
+       (archive_tar::linktarget): Ditto.
+       * category.cc (Category::Category): Update initialisers.
+       Convert to String usage.
+       (Categorycmp): Update to String usage.
+       * category.h: Include the String++ header.
+       (Category::Category): Update to String usage.
+       (Category::name): Ditto.
+       (Category::key): Ditto.
+       * choose.cc: Remove concat.h, it's not needed.
+       (scan2): Update to String usage.
+       (do_choose): Ditto.
+       * cygpackage.cc: Update includes for use of String class.
+       (cygpackage::cygpackage): Update for String usage.
+       (cygpackage::set_canonical_version): Ditto.
+       (cygpackage::destroy): Ditto.
+       (cygpackage::getfirstfile): Ditto.
+       (cygpackage::getnextfile): Ditto.
+       (cygpackage::Name): Ditto.
+       (cygpackage::Vendor_version): Ditto.
+       (cygpackage::Package_version): Ditto.
+       (cygpackage::Canonical_version): Ditto.
+       (cygpackage::set_sdesc): Ditto.
+       (cygpackage::set_ldesc): Ditto.
+       * cygpackage.h: Include String++.h for parsing this file.
+       (cygpackage::cygpackage): Update for String usage.
+       (cygpackage::set_canonical_version): Ditto.
+       (cygpackage::destroy): Ditto.
+       (cygpackage::getfirstfile): Ditto.
+       (cygpackage::getnextfile): Ditto.
+       (cygpackage::Name): Ditto.
+       (cygpackage::Vendor_version): Ditto.
+       (cygpackage::Package_version): Ditto.
+       (cygpackage::Canonical_version): Ditto.
+       (cygpackage::set_sdesc): Ditto.
+       (cygpackage::set_ldesc): Ditto.
+       (cygpackage::name): Ditto.
+       (cygpackage::vendor): Ditto.
+       (cygpackage::packagev): Ditto.
+       (cygpackage::canonical): Ditto.
+       (cygpackage::fn): Ditto.
+       (cygpackage::sdesc): Ditto.
+       (cygpackage::ldesc): Ditto.
+       * desktop.cc: Update includes for use of String class.
+       (batname): Update for String usage.
+       (iconname): Ditto.
+       (make_link): Ditto.
+       (start)menu): Ditto.
+       (desktop_icon): Ditto.
+       (make_cygwin_bat): Ditto.
+       (make_etc_profile): Ditto.
+       (uexists): Ditto.
+       (make_passwd_group): Ditto.
+       (save_icon): Ditto.
+       (check_desktop): Ditto.
+       (check_startmenu): Ditto.
+       * dialog.cc (eget): Update for String usage.
+       (egetString): New function.
+       (eset): New variant for Strings.
+       * dialog.h: Include String++.h for parsing this file.
+       (egetString): New function.
+       (eset): New variant for Strings.
+       * diskfull.cc (diskfull): Update for String usage.
+       * diskfull.h: Include String++.h for parsing this file.
+       (diskfull): Update for String usage.
+       * download.cc: Update includes for use of String class.
+       (check_for_cached): Update for String usage.
+       (download_one): Ditto.
+       * filemanip.cc (get_file_size): Ditto.
+       (base): Ditto.
+       (parse_filename): Ditto.
+       (backslash): Ditto.
+       * filemanip.h: Include String++.h for parsing this file.
+       (fileparse): Update for String usage.
+       (base): Ditto.
+       (parse_filename): Ditto.
+       Don't consider '_' to be a separator.
+       (backslash): Ditto.
+       * find.cc: Update includes for use of String class.
+       (find_sub): Make more flexible.
+       (find): Update for String usage.
+       * find.h (find): Use Strings.
+       * fromcwd.cc (found_file): Update for String usage.
+       * geturl.cc: Ditto.
+       (init_dialog): Ditto.
+       (get_url_to_membuf): Ditto.
+       (get_url_to_string): Ditto.
+       (get_url_to_file): Ditto.
+       * geturl.h: Ditto.
+       (get_url_to_membuf): Ditto.
+       (get_url_to_string): Ditto.
+       (get_url_to_file): Ditto.
+       * hash.h: Ditto.
+       (add_subdirs): Ditto.
+       * ini.cc: Update includes for String usage.
+       (find_routine): Update for String usage.
+       (do_remote_ini): Ditto.
+       (do_ini_thread): Ditto.
+       * ini.h (ini_init): Ditto.
+       * inilex.l: Update includes for String usage.
+       (ini_init): Update for String usage.
+       * iniparse.y: Ditto.
+       (add_correct_version): Ditto.
+       * install.cc: Update includes for String usage.
+       (install_one_source): Update for String usage.
+       (uninstall_one): Ditto.
+       (replace_one): Ditto.
+       (install_one_source): Ditto.
+       (do_install_thread): Ditto.
+       * io_stream.cc: Update includes for String usage.
+       (io_stream::open): Update for String usage.
+       (io_stream::mkpath_p): Ditto.
+       (io_stream::remove): Ditto.
+       (io_stream::mklink): Ditto.
+       (io_stream::move_copy): Ditto.
+       (io_stream::move): Ditto.
+       (io_stream::exists): Ditto.
+       * io_stream.h: Update includes to allow correct parsing.
+       (io_stream::open): Update for String usage.
+       (io_stream::mkpath_p): Ditto.
+       (io_stream::remove): Ditto.
+       (io_stream::mklink): Ditto.
+       (io_stream::move_copy): Ditto.
+       (io_stream::move): Ditto.
+       (io_stream::exists): Ditto.
+       * io_stream_cygfile.cc: Update includes for String usage.
+       (get_root_dir_now): Update for String usage.
+       (io_stream_cygfile::io_stream_cygfile): Ditto.
+       (io_stream_cygfile::~io_stream_cygfile): Ditto.
+       (io_stream_cygfile::exists): Ditto.
+       (io_stream_cygfile::remove): Ditto.
+       (io_stream_cygfile::mklink): Ditto.
+       (cygmkdir_p): Ditto.
+       (io_stream_cygfile::set_mtime): Ditto.
+       (io_stream_cygfile::move): Ditto.
+       (io_stream_cygfile::get_size): Ditto.
+       * io_stream_cygfile.h: Update includes for String usage.
+       (io_stream_cygfile::io_stream_cygfile): Update for String usage.
+       (io_stream_cygfile::~io_stream_cygfile): Ditto.
+       (io_stream_cygfile::exists): Ditto.
+       (io_stream_cygfile::remove): Ditto.
+       (io_stream_cygfile::mklink): Ditto.
+       (cygmkdir_p): Ditto.
+       (io_stream_cygfile::set_mtime): Ditto.
+       (io_stream_cygfile::move): Ditto.
+       (io_stream_cygfile::get_size): Ditto.
+       (io_stream_cygfile::fname): Ditto.
+       (io_stream_cygfile::lmode): Ditto.
+       * io_stream_file.cc: Update includes for String usage.
+       (io_stream_file::io_stream_file): Update for String usage.
+       (io_stream_file::~io_stream_file): Ditto.
+       (io_stream_file::exists): Ditto.
+       (io_stream_file::remove): Ditto.
+       (io_stream_file::mklink): Ditto.
+       (io_stream_file::set_mtime): Ditto.
+       (io_stream_file::move): Ditto.
+       (io_stream_file::get_size): Ditto.
+       * io_stream_file.h: Update includes for String usage.
+       * io_stream_file.cc: Update includes for String usage.
+       (io_stream_file::io_stream_file): Update for String usage.
+       (io_stream_file::~io_stream_file): Ditto.
+       (io_stream_file::exists): Ditto.
+       (io_stream_file::remove): Ditto.
+       (io_stream_file::mklink): Ditto.
+       (io_stream_file::set_mtime): Ditto.
+       (io_stream_file::move): Ditto.
+       (io_stream_file::get_size): Ditto.
+       (io_stream_file::fname): Ditto.
+       (io_stream_file::lmode): Ditto.
+       * localdir.cc: Update includes for String usage.
+       (save_local_dir): Update for String usage.
+       (check_if_enable_next): Ditto.
+       (load_dialog): Ditto.
+       (browse_cb): Ditto.
+       (LocalDirPage::OnInit): Ditto.
+       (LocalDirPage::OnNext): Ditto.
+       * log.cc: Update includes for String usage.
+       (struct LogEnt): Update for String usage.
+       (log): Ditto.
+       (log_save): Ditto.
+       (exit_setup): Ditto.
+       * log.h: Update includes for String usage.
+       (log_level): Update for String usage.
+       (log): Ditto.
+       (log_save): Ditto.
+       * main.cc (WinMain): Update for String usage.
+       * mklink2.c (make_link_2): Update for String usage.
+       * mklink2.h (make_link_2): Update for String usage.
+       * mount.cc: Update includes for String usage.
+       (mount_table): Update for String usage.
+       (find2): Ditto.
+       (create_mount): Ditto.
+       (remove1): Ditto.
+       (remove_mount): Ditto.
+       (read_mounts): Ditto.
+       (set_root_dir): Ditto.
+       (get_root_dir): Ditto.
+       (path_prefix_p): Ditto.
+       (cygpath): Ditto.
+       * mount.h: Update includes for String usage.
+       (create_mount): Update for String usage.
+       (remove_mount): Ditto.
+       (cygpath): Ditto.
+       (set_root_dir): Ditto.
+       (get_root_dir): Ditto.
+       * msg.cc (mbox): Ditto.
+       * net.cc (NetPage::OnNext): Ditto.
+       * package_db.cc (packagedb::flush): Ditto.
+       (packagedb::packages): Ditto.
+       (packagedb::categories): Ditto.
+       * package_db.h: Update includes for String usage.
+       (packagedb::packages): Update for String usage.
+       (packagedb::categories): Ditto.
+       * package_meta.cc: Update includes for String usage.
+       (hash::add_subdirs): Update for String usage.
+       (packagemeta::uninstall): Ditto.
+       (packagemeta::SDesc): Ditto.
+       (packagemeta::action_caption): Ditto.
+       * package_meta.h: Update includes for String usage.
+       (packagemeta::packagemeta): Update for String usage.
+       (packagemeta::~packagemeta): Ditto.
+       (packagemeta::uninstall): Ditto.
+       (packagemeta::SDesc): Ditto.
+       (packagemeta::action_caption): Ditto.
+       (package_source.cc site::site): Ditto.
+       (packagesource::set_canonical): Ditto.
+       (packagesource::set_cached): Ditto.
+       * package_source.h: Update includes for String usage.
+       (site::site): Update for String usage.
+       (packagesource::set_canonical): Ditto.
+       (packagesource::set_cached): Ditto.
+       (packagesource::packagesource): Ditto.
+       (packagesource::sites): Ditto.
+       (packagesource::cached): Ditto.
+       * package_version.h: Update includes for String usage.
+       (Dependency): Update for String usage.
+       (packageversion): Ditto.
+       * postinstall.cc: Update includes for String usage.
+       (do_postinstall): Update for String usage.
+       * res.rc (IDD_LOCAL_DIR): Fix typo again!
+       * rfc1738.cc (rfc1738_escape_part): Update for String usage.
+       * rfc1738.h: Update includes for String usage.
+       (rfc1738_escape_part): Update for String usage.
+       * root.cc: Update includes for String usage.
+       (check_if_enable_next): Update for String usage.
+       (save_dialog): Ditto.
+       (browse_cb): Ditto.
+       (directory_is_absolute): Ditto.
+       (directory_is_rootdir): Ditto.
+       (directory_has_spaces): Ditto.
+       (RootPage::OnInit): Ditto.
+       (RootPage::OnNext): Ditto.
+       * script.cc: Update includes for String usage.
+       (init_run_script): Update for String usage.
+       (run): Ditto.
+       (run_script): Ditto.
+       (try_run_script): Ditto.
+       * script.h: Update includes for String usage.
+       (run_script): Update for String usage.
+       (try_run_script): Ditto.
+       * site.cc site_list): Ditto.
+       (all_site_list): Ditto.
+       (other_url): Eliminate.
+       (site_list_type::init): Update for String usage.
+       (site_list_type::site_list_type): Ditto.
+       (get_site_list): Ditto.
+       (get_saved_sites): Ditto.
+       (do_download_site_info_thread): Ditto.
+       (SitePage::OnNext): Ditto.
+       (SitePage::OnActivate): Ditto.
+       (SitePage::PopulateListBox): Ditto.
+       (SitePage::OnMessageCmd): Handle empty url's.
+       * site.h: Update includes for String usage.
+       (site_list_type::site_list_type): Update for String usage.
+       (site_list_type::init): Ditto.
+       (site_list_type::~site_list_type): Ditto.
+       (site_list_type::url): Ditto.
+       (site_list_type::displayed_url): Ditto.
+       (site_list_type::key): Ditto.
+       * source.cc (SourcePage::OnDeactivate): Ditto.
+       * state.h: Update includes for String usage.
+       (local_dir): Update for String usage.
+       (trust_level): Remove.
+       * version.cc: Update includes for String usage.
+       (canonicalize_version): Update for String usage.
+       * version.h: Update includes for String usage.
+       (canonicalize_version): Update for String usage.
+       
+2002-02-15  Christopher Faylor  <cgf@redhat.com>
+
+       * filemanip.c (parse_filename): Revert previous change.
+
+2002-02-14  Christopher Faylor  <cgf@redhat.com>
+
+       * filemanip.c (parse_filename): Don't treat '_' as a version number
+       introducer.
+
+2002-01-29  Christopher Faylor  <cgf@redhat.com>
+
+       * configure: Regenerate.
+
 2002-01-27  Robert Collins  <rbtcollins@hotmail.com>
 
-       * res.rc (IDD_LOCAL_DIR): Fix typo reported by Rene <Hoeck@extern.lrz-muenchen.de>
+       * res.rc (IDD_LOCAL_DIR): Fix typo reported by Rene
+       <Hoeck@extern.lrz-muenchen.de>
 
 2002-01-27  Robert Collins  <rbtcollins@hotmail.com>
 
        (list): New methods checksize and insert to reduce code duplication.
        (list::registerbykey): Use them.
        (list::registerbyobject): Ditto.
-       (list::removebyindex): Copy each object individually - safe for non trivial
-       objects.
+       (list::removebyindex): Copy each object individually - safe for non
+       trivial objects.
        (list::checksize): Implement.
        (list::insert): Implement.
 
 2002-01-27  Robert Collins  <rbtcollins@hotmail.com>
 
        * Makefile.in: Remove the dlmalloc object by default.
-       * install.cc (do_install_thread): Remove the mallinfo call for 'working around'
-       the crashing issue.
+       * install.cc (do_install_thread): Remove the mallinfo call for 'working
+       around' the crashing issue.
        * package_db.h: Include <string.h> - it's needed to parse this.
-       * package_source.cc (site::site):  Move here from the header file.
+       * package_source.cc (site::site): Move here from the header file.
        * package_source.h (site): Stop the constructor being inlinable.
 
 2002-01-26  Robert Collins  <rbtcollins@hotmail.com>
 
        * filemanip.cc (find_tar_ext): Clean up tests for .tar.gz and .tar.
        * fromcwd.cc (do_fromcwd): Expand FIXME comment in source file check.
-       * install.cc (install_one_source): Add space between words in log() call.
-  
+       * install.cc (install_one_source): Add space between words in log()
+       call.
+
 2002-01-22  Robert Collins  <rbtcollins@hotmail.com>
 
-       * log.cc (exit_setup): When saving to the download dir, explicity specify
-       the path.
+       * log.cc (exit_setup): When saving to the download dir, explicity
+       specify the path.
 
 2002-01-22  Robert Collins  <rbtcollins@hotmail.com>
 
-       * archive.cc (extract_file): Separate out the prefix and the URL scheme.
+       * archive.cc (extract_file): Separate out the prefix and the URL
+       scheme.
        * archive.h (archive::extract_file): Ditto.
-       * install.cc (install_one_source): Ditto.
-       Use the new archive::extract_file syntax.
+       * install.cc (install_one_source): Ditto.  Use the new
+       archive::extract_file syntax.
        (replace_one): Use the new syntax.
        (io_stream.cc): Add some log info for links.
 
        (PickCategoryLine::set_action): New method.
        * PickCategoryLine.h (PickCategoryLine::-actions): Remove.
        (PickCategoryLine::current_default): Use packagemeta _actions class.
-       * PickLine.h (PickLine::set_action): New abstract method that requires including
-       package_meta.h.
+       * PickLine.h (PickLine::set_action): New abstract method that requires
+       including package_meta.h.
        * PickPackageLine.cc (PickPackageLine::set_action): New method.
        * PickPackageLine.h (PickPackageLine::set_action): Declare this.
        * list.h (getbykey): A const correctness fix.
        * compress_gz.cc (compress_gz::~compress_gz): Mark the stream as destroyed.
        * io_stream.cc (io_stream::~io_stream): Only warn when the stream is not marked
        as destroyed.
-       * io_stream_cygfile.cc (io_stream_cygfile::~io_stream_cygfile): Mark the 
+       * io_stream_cygfile.cc (io_stream_cygfile::~io_stream_cygfile): Mark the
        stream as destroyed.
        * io_stream_file.cc (io_stream_file::~io_stream_file): Ditto.
        * io_stream_memory.cc (io_stream_memory::~io_stream_memory): Ditto.
-       
+
 2002-01-21  Robert Collins  <rbtcollins@hotmail.com>
 
        * Makefile.in (CFLAGS): Allow customisable malloc debug flags.
        (view::views::caption): New method.
        (view::set_headers): Use the new view::views class.
        (view::clear_view): Ditto.
-       (viewsplusplus): Replaced by 
+       (viewsplusplus): Replaced by
        (view::views::operator++): New operator.
        (set_view_mode): Use the new view::views class.
        (create_listview): Ditto.
 
 2002-01-07  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
 
-        * fromcwd.cc: Run indent.
+       * fromcwd.cc: Run indent.
        (do_fromcwd): Reverse sense of comment.  Set next_dialog
        to IDD_CHOOSER instead of IDD_CHOOSE.
        * ini.cc (find_routine): Remove "/" from "/setup.ini".
-                               
+
 2001-01-07  Robert Collins  <rbtcollins@hotmail.com>
 
        * category.cc (Categorycmp): Add a const safe version.
 
        * 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 
+       * package_meta.cc (SDesc): Iterate through versions, return the first with a
        description.
        * package_version.h (packageversion): Add new virtuals set_[l|s]desc.
 
        * package_meta.cc (uninstall): Run pre- and postremove scripts.
        * install.cc: Typo fix.
        (do_install): Run script initialisation.
-                                                                                       
+
 2001-01-04  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
 
        * cistring.cc: Run d2u.
        * choose.cc (set_existence): Delete non installed packages with no
        mirrors.
        (fill_missing_category): Fix an off-by-one error.
-       (default_trust): Ditto. Also delete any unused categories. 
+       (default_trust): Ditto. Also delete any unused categories.
        (view::init_headers): Fix an off-by-one error.
        (set_view_mode): Ditto.
        (set_view_mode): Ditto.
        (SourcePage): Add class implementation to this file.
        (do_source): Remove, functionality subsumed by SourcePage::Create()
        and SourcePage::OnDeactivate().
-       (dialog_proc): Remove, functionality subsumed by 
+       (dialog_proc): Remove, functionality subsumed by
        SourcePage::OnActivate().
 
        * site.h: Run indent.
        (RootPage::OnInit): New member function.  Move get_root_dir() logic to
        here from do_root().
        (RootPage::Create): New member function.
-       (RootPage::OnNext): New member function.  Move IDOK logic from 
+       (RootPage::OnNext): New member function.  Move IDOK logic from
        dialog_cmd() to here.
        (RootPage::OnBack): New member function.
 
        * other.cc (do_other): Add owner parameter.
 
        * nio-file.cc (NetIO::Purl): Pass NULL parent param to note().
-       * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Pass NULL parent param to 
+       * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Pass NULL parent param to
        get_ftp_auth().
-       * nio-http.cc (retry_get): Pass NULL parent param to get_auth(), 
+       * nio-http.cc (retry_get): Pass NULL parent param to get_auth(),
        get_proxy_auth(),
        and get_ftp_auth().
-       * nio-ie5.cc (NetIO::_url): Pass NULL parent param to note(), 
+       * nio-ie5.cc (NetIO::_url): Pass NULL parent param to note(),
        get_auth(), get_proxy_auth().
 
        * netio.h (get_auth, get_proxy_auth, get_ftp_auth): Add owner param.
-       * netio.cc (auth_common, NetIO::get_auth, NetIO::get_proxy_auth, 
+       * netio.cc (auth_common, NetIO::get_auth, NetIO::get_proxy_auth,
        NetIO::get_ftp_auth)
        (auth_common): Add owner param.  Pass owner param to DialogBox.
-       (NetIO::get_auth, NetIO::get_proxy_auth, NetIO::get_ftp_auth): Pass 
+       (NetIO::get_auth, NetIO::get_proxy_auth, NetIO::get_ftp_auth): Pass
        owner param to auth_common().
 
        * net.h (NetPage): New file, new class.
        (Progress): Add extern.
        (dialog_cmd): Remove IDOK, IDC_BACK, and IDCANCEL cases, now handled by
        property sheet logic.  Saved temporarily for reference.
-       (NetPage::Create, NetPage::OnInit, NetPage::OnDeactivate, 
+       (NetPage::Create, NetPage::OnInit, NetPage::OnDeactivate,
        NetPage::OnNext, NetPage::OnBack):
        New implementation of NetPage class members.
        (do_net): Remove.
        now that we have a parent.
 
        * main.cc: Run indent.
-       (commctrl.h, proppage.h, propsheet.h, splash.h, source.h) 
+       (commctrl.h, proppage.h, propsheet.h, splash.h, source.h)
        (localdir.h, net.h, site.h, choose.h, threebar.h, desktop.h): Include
        headers.
        (root_dialog_proc): extern into this file.
        (threebar.h): New include.
        (Progress): extern into this file.
        (LocalDirPage::Create, LocalDirPage::OnInit, LocalDirPage::OnActivate)
-       (LocalDirPage::OnNext, LocalDirPage::OnBack): Implementation of 
+       (LocalDirPage::OnNext, LocalDirPage::OnBack): Implementation of
        LocalDirPage.
        (LocalDirPage::OnNext): Move log() call from do_local_dir() to here.
        (dialog_cmd): Remove IDOK, ID_BACK, and IDCANCEL handlers.
        (ins_dialog, ins_action, ins_pkgname, ins_filename, ins_pprogress)
        (ins_iprogress, ins_diskfull, init_event): Remove, now handled by
        ThreeBarProgressPage.
-       (dialog_cmd, dialog_proc, dialog): Removed, handled in 
+       (dialog_cmd, dialog_proc, dialog): Removed, handled in
        ThreeBarProgressPage.
-       (init_dialog): Remove all mention of the above ins_* handles.  Now 
-       handled in ThreeBarProgressPage.  Altered SetWindowText()s to call 
+       (init_dialog): Remove all mention of the above ins_* handles.  Now
+       handled in ThreeBarProgressPage.  Altered SetWindowText()s to call
        ThreeBarProgressPage instance Progress directly.
        (progress): Alter bar update logic to call ThreeBarProgressPage
        instance Progress directly.
        (uninstall_one): Alter SetWindowText()s to call ThreeBarProgressPage
        instance Progress directly.
-       (install_one_source): Alter SetWindowText()s to call 
+       (install_one_source): Alter SetWindowText()s to call
        ThreeBarProgressPage
        instance Progress directly. Pass NULL parent to note().
-       (do_install_thread): Rename from do_install(), added owner param.  
+       (do_install_thread): Rename from do_install(), added owner param.
        Alter SetWindowText()s to call ThreeBarProgressPage instance Progress
        directly.
        Remove dismiss_url_status_dialog() call, no longer necessary.  Remove
-       ShowWindow(<hide>) call, also unnecessary now.  Pass owner handle to 
+       ShowWindow(<hide>) call, also unnecessary now.  Pass owner handle to
        fatal().
        (do_install_reflector): New function.
        (do_install): New function.
        (Progress): externed into this file.
        (find_routine): Pass NULL parent to note().
        (do_local_ini): Add owner param.
-       (do_remote_ini): Add owner param.  Pass owner to get_url_to_membuf() 
+       (do_remote_ini): Add owner param.  Pass owner to get_url_to_membuf()
        and note().  Remove call to dismiss_url_status_dialog().
        (do_ini_thread): Rename from do_ini().  Add owner param.  Pass owner to
-       do_local_ini(), do_remote_ini(), yesno(), and note().  Set next_dialog 
+       do_local_ini(), do_remote_ini(), yesno(), and note().  Set next_dialog
        to IDD_CHOOSER on exit.
        (do_ini_thread_reflector): New function.
        (context): New var.  Context for do_ini_thread.
 
        * geturl.h (get_url_to_membuf, get_url_to_string, get_url_to_file): Add
        owner param.
-       * geturl.cc (gw_dialog, gw_url, gw_rate, gw_progress, gw_pprogress, 
+       * geturl.cc (gw_dialog, gw_url, gw_rate, gw_progress, gw_pprogress,
        gw_iprogress)
-       (gw_progress_text, gw_pprogress_text, gw_iprogress_text, init_event): 
+       (gw_progress_text, gw_pprogress_text, gw_iprogress_text, init_event):
        Removed.
        (threebar.h): New include.
        (Progress): externed into this file.
-       (dialog_cmd, dialog_proc, dialog): Removed, handled by 
+       (dialog_cmd, dialog_proc, dialog): Removed, handled by
        ThreeBarProgressPage now.
-       (init_dialog): Remove "if (gw_dialog == 0)" clause.  Alter 
+       (init_dialog): Remove "if (gw_dialog == 0)" clause.  Alter
        SetWindowText()s
-       and bar setting SendMessage()s to call ThreeBarProgressPage instance 
+       and bar setting SendMessage()s to call ThreeBarProgressPage instance
        Progress directly.  Remove "one bar only" logic, this is now handled
        explicitly in the ThreeBarProgressPage class.
-       (progress): Altered bar and text update logic to call 
+       (progress): Altered bar and text update logic to call
        ThreeBarProgressPage instance Progress directly.  Changed kbps
        calculation to floating point and now print out a single decimal
        place.
        (get_url_to_membuf): Add owner param.  Pass it to init_dialog.
        (get_url_to_string): Add owner param.  Pass it to get_url_to_membuf.
-       (get_url_to_file): Add owner param.  Pass it to init_dialog. Alter bar 
+       (get_url_to_file): Add owner param.  Pass it to init_dialog. Alter bar
        update logic to call ThreeBarProgressPage instance Progress directly.
        (dismiss_url_status_dialog):  Remove.
 
        * desktop.h (DesktopSetupPage): New file, new class.
        * desktop.cc: Run indent.
        (desktop.h): Add include.
-       (dialog_proc, do_desktop): Remove, now handled in 
+       (dialog_proc, do_desktop): Remove, now handled in
        DesktopSetupPage::OnInit().
        (dialog_cmd): Remove IDOK, IDC_BACK, and IDCANCEL cases, handled in
        DesktopSetupPage::OnFinish(), DesktopSetupPage::OnBack(), and PropSheet
        * choose.h: Run indent.
        (Chooser): New class declaration.
        * choose.cc: Run indent.
-       (do_choose): Add owner param.  Pass it to DialogBox() and 
+       (do_choose): Add owner param.  Pass it to DialogBox() and
        fatal().
        (Chooser): New class implementation.
 
        (NEW_COL_SIZE_SLOP): Define without magic numbers.
        (pkgtrustp): Convert to function.
        (set_action): Remove.
-       (add_required, fill_missing_category,default_trust): Use list syntax for 
+       (add_required, fill_missing_category,default_trust): Use list syntax for
        package list.
        Use new set_action.
        (choose_caption): Remove.
        * site.cc (site_list_type): Move to site.h
        (site_list): New global, sites chosen by the user.
        (all_site_list): New global, all potential sites.
-       (site_list_type::init): New method, parses a mirror.lst URL string into a 
+       (site_list_type::init): New method, parses a mirror.lst URL string into a
        site_list_type object.
        (site_list_type::site_list_type): New method.
        (check_if_enable_next): Examine the control, not a local variable.
        (load_dialog): Select all the user chosen sites by default.
-       (save_dialog): Adjust for multiple selection semantics. 
+       (save_dialog): Adjust for multiple selection semantics.
        (save_site_url): Save all user chosen sites.
-       (dialog_cmd): Don't save the dialog when the listbox recieves a message - 
+       (dialog_cmd): Don't save the dialog when the listbox recieves a message -
        thats not needed.
        Remove obsolete other_url reference.
        (dialog_proc): Use all_site_list instead of site_list.
        * package_source.cc (packagesource::set_canonical): Ditto.
        (packagesource::set_cached): Ditto.
        * package_source.h (site::~site): Ditto.
-       * site.cc: Change site_list_type to a class, and search and replace sort_key to 
+       * site.cc: Change site_list_type to a class, and search and replace sort_key to
        key globally.
 
 2001-12-01  Robert Collins  <rbtcollins@hotmail.com>
        * category_list.h: Remove.
        (Categorycmp): New function prototype.
        * choose.cc: Remove category_list - not needed.
-       (set_action): Only show the 'source' option when the source is actually 
+       (set_action): Only show the 'source' option when the source is actually
        available.
        (add_required): Fix recursion limiter to 5.
        (fill_missing_category): Use list access.
        (packagedb): Use the list template for categories.
        * package_meta.cc (add_category): Ditto.
        * package_meta.h (CategoryPackage): Link to the category as well.
-       (packagemeta): Use a list of CategoryPackages instead of Categories 
+       (packagemeta): Use a list of CategoryPackages instead of Categories
        for more memory efficient cross-referencing.
 
 2001-11-30  Robert Collins  <rbtcollins@hotmail.com>
        (uninstall_one): Use packagemeta->uninstall to perform the uninstallation.
        Don't uninstall source packages.
        (do_install): Just can uninstall_one once as we ignore source packages now.
-       Don't copy the installed.old database accross, instead iterate through the 
+       Don't copy the installed.old database accross, instead iterate through the
        packagedb packages list and write the isntalled packages out.
        * package_db.cc: Include package_version.h, not package.h.
        (packagedb::packagedb): Never let db be undefined.
        * package_version.h: New file.
        * package.cc: Removed.
        * package.h: Removed.
-       
+
 2001-11-21  Robert Collins  <rbtcollins@hotmail.com>
 
        * Makefile.in (OBJS): Add category.o and category_list.o.
 2001-11-13  Brian Keener  <bkeener@thesoftwaresource.com>
 
        * localdir.cc: Add headers unistd.h and port.h.
-       (save_local_dir): Expand search logic to include local directory for     
+       (save_local_dir): Expand search logic to include local directory for
        location of file last-cache.
        (dialog_cmd): Skip IDD_ROOT when downloading and use Back button.
-       (do_local_dir): Expand search logic to include local directory for file  
+       (do_local_dir): Expand search logic to include local directory for file
        last-cache.
        * res.rc (IDD_CHOOSE_DIALOG): Add hotkey to View button.
-       * Source.cc (dialog_cmd): Skip IDD_ROOT if select Download from         
+       * Source.cc (dialog_cmd): Skip IDD_ROOT if select Download from
        Internet.
-       (do_source): Default to Install from Internet on first entry or        
+       (do_source): Default to Install from Internet on first entry or
        previous selection if backing up from IDD_ROOT or IDD_LOCAL_DIR.
 
 2001-11-13  Robert Collins  <rbtcollins@hotmail.com>
         (actions): New enum, from ini.h. This may not be the 'right' place
        but that place doesn't exist yet.
        (_views): New enum, from ini.h.
-       * choose.cc (set_action): Handle installed packages with a version not in 
+       * choose.cc (set_action): Handle installed packages with a version not in
        setup.ini.
        (choose_caption): Ditto.
        * iniparse.y: Rearrange header order to handle new ini.h.
        (_view): Ditto.
 
 2001-11-08  Pavel Tsekov  <ptsekov@syntrex.com>
+
        * simpsock.h (SimpleSocket::invalidate): Declare new method.
        * simpsock.cc (SimpleSocket::invalidate): Implement new method.
        (SimpleSocket::SimpleSocket): Initialize buf to zero. Do not allocate
 
        * geturl.cc (get_url_to_string): clean up memory leak
        (get_url_to_file): ditto
-               
+
 2001-11-06  Robert Collins  <rbtcollins@hotmail.com>
 
        * localdir.cc (dialog_cmd): Go back to IDD_ROOT in every case.
 
 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
 
-       * choose.cc (default_trust): Change the "Required" forced install category to 
+       * choose.cc (default_trust): Change the "Required" forced install category to
        "Base".
 
 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
 
 2001-11-01  Christopher Faylor  <cgf@redhat.com>
 
-        * Makefile.in (mingw_getopt.o): Fix typo in non-verbose compilation.
+       * Makefile.in (mingw_getopt.o): Fix typo in non-verbose compilation.
 
 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
 
 
 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
 
-       * choose.cc (add_required): Allow SKIP and SRC_ONLY for currently installed 
+       * choose.cc (add_required): Allow SKIP and SRC_ONLY for currently installed
        packages.
 
 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
        progress dialog and the supporting thread will be created.
        (dialog_proc): Return TRUE to WM_INITDIALOG as specified by the WIN32 API.
        (init_dialog): Remove usage of SetForegroundWindow and is_showing.
-       This prevents the progress dialog to gain control over the 
+       This prevents the progress dialog to gain control over the
        application and fixes the "setup.exe going to background" problem.
        (progress): Use is_local_install.
        (get_url_to_string): Set is_local_install.
        (dismiss_url_status_dialog): Use is_local_install.
        * install.cc (dialog_proc): Return TRUE as specified in WIN32 API.
        (init_dialog): Remove usage of SetForegroundWindow.
-       This prevents the progress dialog to gain control over the 
+       This prevents the progress dialog to gain control over the
        application and fixes the "setup.exe going to background" problem.
 
 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
 
 2001-11-01  Matt Hargett  <matt@use.net>
 
-        * geturl.cc (progress): Change int to unsigned int to eliminate
-        lint warnings.
-        * (get_url_to_string): Check for NULL pointer.
-        * mount.cc (find2): Use free instead of delete for malloc'd
-        memory.
-        * nio-http.cc (NetIO_HTTP::NetIO_HTTP): Fix memory leak.
+       * geturl.cc (progress): Change int to unsigned int to eliminate
+       lint warnings.
+       * (get_url_to_string): Check for NULL pointer.
+       * mount.cc (find2): Use free instead of delete for malloc'd
+       memory.
+       * nio-http.cc (NetIO_HTTP::NetIO_HTTP): Fix memory leak.
 
 2001-10-31  Robert Collins  <rbtcollins@hotmail.com>
 
        a package nor a category. The lines[linen] bug was reported by Matt (matt@usa.net).
        (read_installed_db): Bugfix for testing whether a package has a source tarball.
        Reported by Matt (matt@usa.net).
-       * geturl.cc(dialog): Rename gw_dialog to local_gw_dialog to avoid programmer 
+       * geturl.cc(dialog): Rename gw_dialog to local_gw_dialog to avoid programmer
        confusion and lint errors. Reported by Matt (matt@usa.net).
 
 2001-10-31  Robert Collins  <rbtcollins@hotmail.com>
 
-       * argv.cc: New file, converts arguments for -mwindows programs. (Simplified derivation 
+       * argv.cc: New file, converts arguments for -mwindows programs. (Simplified derivation
        from dcrt0.cc.)
        * argv.h: New file.
        * Makefile,in: Add argv.o and mingw_getopt.o to setup.exe object list.
This page took 0.075366 seconds and 5 git commands to generate.