2005-01-27 Max Bowsher Set CYGWIN=nontsec, for postinstall scripts. * main.cc (main): putenv("CYGWIN=nontsec"). 2005-01-27 Bas van Gompel Fix corrupt display of ini parse percentage in log file. * ini.cc (GuiParseFeedback): Use a sensible data type for lastpct. 2004-12-29 Max Bowsher * site.cc (get_site_list): Filter the incoming mirrors list to contain only URL schemes that we can read. 2004-11-28 Max Bowsher * download.cc (check_for_cached): Re-introduce the silent skipping of wrong-sized package files in local caches, as a "quick fix" that is no worse than the status quo, to be able to make a release, whilst work towards a proper fix continues on trunk. ========================= BRANCHPOINT: setup-200412 ========================= 2004-11-22 Max Bowsher * main.cc (main): Fix bug in first 2004-11-20 commit. Avoid referring to the theLog pointer before it is set. 2004-11-20 Max Bowsher * res.rc (IDD_SOURCE): Clarify the radio-button option descriptions. Re-layout the radio buttons. 2004-11-20 Max Bowsher Repair the broken detection of wrongly-sized package files. * download.cc (validateCachedPackage): Make static, since not used elsewhere. Improve logging. Migrate file-size tests to here, alongside the MD5 tests. (check_for_cached): Remove broken testing of file-size, now covered by the above. Code cleanups. 2004-11-19 Max Bowsher * package_version.cc (dumpAndList): Make dependencies much more readable in full log output. 2004-11-19 Max Bowsher * proppage.cc (PropertyPage::DialogProc): Wrap in a TOPLEVEL_CATCH block, since allowing exceptions to unwind into the guts of Windows is quite disasterous. 2004-11-19 Max Bowsher * main.cc (main): Move option parsing code earlier - it must execute before any significant object creations, which might test options in their initialization. 2004-11-19 Max Bowsher * main.cc (main): Remove some junk code - either commented out, or contained within unreachable preprocessor conditional sections. 2004-11-19 Max Bowsher * install.cc (Installer::installOneSource): Avoid leaking the open file handles of every tarball that is installed. 2004-11-19 Max Bowsher * package_source.h (packagesource::Canonical, packagesource::Base) (packagesource::Filename): Add "const" specification to accessor methods. 2004-11-18 Max Bowsher * archive.h (archive::~archive): Define a pure virtual destructor to enforce the abstract nature of this class. * archive.cc (archive::~archive): Pure virtual destructors require an implementation! Add one. * io_stream.h (io_stream::destroyed): Remove this severely brain-damaged implementation of a weakly-enforced abstract class. The pure virtual destructor was strongly enforcing the abstract nature anyway. * io_stream.cc (io_stream::~io_stream): Empty out horribly pointless code from the pure virtual destructor. * archive_tar.cc (archive_tar::~archive_tar): Remove all reference to the removed "destroyed" member. * archive_tar_file.cc (archive_tar_file::~archive_tar_file): Ditto. * compress_bz.cc (compress_bz::~compress_bz): Ditto. * compress_gz.cc (compress_gz::~compress_gz): Ditto. * io_stream_cygfile.cc (io_stream_cygfile::~io_stream_cygfile): Ditto. * io_stream_file.cc (io_stream_file::~io_stream_file): Ditto. * io_stream_memory.cc (io_stream_memory::~io_stream_memory): Ditto. 2004-11-17 Max Bowsher * mount.cc (create_mount): Fix operator precedence error introduced in first 2004-11-11 commit - warned of by gcc 3.3.3 but not 3.4.1 ! 2004-11-13 Max Bowsher Miscellaneous cleanup. * geturl.cc (getUrlToStream): Make static. * geturl.h (getUrlToStream): Remove declaration. * geturl.cc, geturl.h, netio.cc, netio.h, nio-ftp.cc, nio-ftp.h, nio-http.cc, nio-http.h: Remove unused "allow_ftp_auth" flag throughout. 2004-11-11 Max Bowsher * libmd5-rfc: New directory, to hold code imported from the libmd5-rfc project in a clearly delineated fashion. * libmd5-rfc/README: New file. * md5.c, md5.h: Delete... * libmd5-rfc/md5.c, libmd5-rfc/md5.h: ...and replace with pristine versions from upstream (only change is restoration of upstream CVS keyword expansions). * libmd5-rfc/md5main.c: New file. * Makefile.ami (setup_SOURCES): Edit file paths. * download.cc, install.cc: Edit include paths. 2004-11-11 Max Bowsher * dialog.cc (fatal): Make capable of handling a passed-in error code, as an alternative to calling GetLastError(). * dialog.h (fatal): Adjust prototype as above. * mount.cc (create_mount): Use the above to correctly report errors. 2004-10-28 Max Bowsher * LogFile.cc (LogFile::getFileName), splash.cc (SplashPage::Create), threebar.cc (ThreeBarProgressPage::SetBar2): Migrate from cistring and string resources to String and string literals. * localdir.cc: Remove unneeded #include of "cistring.h". * cistring.cc, cistring.h: Remove this now-redundant class. * Makefile.am: Remove mention of the above removed files. * res.rc, resource.h: Remove obsolete strings and IDs, both those obseleted by and obselete before the above changes. * res.rc: Merge the 2 adjacent STRINGTABLEs. 2004-10-27 Max Bowsher * Makefile.am (setup_SOURCES): Add "RECTWrapper.h". It was missing. 2004-10-25 Bas van Gompel * package_source.cc (packagesource::set_canonical): Fix one-off in 'base' when ini is in same dir as package. 2004-10-25 Max Bowsher * main.cc (next_dialog): Remove this legacy global variable. * download.cc (do_download_thread): Return a value instead of setting a global variable, then returning void. (do_download_reflector): Look for the next dialog code as a return value instead of a global variable. 2004-10-25 Max Bowsher * port.h: Remove this redundant file - all contained definitions are duplicated in "win32.h". * Makefile.am, UserSetting.cc, UserSettings.cc, archive.cc, archive_tar.cc, archive_tar_file.cc, choose.cc, compress.cc, compress_bz.cc, compress_gz.cc, desktop.cc, find.cc, fromcwd.cc, iniparse.y, install.cc, io_stream_cygfile.cc, io_stream_file.cc, main.cc, netio.cc, site.cc, version.cc: Remove all references to "port.h". 2004-10-25 Max Bowsher Fix compilation with w32api 3.1 and later. * ControlAdjuster.h, RECTWrapper.h, cistring.h, propsheet.h, window.cc, window.h: Include "win32.h" not directly. * win32.h (WINBASEAPI): Define to empty string. 2004-09-13 Igor Pechtchanski * script.cc (run): Kill stdin when running scripts. 2004-09-01 Max Bowsher * Makefile.am: Oops. Unwanted keyword expansion ate the code of the previous commit. Restore the code, escaped to not look like a keyword. 2004-09-01 Max Bowsher * Makefile.am: Simplify the shell incantation for getting the revision of ChangeLog from grep-and-sed to just sed. 2004-08-31 Max Bowsher Attain GCC 3.4 compatibility. * PackageSpecification.h (PackageSpecification): Make the unnecessarily private copy-constructor public. 2004-08-30 Max Bowsher Rework the implementation of not including -Werror for specific files, to a way that does not require hardcoding modified automake output back into its input. * Makefile.am (AM_CXXFLAGS, BASECXXFLAGS): Seperate out -Werror. (autoload.o): Drop this rule, -finline-functions is no longer required and -Werror is acceptable here now we have __attribute__ ((used)). (WARNONLY_CFLAGS, inilex.o): Drop these. (EXTRA_PROGRAMS): Add a fake "warnonly" program. (warnonly_CXXFLAGS): Set to the $(BASECXXFLAGS). (warnonly_SOURCES): Set to "inilex.cc". (EXTRA_setup_SOURCES): Set to $(warnonly_SOURCES). (setup_SOURCES): Remove "inilex.cc". (setup_LDADD): Add "warnonly-inilex.o". 2004-08-30 Max Bowsher Move closer to GCC 3.4 compatibility. * IOStreamProvider.h, io_stream_cygfile.cc, io_stream_cygfile.h, io_stream_file.cc: Do not incorrectly use "enum" after it has been hidden inside a typedef. * archive.h: In "virtual func() = 0;", the 0 is a language construct, not some symbol that might evaluate to 0, and gcc 3.4 enforces this. * autoload.c (DllInfo.name): Silence warning by making const. (DLL, autoload_common): __attribute__ ((used)) is now required to prevent gcc being over-eager in it's optimization, and removing these seemingly-unused (used only from assembly) functions. Silences some warnings, too. * Makefile.am (AM_CXXFLAGS, AM_CFLAGS): The options -Wstrict-prototypes -Wmissing-prototypes do not apply to C++ and g++ 3.4 complains about them. 2004-08-29 Max Bowsher * Exception.h: Reformatting, #include more, remove incorrect and less-than-useful comments. (TOPLEVEL_CATCH): New preprocessor macro. * LogFile.cc (LogFile::operator()): Throw an exception object, not a char* string. Wrap the top-level of each thread (including the main thread) in a try...catch block, in order to display a useful error message if an exception is not caught. * download.cc (do_download_reflector): Here ... * ini.cc (do_ini_thread_reflector): ... and here ... * install.cc (do_install_reflector: ... and here ... * main.cc (main): ... and here ... * postinstall.cc (do_postinstall_thread): ... and here ... * site.cc (do_download_site_info_thread): ... and here! * msg.h: Include a missing header requirement. * res.rc (IDS_UNCAUGHT_EXCEPTION, IDS_UNCAUGHT_EXCEPTION_WITH_ERRNO): New strings. * resource.h (IDS_UNCAUGHT_EXCEPTION) (IDS_UNCAUGHT_EXCEPTION_WITH_ERRNO): New IDs. 2004-08-28 Max Bowsher * res.rc (IDS_WINDOW_INIT_BADMSG): New string. * resource.h (IDS_WINDOW_INIT_BADMSG): New string resource ID. * window.cc (Window::FirstWindowProcReflector): Convert an abort() into a descriptive error. 2004-08-24 Max Bowsher The Doug Lee replacement malloc was no longer hooked up with the buildsystem in any way. Pruning the remaining unused file. * dlmalloc.c: Removed. 2004-08-18 Max Bowsher "librsync is not wire-compatible with rsync 2.x, and is not likely to be in the future." -- librsync.sourceforge.net So, it is of no practical use to setup. Therefore, removing all rsync related files and code from setup. * rsync: Directory removed. * Makefile.am: Remove rsync support from the buildsystem. * configure.in: Ditto. * README: Since it seems vanishingly unlikely that it will ever happen, remove rsync support from the wishlist. * io_stream_rsync.cc: Remove. * io_stream_rsync.h: Remove. 2004-04-25 Robert Collins * package_meta.cc (packagemeta::set_requirements): fix problem with libpcre0 not being pulled in automatically. 2004-04-25 Robert Collins * IniDBBuilderPackage.cc (dumpAndList): Move out to packageversion for reuse. * package_meta.cc (packagemeta::logAllVersions): log dependencies. * package_version.cc (packageversion::depends): provide a const accessor. (dumpAndList): Moved from INIDBBuilder.cc. * package_version.h: declare new method and function. 2003-12-21 Robert Collins * main.cc (main): Update to head libgetopt++ syntax. 2003-11-2 Robert Collins * ControlAdjuster.h (ControlPosition::CP_MIDDLE): Rename to CP_CENTERED. * ControlAdjuster.cc: Ditto. 2003-10-31 Frank Richter * localdir.cc (OnNext): When SelectDirectoryA() fails, display a message with the error returned from the system instead of just 'could not change dir'. Also, offer the user to 'Retry', 'Ignore' the error or 'Abort' the directory change. 2003-10-31 Frank Richter * propsheet.cc (PropSheetWndProc): Don't do child resizing if a the window gets minimized. Otherwise some glitches (e.g. wrong child sizes) occur. Added support for WM_GETMINMAXINFO. Prevents the property sheet from getting smaller than the original size. 2003-11-1 Robert Collins * ControlAdjuster.h (ControlDimension): Add. (ControlAdjuster): Factor adjust functionality into ControlInfo. * ControlAdjuster.cc (ControlAdjuster::adjust): Ditto. (ControlAdjuster::ControlInfo::adjust): Ditto. 2003-10-31 Igor Pechtchanski * ControlAdjuster.h (ControlPosition): New enum type. (ControlInfo::horizontalPos, ControlInfo::verticalPos): New instance variables. (ControlInfo::anchorLeft, ControlInfo::anchorTop, ControlInfo::anchorRight, ControlInfo::anchorBottom): Remove. * ControlAdjuster.cc (ControlAdjuster::AdjustControls): Switch to using position specifiers instead of anchors. * choose.cc (ChooserControlsInfo): Ditto. * proppage.cc (DefaultControlsInfo): Ditto. * propsheet.cc (PropSheetControlsInfo): Ditto. * site.cc (SiteControlsInfo): Position specifiers for site selection dialog controls. * threebar.cc (ThreeBarControlsInfo): Position specifiers for progress dialog controls. 2003-10-27 Ralf Habacker * main.cc (HelpOption): New instance. (main): Added help command line option handling. * localdir.cc (LocalDirOption): New instance. (LocalDirSetting::load): allow setting localdir from command line. 2003-10-16 Frank Richter * ControlAdjuster.cc: New file, helper to move elements of a dialog along when the it's resized. * ControlAdjuster.h: Ditto. * Makefile.am: Add new source files. * proppage.cc (PropertyPage::DialogProc): Adjust some common controls (Cygwin icon top right, separator below) when a page is resized. (PropertyPage::PropertyPage): Dito. * propsheet.cc (IsDialog): New. Test whether a window is a dialog. Used internally by resize logic. (EnumPages): New. Used internally by resize logic: resizes the property sheet's individual pages. (PropSheetWndProc): New. Hook for the propery sheet window proc. (PropSheetProc): More style tweaks, add maximize box and thick border as well. Hook into the property sheet's window proc. (PropSheet::AdjustPageSize): New. Adjust the metrics of a single page to fit nicely into the property sheet. Part of resize logic. * res.rc (All dialogs): The top-right Cygwin icon and top separator now have IDs distinct from IDC_STATIC, so their metrics can be adjusted upon a resize. Also, all those Cygwin icons are at the exact same spot now. * choose.cc (ChooserPage::ChooserPage): Now the controls on the chooser page move/size when the page size is changed. * choose.h: Dito. 2003-10-23 Jerry D. Hedden * ConnectionSetting.cc (ConnectionSetting::load): Load proxysettings. (ConnectionSetting::save): Save proxy settings. 2003-10-07 Robert Collins * proppage.h (PropertyPage::wantsActivation): const correctness fix. 2003-08-19 Max Bowsher * win32.h: Define NOMINMAX only if not already defined - because libstdc++-v3 3.3.1 defines NOMINMAX itself. 2003-08-03 Max Bowsher * ChangeLog: Fix broken line-wrapping throughout. Clarify that "Ran automake" in 2003-07-26 entry was in bz2lib and zlib subdirs. 2003-08-03 Gary R. Van Sickle * propsheet.cc (Copyright): Update copyright dates. (PropSheet::PropSheet): Remove NumPropPages initialization. (PropSheet::CreatePages): Use PropertyPages.size() instead of NumPropPages. (PropSheet::Create): Ditto. (PropSheet::AddPage): Change to use new PropertyPages std::vector<>. * propsheet.h (Copyright): Update copyright dates. (File Scope): Include . (PropSheet::PropertyPages): Change from array to vector<>. (PropSheet::NumPropPages): Remove. 2003-08-02 Gary R. Van Sickle Changes modified by Max Bowsher * splash.cc (Copyright): Update copyright dates. (SplashPage::OnInit): Remove call to SetDlgItemFont(). Now handled in base class. * proppage.h (PropertyPage::setTitleFont): Declare. * proppage.cc (Copyright): Update copyright dates. (PropertyPage::DialogProc WM_INITDIALOG): Move all font setting code, including that from splash.cc into new function... (PropertyPage::setTitleFont): Create, using moved code. Change font "MS Sans Serif" to "MS Shell Dlg" in line with recent res.rc change. Set font for IDC_STATIC_WELCOME_TITLE here, to allow easy re-use of style for future "Finished" page. 2003-08-02 Gary R. Van Sickle * propsheet.cc: Include "resource.h". (PropSheet::Create): Add the Cygwin icon in the left of the title bar. 2003-08-01 Gary R. Van Sickle * proppage.cc (PropertyPage::FirstDialogProcReflector): Modify comment. 2003-08-01 Gary R. Van Sickle * proppage.h (Copyright): Update copyright dates. (PropertyPage): Document OnNext and OnBack. 2003-07-31 Gary R. Van Sickle * proppage.cc (PropertyPage::Create): Use more self-documenting MAKEINTRESOURCE() instead of cast to LPCSTR. 2003-07-31 Robert Collins * README: Mark completed items complete. 2003-07-31 Pierre Humblet * main.cc (set_default_sec): Set token owner from token user. Always try to set the token primary group to Users or Admins. 2003-07-30 Igor Pechtchanski * String++.h (String::replace): New instance functions. * String++.cc (String::replace): Implement. * filemanip.cc (backslash): Change to use String::replace. * desktop.cc (make_cygwin_bat): Escape '%' in path. 2003-07-30 Igor Pechtchanski * String++.h (TOSTRING): New macro. * UserSettings.cc (UserSettings::deRegisterSetting): Fix erroneous __LINE__/__FILE__ usage. * download.cc (validateCachedPackage, check_for_cached): Ditto. * geturl.cc (getUrlToStream): Ditto. * install.cc (md5_one): Ditto. 2003-07-30 Max Bowsher * ini.cc (do_ini_thread): Return bool. (do_ini_thread_reflector): Put returned bool in lParam. * threebar.cc (WM_APP_SETUP_INI_DOWNLOAD_COMPLETE): Rework for new meaning of lParam. Replace erroneous use of do_fromcwd with SetActivePageByID (IDD_SOURCE). 2003-07-30 Robert Collins * ConnectionSetting.cc: New file, persist connection type selection. * ConnectionSetting.h: Ditto. * net.cc: Hold a ConnectionSetting instance to trigger the logic. (NetPage::OnInit): Don't force net_method to any value. * Makefile.am: Add new source files. 2003-07-30 Robert Collins * SourceSetting.cc: New file, persist source selection. * SourceSetting.h: Ditto. * source.cc: Hold a Source setting instance to trigger the logic. * Makefile.am: Add new source files. 2003-07-30 Robert Collins * UserSettings.h (UserSettings::settingFileForLoad): Extracted method from LocalDirSetting::load(). * UserSettings.cc (UserSettings::settingFileForLoad): Ditto. * UserSettings.h (UserSettings::settingFileForSave): Extracted method from LocalDirSetting::save(). * UserSettings.cc (UserSettings::settingFileForSave): Ditto. * localdir.cc (LocalDirSetting::load): Extract location logic to UserSettings. (LocalDirSetting::save): Extract location logic to UserSettings. * site.cc (SiteSetting::getSavedSites): Use UserSettings::settingFileForLoad. (SiteSetting::save): Use UserSettings::settingFileForSave. 2003-07-30 Robert Collins * PickView.cc: Adjust ::GetClientRect(..) to the inherited one throughout. 2003-07-29 Max Bowsher Based on a patch by Gary R. Van Sickle . * AntiVirus.cc (AntiVirusPage::wantsActivation): Define. * AntiVirus.h (AntiVirusPage::wantsActivation): Declare. * localdir.cc (LocalDirPage::OnBack): Remove logic subsumed by RootPage::wantsActivation. * proppage.cc (PropertyPage::DialogProc): Call wantsActivation(), and skip to next page in sequence if activation is refused. * proppage.h (PropertyPage::wantsActivation): Default implementation. * root.cc (RootPage::wantsActivation): Define. * root.h (RootPage::wantsActivation): Declare. * source.cc: Don't include "AntiVirus.h". (SourcePage::OnNext): Remove logic subsumed by RootPage::wantsActivation. (SourcePage::OnBack): Remove logic subsumed by AntiVirusPage::wantsActivation. * splash.cc: Don't include "AntiVirus.h" or "dialog.h". (SplashPage::OnNext): Remove - subsumed by AntiVirusPage::wantsActivation. * splash.h (SplashPage::OnNext): Remove declaration. 2003-07-29 Robert Collins * PickView.h (PickView::refresh): New method. * PickView.cc (PickView::refresh): Extracted from various ChooserPage callers. * choose.cc: Use PickView::refresh wherever possible. 2003-07-29 Robert Collins * choose.h (ChooserPage::createListView): Remove last parameter. (ChooserPage::getDefaultListViewSize): Extracted method. * choose.cc (ChooserPage::createListView): Remove last parameter. (ChooserPage::getDefaultListViewSize): Extracted method. 2003-07-29 Robert Collins * choose.cc (ChooserPage::createListView): Remove unneeded parameter. * choose.h: Ditto. 2003-07-29 Gary R. Van Sickle * dialog.h (do_fromcwd): Change function declaration. * fromcwd.cc (do_fromcwd): Change return type to bool. Eliminate use of next_dialog, return true or false instead. * localdir.cc (LocalDirPage::OnNext): Use do_fromcwd()'s return value instead of next_dialog. 2003-07-29 Robert Collins * package_db.h (packagedb::fillMissingCategory): Move from ChooserPage. * choose.h (ChooserPage::fillMissingCategory): Delete. * package_db.cc (packagedb::fillMissingCategory): Move from ChooserPage. * choose.cc (ChooserPage::fillMissingCategory): Delete and adjust callers. 2003-07-29 Robert Collins * PickView.h (CATEGORY_EXPANDED): Move from choose.h (CATEGORY_COLLAPSED): Move from choose.cc. (PickView::setViewMode): Move from ChooserPage. * choose.h (CATEGORY_EXPANDED): Delete. (CATEGORY_COLLAPSED): Delete. (ChooserPage::setViewMode): Delete. * PickView.cc (PickView::setViewMode): Move from ChooserPage. * chooser.cc (ChooserPage::setViewMode): Delete, and adjust callers throughout. 2003-07-28 Gary R. Van Sickle * AntiVirus.cc (AntiVirusPage::OnNext): Do not explicitly specify the page to display next, since it follows in the default page ordering anyway. 2003-07-28 Max Bowsher * dialog.h: (NEXT): Remove obsolete macro. * site.cc (save_dialog): Remove use of NEXT(), and non-functional unnecessary error handler. 2003-07-28 Robert Collins * package_meta.h (packagemeta::addToCategoryAll): Declare. * package_meta.cc (packagemeta::addToCategoryAll): New method, separated to allow clear iteration. * choose.cc (ChooserPage::fillMissingCategory): BUGFIX: "all" is meant to be added unconditionally. 2003-07-27 Robert Collins * Generic.h: New file, home for generic programming tools. (visit_if): Move here from package_meta.cc. Adjust to be fully parameterised. * package_meta.h (packagemeta::hasNoCategories): Query for generic programming. (packagemeta::setDefaultCategories): set categories for packages with none. * package_meta.cc: Move visit_if out. Adjust users for full paramterised operation. (packagemeta::hasNoCategories): Implement. (packagemeta::setDefaultCategories): Implement. * choose.cc (ChooserPage::fillMissingCategory): Use visit_if to reduce duplicate code. (ChooserPage::setExistence): Delete. * choose.h (ChooserPage::setExistence): Rename to packagedb::setExistence. * package_db.h (packagedb::setExistence): Declare. * package_db.cc (packagedb::setExistence): Copy from choose.cc 2003-07-27 Robert Collins * localdir.h (LocalDirPage::OnInit): Remove. * localdir.cc (LocalDirPage::OnInit): Move to LocalDirSetting ::load(). (LocalDirSetting::load): Copied from LocalDirPage::OnInit. * site.h (SitePage::OnInit): Remove. (SitePage::getSavedSites): New member, replaces get_saved_sites. (SitePage::registerSavedSite): New member, replaces register_saved_site. * site.cc (SitePage::OnInit): Move to SiteSetting::load(). (SiteSetting::load): Copied from SitePage::OnInit. (SitePage::getSavedSites): Renamed from get_saved_sites. (SitePage::registerSavedSite): Renamed from register_saved_site. (do_download_site_info_thread): Don't look at the list size for determining if the download was successful. 2003-07-27 Robert Collins * choose.h (ChooserPage::setViewMode): Remove HWND from signature. (ChooserPage::defaultTrust): Ditto. Move to PickView. (ChooserPage::ifChecked): Use Window helper function IsButtonChecked. * choose.cc (ChooserPage::setViewMode): Use chooser->GetHWND() throughout. Update all callers with new signature. (ChooserPage::defaultTrust): Ditto. Move to PickView. * PickView.h (PickView::defaultTrust): Declare. * PickView.cc (PickView::defaultTrust): Copy from chooser.cc. 2003-07-27 Robert Collins * PickView.h (PickView::lv): Eliminate. * PickView.cc (PickView::init): Replace use of lv with GetHWND(). (PickView::list_click): Ditto. * choose.h (ChooserPage::lv): Eliminate. * choose.cc: Replace lv with chooser->GetHWND() throughout. 2003-07-27 Robert Collins * PickView.h (PickView::chooser): Eliminate. (PickView::list_vscroll): Make non-static. (PickView::list_hscroll): Ditto. (PickView::list_click): Ditto. (PickView::paint): Ditto. * PickView.cc (PickView::list_vscroll): Eliminate use of PickView::chooser. (PickView::list_hscroll): Ditto. (PickView::list_click): Ditto. (PickView::paint): Ditto. * choose.cc (Chooser::createListView): Eliminate use of PickView::chooser. 2003-07-27 Robert Collins * PickView.h (PickView): Inherit from Window. (PickView::RegisterWindows): Move from ChooserPage. (PickView::listview_proc): Likewise. (PickView::paint): Ditto. (PickView::list_click): Ditto. (PickView::list_hscroll): Ditto. (PickView::list_vscroll): Ditto. (PickView::lv): Ditto. (PickView::chooser): Ditto. (PickView::Create): Override Windows::Create as we migrate. (PickView::registerWindowClass): Renamed RegisterWindows. (PickView::WindowClassAtom): Prevent double registration. (PickView::init): Declare. * PickView.cc: Adjust for new inheritance. (PickView::RegisterWindows): Move from ChooserPage. (PickView::listview_proc): Likewise. (PickView::paint): Ditto. (PickView::list_click): Ditto. (PickView::list_hscroll): Ditto. (PickView::list_vscroll): Ditto. (PickView::lv): Ditto. (PickView::chooser): Ditto. (PickView::Create): Introduce stub. (PickView::RegisterWindows): Rename (PickView::init): Extracted from constructor to allow reordering. * chooser.h (ChooserPage::registerWindows): Rename to PickView::RegisterWindows. (ChooserPage::listview_proc): Likewise. (ChooserPage::paint): Ditto. (ChooserPage::list_click): Ditto. (ChooserPage::list_hscroll): Ditto. (ChooserPage::list_vscroll): Ditto. (ChooserPage::lv): Duplicate into PickView, observe as non-static. (ChooserPage::chooser): Ditto. * chooser.cc (ChooserPage::registerWindows): Delete. (ChooserPage::listview_proc): Ditto. (ChooserPage::paint): Ditto. (ChooserPage::list_click): Ditto. (ChooserPage::list_hscroll): Ditto. (ChooserPage::list_vscroll): Ditto. (ChooserPage::createListView): Create() on PickView. * window.h (Window::RegisterWindowClass): Make virtual to allow Create to become a Template Method, and rename to registerWindowClass as it's not static. * window.cc (Window::registerWindowClass): Ditto. (Window::FirstWindowProcReflector): BUGFIX: Set window handle to prevent races with the window procedure. 2003-07-27 Robert Collins * choose.cc (set_view_mode): Rename to ChooserPage::setViewMode. (default_trust): Rename to ChooserPage::defaultTrust. (fill_missing_category): Rename to ChooserPage::fillMissingCategory. (set_existence): Rename to ChooserPage::setExistence. (register_windows): Rename to ChooserPage::registerWindows. (listview_proc): Rename to ChooserPage::listview_proc. (paint): Rename to ChooserPage::paint. (list_click): Rename to ChooserPage::list_click. (list_hscroll): Rename to ChooserPage::list_hscroll. (list_vscroll): Rename to ChooserPage::list_vscroll. (lv): Rename to ChooserPage::lv. (chooser): Rename to ChooserPage::chooser. * choose.h (ChooserPage::setViewMode): Declare. (ChooserPage::defaultTrust): Declare. (ChooserPage::fillMissingCategory): Declare. (ChooserPage::setExistence): Declare. (ChooserPage::registerWindows): Declare. (ChooserPage::listview_proc): Declare. (ChooserPage::paint): Declare. (ChooserPage::list_click): Declare. (ChooserPage::list_hscroll): Declare. (ChooserPage::list_vscroll): Declare. (ChooserPage::lv): Declare. (ChooserPage::chooser): Declare. 2003-07-27 Robert Collins * choose.cc (create_listview): Use for_each instead of explicit iteration. (create_listview): Rename to ChooserPage::createListview. * package_meta.h (packagemeta::set_requirements): Explicitly separate the 1 and 2 parameter versions. 2003-07-27 Robert Collins * String++.h (String::operator !=): Declare for char * and String. * String++.cc (String::operator !=): Implement. * package_meta.cc(StringConcatenator): Move above all users. (_visit_if): Predicate support for visitors. (packagemeta::getReadableCategoryList): Refactor to use StringConcatenator with a predicate. * choose.h: Remove unneeded c++ guards. 2003-07-26 Robert Collins * choose.cc (scan_downloaded_files): Rename to packagemeta::ScanDownloadedFiles. (scanAVersion): Rename to packageversion::scan. (GetParentRect): Rename to ChooserPage::getParentRect. * choose.h (ChooserPage::getParentRect): Declare. * package_meta.h (packagemeta::ScanDownloadedFiles): Declare. * package_version.h (packageversion::scan): Declare. * package_version.cc (packageversion::scan): Move from choose.cc * package_meta.cc (packagemeta::ScanDownloadedFiles): Move from choose.cc 2003-07-26 Robert Collins * choose.cc (ChooserPage::OnNext): log before starting activity threads. (ChooserPage::OnInit): Remove temporary variable frame. (ChooserPage::setPrompt): Extract method from OnInit. (choose_inst_text): Remove unused variable. * choose.h(ChooserPage::setPrompt): Declare * res.rc (IDD_CHOOSE): Bugfix: the chooser was setting a non-present caption. 2003-07-26 Robert Collins Remove package specific code from choose.cc. Update copyrights where appropriate. * choose.cc(ChooserPage::OnNext): Extract logging to packagemeta::logSelectionStatus. * package_meta.cc(packagemeta::logSelectionStatus): Extract from ChooserPage::OnNext. (StringConcatenator): helper for logSelectionStatus. (action_caption): Make const. * package_meta.h(packagemeta): Declare logSelectionStatus. (packagemeta::action_caption): Make const. * package_version.cc(packageversion::sourcePackage): Make const. * package_version.h(packageversion::sourcePackage): Make const. 2003-07-26 Robert Collins * choose.cc: Update copyright. (ChooserPage::keepClicked): Extracted from OnMessageCmd. (ChooserPage::changeTrust): Ditto. * choose.h (ChooserPage): Declare keepClicked and changeTrust. (ChooserPage::ifChecked): Extracted from OnMessageCmd. * package_meta.h (SetRequirement): Adapter for visiting package collections. 2003-07-26 Max Bowsher * tests/.cvsignore: New file, listing Makefile.in. 2003-07-26 Robert Collins Save used local cache dir from initial run of setup, so the user doesn't need to retype it. * localdir.h (LocalDirSetting): UserSetting class for the local cache dir. * localdir.cc (LocalDirSetting::save): Replace save_local_dir, and update callers. 2003-07-26 Robert Collins Save used site from initial run of setup, so the user doesn't need to retype it. * main.cc (main): Load and save all user settings. * site.cc (SiteSetting::save): Migrate logic from save_site_url. (SitePage::OnNext): Use ChosenSites.save() to remove uneeded save_site_url call. (save_site_url): Delete. * site.h (save_site_url): Remove declaration. * .cvsignore: Update autoconf generated files. 2003-07-26 Robert Collins * tests/Makefile.am: Driver for test suite. * tests/UserSettingTest.cc: Test UserSetting interface. * tests/UserSettingsTest.cc: Test UserSettings interface. * Makefile.am: Add the tests dir to recurse into. * configure.in: Ditto. * UserSetting.h: Add load and save methods to allow global serialisation. Add explicit copy and assignment operators to prevent synthetics. Make the constructor protected to prevent direct instantiation. * UserSettings.h (UserSettings::loadAllSettings): New method. (UserSettings::savedAllSettings): New method. * UserSettings.cc: Implement new methods. * site.cc: Implement stubs for new required UserSetting methods. * site.h (ChosenSite): Ditto. * bz2lib/: Ran automake. * zlib/: Ran automake. 2003-07-23 Max Bowsher * desktop.cc (DesktopSetupPage::OnBack): Remove obsolete use of NEXT(). * root.cc (RootPage::OnNext): Ditto. (RootPage::OnBack): Ditto. * install.cc (do_install_thread): Remove obsolete use of next_dialog. * main.cc (main): Ditto. * postinstall.cc (do_postinstall_thread): Ditto. 2003-07-23 Max Bowsher * dialog.h (do_choose, do_desktop, do_local_dir, do_net, do_other) (do_root, do_site, do_source, do_splash): Remove declarations, since these functions no longer exist. 2003-07-23 Gary R. Van Sickle * choose.cc (initialized): Remove obsolete file scope variable. 2003-07-18 Max Bowsher * res.rc: Make caption of every dialog page begin with "Cygwin Setup". This aids recognition when minimized. Prompted by Gary R. Van Sickle . 2003-07-10 Jeremy White * mount.cc, root.cc, site.cc: Make StringOptions required, thereby making --longopt behave as a newbie would expect. 2003-07-08 Max Bowsher * LogFile.h, cistring.h, dialog.h, diskfull.h, filemanip.h, geturl.h, hash.h, log.h, mkdir.h, mklink2.h, mount.h, msg.h, netio.h, nio-file.h, nio-ftp.h, nio-http.h, nio-ie5.h, port.h, simpsock.h, state.h, version.h: Add inclusion guard. * root.h: Standardize naming of inclusion guard. 2003-06-23 Max Bowsher * AntiVirus.h, Exception.h, FilterVisitor.h, FindVisitor.h, IOStreamProvider.h, IniDBBuilder.h, IniDBBuilderPackage.h, IniParseFeedback.h, IniParseFindVisitor.h, LogSingleton.h, MD5++.h, PackageSpecification.h, PackageTrust.h, PickCategoryLine.h, PickLine.h, PickPackageLine.h, PickView.h, RECTWrapper.h, ScanFindVisitor.h, String++.h, UserSetting.h, UserSettings.h, archive.h, archive_tar.h, category.h, choose.h, compress.h, compress_bz.h, compress_gz.h, cygpackage.h, desktop.h, download.h, find.h, ini.h, io_stream.h, io_stream_cygfile.h, io_stream_file.h, io_stream_memory.h, io_stream_rsync.h, localdir.h, net.h, package_db.h, package_meta.h, package_source.h, package_version.h, proppage.h, propsheet.h, script.h, site.h, source.h, splash.h, threebar.h, win32.h, window.h: Standardize naming and placement of inclusion guards. 2003-06-22 Benjamin Riefenstahl * res.rc (all dialogs): Change font from "MS Sans Serif" to "MS Shell Dlg". 2003-06-22 Max Bowsher * Makefile.am: Clarify comment. Derive AM_CFLAGS from AM_CXXFLAGS, rather than the other way around. (AM_CXXFLAGS): Remove -Wmissing-declarations - it is a C-only warning. (AM_CFLAGS): Add -Winline, and -Wmissing-declarations. 2003-06-22 Max Bowsher * rfc1738.cc (rfc1738_do_escape): Eliminate redundant conditional. 2003-06-05 Gary R. Van Sickle * window.h (SETUP_WINDOW_H): Rename multi-include guard. (Copyright): Update. (RECTWrapper): New forward declaration. (Window::Create): Move. (Window::MoveWindow): New overload declaration. * window.cc: (RECTWrapper.h) Include. (Copyright): Update. (Window::FirstWindowProcReflector): Use reinterpret_cast<> instead of C-style casts. (Window::MoveWindow): New overload. 2003-05-31 Max Bowsher * res.rc: Resize title controls to fully fill available width. 2003-05-07 Gary R. Van Sickle * RECTWrapper.h: New file. 2003-04-12 Robert Collins * script.cc (Script::extension): Extract method from Script::run. (Script::run): Extract extension generation to Script::extension. * script.h (Script::extension): Declare. 2003-04-12 Robert Collins * script.cc (run_script): Remove. (try_run_script): Inline method run_script. * script.h (run_script): Remove. 2003-04-12 Robert Collins * postinstall.cc (RunScript::operator()): Use new run syntax. * script.h (Script::run): Eliminate to_log parameter. * script.cc (Script::run): Ditto. (run_script): Use new run syntax. 2003-04-12 Robert Collins * script.cc (Script::run): Eliminate temp variable 'f2'. Rename temp variable 'f2' to 'windowsName' for increased clarity. 2003-04-12 Robert Collins * script.cc (Script::run): Eliminate temp variable 'fname'. 2003-04-12 Robert Collins * script.cc (Script::run): Eliminate temp variable 'dir'. 2003-04-12 Robert Collins * script.cc (run_script): Always pass TRUE to Script::run. * script.h (run_script): Remove optional to_log parameter. 2003-04-12 Robert Collins * script.cc (run_script): Move functionality into Script. (Script::run): Absorb run_script. 2003-04-12 Robert Collins * PickCategoryLine.cc (PickCategoryLine::click): Tell packagemeta we are about to perform a visit. * PickPackageLine.cc (PickPackageLine::click): Tell packagemeta we are about to perform a visit. * package_db.cc (packagedb::markUnVisited): Convenience wrapper - mark all packages as unvisited. * package_db.h (packagedb::markUnVisited): Declare. * package_meta.cc (packagemeta::PrepareForVisit): New static method to prepare for a loop-free visit. (packagemeta::packagemeta): Adjust for new member. (packagemeta::set_requirements): Only visit a node once. (packagemeta::visited): Get and Set methods for new member visited_. * package_meta.h (packagemeta::PrepareForVisit): Declare. (packagemeta::visited): Declare. (packagemeta::visited_): Declare. 2003-04-07 Max Bowsher * download.cc: Add command line option to suppress MD5 checks. (validateCachedPackage): Test option and possibly skip. 2003-04-02 Robert Collins Merge in setup-200303-troubleshooting fixes. 2003-04-02 Robert Collins * main.cc (NTSecurity::setDefaultDACL): Reinstate commented code. (NTSecurity::setDefaultSecurity): Ditto. 2003-04-02 Robert Collins * main.cc (NTSecurity::setDefaultDACL): Use MS calculations for ACL buffer sizing. 2003-04-02 Robert Collins * main.cc (NTSecurity::setDefaultDACL): Sanity check memory allocation. 2003-04-02 Robert Collins * main.cc (NTSecurity::setDefaultDACL): Adjust commented code for auto_ptr use. 2003-04-02 Robert Collins * main.cc (NTSecurity::NoteFailedAPI): Helper function. Use throughout NTSecurity routines. (NTSecurity::setDefaultDACL): Use dynamic memory for ACL storage. 2003-04-02 Robert Collins * main.cc (NTSecurity::setDefaultDACL): Disable ~ 50% of remaining active code. 2003-04-02 Robert Collins * main.cc (NTSecurity::GroupInfo): Extract group query code. (NTSecurity::setDefaultDACL): Disable ~ 50% of code. 2003-04-02 Robert Collins * main.cc (NTSecurity::setDefaultSecurity): Disable ~ 50% of security code. 2003-04-01 Robert Collins * main.cc (NTSecurity::setDefaultSecurity): Remove double declaration of sz. User TokenGroupCollection to abstract token searching logic, eliminate isadmin and isuser temporary variables. (TokenGroupCollection): New class for querying token group information. 2003-04-01 Robert Collins * main.cc (NTSecurity::setDefaultSecurity): Extract esid initialisation. Move local variables to just before first use. SetTokenInformationFailures where being handled inconsistently. Remove assignments from if statements. (NTSecurity::esid): Rename to everyOneSID. (NTSecurity::initialiseEveryOneSID): new method. (NTSecurity::setDefaultDACL): Extract method for default DACL logic. 2003-04-01 Robert Collins * main.cc (SIDWrapper): Manage SID memory. (HANDLEWrapper): Likewise for HANDLES. (NTSecurity): Worker class for set_default_sec(). (set_default_sec): Move body into NTSecurity::setDefaultSecurity(). (NTSecurity::setDefaultSecurity): Eliminate goto out: via memory managing objects. 2003-04-01 Gary R. Van Sickle * cygwin.ico: Added two new resolutions, 64x64 and 72x72. 2003-03-29 Robert Collins * GUIDELINES: New file documenting code guidelines. 2003-03-26 Max Bowsher * .cvsignore: Add cfgaux. 2003-03-26 Robert Collins * package_version.cc (_defaultversion::accessible): Override and make always false. (_packageversion::accessible): Fix a couple of logic bugs resulting in incorrect trues. * package_version.h (_packageversion::accessible): Make virtual. 2003-03-25 Igor Pechtchanski * threebar.h (WM_APP_START_POSTINSTALL): New message. (WM_APP_POSTINSTALL_THREAD_COMPLETE): New message. * threebar.cc (ThreeBarProgressPage::OnMessageApp): Add handling for WM_APP_START_POSTINSTALL and WM_APP_POSTINSTALL_THREAD_COMPLETE. * install.cc (do_install_thread): Set next_dialog to IDD_S_POSTINSTALL. * desktop.cc (DesktopSetupPage::OnFinish): Move the do_postinstall call to ThreeBarProgressPage::OnMessageApp. * script.h (Script::fullName): New member function. (Script::run): New member function. (Script::ETCPostinstall): New static member constant. * script.cc (Script::fullName): Implement. (Script::run): Implement. (Script::ETCPostinstall): Define. (Script::isAScript): Use ETCPostinstall instead of a hardcoded string constant. (run): Enable "#if 0"'d code. * postinstall.cc (Progress): New extern variable. (RunFindVisitor::visitFile): Add script to vector instead of running. (RunFindVisitor::_scripts): New member variable. (RunScript): New helper class for use in for_each. (do_postinstall_thread): Rename do_postinstall to. Add Progress bar and text setting. Add package count. (do_postinstall_reflector): New static function. (do_postinstall): Rename to do_postinstall_thread. Create a thread instead. 2003-03-18 Igor Pechtchanski * script.cc (run): Add file_out parameter. Redirect output of subprocess to file, creating the path if necessary. Minimize the script window. (run_script): Add optional to_log boolean parameter. If to_log, redirect output to temporary file and then import it into LOG_BABBLE. (OutputLog): New helper class. (operator<<): New operation on OutputLog. * script.h (run_script): Add optional to_log parameter. * postinstall.cc (RunFindVisitor::visitFile): Instruct run_script() to log script output. (do_postinstall): Ditto. 2003-03-20 Robert Collins * package_meta.cc (packagemeta::set_action): The logic test for the default action was reversed. 2003-03-18 Igor Pechtchanski * postinstall.cc (do_postinstall): Filter out '*.done'. * FilterVisitor.h: New header file. Declare the FilterVisitor, Filter, and ExcludeNameFilter classes. * FilterVisitor.cc: New file. Implement FilterVisitor, Filter, and ExcludeNameFilter. * String++.h (String::matches): New instance function. * String++.cc (String::matches): Implement. (strmatch) Import and adapt for strings. * Makefile.am (setup_SOURCES): Add FilterVisitor.cc and FilterVisitor.h to value. 2002-03-18 Max Bowsher * LogFile.cc (LogFile::exit): Use CRT exit() instead of ExitProcess(). Use passed exit_code even if been_here. Remove incorrect _CYGWIN_ preprocessor conditional. 2003-03-16 Robert Collins * package_db.h (PackageDBConnectedIterator): Typedef for connected loop detection collection iterator. * package_db.cc (ConnectedLoopDetector): An implementation of R.E. Tarjans strongly connected set visitor algorithm. * postinstall.cc (do_postinstall): Use the new iterator for visiting postinstall scripts. 2003-03-16 Robert Collins * install.cc: Introduce Installer class. (init_dialog): Rename to Installer::initDialog. (progress): Rename to Installer::progress. (standard_dirs): Rename to Installer::StandardDirs. (uninstall_one): Rename to Installer::uninstallOne. (replace_one): Rename to Installer::replaceOne. (log_ror_failure): Rename to Installer::replaceOnRebootFailed. (log_ror_success): Rename to Installer::replaceOnRebootSucceeded. (install_one_source): Rename to Installer::installOneSource. Note script files as they are installed. * package_version.cc (packageversion::addScript): Implement. (packageversion::scripts): Implement. * package_version.h (packageversion::addScript): Record the presence of a script. * script.h (Script): New class to track scripts. * postinstall.cc (do_postinstall): Iterate through the package listed scripts before searching for scripts. * String++.cc (String::substr): Second argument needed to be signed. * String++.h (String::substr): Second argument needed to be signed. 2003-03-16 Max Bowsher * .cvsignore: Create, to ignore configure, aclocal.m4, Makefile.in and autom4te.cache. 2003-03-16 Max Bowsher * UserSettings.cc (UserSettings::Instance): Remove premature return. 2003-03-15 Robert Collins * script.cc (run): Rename variable b to createSucceeded. 2003-03-15 Igor Pechtchanski * script.cc (run): Close unneeded handles. 2003-03-15 Robert Collins * configure: Remove. * aclocal.m4: Remove. * Makefile.in: Remove. * cfgaux: Remove. * cfgaux/compile: Remove. * cfgaux/config.guess: Remove. * cfgaux/config.sub: Remove. * cfgaux/depcomp: Remove. * cfgaux/install-sh: Remove. * cfgaux/ltmain.sh: Remove. * cfgaux/missing: Remove. * cfgaux/mkinstalldirs: Remove. 2003-03-14 Igor Pechtchanski * install.cc (replace_one): Clear Text3. 2003-03-14 Igor Pechtchanski * install.cc (install_one_source): Add logging for successful replace-on-reboot scheduling. Factor out duplicate code. Set rebootneeded on Win9x. (log_ror_failure): New static function. (log_ror_success): New static function. 2003-03-14 Robert Collins * choose.cc (ChooserPage::OnNext): Fix iterator bug. Reported by Igor Pechtchanski . 2003-03-13 Max Bowsher * Update included zlib to 1.1.4. 2003-03-13 Robert Collins * install.cc (do_install_thread): Use a query method rather than temp variable do_skip. 2003-03-09 Pavel Tsekov * install.cc (do_install_thread): Use IDS_SKIP_PACKAGE instead of IDS_CORRUPT_PACKAGE when asking the user to take action if the hash verification check fails for a source package. Do not increase the value of 'total_bytes' variable if the user chooses to skip over a package, which failed the hash verification. 2003-03-10 Max Bowsher * Makefile.am: Add foreign to AUTOMAKE_OPTIONS. 2003-03-10 Robert Collins * UserSettings.cc (UserSettings::init): Really initialize all members. 2003-03-10 Robert Collins * Exception.h: Add a logic error exception id. * Makefile.am: Add new sources. * UserSettings.cc: New file. * UserSettings.h: New file. * UserSetting.cc: New file. * UserSetting.h: New file. * site.h: Add a SiteSetting as example of a UserSetting. * site.cc (ChosenSites): Add a instance of SiteSetting to trigger registration. 2003-03-10 Robert Collins * compress_bz.cc (compress_bz::read): Adjust incorrect assignment of lasterr. (compress_bz::error): Return lasterr which will indicate any error. 2003-03-10 Robert Collins * choose.h (ChooserPage): Override OnActivate. * choose.cc (ChooserPage::OnActivate): Refresh the current view when activating the dialog. 2003-03-09 Robert Collins * package_version.cc (_defaultversion::pick(bool)): Override this and do nothing. (packageversion::pick(bool): Use a mutator function rather than direct member access. * package_version.h (_packageversion::pick(bool)): Move method from _packageversion. 2003-02-16 Pavel Tsekov * install.cc (install_one_source): Remove the MD5 verification code. Delay the creation of the package listing file. (do_install_thread): Check the hashes for packages which need to be installed before the uninstall step. Allow the user to skip over packages, which fail the hash verification. (md5_one): Define new function. * res.rc (IDS_SKIP_PACKAGE): New string resource. * resource.h (IDS_SKIP_PACKAGE): New macro definition. 2003-02-16 Pavel Tsekov * Exception.h: Declare new constructor. (Exception::_message): Change the type from 'const char *' to 'class String'. (Exception::~Exception): Implement destructor (make gcc shut up). * Exception.cc: Implement new constructor. (Exception::what): Use String::cstr_oneuse (). * download.cc (validateCachedPackage): Use the constructor, which takes String& as its second argument, when throwing objects of type Exception. (check_for_cached): Ditto. * install.cc (install_one_source): Ditto. 2003-02-01 Igor Pechtchanski * res.rc (IDS_INSTALL_INCOMPLETE): Change hard-coded log filename to %s. (IDS_MISSING_LOG): New string resource. * resource.h (IDS_MISSING_LOG): New resource. * LogFile.cc (LogFile::exit): Pass log filename for LOG_BABBLE to note(). (LogFile::getFileName): New function. * LogFile.h (LogFile::getFileName): New function. 2003-02-01 Igor Pechtchanski * String++.cc: Don't include concat.h. * Makefile.am: Remove concat.cc and concat.h references. * concat.h: Remove. * concat.cc: Remove. 2003-03-09 Max Bowsher * bootstrap.sh: Add sanity check of current directory. Recurse into libgetopt++ if needed. 2003-03-09 Robert Collins * Update readme of bugs and wishes. 2003-03-05 Max Bowsher * netio.cc (save_dialog): Allocate an empty string if the password is null, so that an empty password is accepted elsewhere in setup. (check_if_enable_ok): An empty password is OK. 2003-03-05 Brian Keener * PickView.cc (PickView::views): Add two new views for Skipped packages and Installed Packages not requiring update. (PickView::set_headers () ): Ditto. (PickView::clear_view (void) ): Ditto. (PickView::views::caption () ): Add two new captions for the new views added for Skipped and Installed Packages. (PickView::scroll () ): Modify Scroll Bar property to Disable instead of disappearing when there is nothing to Scroll. * PickView.h: Add two new views for Skipped packages and Installed packages to public class view. * choose.cc (list_click () ): Modify Scroll Bar property to Disable instead of disappearing when there is nothing to Scroll. (listview_proc () ): Ditto. (set_view_mode): Add two new views for Skipped Packages and Installed Packages not requiring update. Modify Scroll Bar property to Disable instead of disappearing when there is nothing to scroll. * res.rc (IDD_CHOOSE): Reposition Radio Buttons, View Selection Button and View Button Caption to make room for longer captions. 2003-03-04 Max Bowsher * compress_gz.cc (compress_gz::construct): Fix broken checkin dated 2002-07-03. 2003-02-28 Max Bowsher * main.cc (set_default_sec): Add logging. 2003-02-28 Pierre Humblet * main.cc (set_default_dacl): Replace with set_default_sec. (set_default_sec): Attempt to change the default group to Users or Administrators if it is None, in addition to setting Everyone in the default DACL. (main): Call set_default_sec instead of set_default_dacl. 2003-01-31 Max Bowsher * install.cc (install_one_source): Fix spacing in log message. 2003-01-19 Max Bowsher * resource.h (IDC_CHOOSE_KEEP): Define. * res.rc (IDD_CHOOSE): Add radio button IDC_CHOOSE_KEEP. * choose.cc (create_listview): Add IDC_CHOOSE_KEEP to ta[]. (ChooserPage::OnMessageCmd): Handle new IDC_CHOOSE_KEEP button. 2003-01-15 Max Bowsher * mkdir.cc [_CYGWIN_]: Implement what was pseudocode. * io_stream.h [__CYGWIN__]: Don't typedef ssize_t. * proppage.h: Include "win32.h" instead of . 2003-01-15 Max Bowsher * mount.cc [MAINTAINER_FEATURES]: Add --override-registry-name option. 2002-12-11 Abraham Backus * nio-http.cc (NetIO_HTTP::NetIO_HTTP): Leave port out of Host header, unless non-default. 2002-12-11 Max Bowsher * package_meta.cc: Change 'endl' to 'endLog' as appropriate. * package_version.cc: Ditto. 2002-09-22 Max Bowsher * PickView.cc (pkg_headers): Rename column 'Category' to 'Categories'. * package_meta.h (packagemeta::getReadableCategoryList): Declare. * package_meta.cc (packagemeta::getReadableCategoryList): Implement. * PickPackageLine.cc (PickPackageLine::paint): Change to use getReadableCategoryList. Fix x2 argument to IntersectClipRect. 2002-11-25 Gary R. Van Sickle * window.h (Window::GetWindowRect): New method declaration. (Window::GetClientRect): Ditto. (Window::MoveWindow): Ditto. (Window::ScreenToClient): Ditto. * window.cc (REFLECTION_INFO): Remove. (ReflectionInfo): Remove. (Window::FirstWindowProcReflector): Use the WM_NCCREATE message instead of the horrid REFLECTION_INFO hack to hook the Window instance to the HWND instance. (Window::WindowProcReflector): Use GetWindowLongPtr() now that it's available. (Window::Create): Change to use new WM_NCCREATE reflection procedure above. (Window::GetWindowRect): New method. (Window::GetClientRect): New method. (Window::MoveWindow): New method. (Window::CenterWindow): Use new methods, also specify "::" for some non- member functions with the same names. (Window::ScreenToClient): New method. 2002-11-26 Robert Collins * AntiVirus.cc: Change the short option again! It's now 'A'. * desktop.cc (etc_profile): Remove. (make_etc_profile): Remove. (uexists): Remove. (make_passwd_group): Remove. (do_desktop_setup): Don't call removed functions. 2002-11-26 Robert Collins * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Fix my botched application of Marcel's patch. 2002-07-08 Marcel Telka * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Fixed decoding of the FTP reply (code 227) to the PASV command. 2002-11-26 Robert Collins * IniDBBuilderPackage.cc (IniDBBuilderPackage::~IniDBBuilderPackage): Sort the packages db once all the new packages have been added. * IniDBBuilderPackage.h (IniDBBuilderPackage::~IniDBBuilderPackage): Declare this. 2002-11-26 Robert Collins * choose.cc (ChooserPage::OnNext): Remove extracted comment. * package_version.cc (processOneDependency): Return once selecting a package (bugfix to prevous rework). Log if the default trust fails the package specification. 2002-11-26 Robert Collins * package_meta.h (packagemeta::logAllVersions): Declare. (packagemeta::trustLabel): Ditto. * choose.cc (ChooserPage::OnNext): Get each package to log all it's versions. * package_meta.cc (packagemeta::logAllVersions): Implement. (packagemeta::trustLabel): Ditto. 2002-11-25 Robert Collins * AntiVirus.cc: Change 'd' to 'D' to fix command line conflict. 2002-11-25 Robert Collins * AntiVirus.cc: New file. * AntiVirus.h: Ditto. * LogFile.cc: Include AntiVirus.h for class definition. (LogFile::exit): Trigger AntiVirus::AtExit(). * MakeFile.am(setup_SOURCES): Add AntiVirus files. * autoload.c: Declare Service Control Manager related API's. * main.cc: Include AntiVirus.h for class definition. (main): Add the AntiVirus page in. * res.rc: Define IDD_VIRUS. * resource.h: Define IDD_VIRUS related control ID's. * splash.h: Override OnNext. * splash.cc: Only show AntiVirus page when one has been detected. * source.cc: Ditto. 2002-11-25 Robert Collins * package_version.cc (DependencyProcessor): Create convenience class. (select): Extract version selection method. (processOneDependency): Check for a satisfactory trusted version first. 2002-11-10 Robert Collins * main.cc (main): Use the factory for LogFile. * String++.cc: Update to use sstream. (String::String): Use a ostringstream for libC++ 3.2. * LogFile.h (LogFile): Make createLogFile static. 2002-11-10 Robert Collins * main.cc (main): Oops, pass LogSingleton a reference, not a pointer. 2002-11-04 Max Bowsher * Exception.h (Exception::what): Add throw() specification, to agree with libstdc++-v3. * Exception.cc (Exception::what): Ditto. * IniDBBuilderPackage.h: Add 'std::' where needed. * PickCategoryLine.h: Ditto. * category.h: Ditto. * package_db.h: Ditto. * package_meta.h: Ditto. * package_source.h: Ditto. * package_version.h: Ditto. * site.h: Ditto. * win32.h: Define NOMINMAX before including . * package_meta.cc: Add 'using namespace std;'. (packagemeta::set_requirements): Remove default parameter values from definition (gcc3 likes them only in declaration). * package_version.cc: Add 'using namespace std;'. (packageversion::set_requirements): Remove default parameter values from definition (gcc3 likes them only in declaration). 2002-11-10 Robert Collins * compress_bz.cc: Don't include bzlib.h directly, the compress_bz.h header includes it. 2002-11-04 Max Bowsher * compress_bz.h: #undef small before including bzlib.h - if we are going to hide the fact that we are _WIN32 from bzlib, then we need to #undef small for it as well (bad windows.h clash). 2002-11-10 Robert Collins * localdir.cc: Update the extern LogFile to be a pointer. (save_local_dir): Change . to -> for the above. * main.cc (theFile): Change from an instance to a pointer. (main): Change . to -> for the above. 2002-11-10 Robert Collins * LogFile.cc: use 'std::' where needed throughout. (LogFile::createLogFile): Implement a factory for LogFile. (LogFile::LogFile): Update for use with the factory, and to handle the latest g++ library changes. (LogFile::operator()): Ditto. (LogFile::endEntry()): Ditto. * LogFile.h: Ditto. * LogSingleton.cc: Ditto. * LogSingleton.h: Ditto. 2002-11-04 Max Bowsher * String++.h: Add 'std::' where needed. 2002-11-04 Max Bowsher * IniDBBuilderPackage.cc: Add 'using namespace std;'. * IniParseFindVisitor.cc: Ditto. * LogFile.cc: Ditto. * LogSingleton.cc: Ditto. * PickView.cc: Ditto. * String++.cc: Ditto. * choose.cc: Ditto. * download.cc: Ditto. * find.cc: Ditto. * install.cc: Ditto. * io_stream.cc: Ditto. * io_stream_file.cc: Ditto. * package_db.cc: Ditto. * root.cc: Ditto. * site.cc: Ditto. 2002-11-04 Max Bowsher * LogSingleton.h: Add 'std::' where needed. 2002-11-04 Max Bowsher * archive_tar_file.cc: Include . Change min(a,b) to std::min(a,b) * compress_bz.cc: Ditto. * compress_gz.cc: Ditto. 2002-11-04 Max Bowsher * res.rc: Change a #-comment (invalid) to a //-comment. 2002-11-04 Max Bowsher * Makefile.am (%.o: %.rc): Make windres use $(CC) not hardcoded gcc. (inilint_LDADD): Remove -lstd++. (setup_LDADD): Ditto. 2002-09-22 Max Bowsher * IniDBBuilderPackage.cc: Update DEBUG code to current class layout. 2002-09-21 Robert Collins * choose.h: Add OnUnattended method. * desktop.cc (DesktopSetupPage::OnInit): Allow fine grained control via command line options. (DesktopSetupPage::OnUnattended): Implement. (DesktopSetupPage::OnMessageApp): Implement. * desktop.h (DesktopSetupPage::OnUnattended): declare. (DesktopSetupPage::OnMessageApp): Ditto. * download.cc (do_download_thread): Support unattended mode. * install.cc (do_install_thread): Ditto. * localdir.h: Ditto. * main.cc (main): Ditto. * net.cc (NetPage::OnUnattended): Ditto. * net.h (NetPage::OnUnattended): Declare. * proppage.cc (PropertyPage::DialogProc): Support unattended mode. * proppage.h (PropertyPage::OnUnattended): Declare. * root.cc (RootPage::OnInit): Support unattended mode. (RootPage::OnUnattended): Implement. * root.h (RootPage::OnUnattended): Declare. * site.cc (register_saved_site): Extract Method from get_saved_sites. (get_saved_sites): Remove common code for adding a site. (SitePage::OnInit): Support unattended mode. (SitePage::OnUnattended): Implement. * site.h (SitePage::OnUnattended): Declare. * source.cc (SourcePage::OnActivate): Support unattended mode. (SourcePage::OnUnattended): Implement. * source.h (SourcePage::OnUnattended): Declare. * splash.h (SplashPage::OnUnattended): Declare. * state.cc (unattended_mode): Declare. * state.h (unattended_mode): Declare. * threebar.h (ThreeBarProgressPage::OnUnattended): New method. 2002-09-21 Robert Collins * res.rc: Commit Harry Johnston's dialog caption patch. From July. 2002-07-15 Robert Collins * package_version.cc (packageversion::sources): Implement this. * download.cc (do_download_thread): Support multiple files per package. 2002-07-15 Robert Collins * 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 * 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 * 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 * 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 * iniparse.y: Add basis for support for parsing a debian Sources file. * inilex.l: Ditto. 2002-07-09 Robert Collins 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 * 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 * 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 * 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 * site.cc (do_download_site_info_thread): Correct spelling error. 2002-07-06 Robert Collins * 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 * io_stream.cc: Use STL containers rather than custom ones. (io_stream::registerProvider): Ditto. (findProvider): Ditto. 2002-07-05 Robert Collins * 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 * 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 * 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 * choose.cc (default_trust): Check package accessibility before triggering an install. (Suggested by Pavel). 2002-07-03 Pavel Tsekov * compress_gz.cc (compress_gz::construct): Always initialize key members to ensure the destructor does the right thing. 2002-07-03 Pavel Tsekov * 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 * 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 * 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 * 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 * 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 * 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 * Makefile.am (snapshot): Automate snapshot creation some more. 2002-06-27 Robert Collins * 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 * 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 * res.rc (SETUPINI_MISSING): Make trailing spaces visible. * site.cc (SitePage::OnMessageCmd): Ditto 2002-06-15 Robert Collins * nio-ie5.cc (NetIO_IE5::NetIO_IE): Allow cached data. 2002-06-15 Robert Collins * package_meta.cc (packagemeta::set_action): When installing packages with no binaries, choose the source package. 2002-06-10 Robert Collins * IniParseFindVisitor (IniParseFindVisitor::visitFile): Apply Max Bowshers fix for the crash with a root level setup.ini. * README: Update todos. 2002-05-26 Ralf Habacker * archive_tar.cc (archive_tar::next_file_name()): fixed broken GNU long name extension support. 2002-05-27 Robert Collins * IniParseFindVisitor.cc (IniParseFindVisitor::visitFile): Don't unescape 0 length strings. 2002-05-20 Robert Collins * 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 * 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 * 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 * Makefile.am (release): Tweak to be more helpful. * Makefile.in: Regenerate. 2002-05-19 Robert Collins * Makefile.am (release): Tweak to be more helpful. * Makefile.in: Regenerate. 2002-05-19 Robert Collins * 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 * ini.cc (do_remote_ini): Save uncompressed ini's correctly. 2002-05-19 Robert Collins * 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 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 * ini.cc (find_routine): Don't clear buffer it it's NULL. 2002-05-14 Christopher Faylor * 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 * 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 * CONTRIBUTORS: New file. 2002-04-02 Gary R. Van Sickle * 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 * 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 * ini.cc (do_remote_ini): Use setup.bz2 if it exists in preference to setup.ini. 2002-05-12 Robert Collins * geturl.h: Declare getUrlToStream. * geturl.cc (getUrlToStream): New function. (get_url_to_membuf): Refactor to use getUrlToStream. 2002-05-11 Robert Collins * Makefile.am: Add a release target to automate some of the routine work. * Makefile.in: Regenerate. 2002-05-11 Robert Collins * 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 * 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 * site.cc (SitePage::OnMessageCmd): recalculate navigation button activation when "Add" is pressed. (SitePage::CheckControlsAndDisableAccordingly): tweak comment. 2002-05-07 Robert Collins * 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 * 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 * io_stream.cc: Use the new log interface thruout. 2002-05-04 Robert Collins * 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 * 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 * 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 * 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 * 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 * configure.in: Correct a typo in last change. * configure: Regenerate. * Makefile.in: Regenerate. 2002-05-02 Robert Collins * configure.in: Check for string.h and string. * configure: Regenerate. * Makefile.in: Regenerate. 2002-05-01 Robert Collins * res.rc (IDD_SPLASH): Remove white box. 2002-05-01 Robert Collins 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 * 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 * 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 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 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 * compress_gz.cc (compress_gz::error): EOF is not an error condition. 2002-04-27 Robert Collins * 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 * Makefile.am: Add zlib and bz2lib to SUBDIRS. 2002-04-26 Robert Collins * 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 * 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 * mklink2.cc (make_link_2): Tweak to work with current w32api headers. 2002-04-10 Pavel Tsekov * version.cc (canonicalize_version): Fix a call delete[] to delete the allocated address. 2002-03-29 Robert Collins * PickView.cc (PickView::set_headers): Set last_col correctly. Thanks to Ton van Overbeek for locating the bug area. 2003-03-27 Robert Collins * 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 * 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 * mkdir.cc (mkdir_p): Stop processing if the path is exhausted. 2002-03-26 Ton van Overbeek * PickPackageLine.cc (PickPackageline::paint): Adjust clipping rectangle to textheight, so large fonts work. 2003-03-26 Robert Collins * io_stream_cygfile.cc (io_stream_cygfile::mklink): Don't translate symlinks. 2003-03-26 Robert Collins * 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 * 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 * win32.h: Only define alloca if it's not already. 2002-03-20 Robert Collins * 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 * Makefile.in (setup_version.c): Add back magic which allows detection of setup.exe version number. 2002-03-17 Robert Collins * PickPackageLine.cc (PickPackageLine::paint): Fix incorrect clip region calculation on win9x systems. 2002-03-16 Robert Collins * 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 * 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 * desktop.cc (make_passwd_group): Check for .lnk suffix on /etc/passwd and /etc/group. 2002-03-15 Robert Collins * 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 * io_stream_cygfile.cc (io_stream_cygfile::mklink): Fix up Robert's fixup. 2002-02-24 Michael A Chase * 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 * log.cc (log_save): Fix creating /var/log. * packate_meta.cc (standard_dirs): Remove duplicate '/''s. 2002-02-24 Gary R. Van Sickle * 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 * README: Update TODO list. * install.cc (install_one): Fix src package location. (do_install_thread): Fix creating directories. 2002-02-19 Robert Collins * 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 * install.cc (install_one_source): Make NULL cached package names cause errors. 2002-02-18 Michael A Chase * desktop.cc (make_passwd_group): Don't create passwd-grp.bat unnecessarily. 2002-02-18 Michael A Chase * log.cc (log_save): Put "\n" at end of log lines instead of "'". 2002-02-19 Robert Collins * mount.cc (create_mount): Avoid a const char*->char* warning. (read_mounts): Ditto. 2002-02-05 Jason Tishler * download.cc (do_download_thread): Fix off-by-one error. 2002-02-19 Robert Collins * 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 * 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 * 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 initialised now. * 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. (packageversi