Robert Collins [Sun, 19 May 2002 12:54:16 +0000 (12:54 +0000)]
2002-05-19 Robert Collins <rbtcollins@hotmail.com>
* IniDBBuilderPackage.cc (IniDBBuilderPackage::IniDBBuilderPackage): New
method.
(IniDBBuilderPackage::buildVersion): Provide a warning when a newer
setup version created the ini file.
* IniDBBuilderPackage.h (IniDBBuilderPackage::IniDBBuilderPackage): New
method.
* IniParseFindVisitor.cc (IniParseFindVisitor::visitFile): Use the new
feedback strategy.
* IniParseFindVisitor.h (IniParseFindVisitor::IniParseFindVisitor):
Require a feedback strategy.
* Makefile.am (setup_SOURCES): Add IniParseFeedback sources.
* Makefile.in: Regenerate.
Robert Collins [Sun, 19 May 2002 08:51:19 +0000 (08:51 +0000)]
2002-05-19 Robert Collins <rbtcollins@hotmail.com>
* io_stream_file.cc (io_stream_file::remove): Use the SetFileAttributes
trick to delete read only files.
* io_stream_cygfile.cc (io_stream_cygfile::remove): Use file:// to
remove files.
* Makefile.am (release): Tweak to be more helpful.
* Makefile.in: Regenerate.
Robert Collins [Sun, 19 May 2002 06:23:37 +0000 (06:23 +0000)]
2002-05-19 Robert Collins <rbtcollins@hotmail.com>
* choose.cc (scan_downloaded_files): When a non-installed version
has neither bin nor src cached files for local installs,
remove the version from availability.
Robert Collins [Sun, 19 May 2002 03:07:54 +0000 (03:07 +0000)]
2002-05-19 Robert Collins <rbtcollins@hotmail.com>
* rsync: New support library, contains librsync. This is not (yet)
rsync interoperable.
* configure.in: --with-rsync to enable rsync support. (Not complete).
* Makefile.am: Enable building with rsync.
* Makefile.in: Regenerate.
* configure: Ditto.
* IniDBBuilder.cc (IniDBBuilder::buildPackageInstall): Pass the md5 as
an array.
(IniDBBuilder::buildPackageSource): Ditto.
* IniDBBuilder.h: Ditto.
* IniDBBuilderPackage.cc: Ditto.
* IniDBBuilderPackage.h: Ditto.
* FindVisitor.cc: New file.
* FindVisitor.h: New file, interface for visiting a file system
aggregate.
* IniParseFindVisitor.cc: New file.
* IniParseFindVisitor.h: New file, concrete FindVisitor that parses
found setup.ini's.
* README: Update TODO's.
* String++.cc (String::String): New constructor for <string> inter-
operability.
(String::substr): New method.
* String++.h: Ditto.
* choose.cc (scan2): Remove.
(scan_downloaded_files): Simplify.
* dialog.h: Include parsing pre-requirements.
* download.cc (check_for_cached): Fullname was used incorrectly - fix.
* filemanip.cc (parse_filename): -src packages where incorrectly parsed.
* find.cc: Rewrite. Now uses a Visitor pattern and is re-entrant.
* find.h: Ditto.
* fromcwd.cc: Remove unneeded includes.
(is_test_version): Remove.
(found_file): Remove.
(SetupFindVisitor): Trivial visitor to detect setup.ini's.
(found_ini): Remove.
(do_fromcwd): Remove commented code that has be replaced elsewhere.
* ini.cc (local_ini): Remove.
(findBuilder): Remove.
(find_routine): Remove.
(do_local_ini): Use new IniParseFindVisitor.
* iniparse.y: Typecase MD5 arrays, as we know they are allocated as
unsigned char.
* postinstall.cc: Remove non-core includes.
(run_script_in_postinstall): Remove.
(RunFindVisitor): Trivial Visitor, runs each found script.
(do_postinstall): Use new find syntax.
* ini.cc (find_routine): Don't clear buffer it it's NULL.
* 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.
* 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.
Robert Collins [Sun, 12 May 2002 11:28:22 +0000 (11:28 +0000)]
2002-04-02 Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>
* choose.cc: Run indent.
(nextbutton): Remove static variable.
(default_trust): Remove use of nextbutton.
(set_view_mode): Ditto.
(create_listview): Add IDC_CHOOSE_PREV and IDC_CHOOSE_NEXT to ta[] so
rbset() sets the prev/next/curr radio buttons properly.
(dialog_cmd): Delete function.
(dialog_proc): Delete function. Move WM_INITDIALOG functionality to
ChooserPage::OnInit.
(do_choose): Delete function. Move pre-DialogBox() code to
ChooserPage::OnInit(), post-DialogBox() code to ChooserPage::OnNext.
(WM_APP_START_CHOOSE): Remove define.
(WM_APP_CHOOSE_IS_FINISHED): Remove define.
(do_choose_thread): Delete function.
(ChooserPage::OnActivate): Delete method.
(ChooserPage::OnMessageApp): Delete method.
(ChooserPage::OnInit): New method.
(ChooserPage::OnNext): New method.
(ChooserPage::OnBack): New method.
(ChooserPage::OnMessageCmd): New method.
* choose.h: Run indent.
(ChooserPage::OnMessageApp): Delete declaration.
(ChooserPage::OnActivate): Ditto.
(ChooserPage::OnMessageCmd): New declaration.
(ChooserPage::OnInit): Ditto.
(ChooserPage::OnNext): Ditto.
(ChooserPage::OnBack): Ditto.
* desktop.cc (DesktopSetupPage::OnBack): Replace use of IDD_CHOOSER
with IDD_CHOOSE.
* fromcwd.cc (do_fromcwd): Replace use of IDD_CHOOSER with IDD_CHOOSE.
* ini.cc (do_ini_thread): Replace use of IDD_CHOOSER with IDD_CHOOSE.
* res.rc (IDD_CHOOSE): Remove dialog template.
(IDD_CHOOSER): Alter dialog template to fit wizard size and format.
Robert Collins [Fri, 10 May 2002 11:03:18 +0000 (11:03 +0000)]
2002-05-10 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in: Regenerate.
* iniparse.y: Use left recursion, not right in the lines rule to
avoid stack overflows.
* README: Update TODO's.
* io_stream_file.cc: Native builds need to include sys/stat.h
Robert Collins [Mon, 6 May 2002 14:34:53 +0000 (14:34 +0000)]
2002-05-05 Robert Collins <rbtcollins@hotmail.com>
* Makefile.am (inlint_SOURCES): Add conditional objects to inilint
depending on platform.
Add file:// support.
* configure.in: Set conditional MINGWTARGET if compiling against mingw
libraries.
* Makefile.in: Regenerate.
* configure: Ditto.
* io_stream_file.cc: Only use win32 calls when building for mingw.
Robert Collins [Sun, 5 May 2002 04:02:01 +0000 (04:02 +0000)]
2002-05-05 Robert Collins <rbtcollins@hotmail.com>
* Makefile.am (noinst_PROGRAMS): Make inilint configurable.
* configure.in: Ditto.
Fix incorrect header checking syntax.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
* io_stream.cc: Remove platform specific and provider specific code.
(io_stream::registerProvider): New method, registers a Url provider with
the io_stream code.
Make all methods consistently throw invalid_argument exceptions when
a provider that is requested is not present.
(findProvider): New private function, finds a provider.
* io_stream.h: Declare io_stream::registerProvider.
* io_stream_cygfile.cc: Create a Provider class to register with
io_stream.cc.
* io_stream_file.cc: Ditto.
* archive.cc: Remove unneeded includes.
* archive_tar.cc: Remove unneeded includes.
* archive_tar.h: Add required include.
* archive_tar_file.cc: Remove unneded includes.
* choose.cc: Remove unneeded includes:
Robert Collins [Sat, 4 May 2002 12:15:56 +0000 (12:15 +0000)]
2002-05-04 Robert Collins <rbtcollins@hotmail.com>
* log.cc (log): Reimplement via LogSingleton.
(log_save): Remove.
(exit_setup): Remove.
* log.h (log_save): Remove.
(exit_setup): Remove.
* LogSingleton.cc: New file.
* LogSingleton.h: New file.
* LogFile.cc: New file.
* LogFile.h: New file.
* Makefile.am (inilint_SOURCES): Add the new log interface.
(setup_SOURCES): Add the new log interface and the concrete File
implementation.
* Makefile.in: Regenerate.
* archive.cc: Use the new log interface thruout.
* archive_tar.cc: Ditto.
* main.cc: Ditto.
* dialog.cc (fatal): Use the new log interface.
* ini.cc (do_ini_thread): Use the log interface to exit.
* isntall.cc (do_install_thread): Ditto.
* netio.cc (auth_cmd): Ditto.
* msg.cc (fatal): Ditto.
* localdir.cc (save_local_dir): Save to different files depending on
the mode, and if a root dir exists.
Robert Collins [Sat, 4 May 2002 04:26:01 +0000 (04:26 +0000)]
2002-05-04 Robert Collins <rbtcollins@hotmail.com>
* IniDBBuilder.cc: New file.
* IniDBBuilder.h: New file.
* IniDBBuilderPackage.cc: New file.
* IniDBBuilderPackage.h: New file.
* PackageTrust.h: New file.
* IniState.h: Remove, wasn't thought out well enough.
* Makefile.am (inilint_SOURCES): Add more requirements.
(setup_SOURCES): Add new Builder base and concrete classes.
* Makefile.in: Regenerate.
* String++.cc (String::String): Implement int contructor.
* String++.h (String): Declare int constructor.
* archive_tar.cc (archive_tar::next_file_name): Return String() when
no filename exists.
* archive_tar.h (archive_tar_file): Remove get_next_filename method,
it's not needed.
* ini.cc: Replace IniState wuth IniDBBuilderPacakge.
(find_routine): Use new IniDBBuilder to configure the parser.
(do_local_ini): Ditto.
(do_remote_ini): Ditto.
* ini.h: Use IniDBBuilder to initialise parsing.
* inilex.l (MD5): Parse the MD5 string correctly, we had the nibbles
swapped.
(ini_init): Use an IniDBBuilder rather than static variables.
* iniparse.y: Hand off all the object creation to a builder, rather
than hardcoding the behaviour. This allows run-time configured
behaviour.
* io_stream_cygfile.h (io_stream_cygfile): Remove get_next_filename
method, it's not needed.
* io_stream_file.h (io_stream_file): Ditto.
* mount.cc (cygpath): Return String() for missing mounts.
* package_meta.cc (packagemeta::SDesc): Return String() for blank
descriptions.
* package_meta.h (trusts): Remove - replaced by PackageTrust.h.
(packagemeta::packagemeta): Fix incorrect syntax in String constructor
usage.
* cygpackage.cc (cygpackage::cygpackage): Fix incorrect syntax in
String constructor usage.
* site.h (site_list_type): Ditto.
Robert Collins [Fri, 3 May 2002 11:41:30 +0000 (11:41 +0000)]
2002-05-03 Robert Collins <rbtcollins@hotmail.com>
* String++.h: Declare a << operator that accepts String objects.
* String++.cc: We need iostream for..
(operator <<): this. Provide a << operator that accepts String objects.
* ini.cc (yyerror): Remove the "C" classifier - it's not needed.
Change from vargs to a String parameter.
* inilintmail.cc: Remove the gui related headers.
(yyerror): Implement this for parsing.
* iniparse.y: Use the new yyerror syntax.
Robert Collins [Fri, 3 May 2002 09:40:55 +0000 (09:40 +0000)]
2002-05-03 Robert Collins <rbtcollins@hotmail.com>
* Makefile.am: Add IniState.h.
* Makefile.in: Regenerate.
* IniState.h: New file.
* choose.cc: Don't include ini.h - it's not needed.
* configure: Regenerate.
* desktop.cc: Don't include ini.h - it's not needed.
* download.cc: Ditto.
* fromcwd.cc: Ditto.
* ini.cc: Use IniState.h to track each parsing calling.
(find_routine): Ditto.
(do_remote_ini): Ditto.
(do_ini_thread): Ditto.
* ini.h (ini_init): Adjust parameters to include state object.
* inilex.l: Declare parser state variable.
(ini_init): Adjust parameters to include state object.
* iniparse.y: Remove obsolete setup_timestamp and setup_version
declarations.
(setup_header): Use new state variable to track time and version.
(add_correct_version): Ditto.
* install.cc: Don't include ini.h - it's not needed.
Robert Collins [Fri, 3 May 2002 08:28:12 +0000 (08:28 +0000)]
2002-05-03 Robert Collins <rbtcollins@hotmail.com>
* nio-files.cc (NetIO): Use io_stream syntax for get_file_size.
* io_stream_file.cc: Don't include filemanip.h.
(io_stream_file::get_size): Implement here to remove filemanip
dependency.
* io_stream_cygfile.cc: Don't include filemanip.h.
(io_stream_cygfile::get_size): Implement here to remove filemanip
dependency.
Implement a stat based version for when win32 is not available.
* filemanip.h (get_file_size): Return size_t - it's more appropriate.
* filemanip.cc: Don't include win32.h - be platform independent.
Include strings.h and io_stream.h as part of that.
(get_file_size): Leverage io_streams and remove win32 implementation.
* download.cc (check_for_cached): Use io_stream syntax for
get_file_size.
(download_one): Ditto.
Robert Collins [Wed, 1 May 2002 11:16:17 +0000 (11:16 +0000)]
2002-05-01 Robert Collins <rbtcollins@hotmail.com>
Oops! forgot to list these in the last checkin.
* inilintmain.cc: New file.
* md5.h: New file - imported md5 source, BSD style licence.
* md5.cc: New file - imported md5 source, BSD style licence.
* Exception.cc: New file.
* Exception.h: New file.
* MD5++.cc: New file.
* MD5++.h: New file.
Robert Collins [Wed, 1 May 2002 11:13:16 +0000 (11:13 +0000)]
2002-05-01 Robert Collins <rbtcollins@hotmail.com>
* Makefile.am (AM_CFLAGS): Remove -mwindows, it's a linker flag.
Remove -fno-rtti, we need it for exceptions.
(AM_CXXFLAGS): Ditto.
(WARNONLY_CFLAGS): Ditto.
(EXTRA_PROGRAMS): Add with initial linter sources - not functional yet.
(setup_LDFLAGS): Add and set to -mwindows.
(setup_SOURCES): Add new sources.
* Makefile.in: Regenerate.
* README: Update TODO.
* choose.cc (scan_downloaded_files): Use ini information if it's
available.
* configure: Regenerate.
* download.cc (check_for_cached): Make reusable from elsewhere.
Throw exceptions on errors (as opposed to failures).
Check MD5 sum when it's known.
(download_one): Never force a download.
Handle corrupt package exceptions.
* ini.cc (find_routine): Reverse escape the URL to correctly identify
the site URL.
* inilex.l (MD5): Provide a parsing rule (note: lowercase is required).
* iniparse.y: Allow calculation of MD5 sums, and allow src only
packages.
(process_src): New helper function.
* isntall.cc (install_one_source): Check MD5 sums when possible.
Throw exceptions on errors.
(do_install_thread): Handle exceptions for installation calls.
* package_source.h: Store MD5 information.
* propsheet.cc (PropSheet::Create): Add a useful comment.
* res.rc (IDS_INSTALL_ERROR): Define.
(IDS_CORRUPT_PACKAGE): Define.
* resource.h (IDS_INSTALL_ERROR): Define.
(IDS_CORRUPT_PACKAGE): Define.
* rfc1738.cc (rfc1738_unescape_part): Implement.
* rfc1738.h (rfc1738_unescape_part): Declare.
Robert Collins [Mon, 29 Apr 2002 11:07:40 +0000 (11:07 +0000)]
2002-04-29 Robert Collins <rbtcollins@hotmail.com>
* Makefile.am: Remove dependecy rules that automake emits.
Correct badly copied dependency info for manually compiled files.
(setup_SOURCES): Add all used headers.
(EXTRA_DIST): Include non compilate but required sources.
(setup_LDADD): Remove mingw32, it is autodetected.
* Makefile.in: Regenerate.
* String++.h: sys/types is a system header.
* choose.cc (do_choose_thread): Make into a Win32 thread routine.
Use ExitThread.
(ChooserPage::OnMessageApp): Use Win32 threads. (_beginthread is not
portable).
* configure: Regenerate.
* configure.in: Check for mingw32/cygwin specific headers and libraries.
* cygpackage.h: Include the win32.h header to get correct macro
definitions in all situations.
* download.cc (do_download_reflector): Make into a Win32 thread routine.
Use ExitThread.
(do_download): Use Win32 threads.
* ini.cc: Ditto.
* install.cc: Ditto.
* (WinMain): Adjust to build valid command line using application
under both mingw32 and cygwin.
* mount.cc (set)cygdrive_flags): Create new system flags if the
user requests system and the value does not exist.
* nio-http.cc: Define a _strnicmp for cygwin.
* package_db.cc: Include <errno.h> if it exists.
* site.cc (do_download_site_info_thread): Make into a Win32 thread
routine.
Use ExitThread.
(do_download_site-Info): Use Win32 threads.
* state.cc: Explicity declare variables to avoid header conflicts
caused by '#define extern" on cygwin.
* win32.h: Include <alloca.h> if it exists.
(_MAX_PATH): Define as MAX_PATH when not defined by windows.h.
(_access): Define as access if not defined by windows.h.
Robert Collins [Fri, 26 Apr 2002 23:46:39 +0000 (23:46 +0000)]
2002-04-23 Robert Collins <rbtcollins@hotmail.com>
* include/cdefs.h: New file, support for getopt.h.
* include/getopt.h: New file, for platforms without getopt.h.
* src/getopt.c: New file, implementation of getopt.
* COPYING: New file, GPL v2 text.
* Makefile.am: Change AM_CXXFLAGS to INCLUDES.
Add getopt.c to the library source.
Add new headers to the source list.
* configure.in: Remove unneeded macro calls.
* include/getopt++/StringOption.h: Change String to string throughout.
* src/StringOption.cc: Ditto.
* include/getopt++/BoolOption.h: Ditto.
* src/BoolOption.cc: Ditto.
* src/OptionSet.cc: Ditto.
* include/getopt++/Option.h: Ditto.
Remove String++ includes, it's not needed anymore.
* include/getopt++/OptionSet.h: Make the destructor virtual.
Robert Collins [Fri, 26 Apr 2002 11:04:26 +0000 (11:04 +0000)]
2002-04-26 Robert Collins <rbtcollins@hotmail.com>
* aclocal.m4: New file, cached macros.
* bootstrap.sh: New file, calls required autotools in appropriate
order.
* Makefile.am: New file, input Makefile for automake.
* Makefile,in: Now a generated file - regenerate.
* configure: Regenerate.
* configure.in: Add automake support.
* inilex.l: Change VERSION to PACKAGEVERSION to avoid a collision with
automake's VERSION define.
* iniparse.y: Ditto.
Robert Collins [Fri, 26 Apr 2002 08:10:33 +0000 (08:10 +0000)]
2002-04-26 Robert Collins <rbtcollins@hotmail.com>
* cdefs.h: New file, imported to allow getopt.c to build without
cygwin headers.
* getopt.h: New file, imported to allow building without cygwin headers.
* getopt.c: Ditto.
* bz2lib: New directory, contains copy of bz2lib.
* cfgaux: New directory, contains autotool helper scripts.
* Makefile,in: Adjust library and target definitions for building
outside the sourceware tree.
* compress_bz.h: Use new bz2lib header location.
* mount.cc: Import key defines and enums to be independent of cygwin
headers.
* configure.in: Update to autoconf 2.53, and to be sourceware
independent.
* configure: Regenerate.
Robert Collins [Sat, 20 Apr 2002 07:35:04 +0000 (07:35 +0000)]
2002-04-20 Robert Collins <rbtcollins@hotmail.com>
* Makefile.am (libgetopt___la_SOURCES): Add OptionSet.cc and
StringOption.cc for new functionality.
(getoptinclude_HEADERS): Install the new headers.
* include/getopt++/BoolOption.h (BoolOption::shortOption): Change
to align with new Option header.
* include/getopt++/Option.h (Option::shortOption): Change to allow
short options with arguments.
* include/getopt++/OptionSet.h: Implement ParameterUsage to show
program options.
Change Process to include a fallback OptionSet - for picking up
non-option arguments.
* include/getopt++/StringOption.h: New file.
* src/BoolOption.cc (BoolOption::shortOption): Change as per the header.
* src/OptionSet.cc (OptionSet::Process): Pass on umnparameterised
arguments.
(OptionSet::ParameterUsage): Implement.
* src/StringOption.cc: New file.
Robert Collins [Sun, 14 Apr 2002 14:07:05 +0000 (14:07 +0000)]
2002-04-14 Robert Collins <rbtcollins@hotmail.com>
* include/BoolOption.h: Move to
* include/getopt++/BoolOption.h: here.
* include/GetOption.h: Implement multiple-sets as per design.
Move to ...
* include/getopt++/GetOption.h: here.
* include/Option.h: Move to
* include/getopt++/Option.h: here.
* include/getopt++/OptionSet.h: New file.
* src/GetOption.cc: Move core functions to OptionSet.cc.
Adjust for new header locations.
* src/OptionSet.cc: New file.
* src/BoolOption.cc: Adjust for new header locations.
* src/Option.cc: Adjust for new header locations.
* tests/testoption.cc: Adjust for new header locations.
Robert Collins [Sun, 14 Apr 2002 02:23:32 +0000 (02:23 +0000)]
2002-04-14 Robert Collins <rbtcollins@hotmail.com>
* Makefile.am: New file.
* README: New file.
* bootstrap.sh: New file.
* configure.in: New file.
* include/BoolOption.h: New file.
* include/GetOption.h: New file.
* include/Option.h: New file.
* src/BoolOption.cc: New file.
* src/GetOption.cc: New file.
* src/Option.cc: New file.
* tests/testoption.cc: New file.
Robert Collins [Wed, 27 Mar 2002 04:20:45 +0000 (04:20 +0000)]
2003-03-27 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in (OBJS): Add new commandline objects.
* desktop.cc (NoShortCutsOption): New option code.
(DesktopSetupPage::OnInit): Check whether to skip shortcuts.
* desktop.h (NoShortCutsOption): New concrete command line option class.
* main.cc (WinMain): Process command line options.
* GetOption.h: New file, singleton command line class.
* GetOption.cc: New file, implementation of the above.
* Option.h : New file, abstract option for GetOption.
* Option.cc: New file, implement constructor and destructor.
2003-03-26 Robert Collins <rbtcollins@hotmail.com>
* io_stream_cygfile.cc (cwd): New static for cwd storage.
(io_stream_cygfile::normalise): New method.
(io_stream_cygfile::io_stream_cygfile): Use it.
(io_stream_cygfile::exists): Ditto.
(io_stream_cygfile::remove): Ditto.
(io_stream_cygfile::mklink): And again.
(cygmkdir_p): Yes, again.
(io_stream_cygfile::move): And once more.
* io_stream_cygfile.h (io_stream_cygfile::normalise): Declare.
(io_stream_cygfile::cwd): Ditto.
Robert Collins [Tue, 26 Mar 2002 00:25:15 +0000 (00:25 +0000)]
2003-03-26 Robert Collins <rbtcollins@hotmail.com>
* package_meta.cc (package_meta::~package_meta): Remove duplicate.
(CategoryPackage::~CategoryPackage): Ditto. (Thanks to Ton van
Overbeek for the report).
* mklink2.cc: Moved from mklink2.c to avoid 'not a prototype error'.
Make g++ compatible.
* mklink2.c: Remove.
* site.cc (site_list_type::init): Delete the correct memory addres.
Thanks to Pavel Tsekov for tracking this down.
Robert Collins [Tue, 19 Feb 2002 04:33:28 +0000 (04:33 +0000)]
2002-02-19 Robert Collins <rbtcollins@hotmail.com>
* choose.cc: Include cygpackage.h for scan2 use.
(set_existence): Ignore setup.ini mirrors when installing from cwd.
(scan2): Process any valid file.
Add cache entries when a file matching a setup.ini listed version is found.
* filemanip.cc (parse_filename): Remove pkgtar - not used anywhere else.
* filemanip.h (filemanip::pkgtar): Remove.
* package_meta.cc (CategoryPackage::~CategoryPackage): New method.
(packagemeta::~packagemeta): Move from package_meta.h
Remove and delete all version and category information.
* package_meta.h (CategoryPackage): Create a destructor.
(packagemeta::~packagemeta): Move to .cc file.
2002-02-19 Robert Collins <rbtcollins@hotmail.com>
* install.cc (install_one_source): Make NULL cached package names cause
errors.
Robert Collins [Mon, 18 Feb 2002 13:53:07 +0000 (13:53 +0000)]
2002-02-19 Robert Collins <rbtcollins@hotmail.com>
* configure.in (CXXFLAGS): Substitute at configure time, not runtime.
* configure (CXXFLAGS): Regenerate.
* Makefile.in (iniparse.o): Build via default rules - no errors now.
* README: TODO list updates.
2002-02-19 Michael A Chase <mchase@ix.netcom.com>
* String++.cc (String::concat):: Remove.
(String::vconcat):: Ditto.
* String++.h (String::concat):: Remove.
(String::vconcat):: Ditto.
* archive_tar.cc: Don't include concat.h.
* archive_tar_file.cc: Don't include concat.h.
* compress_bz.cc (compress_bz::peek): Don't log unneeded messages.
(compress_bz::seek): Ditto.
(compress_bz::~compress_bz): Ditto.
* compress_gz.cc (compress_gz::peek): Ditto.
(compress_gz::error): Ditto.
(compress_gz::~compress_gz): Ditto.
* concat.cc (vconcat): Remove.
(concat): Ditto.
* concat.h (vconcat): Remove.
(concat): Ditto.
* desktop.cc (desktop_icon): Use new cygpath.
(make_etc_profile): Ditto.
(uexists): Ditto.
(make_passwd_group): Ditto.
(save_icon): Ditto.
(check_desktop): Remove concat use.
(check_start_menu): Ditto.
* download.cc (download_one): Use new mkpath_p correctly.
Use LOG_PLAIN.
* fromcwd.cc: Don't include concat.h.
* geturl.cc (get_url_to_membuf): Use String log() call.
(get_url_to_file): Ditto.
* install.cc: Don't include concat.h.
(uninstall_one): Use LOG_PLAIN.
(replace_one): Ditto.
(install_one_source): Ditto.
(install_one): More char to String conversion.
(do_install_thread): Use new cygpath.
Use new create_mount.
* io_stream.cc (io_stream::move): Use new log().
* io_stream_cygfile (io_stream_cygfile::io_stream_cygfile): Use new cygpath.
(io_stream_cygfile::exists): Ditto.
(io_stream_cygfile::remove): Ditto.
(io_stream_cygfile::mklink): Ditto.
(io_stream_cygfile::write): Ditto.
(cygmkdir_p): Ditto.
(io_stream_cygfile::move): Ditto.
* io_stream_file.cc: Don't include log.h.
(io_stream_file::write): Don't log unneeded messages.
* localdir.cc: Don't include concat.h.
(LocalDirPage::OnNext): Use LOG_PLAIN.
* log.cc: Don't include log.h.
(exit_setup): Use new cygpath.
* log.h (log_level): Add new level LOG_PLAIN.
* main.cc (WinMain): Use new log().
* mount.cc (SLASH_P): New macro from concat.h.
(cygpath): Make String version globally visible.
Remove varargs version.
* mount,h: Ditto.
* msg.cc (mbox): Use LOG_PLAIN.
* net.cc (NetPage::OnNext): Ditto.
* nio-ftp.cc (ftp_line): Use new log().
* nio-http.cc: Don't include log.h.
(retry_get): Use alternative url variable.
* package_db.cc: Don't include concat.h.
(packagedb::flush): Don't use concat.
* package_meta.cc: Don't include concat.h.
(packagemeta::uninstall): Use new cygpath.
* postinstall.cc (do_postinstall): Ditto.
* root.cc (RootPage::OnNext): Use LOG_PLAIN.
* script.cc: Don't include concat.h.
(init_run_script): Use new cygpath.
(run_script): More char * to String conversion.
(try_run_script): Ditto.
* site.cc: Don't include concat.h.
(SitePage::OnNext): Use LOG_PLAIN.
(SitePage::OnMessageCmd): Use new log().
* source.cc (SourcePage::OnDeactivate): Use LOG_PLAIN.
Robert Collins [Sun, 27 Jan 2002 11:17:54 +0000 (11:17 +0000)]
2002-01-27 Robert Collins <rbtcollins@hotmail.com>
* README: Update Todo's.
* list.h: Run indent.
(list): New methods checksize and insert to reduce code duplication.
(list::registerbykey): Use them.
(list::registerbyobject): Ditto.
(list::removebyindex): Copy each object individually - safe for non trivial
objects.
(list::checksize): Implement.
(list::insert): Implement.
Robert Collins [Sun, 27 Jan 2002 06:36:06 +0000 (06:36 +0000)]
2002-01-27 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in: Remove the dlmalloc object by default.
* install.cc (do_install_thread): Remove the mallinfo call for 'working around'
the crashing issue.
* package_db.h: Include <string.h> - it's needed to parse this.
* package_source.cc (site::site): Move here from the header file.
* package_source.h (site): Stop the constructor being inlinable.
Robert Collins [Sat, 26 Jan 2002 04:21:34 +0000 (04:21 +0000)]
2002-01-26 Robert Collins <rbtcollins@hotmail.com>
* filemanip.cc (find_tar_ext): Add a descriptive comment.
2002-01-25 Michael A Chase <mchase@ix.netcom.com>
* filemanip.cc (find_tar_ext): Clean up tests for .tar.gz and .tar.
* fromcwd.cc (do_fromcwd): Expand FIXME comment in source file check.
* install.cc (install_one_source): Add space between words in log() call.
Robert Collins [Tue, 22 Jan 2002 11:35:10 +0000 (11:35 +0000)]
2002-01-22 Robert Collins <rbtcollins@hotmail.com>
* archive.cc (extract_file): Separate out the prefix and the URL scheme.
* archive.h (archive::extract_file): Ditto.
* install.cc (install_one_source): Ditto.
Use the new archive::extract_file syntax.
(replace_one): Use the new syntax.
(io_stream.cc): Add some log info for links.
Robert Collins [Tue, 22 Jan 2002 09:03:55 +0000 (09:03 +0000)]
2002-01-22 Robert Collins <rbtcollins@hotmail.com>
* PickCategoryLine.cc (PickCategoryLine::actiontext): Remove.
(PickCategoryLine::paint): Use the new action method.
(PickCategoryLine::click): Set the action for all children.
(PickCategoryLine::set_action): New method.
* PickCategoryLine.h (PickCategoryLine::-actions): Remove.
(PickCategoryLine::current_default): Use packagemeta _actions class.
* PickLine.h (PickLine::set_action): New abstract method that requires including
package_meta.h.
* PickPackageLine.cc (PickPackageLine::set_action): New method.
* PickPackageLine.h (PickPackageLine::set_action): Declare this.
* list.h (getbykey): A const correctness fix.
* package_meta.cc: Run indent.
(packagemeta::Default_action): New const.
(packagemeta::Install_action): Ditto.
(packagemeta::Reinstall_action): Ditto.
(packagemeta::Uninstall_action): Ditto.
(packagemeta::_actions::caption): New method.
(packagemeta::_actions::operator++): Ditto.
(packagemeta::set_action): New overload.
* package_meta.h (packagemeta::_actions): New class.
(packagemeta::set_action): Declare this.
Robert Collins [Tue, 22 Jan 2002 06:36:35 +0000 (06:36 +0000)]
2002-01-22 Robert Collins <rbtcollins@hotmail.com>
* PickPackageLine.cc: New file.
* PickPackageLine.h: New file.
* PickLine.cc: New file.
* PickLine.h: New file.
* PickCategoryLine.cc: New file.
* PickCategoryLine.h: New file.
* PickView.cc: New file.
* PickView.h: New file.
* Makefile.in: Add new objects to setup.exe.
Backout -fno-exceptions option.
* choose.cc: Include PickView.h.
Remove view related defines and static variables.
(_pkg_headers): Moved to PickView.cc.
(_cat_headers): Ditto.
(view::views::Unknown): Ditto.
(view::views::PackageFull):
(view::views::Package):
(view::views::Category):
(pkgtrustp): Moved to package_meta.cc.
(add_required): Moved to package_meta.cc.
(pick_category_line::empty): Moved to PickCategoryLine.cc
(paint): Adjust for moved static variables.
(view::scroll): Moved to PickView.cc.
(list_vscroll): Adjust for moved static variables.
(list_hscroll): Ditto.
(list_click): Ditto.
(note_width): Moved to PickView.cc.
(view::view): Ditto.
(view::set_view_mode): Ditto.
(view::mode_caption): Ditto.
(view::views::caption): Ditto.
(view::set_headers): Ditto.
(DoInsertItem): Ditto.
(view::init_headers): Ditto.
(view::insert_pkg): Ditto.
(view::insert_category): Ditto.
(view::clear_view): Ditto.
(view::views::operator++): Ditto.
(view::click): Ditto.
(default_trust): Adjust for moved statics.
(pick_pkg_line::paint): Moved to PickPackageLine.cc.
(pick_pkg_line::click): Ditto.
(pick_category_line::actiontext): Moved to PickCategoryLine.cc
(pick_category_line::paint): Ditto.
(pick_category_line::click): Ditto.
(set_view_mode): Adjust for moved statics.
(create_listview): Ditto.
* choose.h: Remove Category and packagemeta forward defines - not needed.
Don't include unneeded headers list and package_meta.
(_header): Move to PickView.h.
(pick_line): Move to PickLine.h.
(pick_pkg_line): Move to PickPackageLine.h.
(pick_category_line): Move to PickCategoryLine.h.
(view): Move to PickView.h.
* ini.h (trusts): Move to package_meta.h.
* package_meta.h (trusts): New enum.
(packagemeta::set_requirements): New helper method.
(packagemeta::trustp): Ditto.
Robert Collins [Mon, 21 Jan 2002 07:41:58 +0000 (07:41 +0000)]
2002-01-21 Robert Collins <rbtcollins@hotmail.com>
* archive_tar.cc (archive_tar::~archive_tar): Mark the stream as destroyed.
* archive_tar_file.cc (archive_tar_file::~archive_tar_file): Ditto.
* compress.cc (compress::~compress): Be less verbose.
* compress_bz.cc (compress_bz::~compress_bz): Ditto.
Mark the stream as destroyed.
* compress_gz.cc (compress_gz::~compress_gz): Mark the stream as destroyed.
* io_stream.cc (io_stream::~io_stream): Only warn when the stream is not marked
as destroyed.
* io_stream_cygfile.cc (io_stream_cygfile::~io_stream_cygfile): Mark the
stream as destroyed.
* io_stream_file.cc (io_stream_file::~io_stream_file): Ditto.
* io_stream_memory.cc (io_stream_memory::~io_stream_memory): Ditto.
Robert Collins [Sun, 20 Jan 2002 13:31:05 +0000 (13:31 +0000)]
2002-01-21 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in (CFLAGS): Allow customisable malloc debug flags.
(OBJS): Link in malloc objects.
* category.cc (category): Use new char, not strdup.
* choose.cc (pick_pkg_line::paint): Allow for the regionsize to shrink.
(do_choose): Use new char, not malloc.
* concat.cc (vconcat): Ditto.
* cygpackage.cc (cygpackage): Use new char, not strdup.
(set_canonical_version): Ditto.
(cygpackage::destroy): Use delete[], not free.
* desktop.cc (uexists): Ditto.
* dialog.cc (egest): Use new char, not strdup.
* dlmalloc.c: New file - Doug Lea's malloc 2.7.0
* hash.cc (hash::hash): Use delete instead of free.
(hash::add): Use new char, not strdup.
* ini.cc (do_remote_ini): Use delete[] not free.
* inilex.l: Use new char, not strdup.
(ini_init): Ditto.
* iniparse.y: Ditto.
Use a local package_db rather than a static one.
* install.cc (struct mallinfo): Workaround an apparent dlmalloc bug.
(do_install_thread): Call mallinfo to force a consistency check. Appears
to fix a 'inuse' error in -DDEBUG builds.
Use delete[] for strings.
* io_stream_cygfile.cc (io_stream_cygfile::io_stream_cygfile): Use new char,
not strdup.
(io_stream_cygfile::~io_stream_cygfile): Use delete[], not free.
(io_stream_cygfile::remove): Use new char, not strdup.
* io_stream_file.cc (io_stream_file::io_stream_file): Use new char, not strdup.
(io_stream_file::io_stream_file): Use delete[], not free.
(io_stream_file::remove): Use new char, not strdup.
* io_stream_memory.cc (memblock::~memblock): Use delete[], not free.
* io_stream_memory.h (memblock): Use new char, not malloc.
* localdir.cc (LocalDirPage::OnInit): Use new char, not strdup.
* main.cc (WinMain): Use new char, not strdup.
* mount.cc (find2): Use new char, not malloc.
(read_mounts): Ditto.
(cygpath): Use new char, not strdup.
* netio.cc (NetIO::~NetIO): Use delete[], not free.
(NetIO::set_url): Use new char, not strdup.
(NetIO::get_ftp_auth): Use delete[], not free.
* nio-ftp.cc (NetIO_FTP::NetIO_FTP): Ditto.
Use new char instead of strdup.
* nio-http.cc (base64_encode): Use new char, not malloc.
* package_meta.cc (hash::add_subdirs): Use new char instead of strdup.
* package_source.h (~ packagesource): Use delete[] instead of delete.
* port.h (strdup): Deprecate the use of strdup.
* rfc1738.cc (rfc1738_do_escape): Use new char, not calloc.
* script.cc (init_run_script): Us delete[], not free.
(run_script): Ditto.
* simpsock.cc (SimpleSocket::fill): Use new char, not malloc.
(SimpleSocket::invalidate): Use delete[], not free.
* site.cc (site_list_type::init): Use new char instead of strdup.
* site.h (~site_list_type): Use delete[], not free.
and in zlib/
2002-01-21 Robert Collins <rbtcollins@hotmail.com>
Robert Collins [Sat, 19 Jan 2002 13:33:17 +0000 (13:33 +0000)]
2002-01-20 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in (OBJS): Add win32.o - win32 support functions.
* README: Update todos.
* archive.cc (extract_file): Support a suffix for appending to extracted files.
* archive.h: Ditto.
* choose.cc (set_view_mode): Use the new view::views class.
(view::views::Unknown): New static for defaulting view::views variables.
(view::views::PackageFull): New static for the current view.
(view::views::Package): Ditto.
(view::views::Category): Ditto.
(topbucket::paint): Remove.
(topbucket::empty): Rename to pick_category_line::empty.
(topbucket::~topbucket): Remove.
(paint): Use the new view::views class.
Don't paint 'all' as a category when showing package categoies.
(pick_category_line::actiontext): New method.
(pick_category_line::paint): Make showing the category optional, and show the
'category action'.
(pick_category_line::click): Make showing the category optional, and
differentiate between the name being clicked, and the action description.
(view::view): Use the new view::views class.
(view::set_view_mode): Ditto.
(view::mode_caption): Ditto.
(view::views::caption): New method.
(view::set_headers): Use the new view::views class.
(view::clear_view): Ditto.
(viewsplusplus): Replaced by
(view::views::operator++): New operator.
(set_view_mode): Use the new view::views class.
(create_listview): Ditto.
(dialog_cmd): Ditto.
* choose.h (actions): Remove.
(views): Remove.
(pick_line): Add a new convenience constructor.
(top_bucket): Remove.
(pick_category_line): Reparent under pick_line, and adsorb top_bucket.
(view::views): New class.
* ini.h: Don't include choose.h
(is_download_action): Remove.
(is_upgrade_action): Remove.
(is_uninstall_action): Remove.
(is_full_action): Remove.
* install.cc (num_replacements): New static.
(rebootneeded): Ditto.
(replace_one): Handle upgrades separate from removal or new installs.
(install_one_source): Handle in use files.
(install_one): Don't repeat upgrades.
(do_install_thread): Initialize new statics.
Order actions as uninstall, replace, install.
Warn about rebooting if needed.
* res.rc (IDS_REBOOT_REQUIRED): New string.
* resource.h (IDS_REBOOT_REQUIRED): Give value.
* win32.h: Declare class Win32, and update copyright and intent message.
* win32.cc: New file.
Corinna Vinschen [Tue, 15 Jan 2002 18:27:40 +0000 (18:27 +0000)]
* io_stream.cc (io_stream::gets): Eliminate trailing new line chars.
* package_meta.cc (packagemeta::uninstall): Check for additional
Windows shortcut. Unset R/O file attribute before trying to delete
file.
Robert Collins [Tue, 8 Jan 2002 23:46:26 +0000 (23:46 +0000)]
2002-01-09 Robert Collins <rbtcollins@hotmail.com>
* choose.cc (pkgtrustp): Fall back to installed if a package is not present in
the current trust level. For prev, fall back via curr.
(set_existence): Allow sources with no sites, but cached files to be
kept.
(pick_category_line::paint): Start drawing clickable categories.
* fromcwd.cc (found_file): Reinstate local file scanning.
Robert Collins [Tue, 8 Jan 2002 10:23:18 +0000 (10:23 +0000)]
2002-01-07 Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>
* fromcwd.cc: Run indent.
(do_fromcwd): Reverse sense of comment. Set next_dialog
to IDD_CHOOSER instead of IDD_CHOOSE.
* ini.cc (find_routine): Remove "/" from "/setup.ini".
Robert Collins [Sun, 6 Jan 2002 13:37:09 +0000 (13:37 +0000)]
2001-01-07 Robert Collins <rbtcollins@hotmail.com>
* category.cc (Categorycmp): Add a const safe version.
* category.h (Categorycmp): Add a const safe version.
(Category): Add operator ==.
* choose.cc (fill_missing_category): Add every package to "All".
(pick_category_line::paint): Add support for hidden labels, and a tree depth.
(pick_category_line::click): Ditto.
(view::view): Pass in a top level category to use.
(view::insert_pkg): Special case - skip category "All".
(view::insert_category): Ditto.
(view::clear_view): Set the contents label state.
(create_listview): Pass in a top level category to view().
* choose.h (topbucket): Make bucket available to derived classes.
(pick_category_line): Add support for hidden labels, and a tree depth.
Remove our second copy of bucket.
(view): Pass in a top level category to the constructor.
Use pick_category_line to allow three level display.
Robert Collins [Sun, 6 Jan 2002 11:31:47 +0000 (11:31 +0000)]
2001-01-06 Robert Collins <rbtcollins@hotmail.com>
* cygpackage.h (cygpackage): Make set_[s|l]desc virtual.
* iniparse.y (add_correct_version): Copy descriptions across.
* package_meta.cc (SDesc): Iterate through versions, return the first with a
description.
* package_version.h (packageversion): Add new virtuals set_[l|s]desc.
Robert Collins [Thu, 3 Jan 2002 11:42:30 +0000 (11:42 +0000)]
2002-01-04 Jan Nieuwenhuizen <janneke@gnu.org>
* Makefile.in (realclean): more clean.
(OBJS): Add script.o.
* postinstall.cc (run_script_in_etc_postinstall): New function.
(do_postinstall): Split off new funtion init_run_script ().
(init_run_script):
(run):
(run_script): Move to script.cc. Replace some deprecated remove
and move calls.
* script.h:
* script.cc: New file.
* Forward port cygwin-20010707.jcn3.patch.
* package_meta.cc (uninstall): Run pre- and postremove scripts.
* install.cc: Typo fix.
(do_install): Run script initialisation.
Robert Collins [Thu, 3 Jan 2002 11:27:11 +0000 (11:27 +0000)]
2001-01-04 Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>
* cistring.cc: Run d2u.
* cistring.h: Run d2u.
* desktop.cc (etc_profile): Remove "test -f ./.bashrc && . ./.bashrc"
from the generated /etc/profile. Bash will source this file
automatically, and having this here merely results in .bashrc being
executed twice. Run d2u.
* desktop.h: Run d2u.
* propsheet.cc: Run d2u.
(PropSheetProc): New function. Add minimize box here instead of in
PropertyPage::DialogProc.
(PropSheet::Create): Change to use creation callback PropSheetProc.
(DLGTEMPLATEEX): Add 'hidden' Windows struct definition.
* propsheet.h: Run indent, d2u.
* proppage.h: Run indent, d2u.
* proppage.cc: Run d2u.
(PropertyPage::DialogProc): Remove minimize-box-adding
functionality. Remove commented-out "PropSheet_SetWizButtons" calls.
Add support for calling virtual OnMessageCmd. Add setting of fonts in
WM_INITDIALOG handler.
(resource.h): New include for resource IDs.
* res.rc: Resize and rearrange property page dialog templates
to bring them in line with "Microsoft's Backward Compatible Wizard 97"
specification. Run d2u.
(IDD_SITE): Add an edit control and an "Add" button in order to
combine the IDD_SITE and IDD_OTHER_URL functionality onto one page.
(IDD_OTHER_URL): Remove dialog template.
(IDD_DLSTATUS): Remove dialog template.
* site.cc: Run d2u.
(SitePage::OnBack): Remove NEXT() macro invocation.
(SitePage::OnActivate): New member function.
(load_dialog): Remove. Functionality subsumed into
SitePage::OnActivate.
(save_dialog): Change to support both list and user URLs. Remove
OTHER_IDX and mirror_idx logic.
(SitePage::PopulateListBox): New member function.
(SitePage::CheckControlsAndDisableAccordingly): New member function.
(SitePage::OnMessageCmd): New override.
(check_if_enable_next): Remove.
(dialog_cmd): Remove.
(do_download_site_info_thread): Remove calls to NEXT() macro.
(SitePage::Create): Call the single-param PropertyPage::Create
overload.
(other_url): New static taken from other.cc.
(SitePage::OnNext): Remove mirror_idx logic.
(SitePage::OnInit): Remove "Other URL" entry from list box. Remove
list box populating code, now handled in SitePage::PopulateListBox.
(mirror_idx, NO_IDX, OTHER_IDX): Remove.
(save_site_url): Fix potential buffer overflow problem. Switched to
TCHAR in grossly premature preparation for multilingual support.
* site.h: Run d2u.
(SitePage::OnActivate): New member function.
(SitePage::CheckControlsAndDisableAccordingly) New member.
(SitePage::OnMessageCmd): New override.
(do_download_site_info_thread): Add MessageBox call on failure to
download site list.
* splash.cc: Run d2u.
(SplashPage::OnInit): Set the font for the title.
* splash.h: Run d2u.
* threebar.cc: Run d2u.
* threebar.h: Run d2u.
* window.h: Run d2u.
(Window::IsButtonChecked): New member function declaration.
(Window::OnMessageCmd): New member function.
(Window::SetDlgItemFont): New member function declaration.
(Window::MAXFONTS, Window::Fonts, Window::FontCounter): New data
members.
* window.cc: Run d2u.
(Window::IsButtonChecked): New member function definition.
(Window::SetDlgItemFont): New member function definition.
(Window::Window): Add initialization for FontCounter.
(Window::~Window): Delete any fonts we created.
* geturl.cc: Run d2u.
(progress): Remove the "3" field width from the "%3d"
percent-complete format indicator. Causes line to not start at
beginning of text box, and does little to help with "jumping", since
the "bytes downloaded so far" field is variable-width anyway. Change
kb/s format field to "%03.1" to 0-pad the kb/s number in the event of
painfully slow connections, or temporary slowdowns in faster
connections should such more-instantaneous functionality become
available.
* net.h: Run d2u.
(NetPage::OnMessageCmd): New member function declaration.
(NetPage::CheckIfEnableNext): New member function declaration.
* net.cc: Run d2u.
(NetPage::OnMessageCmd): New member function definition.
(dialog_cmd): Remove, subsumed into NetPage::OnMessageCmd.
(check_if_enable_next): Remove.
(NetPage::CheckIfEnableNext): New member function, subsumes
check_if_enable_next.
(propsheet.h): Add include.
(NetPage::Init): Add call to CheckIfEnableNext.
(load_dialog): Remove call to check_if_enable_next.
(NetPage::Create): Call single-template-ID-parameter overload of
PropertyPage::Create instead of three-parameter one.
Robert Collins [Sun, 23 Dec 2001 12:13:29 +0000 (12:13 +0000)]
2001-12-22 Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>
* window.h (Window): New file, new class.
* window.cc (Window): New file, new class.
* threebar.h (ThreeBarProgressPage): New file, new class.
* threebar.cc (ThreeBarProgressPage): New file, new class.
* splash.h (SplashPage): New file, new class.
* splash.cc (SplashPage): Replace file with implementation of new
class.
* source.h (SourcePage): New file, new class.
* source.cc: Run indent.
(SourcePage): Add class implementation to this file.
(do_source): Remove, functionality subsumed by SourcePage::Create()
and SourcePage::OnDeactivate().
(dialog_proc): Remove, functionality subsumed by
SourcePage::OnActivate().
* site.h: Run indent.
(SitePage): Add class declaration.
* site.cc: Run indent.
(SitePage): Add class implementation.
(do_download_site_info_thread): New function.
(context): New var. Context info for do_download_site_info_thread().
(do_download_site_info): New function.
(SitePage::Create, SitePage::OnInit SitePage::OnNext)
(SitePage::OnBack): SitePage class implementation..
(dialog_cmd): Remove IDOK, ID_BACK, and IDCANCEL handlers, now handled
by SitePage members.
(dialog_proc): Remove, now handled by SitePage::OnInit and base class
functionality.
(do_site): Remove, now handled by do_download_site_info_thread() and
SitePage::OnNext functionality.
(get_site_list): Remove dismiss_url_status_dialog() call.
* root.h (RootPage): New file, new class.
* root.cc: Run indent.
(dialog_cmd): Pass parent HWND parameter to note(), yesno().
(dialog_proc): Remove.
(do_root): Remove
(dialog_cmd): Remove IDOK, ID_BACK, and IDCANCEL clauses from switch.
(RootPage::OnInit): New member function. Move get_root_dir() logic to
here from do_root().
(RootPage::Create): New member function.
(RootPage::OnNext): New member function. Move IDOK logic from
dialog_cmd() to here.
(RootPage::OnBack): New member function.
* propsheet.h (PropSheet): New file, new class.
* propsheet.cc (PropSheet): New file, new class.
* proppage.h (PropertyPage): New file, new class.
* proppage.cc (PropertyPage): New file, new class.
* net.h (NetPage): New file, new class.
* net.cc: Run indent.
(net.h, threebar.h): Add includes.
(Progress): Add extern.
(dialog_cmd): Remove IDOK, IDC_BACK, and IDCANCEL cases, now handled by
property sheet logic. Saved temporarily for reference.
(NetPage::Create, NetPage::OnInit, NetPage::OnDeactivate,
NetPage::OnNext, NetPage::OnBack):
New implementation of NetPage class members.
(do_net): Remove.
(dialog_proc): Remove.
* msg.h (fatal, note, yesno): Add owner param.
* msg.c (fatal, note, yesno, mbox): Add owner param.
(mbox): Remove MB_TOPMOST from MessageBox call. Unnecessary and wrong
now that we have a parent.
* main.cc: Run indent.
(commctrl.h, proppage.h, propsheet.h, splash.h, source.h)
(localdir.h, net.h, site.h, choose.h, threebar.h, desktop.h): Include
headers.
(root_dialog_proc): extern into this file.
(Progress): Progress dialog defined here, used in several other files.
(WinMain): Instantiate and create Splash, Source, Root, LocalDir, Net,
Site, Chooser, Desktop pages and MainWindow sheet. Call
InitCommonControls() to make sure Windows is set up for our use of
property sheets. Add pages to sheet.
Call MainWindow.Create() to "DoModal". Remove main loop, that logic is
now handled by the PropSheet class.
(root.h): Add include.
* log.cc (log_save): Pass NULL parent to fatal().
(exit_setup): Pass NULL parent to note().
* localdir.h (LocalDirPage): New file, new class.
* localdir.cc: Run indent.
(localdir.h): New include.
(threebar.h): New include.
(Progress): extern into this file.
(LocalDirPage::Create, LocalDirPage::OnInit, LocalDirPage::OnActivate)
(LocalDirPage::OnNext, LocalDirPage::OnBack): Implementation of
LocalDirPage.
(LocalDirPage::OnNext): Move log() call from do_local_dir() to here.
(dialog_cmd): Remove IDOK, ID_BACK, and IDCANCEL handlers.
(do_local_dir): Remove.
(dialog_proc): Remove.
(cwd): Remove, not used by anything.
* install.cc: Run indent.
(process.h, threebar.h): New includes.
(Progress): extern into this file.
(ins_dialog, ins_action, ins_pkgname, ins_filename, ins_pprogress)
(ins_iprogress, ins_diskfull, init_event): Remove, now handled by
ThreeBarProgressPage.
(dialog_cmd, dialog_proc, dialog): Removed, handled in
ThreeBarProgressPage.
(init_dialog): Remove all mention of the above ins_* handles. Now
handled in ThreeBarProgressPage. Altered SetWindowText()s to call
ThreeBarProgressPage instance Progress directly.
(progress): Alter bar update logic to call ThreeBarProgressPage
instance Progress directly.
(uninstall_one): Alter SetWindowText()s to call ThreeBarProgressPage
instance Progress directly.
(install_one_source): Alter SetWindowText()s to call
ThreeBarProgressPage
instance Progress directly. Pass NULL parent to note().
(do_install_thread): Rename from do_install(), added owner param.
Alter SetWindowText()s to call ThreeBarProgressPage instance Progress
directly.
Remove dismiss_url_status_dialog() call, no longer necessary. Remove
ShowWindow(<hide>) call, also unnecessary now. Pass owner handle to
fatal().
(do_install_reflector): New function.
(do_install): New function.
* ini.cc (process.h, threebar.h): New includes.
(Progress): externed into this file.
(find_routine): Pass NULL parent to note().
(do_local_ini): Add owner param.
(do_remote_ini): Add owner param. Pass owner to get_url_to_membuf()
and note(). Remove call to dismiss_url_status_dialog().
(do_ini_thread): Rename from do_ini(). Add owner param. Pass owner to
do_local_ini(), do_remote_ini(), yesno(), and note(). Set next_dialog
to IDD_CHOOSER on exit.
(do_ini_thread_reflector): New function.
(context): New var. Context for do_ini_thread.
(do_ini): New function.
* geturl.h (get_url_to_membuf, get_url_to_string, get_url_to_file): Add
owner param.
* geturl.cc (gw_dialog, gw_url, gw_rate, gw_progress, gw_pprogress,
gw_iprogress)
(gw_progress_text, gw_pprogress_text, gw_iprogress_text, init_event):
Removed.
(threebar.h): New include.
(Progress): externed into this file.
(dialog_cmd, dialog_proc, dialog): Removed, handled by
ThreeBarProgressPage now.
(init_dialog): Remove "if (gw_dialog == 0)" clause. Alter
SetWindowText()s
and bar setting SendMessage()s to call ThreeBarProgressPage instance
Progress directly. Remove "one bar only" logic, this is now handled
explicitly in the ThreeBarProgressPage class.
(progress): Altered bar and text update logic to call
ThreeBarProgressPage instance Progress directly. Changed kbps
calculation to floating point and now print out a single decimal
place.
(get_url_to_membuf): Add owner param. Pass it to init_dialog.
(get_url_to_string): Add owner param. Pass it to get_url_to_membuf.
(get_url_to_file): Add owner param. Pass it to init_dialog. Alter bar
update logic to call ThreeBarProgressPage instance Progress directly.
(dismiss_url_status_dialog): Remove.
* fromcwd.cc (do_fromcwd): Add owner param. Initialize found_ini to
false, was true.
* download.cc: Run indent.
(process.h, threebar.h): New includes.
(Progress): externed into this file.
(download_one): Add owner param. Pass it to get_url_to_file().
(do_download_thread): Renamed from do_download. Add owner param. When
calculating total_download_bytes, take binpicked and srcpicked into
account. Remove call to dismiss_url_status_dialog(), no longer needed.
Pass owner handle to download_one() and yesno().
(do_download_reflector, do_download): New functions.
(context): New var. Context for do_download_thread().
* dialog.h (D(x)): Add owner param.
* desktop.h (DesktopSetupPage): New file, new class.
* desktop.cc: Run indent.
(desktop.h): Add include.
(dialog_proc, do_desktop): Remove, now handled in
DesktopSetupPage::OnInit().
(dialog_cmd): Remove IDOK, IDC_BACK, and IDCANCEL cases, handled in
DesktopSetupPage::OnFinish(), DesktopSetupPage::OnBack(), and PropSheet
resp.
(DesktopSetupPage::Create, DesktopSetupPage::OnInit)
(DesktopSetupPage::OnBack, DesktopSetupPage::OnFinish): Implementation
of DesktopSetupPage.
* cistring.h: New file, new class.
* cistring.cc: New file, new class.
* choose.h: Run indent.
(Chooser): New class declaration.
* choose.cc: Run indent.
(do_choose): Add owner param. Pass it to DialogBox() and
fatal().
(Chooser): New class implementation.
* res.rc (IDS_VERSION_INFO): New string.
(IDD_SOURCE, IDD_LOCAL_DIR, IDD_ROOT, IDD_SITE, IDD_OTHER_URL)
(IDD_DLSTATUS, IDD_INSTATUS, IDD_SPLASH, IDD_CHOOSE, IDD_DESKTOP):
Change WS_POPUP to WS_CHILD. Numerous positioning/size changes
throughout.
(IDD_CHOOSE): Give template the WS_EX_CONTROLPARENT style to enable
TAB control navigation etc. Give the controls a reasonable tab order.
Grouped radio buttons. Something's still not right, can't tab away
from back/next/cancel group reliably.
* resource.h (IDD_CHOOSER): New dialog ID.
* Makefile.in (OBJS): Add cistring.o, proppage.o, propsheet.o,
threebar.o, and window.o.