Robert Collins [Thu, 20 Dec 2001 11:49:54 +0000 (11:49 +0000)]
2001-12-20 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in: Add libcomctl32.a for setup.exe.
* archive.h (archive): Prevent non-child direct creation of the class.
* archive_tar.h (archive_tar): Prevent inaccurate synthetic copy and assignment.
* choose.cc: Include commctrl for the choose header.
(NEW_COL_SIZE_SLOP): Define without magic numbers.
(pkgtrustp): Convert to function.
(set_action): Remove.
(add_required, fill_missing_category,default_trust): Use list syntax for
package list.
Use new set_action.
(choose_caption): Remove.
(topbucket::paint): New method.
(topbucket::empty): Ditto.
(topbucket::click): Ditto.
(topbucket::~topbucket): Ditto.
(paint): Remove i,ii and p as they are obsolete.
Remove header drawing code.
Use new chooser method to paint the chooser.
Use new chooser itemcount method.
(scroll_common): Rename to view::scroll.
Scroll the header window separately.
(list_vscroll, list_hscroll, list_click): Update for new chooser methods.
(listview_proc): Look for header messages.
(note_width): Accept stringless calls.
(pick_line::set_line): Remove.
(pick_line::paint): Remove.
(pick_pkg_line::paint): Paint this one line, using the header column widths.
(pick_category_line::paint): Paint this category, and anything in the bucket.
(pick_line::click): Remove.
(pick_pkg_line::click): Handle a click.
(pick_category_line::click): Handle a click.
(_view): Rename all to view.
(view::view): Initialise the control contents.
(view::set_headers): Work with the header control.
(view::init_headers): Use list syntax for package list.
Rearrange the width logic a little.
(view::insert_pkg): Update to use the hierarchy.
(view::insert_category): Ditto.
(view::insert_at, view::insert_under): Remove.
(view::clear_view): Update to use the hierarchy.
(view::click): Update to use the hierarchy.
(set_view_mode): Use list syntax for package list.
Update for new chooser methods.
(DoInsertItem): New helper function. (Needs a home somewhere).
(create_listview): Remove choose control code and use the constructor instead.
(dialog_cmd,scan2,do_choose): Use list syntax for package list.
* choose.h: Include newly required headers list and package_meta.
(_voew): Rename to view.
(pick_line): Convert to an ABC.
(pick_pkg_line): New class.
(pick_catgory_line): New class.
(topbucket): New class.
(view::scroll): New method created from listview_scroll function.
* desktop.cc (make_passwd_group): Use list syntax for package list.
* download.cc (do_download): Use list syntax for package list.
* fromcwd.cc (found_file): Use list syntax for package list.
* iniparse.y (pacakges): Use list syntax for package list.
* install.cc (uninstall_one): Use list syntax for package list.
(do_install): Use list syntax for package list.
* io_stream.h (io_stream): Prevent non-child direct creation of the class.
Prevent inaccurate synthetic copy and assignment.
* list.h: Include required header stdlib.
Work on const correctness.
* package_db.cc (packagedb::getpackagebyname): Remove.
(packagedb::packagedb): Remove custom list code, and make db a local.
(packagedb::getfirstpackage): Remove.
(packagedb::getnextpackage): Remove.
(packagedb::addpackage): Remove.
(flush): Remove custom list code.
(packagedb::registerpackage): Remove.
(packagedb::packages): New static member.
(packagedb::task): New static member.
* package_db.h (PackageDBActions): New enum.
(packagedb): Remove getfirstpackage, getnextpackage, getpackagebyname,
addpackage, registerpackage, packages, packagecount, curr_package, db.
Add packages, task.
* pacakge_meta.cc: Include package_db.h.
(packagemeta::action_caption): New method.
(packagemeta::set_action): New method.
* package_meta.h (CategoryPackage): Initialise key.
(packagemeta): Initialise key.
Add set_action and action_caption methods.
Prevent inaccurate synthetic copy and assignment.
* resource.h (IDC_CHOOSE_LISTHEADER): New ID.
* source.cc: Include package_db for db manipulation.
(save_dialog): Set the db task.
* win32.h: Tell the w32 include headers what IE version to expect/require.
Robert Collins [Mon, 3 Dec 2001 22:22:09 +0000 (22:22 +0000)]
2001-12-04 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in (OBJS): Add setup_version.o.
(version.c): Rename to setup_version.
* choose.cc (set_action): Prevent NULL pointer dereference.
(package_sort): Remove.
* fromcwd.cc (canonicalize_version): Moved to version.cc.
(check_ini): New function for use with find to see if there is a cached setup.ini.
(do_fromcwd): Check for a cached setup.ini from any mirror site.
* ini.cc (find_routine): New function, for finding cached setup.ini's.
(do_local_ini): New function, drives parsing of local ini's.
(do_remote_ini): New function, drives parsing and caching of remote ini's.
(do_ini): Move guts to do_remote_ini and do_local_ini.
* list.h (removebyindex): New method.
* other.cc (save_dialog): Use new site_list and all_site_list to add the
new site to the site picklist.
(dialog_cmd): Only save the dialog when exiting the dialog.
* res.rc (IDD_SITE): Make IDC_URL_LIST a multiple-selection control.
* site.cc (site_list_type): Move to site.h
(site_list): New global, sites chosen by the user.
(all_site_list): New global, all potential sites.
(site_list_type::init): New method, parses a mirror.lst URL string into a
site_list_type object.
(site_list_type::site_list_type): New method.
(check_if_enable_next): Examine the control, not a local variable.
(load_dialog): Select all the user chosen sites by default.
(save_dialog): Adjust for multiple selection semantics.
(save_site_url): Save all user chosen sites.
(dialog_cmd): Don't save the dialog when the listbox recieves a message -
thats not needed.
Remove obsolete other_url reference.
(dialog_proc): Use all_site_list instead of site_list.
(site_sort): Remove.
(get_site_list): Remove malloc use - use list template instead.
Move site_list_type initialisation to site_list_type::init().
(get_initial_list_idx): Renamed to ...
(get_saved_sites): this. Also read in multiple sites to the site_list.
(do_site): Use all_site_list not site_list.
Log all chosen sites.
* site.h: New file, defines site related class, functions and variables.
* state.h: Add comment about use of state.h
(mirror_site): Remove.
(other_url): Remove.
(MIRROR_SITE): Remove.
* version.cc: New file, for version-handling and related functions.
Robert Collins [Sun, 2 Dec 2001 03:25:11 +0000 (03:25 +0000)]
2001-12-02 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in: Add filemanip.o to setup.
* archive.cc (archive::extract_file): Use new io_stream method 'copy'.
* archive_tar.h (archive_tar_file): Implement get_size virtual.
(archive_tar): Ditto.
* choose.cc (set_action): Use [] operator instead of getnth - its more readable.
(paint): Ditto.
(_view::init_headers): Ditto.
(_view::insert_pkg): Ditto.
(set_view_mode): Ditto.
(scan2): Ditto.
(do_choose): Ditto.
(base): Moved to filemanip.cc.
(find_tar_ext): Ditto.
(parse_filename): Ditto.
(_Info::_Info): Remove.
* compress_bz.h (compress_bz): Implement get_size virtual.
* compress_gz.h (compress_gz): Implement get_size virtual.
* cygpackage.cc (cygpackage::destroy): Use array delete for char * objects.
* download.cc (get_file_size): Move to filemanip.cc.
(check_for_cached): Use [] operator instead of getnth - its more readable.
(download_one): Ditto.
* filemanip.cc: New file.
* geturl.cc (init_dialog): Make url a pointer to const as it is not modified.
(get_url_to_membuf): New function - contains get_url_to_string worker code.
(get_url_to_string): Becomes a trivial wrapper to get_url_to_membuf.
* geturl.h: Declare new prototype.
* ini.cc (do_ini): Use get_url_to_membuf and pass ini_init an io_stream.
Tidy up the error code a little.
* ini.h: Remove __cplusplus protection for ini_init.
(_Info): Remove.
* inilex.l: Remove old globals.
(ini_init): Use an io_stream for getting the characters.
(ini_getchar): Ditto.
* iniparse.y: Declare yylex as a C++ function.
(add_correct_version): Use [] operator instead of getnth - its more readable.
* io_stream.cc (io_stream::move_copy): Use the copy method.
(io_stream::copy): New method to simply copy from one stream to another.
* io_stream.h (io_stream): New static method copy, and virtual method get_size.
* io_stream_cygfile.cc (io_stream_cygfile::get_size): Implement this.
* io_stream_cygfile.h (io_stream_cygfile::get_size): Declare this.
* io_stream_file.cc (io_stream_file::get_size): Implement this.
* io_stream_file.h (io_stream_file::get_size): Declare this.
* io_stream_memory.h: Include errno as it's neded to parse the header.
(io_stream_memory::get_size): Implement this.
(io_stream_memory::st_size): Delete this.
* list.h: Change getnth into the [] operator.
* netio.cc (NetIO::NetIO): Change prototype to reflect Purl not being modified.
(NetIO::set_url): Ditto.
(NetIO::open): Ditto.
* netio.h: As for netio.cc.
* nio-file.cc (NetIO_File::NetIO_File): Change prototype to reflect Purl not
being modified.
* nio-file.h: Ditto.
* nio-ftp.cc (NetIO_FTP::NetIO_FTP): Ditto.
* nio-ftp.h (NetIO_FTP::NetIO_FTP): Ditto.
* nio-http.cc (NetIO_HTTP::NetIO_HTTP): Ditto.
* nio-http.h (NetIO_HTTP::NetIO_HTTP): Ditto.
* nio-i5.cc (NetIO_IE5::NetIO_IE5): Ditto.
* nio-i5.h (NetIO_IE5::NetIO_IE5): Ditto.
* package_meta.cc (packagemeta::~packagemeta): Bugfix: use array delete.
* package_source.cc (packagesource::set_canonical): Ditto.
(packagesource::set_cached): Ditto.
* package_source.h (site::~site): Ditto.
* site.cc: Change site_list_type to a class, and search and replace sort_key to
key globally.
Robert Collins [Fri, 30 Nov 2001 12:25:00 +0000 (12:25 +0000)]
2001-11-30 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in (OBJS): Remove category_list - it's not needed.
* README: More wishlist updates.
* category.cc (Category::Category): Initialise new members.
(Categorycmp): New function.
* category.h (Category): New member key for template use.
* category_list.cc: Remove.
* category_list.h: Remove.
(Categorycmp): New function prototype.
* choose.cc: Remove category_list - not needed.
(set_action): Only show the 'source' option when the source is actually
available.
(add_required): Fix recursion limiter to 5.
(fill_missing_category): Use list access.
(default_trust): Ditto.
(pick_line::paint): Ditto.
(_view::init_headers): Ditto.
(_view::insert_pkg): Ditto.
(_view::insert_category): Ditto.
(_view::click): Ditto.
(set_view_mode): Ditto.
(do_choose): Ditto.
* cygpackage.h: Remove category_list - not needed.
* geturl.cc (get_url_to_string): Fix null byte insertion.
* inipatse.y: Remove category_list - not needed.
(categories): Use list access.
* package_db.cc: Ditto.
* package_db.h: Remove category_list - not needed.
(packagedb): Use the list template for categories.
* package_meta.cc (add_category): Ditto.
* package_meta.h (CategoryPackage): Link to the category as well.
(packagemeta): Use a list of CategoryPackages instead of Categories
for more memory efficient cross-referencing.
Robert Collins [Thu, 29 Nov 2001 09:52:33 +0000 (09:52 +0000)]
2001-11-29 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in (OBJS): Add package_source and rfc1738.
* README: Wishlist update.
* category_list.cc (register_category): Use references.
* category_list.h (CategoryList): Ditto.
* choose.cc (isinstalled): Remove.
(pkgtrustp): New macro.
(set_action): Use packagemeta.
(add_required): Ditto.
(choose_caption): Example package to choose caption, rather than state flags.
(check_existence): Remove.
(set_existence): Remove old code.
(fill_missing_category): Use packagemeta.
(keep_or_skip): Remove.
(default_trust): Use packagemeta and set trust values directly.
(pick_line::set_line): Use packagemeta.
(_view::insert_pkg): Ditto.
(_view::insert_category): Ditto.
(_view::click): Ditto.
(set_view_mode): Ditto. Also remove "exclude" code.
(create_listview): Use packagemeta.
(dialog_cmd): Ditto.
(getpkgbyname): Remove
(scan2): Use packagemeta. Temporarily comment out the holefinding code.
(read_installed_db): Remove.
(package_sort): Use packagemeta.
(do_choose): Use packagemeta. Don't sort the packages - the db does that.
* choose.h: Use packagemeta.
* cygpackage.cc (cygpackage::cygpackage): Initialise all variables.
(cygpackage::cygpackage): Ditto.
(cygpackage::set_canonical_version): Copy the passed string.
(cygpackage::~cygpackage): Move cleanup code to destroy().
(cygpackage::destroy): New function.
(cygpackage::getfirstfile): Use a separate buffer.
(cygpackage::getnextfile): Ditto.
(cygpackage::Canonical_version): New function.
(cygpackage::set_sdesc): Ditto.
(cygpackage::set_ldesc): Ditto.
* cygpackage.h (cygpackage::Canonical_version): New method.
(cygpackage::set_sdesc): New method.
(cygpackage::set_ldesc): New method.
(cygpackage::SDesc): New method.
(cygpackage::LDesc): New method.
(cygpackage::set_canonical_version): New method.
* desktop.cc: Include packagedb headers.
(make_password_group): Use packagemeta.
* download.cc: Include packagedb headers.
(check_for_cached): New method to find any cached file and fill out the database
info.
(download_one): Take a packagesource, support multiple mirrors.
(do_download): Use packagemeta.
* from cwd.cc: Include packagedb headers.
(found_file): Use packagemeta.
* ini.cc (do_ini): Beginning of multiple-mirror support.
* ini.h (CategoryPackage): Remove.
(Dependency): Remove.
(Package): Remove.
(new_package,getpkgbyname,getpackagecategorybyname,add_category): Remove.
* inilex.l: Support multiple mirrors.
* iniparse.y: Include packagedb headers.
(parser): Use packagemeta.
(new_package): Remove.
(add_correct_version): New function.
(new_requirement): Remove.
(add_category): Remove.
* install.cc (uninstall_one): Use packagemeta.
(install_one_source): New function.
(install_one): Use packagemeta.
(do_install): Use packagemeta.
* io_stream.cc (io_stream::move): Bugfix on move/copy case.
* io_stream_cygfile.cc (io-stream_cygfile::set_mtime): Do not reopen the file
after setting the mtime, it makes no sense, and results in 0 length files.
* io_stream_file.cc (io-stream_file::set_mtime): Ditto.
* list.h: New file, template class for a form of list.
* package_db.cc (packagedb::registerpackage): New function.
* package_db.h (packagedb::npackages ()): New method.
* package_meta.cc (packagemeta::add_version): Use list template.
(packagemeta::set_installed): Ditto.
(packagemeta::add_category): New method.
* package_meta.h: Include necessary headers to parse the class.
(CategoryPackage): New class.
(packagemeta): Initialise all members.
(packagemeta::SDesc): New method.
(packagemeta::Categories): New method.
(packagemeta::add_category): Ditto.
(packagemeta::versions): Change to be a list instance.
* package_source.cc (packagesource::set_canonical): New method.
(packagesource::set_cached): New method.
* package_source.h: Include necessary headers to parse the class.
(site): New class.
(packagesource::packagesource): Initialize all members.
(packagesource): Make this class non-abstract.
* package_version.cc (packageversion::packageversion): New method.
* package_version.h (Dependency): New class.
(packageversion::Canonical_vesion): New method.
(packageversion::SDesc): New method.
(packageversion::LDesc): New method.
(packageversion::new_requirement): Ditto.
(packageversion::srcpicked, binpicked): What to install.
(packageversion::src, bin): Installation source data.
* rfc1738.cc: New file. Escapes special characters in URL's.
* rfc1738.h: Ditto.
Robert Collins [Wed, 28 Nov 2001 12:05:27 +0000 (12:05 +0000)]
2001-11-26 Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>
* nio-http.cc (NetIO_HTTP::NetIO_HTTP): Stop header parsing when
SimpleSocket::gets() returns a zero-length string, so that we
don't end up eating the entire stream thinking it's all header info.
Robert Collins [Thu, 22 Nov 2001 23:53:15 +0000 (23:53 +0000)]
2001-11-23 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in (OBJS): Add package_version.
* ategory.cc (Category::Category): Update constructors.
* category_list.cc (CategoryList::register_category): Insert correctly.
* choose.cc: Include package_version.h, not package.h.
* cygpackage.cc: Ditto.
(cygpackage::uninstall): New method.
* cygpackage.h (cygpackage): Rename genericpackage to packageversion.
New method uninstall.
* hash.cc (add, has, enumerate): Change prototype to be accurate.
* hash.h (hash): Change prototypes to be accurate.
* ini.h (_Info): New parameterless constructor.
(CategoryPackage): New constructor.
(Package): Ditto.
* install.cc: Don't include unneeded headers.
Include package database headers.
(hash::add_subdirs): Remove.
(uninstall_one): Use packagemeta->uninstall to perform the uninstallation.
Don't uninstall source packages.
(do_install): Just can uninstall_one once as we ignore source packages now.
Don't copy the installed.old database accross, instead iterate through the
packagedb packages list and write the isntalled packages out.
* package_db.cc: Include package_version.h, not package.h.
(packagedb::packagedb): Never let db be undefined.
Record the installation filename, so we can reconstruct installed.db.
(packagedb::addpackage): Insert packages in alpha sorted order.
(packagedb::categories): Initialise correctly.
* package_meta.cc: Include win32 and mount headers as a workaround to
current io_stream limitations. Include a TODO about that.
(standard_dirs): New, from install.cc.
(hash::add_subdirs): New, from install.cc.
(packagemeta::set_installed): Rename genericpackage to packageversion.
(packagemeta::uninstall): New method.
* package_meta.h: Rename genericpackage to packageversion.
(packagemeta): Update constructor.
(add_version, set_installed): Rename genericpackage to packageversion.
(uninstall): New method.
(installed_from): New member.
* package_source.cc: New file.
* package_source.h: New file.
* package_version.cc: New file.
* package_version.h: New file.
* package.cc: Removed.
* package.h: Removed.
Robert Collins [Wed, 21 Nov 2001 11:14:09 +0000 (11:14 +0000)]
2001-11-21 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in (OBJS): Add category.o and category_list.o.
* category.h: New file.
* category.cc: New file.
* category_list.h: New file.
* category_list.cc: New file.
* choose.cc: Include category headers.
(fill_missing_category): Use package_db to access global categories.
(_view::insert_pkg): Ditto.
(_view::insert_category): Ditto.
(set_view_mode): Ditto.
(getcategorybyname): Remove.
* cygpackage.h: Include category_list.h to parse this correctly.
(cygpackage): New virtual &Categories.
* ini.h (_CategoryPackage): More C to C++ conversion.
(Category): Remove.
(getcategorybyname): Remove.
(register_category): Remove.
* iniparse.y: Include package db and category headers.
(categories): Use package_db to access global categories.
(category): Remove.
(ncategories): Remove.
(register_category): Remove.
* package.h: New virtual &Categories.
* package_db.cc (packagedb::packagedb): Don't read the installed db twice.
(packagedb::categories): Declare.
* package_db.h (packagedb): New member categories for global categories list.
Robert Collins [Wed, 21 Nov 2001 03:44:34 +0000 (03:44 +0000)]
2001-11-21 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in (OBJS): Add package abstraction objects.
* choose.cc: Include package abstraction headers.
(read_installed_db): Use packagedb class and ignore installed sources.
* cygpackage.cc: New file.
* cygpackage.h: New file.
* filemanip.h (get_file_size): Use unixy types.
* package.h: New file.
* package.cc: New file.
* package_db.cc: New file.
* package_db.h: New file.
* package_meta.cc: New file.
* package_meta.h:
Robert Collins [Wed, 14 Nov 2001 09:21:59 +0000 (09:21 +0000)]
2001-11-14 Robert Collins <rbtcollins@hotmail.com>
* Makefile.in (OBJS): Include io_stream_memory in setup.exe.
* archive_tar.cc (archive_tar::write): New prototype.
(archive_tar::seek): New method.
* archive.h (archive_tar_file): Update write() and add seek().
(archive_tar): Ditto.
* archive_tar_file.cc (archive_tar_file::write): New prototype.
(archive_tar_file::seek): New method.
* compress_bz.cc (compress_bz::write): New prototype.
(compress_bz::seek): New function.
* compress_bz.h (compress_bz): Update write() and add seek().
* compress_gz.cc (compress_gz::write): New prototype.
(compress_gz::seek): New function.
* compress_gz.h (compress_gz): Update write() and add seek().
* geturl.cc: Include io_stream headers.
(GUBuf): Remove.
(get_url_to_string): Use a io_stream_memory buffer instead of GUBuf.
* io_stream.h (io_stream_seek_t): New enum.
(io_stream): Update write() and add seek().
* io_stream_cygfile.cc (io_stream_cygfile::write): New prototype.
(io_stream_cygfile::seek): New function.
* io_stream_cygfile.h (io_stream_cygfile): Update write() and add seek().
* io_stream_file.cc (io_stream_file::write): New prototype.
(io_stream_file::seek): New function.
* io_stream_file.h (io_stream_file): Update write() and add seek().
Robert Collins [Wed, 14 Nov 2001 00:11:35 +0000 (00:11 +0000)]
2001-11-13 Brian Keener <bkeener@thesoftwaresource.com>
* localdir.cc: Add headers unistd.h and port.h.
(save_local_dir): Expand search logic to include local directory for
location of file last-cache.
(dialog_cmd): Skip IDD_ROOT when downloading and use Back button.
(do_local_dir): Expand search logic to include local directory for file
last-cache.
* res.rc (IDD_CHOOSE_DIALOG): Add hotkey to View button.
* Source.cc (dialog_cmd): Skip IDD_ROOT if select Download from
Internet.
(do_source): Default to Install from Internet on first entry or
previous selection if backing up from IDD_ROOT or IDD_LOCAL_DIR.
Robert Collins [Fri, 9 Nov 2001 14:12:00 +0000 (14:12 +0000)]
2001-11-10 Robert Collins <rbtcollins@hotmail.com>
* ini.h (actions): Remove - transferred to choose.h.
(views): Ditto.
* choose.h: Protect class's from "C" compilers.
(actions): New enum, from ini.h. This may not be the 'right' place
but that place doesn't exist yet.
(_views): New enum, from ini.h.
* choose.cc (set_action): Handle installed packages with a version not in
setup.ini.
(choose_caption): Ditto.
* iniparse.y: Rearrange header order to handle new ini.h.
Robert Collins [Fri, 9 Nov 2001 13:03:02 +0000 (13:03 +0000)]
2001-11-08 Pavel Tsekov <ptsekov@syntrex.com>
* simpsock.h (SimpleSocket::invalidate): Declare new method.
* simpsock.cc (SimpleSocket::invalidate): Implement new method.
(SimpleSocket::SimpleSocket): Initialize buf to zero. Do not allocate
memory for buf in the constructor.
(SimpleSocket::~SimpleSocket): Use SimpleSocket::invalidate().
(SimpleSocket::printf): Use SimpleSocket::write() instead of send().
(SimpleSocket::write): Check object consistency - return -1 on error.
invalidate() the object on socket write error.
(SimpleSocket::fill): Check object consistency - return -1 on error.
invalidate() the object if socket read error is encountered and there
is no more data available in the internal read buffer.
Allocate memory for the internal read buffer.
(SimpleSocket::gets): Return zero (NULL pointer) if error is encountered
during fill() and no more data is available in the internal read buffer.
(SimpleSocket::read): Check object consistency - return -1 on error.
invalidate() the object if socket read error is encountered.
* nio-ftp.cc (NetIO_FTP:NetIO_FTP): Allow 125 as valid response code to
the RETR command (fix for MS IIS ftp server 5 - possibly others too).
(NetIO_FTP::ok): Check if the SimpleSocket object is ok().
(NetIO_FTP::read): Use NetIO_FTP::ok().
* nio-http.cc: Check for valid return value of SimpleSocket::gets().
(NetIO_HTTP::ok): Check if the SimpleSocket object is ok().
Robert Collins [Mon, 5 Nov 2001 13:00:36 +0000 (13:00 +0000)]
2001-11-06 Pavel Tsekov <ptsekov@syntrex.com>
* fromcwd.cc (found_file): Free() memory containing the version and
filepath information for a given package, before replacing the pointers which
reference this memory.
Robert Collins [Fri, 2 Nov 2001 05:00:34 +0000 (05:00 +0000)]
2001-11-02 Robert Collins <rbtcollins@hotmail.com>
* choose.cc: Ran indent.
(set_action): When the requested trust level is missing and the level was not
user requested, set the action to ACTION_SAME_CURR.
Robert Collins [Fri, 2 Nov 2001 00:50:19 +0000 (00:50 +0000)]
2001-11-02 Pavel Tsekov <ptsekov@syntrex.com>
* geturl.cc (is_showing): Remove.
(is_local_install): New static variable. Controls whether the
progress dialog and the supporting thread will be created.
(dialog_proc): Return TRUE to WM_INITDIALOG as specified by the WIN32 API.
(init_dialog): Remove usage of SetForegroundWindow and is_showing.
This prevents the progress dialog to gain control over the
application and fixes the "setup.exe going to background" problem.
(progress): Use is_local_install.
(get_url_to_string): Set is_local_install.
(dismiss_url_status_dialog): Use is_local_install.
* install.cc (dialog_proc): Return TRUE as specified in WIN32 API.
(init_dialog): Remove usage of SetForegroundWindow.
This prevents the progress dialog to gain control over the
application and fixes the "setup.exe going to background" problem.
Robert Collins [Fri, 2 Nov 2001 00:38:26 +0000 (00:38 +0000)]
2001-11-02 Robert Collins <rbtcollins@hotmail.com>
* choose.cc (list_click): Change r to row for clarity.
When we shrink the list below 1 page, scroll to the top of the list.
(_view::click): Return the actual change for contractions.
(dialog_proc): Return TRUE to WM_INITDIALOG as specified by the Win32 API.
Robert Collins [Thu, 1 Nov 2001 13:22:46 +0000 (13:22 +0000)]
2001-11-02 Robert Collins <rbtcollins@hotmail.com>
* choose.cc (dialog_cmd): Swap cygwin root selection and local dir selection order.
* localdir.cc: Ran indent.
(get_root_dir_now): New function.
(save_local_dir): New function.
(dialog_cmd): Use it and swap cygwin root selection and local dir selection order.
(do_local_dir): If there is a saved local dir, read it in.
* net.cc (dialog_cmd): Swap cygwin root selection and local dir selection order.
* root.cc (dialog_cmd): Ditto.
* source.cc (dialog_cmd): Ditto.
Robert Collins [Wed, 31 Oct 2001 13:15:06 +0000 (13:15 +0000)]
2001-11-01 Matt Hargett <matt@use.net>
* geturl.cc (progress): Change int to unsigned int to eliminate
lint warnings.
* (get_url_to_string): Check for NULL pointer.
* mount.cc (find2): Use free instead of delete for malloc'd
memory.
* nio-http.cc (NetIO_HTTP::NetIO_HTTP): Fix memory leak.
Robert Collins [Wed, 31 Oct 2001 13:00:11 +0000 (13:00 +0000)]
2001-10-31 Robert Collins <rbtcollins@hotmail.com>
* choose.cc(_view::insert_under): Handle linen > nlines and lines[linen] with neither
a package nor a category. The lines[linen] bug was reported by Matt (matt@usa.net).
(read_installed_db): Bugfix for testing whether a package has a source tarball.
Reported by Matt (matt@usa.net).
* geturl.cc(dialog): Rename gw_dialog to local_gw_dialog to avoid programmer
confusion and lint errors. Reported by Matt (matt@usa.net).
Robert Collins [Wed, 31 Oct 2001 09:39:13 +0000 (09:39 +0000)]
2001-10-31 Robert Collins <rbtcollins@hotmail.com>
* argv.cc: New file, converts arguments for -mwindows programs. (Simplified derivation
from dcrt0.cc.)
* argv.h: New file.
* Makefile,in: Add argv.o and mingw_getopt.o to setup.exe object list.
Add mingw_getopt.o build rule.
* main.cc(WinMain): Initialise argv and argc for use by getopt.
* desktop.cc (make_passwd_group): Move file creation earlier in the process to
ensure that passwd-grp.bat reflects desired operation.
* postinstall.cc (each): Remove "*.done" file else rename will fail.
Copyrights.
* autoload.c: Add dynamic load statements for NT/W2K
advapi32 functions not available in 9x/ME.
* main.cc (set_default_dacl): New function.
(WinMain): Call `set_default_dacl' if running on NT/W2K.
* ini.h (_CategoryPackage): Change pkg field to pkgname for consistency.
* choose.cc: Use pkgname field when referencing _CategoryPackage throughout.
(fill_missing_category): Don't add excluded packages.
(default_trust): Ditto.
(_view::insert_pkg): Ditto.
* iniparse.y (register_category): Use consistent variable name.
* choose.cc (set_action): Use default trust for determining reinstall and
source only.
(default_trust): Set default trust.
(pick_line::paint): Allow source selection when reinstalling or retrieving.
* choose.cc (isinstalled): Modify to properly accomodate special case of
"download only".
(set_action): Check downloaded components, not installed components if
"download only".
(set_existence): Always include full list of files when "download only".
* res.rc (IDD_LOCAL_DIR): Change caption to match the other dialog boxes.
(IDD_CHOOSE))))))))): Adjust horizontal size so package names are visible.
* choose.cc: Restore some more changes from 2001-06-25, throughout.
(paint): Wrap some excessively long lines.
(pick_line::paint): Ditto. Move the arrow in the "Current" column right to
where it belongs. Move the source checkbox slightly to the right.
(do_choose): List categories and required packages in setup.log.full.
* choose.cc (scan2): Restore source scanning eliminated by previous checkin.
* ini.h (struct _Info): Add "derived" element.
* choose.cc (scan2): Try to place unknown tar files into proper slot when
package exists in setup.ini but tar file does not.
*ini.h: Reapply 2001-06-25 changes.
* choose.cc (add_required): Ditto. Default to "Keep" state if UNINSTALL and
product is installed. Default to curr state if SKIP, etc.
(keep_or_skip): New function. Returns skip or keep state depending on
installed state of package.
(default_trust): Use keep_or_skip to set state.
(_view::insert_pkg): Use calloc to allocate lines.
(set_view_mode): Adapt 2001-06-25 change to set_full_list here.
Robert Collins [Sat, 30 Jun 2001 01:37:55 +0000 (01:37 +0000)]
Sat Jun 30 11:01:00 2001 Robert Collins <rbtcollins@hotmail.com>
* choose.cc: Remove globals full_list, headers, package_indexes and
nindexes.
Add globals cat_headers, pkg_headers and chooser.
(add_required): New function.
(paint): Use the chooser for header details.
Call into the chooser to paint each line.
(list_click): Use new global variables.
Call into the chooser to handle the click.
Repaint the entire view if packages have been added or removed.
(note_width): Get passed a headers struct rather than using a global
variable.
(fill_missing_category): New function.
(default_trust): Skip non-"Required" or "Misc" packages.
(pick_line::set_line (Package *)): New function.
(pick_line::set_line (Category *)): New function.
(pick_line::paint): New function.
(pick_line::click): New function.
(_view::_view): New function.
(_view::set_view_mode): New function.
(_view::mode_caption): New function.
(_view::set_headers): New function.
(_view::init_header): New function.
(_view::insert_pkg): New function.
(_view::insert_category): New function.
(_view::insert_at): New function.
(_view::insert_under): New function.
(_view::clear_view): New function.
(viewsplusplus): New function.
(_view::client): New function.
(set_view_mode): Use new chooser functionality.
(set_full_list): Use new global variables.
(create_listview): Instantiate chooser.
Remove all hardcoded headers[] code.
(dialog_cmd): On trust changes, check dependencies.
(getcategorybyname): New function.
(getpackagecategorybyname): New function.
(scan2): Use case-insensitive package comparison.
(do_choose): Use fill_missing_category ().
Show some category data.
* ini.h: Protect against multiple inclusion.
(views) New enum.
(_CategoryPackage): New struct.
(_Category): New struct.
(_Package): Change category to Category * from char *.
(extern Category category): New global variable.
(extern in ncategories): Ditto.
(getcategorybyname): New prototype.
(catpackagecategorybyname): New prototype.
(register_category): New prototype.
(add_category): New prototype.
* iniparse.y: Parse multiple categories per package.
category: New global variable.
ncategories: New global variable.
(new_package): Compare package against NULL, not 0.
(new_requirement): Source formatting fix.
(register_category): New function.
(add_category): New function.
* res.rc: Change IDC_CHOOSE_FULLPART to IDC_CHOOSE_VIEW.
IDC_CHOOSE_VIEWCAPTION: New control.
* resource.h: Change IDC_CHOOSE_FULLPART to IDC_CHOOSE_VIEW.
IDC_CHOOSE_VIEWCAPTION: New control.
Increment _APS_NEXT_CONTROL_VALUE.