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.
* choose.cc (paint): Wrap lines excessively long lines.
(list_click): Ditto.
(create_listview): Ditto.
(do_choose): Ditto. Replace TABs and remove CRs in lines written to
setup.log.full. Allow "Yes" for source exists in setup.log.full when
installing from local directories.
* choose.cc (set_action): Only clear srcpicked when moving to next state.
Allow source installation if it exists in the current "trust" state. Don't
move to skip state when package is installed.
(list_click): Don't allow source clicking when no source is available.
(set_full_list): Display package when not is_full_action.
* ini.h (is_full_action): Define.
* install.cc (check_for_old_cygwin): New function. First stab at checking for
old cygwin versions.
(do_install): Call check_for_old_cygwin if there were no errors during the
install.
* choose.cc (set_existence): Use pointer method for indexing in trust array.
(create_listview): Ditto.
(scan2): Ditto. Also, use consistent variable name for indexing into trust
array.
* ini.h (Package): Reorganize info array for easier scanning.
* choose.cc (isinstalled): Eliminate special download only test.
(set_action): Don't move to next state if in ACTION_SAME range and not
incrementing.
(choose_caption): Display "Retrieve" rather than "Reinstall" when just
downloading.
(do_choose): Sort packages after all packages have been read. Accomodate the
fact that first element in trust array is empty so that log files don't report
the wrong trust value.
* iniparse.y (new_package): Malloc space for package name or suffer memory
corruption.
* choose.cc (set_action): Set trust on "redo".
(_Info::_Info): New constructor.
(read_installed_db): Use new constructor. Use trusts type for iterator.
* ini.h (struct _Info): Label struct, add constructor.
(Package): Make installed_ix a type 'trusts.'
* install.cc (uninstall_one): Unset any installed info for current package.
(install_one): Allocate new Info struct for installed reflecting new installed
info.
(do_install): Don't output line to installed.db if package is being
uninstalled.
* choose.cc: Eliminate extra array throughout. Use element in package
structure instead. Use pointers rather than array indexes where appropriate.
(set_action): New function to set next action based on current.
(choose_caption): New function. Returns display caption.
(check_existence): Change arguments. Use pointer to 'info' structure.
(set_existence): Use pointer rather than array index.
(default_trust): Use trusts enum for second argument.
(set_full_list): Honor exclude element in package structure.
(build_labels): Eliminate.
(base): Make global. Use const char * argument.
(get_package_version): Eliminate.
(getpkgbyname): New function.
(read_installed_db): Use parse_filename to get version info.
* desktop.cc (make_passwd_group): Use getpkgbyname function.
* download.cc (get_file_size): const argument.
(do_download): Use is_download_action to determine when something should be
downloaded.
* filemanip.h: Add some functions.
* ini.cc (do_ini): Use NULL rather than 0 for pointer assignment.
* ini.h: Use enums for actions and trusts.
(is_download_action): New macro.
(is_upgrade_action): Ditto.
(is_uninstall_action): Ditto.
(struct Package): Add new fields.
* inilex.l (yylex): Detect new setup.ini options.
* iniparse.y: Declare new tokens.
(yyparse): Detect exclude keyword. Fill out version field even if version ==
0.
(new_package): Use greater granularity when allocating package array to avoid
repeated calls to realloc.
* install.cc (exists): const argument.
(uninstall_one): Take pkg argument.
(install_one): Ditto. Eliminate unneeded arguments which can be derived from
package info.
(do_install): Iterate over package array using a pointer. Use
is_download_action to control when package should be downloaded.
* tar.cc (tar_open): const argument.
* tar.h: Refloect const argument.
Corinna Vinschen [Mon, 28 May 2001 08:31:02 +0000 (08:31 +0000)]
* geturl.cc (get_url_to_file): Add parameter `allow_ftp_auth'.
* geturl.h: Change declaration of `get_url_to_file' accordingly.
* netio.cc (NetIO::NetIO): Add parameter `allow_ftp_auth'.
Set member `ftp_auth'.
(NetIO::open): Add parameter `allow_ftp_auth'. Use it in calls
to constructors of derived classes.
(NetIO::get_ftp_auth): New method.
* netio.h: Change class definition accordingly.
* nio-ftp.cc (NetIO_FTP::NetIO_FTP): Add parameter `allow_ftp_auth'.
Take global variables `net_ftp_user' and `net_ftp_passwd' into account.
Add code for ftp authentication retry.
* nio-ftp.h: Change class definition accordingly.
* nio-http.cc (NetIO_HTTP::NetIO_HTTP): Add parameter `allow_ftp_auth'.
Add code for ftp authentication retry in case of proxy connection.
* nio-http.h: Change class definition accordingly.
* res.rc: Add FTP authentication dialog.
* resource.h: Add new constants used in res.rc.
* state.h: Add variables `net_ftp_user' and `net_ftp_passwd'.
* Makefile.in: Make iniparse.y produce a c++ file.
* choose.cc (set_existence): Revert 2001-05-27 change.
* ini.cc: Remove "C" from declaration of yyparse.
* iniparse.y (yyparse): Fill out version field by default when a binary install
is detected and no version has been set yet.
* install.cc (do_install): Mount things earlier so that we can use proper mount
table settings. Don't remove mounts since they are now honored.
* mount.cc (create_mount): Reread the mount table after establishing a new
mount.
(read_mounts): Explicitly clear root_here to allow multiple uses of this
function. Ensure that there is no garbage in the table when we've exhausted
all of the mounts in the registry.
(cygpath): Accomodate ./ in path.
Use parse_filename method to parse filenames throughout. Use get_root_dir to
retrieve the current root directory throughout. Set const in argument list,
where appropriate, throughout.
* choose.cc (set_existence): Detect case of uninstalled package with no
version.
(parse_filename): New function.
* filemanip.h (fileparse): New structure.
* mount.cc (read_mounts): Remember where we found the root mount.
(set_root_dir): New function.
(get_root_dir): Ditto.
* mount.h: Declare new functions.
* site.cc (get_root_dir_now): Renamed from get_root_dir.
(save_site_url): Use new function name.
(get_initial_list_idx): Ditto.
Reformat file after botched patch formatting.
* choose.cc (which_trust): Eliminate variable.
(default_trust): Don't set which_trust.
(do_choose): Use selected trust when reinstalling or installing source.
Change concat to cygpath throughout. Change map_filename to cygpath
throughout.
* concat.cc (vconcat): New function.
(concat): Use vconcat.
* concat.h: Reflect above.
* install.cc (map_filename): Eliminate.
(install_one): Free dest_file.
* mount.cc (find2): Expect input key to be pointing to mount record.
(in_table): New function.
(is_admin): Move from root.cc.
(read_mounts): New function.
(path_prefix_p): New function.
(cygpath): New function.
* mount.h: Define new functions and structure.
* root.cc (in_table): Move to mount.cc.
(do_root): Call read_mounts to initialize root stuff and mount table.
* site.cc (get_root_dir): Ditto.
* resource.h: Add new field IDC_CHOOSE_INST_TEXT. Modify
_APS_NEXT_CONTROL_VALUE to account for addition of IDC_CHOOSE_INST_TEXT.
* res.rc (IDD_CHOOSE): Modify choose dialog to use new field
IDC_CHOOSE_INST_TEXT for screen text. Modify choose Dialog to allow hot keys
to select Prev, Curr, Exp.
* ini.h: Add new actions for ACTION_REDO and ACTION_SRC_ONLY. Modify define
for LOOP_PACKAGES to include new actions ACTION_REDO and ACTION_SRC_ONLY.
* choose.cc: Add new Trusts for TRUST_REDO and TRUST_SRC_ONLY.
(paint): Modify to check TRUST_SRC_ONLY when determining Bitmap for source
Checkbox to use.
(build_labels): Add logic to allow for selection of Source only
Download/ReDownload/Install/Reinstall and also to Redownload/Reinstall current
version binary.
(dialog_proc): Add conditional display for file selection prompt based on
download vs install using IDC_CHOOSE_INST_TEXT.
(do_choose): Add new logic for TRUST_REDO and TRUST_SRC_ONLY selection and
modify logic for TRUST_UNINSTALL, TRUST_KEEP, and TRUST_NONE to handle the
instance where Source Download/Install was selected. Modify log file to store
appropriate information regarding Action selected and the new actions that were
added (I.E.: ACTION_REDO and ACTION_SRC_ONLY).
* download.cc: Add include for <unistd.h> and "port.h".
(download_one): Modify parameter list to include the selected action for the
file to be downloaded. Modify size check against expected size to include
check for ACTION_REDO and ACTION_SRC_ONLY. Modify rename of .tmp file to also
remove the destination file if exists due to ability to redownload source and
binary now.
(do_download): Modify to also use ACTION_REDO and ACTION_SRC_ONLY in
calculation of Download Bytes. Modify to also use ACTION_REDO and
ACTION_SRC_ONLY in determining files selected for download.
* install.cc (uninstall_one): Add check to treat a Reinstall like an upgrade so
current version will be uninstalled prior to reinstall.
(do_install): Add logic to handle ACTION_REDO and ACTION_SRC_ONLY for
uninstalling and installing binary and source packages.
* desktop.cc (make_passwd_group): Modify logic to account for a Source only
cygwin install when checking for cygwin to determine need for mkpasswd and
mkgroup.
* winsup/cinstall/res.rc: Added accelerators and improved focus order. Removed
WS_DISABLED from "OK" buttons to accomodate default focus changes in net.cc and
source.cc.
* winsup/cinstall/net.cc (dialog_proc): If no radio button is selected, a
default is selected.
* winsup/cinstall/source.cc (dialog_proc): Ditto.
(check_if_enable_next): Removed. No longer needed since a radio button will
always be selected.
(load_dialog): Removed call to check_if_enable_next.
(dialog_cmd): Ditto. Also added default to switch.