* setup.c (findhref): Return NULL on empty string. Eat any trailing
";something".
(processdirlisting): Attempt to limit recursively processing the same
directory.
* setup.c (filedel): New function.
(output_file): Keep track of files extracted from setup.exe for subsequent
deletion.
(tarx): Close process handle of child tar process or suffer handle leak.
(getdownloadsource): Close mirror file so that it can be unlinked.
(processdirlisting): Return total number of files extracted.
(main): Initialize array of files to delete. Ensure that files are closed on
exit. Make the directory that setup.exe is started from == the directory where
temporary files are placed. Issue an error if no files were found to download.
* xsystem.c (xcreate_process): Close the thread handle. Close the process
handle if we waited for it to exit.
* setup.c (findhref): Change method for scanning for href= to choose the last
one on the line. This is still not foolproof and probably will need to be
changed eventually. Don't abort if no "size" field is evident.
(processdirlisting): Fix boolean algebra.
* setup.c (findhref): Decode file size, when appropriate.
(needfile): New function. Returns 1 when file should be downloaded.
(processdirlisting): Always download if file size does not match. Prompt when
download fails for some reason.
(getdownloadsource): Accomodate findhref argument changes.
Throughout, use global session handle rather than reinitializing for each
connect. Don't pass session as an argument to setup.c functions.
* setup.c (geturl): Only issue "Connecting to.." message when using http or
first time for ftp since subsequent connections will be fast.
(processdirlisting): Allocate space for "N" when user has specified "N"ever
option so that it can be subsequently freed.
(main): Abort if we can't get the list of mirrors.
* Makefile.in: Add umount to list of files to include in setup.exe.
* setup.c (xumount): New function for unmounting directories.
(main): Unmount /usr.
(mkmount): Unmount "unix directory" before trying to figure out where to create
the directory.
* setup.c (mkmount): Use xcreate_process to start mount process, avoiding the
shell.
(main): Don't do buffering on stdout or prompts won't be displayed correctly if
running in a cygwin shell with CYGWIN=tty.
* setup.c (geturl): Use alternative method for finding filename part of a URL.
(processdirlisting): Accomodate strange output from non-MS ftp proxy.
(downloaddir): Unlink file containing dir listing.
(downloadfrom): Ditto.
Use "warning" function, where appropriate to output warnings.
* setup.c (warning): New function -- outputs warning to console and log file.
(tarx): Fix index used to reset file protection.
(main): Open the log file earlier so that more stuff can be sent to it.
* Makefile.in: Eliminate duplicate -nostdinc from CFLAGS.
* setup.c (create_uninstall): Create the uninstall .bat file in the "root" so
that we can remove the /bin directory. Add bin\cygwin.bat to list of files to
be deleted. Fix directory detection for determining when to use 'rmdir'.
(do_start_menu): Add /usr/local/bin to the path.
(main): Add slop to files.array allocation so that we don't have to worry about
reallocating the array when it grows too large when doing some trivial
"pushes". Add /tmp and /usr/local/{bin,lib} to list of files.
* path.c (kill_cygpath): New cleanup function.
(exit_cygpath): New cleanup function.
(cygpath_pipe): New function. Sets up cygpath in the background for
translating filenames.
(pathcvt): Use background cygpath for file translation.
* setup.c (tarx): New function. Called to extract tar files, capture logging
output, and translate it to Windows format.
(recurse_dirs): Use 'tarx' function to extract files.
(create_uninstall): Use file list built up by tarx rather than reading the log
file.
(mkmount): Add ability to mount root.
(main): Track elapsed install time. Mount root.
* starry.h: Add index field to strarry for tracking of tarx's usage of this
structure.
* xsystem.c (xcreate_process): Return proces handle when not waiting.
* path.c: New file.
(pathfp): New function. Preliminary work for new -f cygpath functionality.
* Makefile.in: Add new file.
(pathcvt): Move to new file.
(dtoupath): Ditto.
(utodpath): Ditto.
(pathcat): Ditto.
* setup.c (processdirlisting): Always open file in text mode.
(create_uninstall): Ditto.
(getdownloadsource): Ditto.
(main): Ditto.
* xsystem.c: New file.
* Makefile.in: Accomodate new file.
* setup.c (xsystem): Move to new file.
(recurse_dirs): Accept handle to output log file. Don't use ">" redirection to
trap tar output. Use supplied handle instead.
(create_uninstall): Accept FILE pointer to opened log file. Don't unlink log
file here.
(do_start_menu): Accept FILE pointer to pass to create_uninstall.
(main): Open log file here and pass it to various functions. Unlink when done.
Change occurrences of .usr.bin to .bin throughout.
* setup.c (geturl): Increase number of retries to 20. Let user know what's
going on during long connects.
(processdirlisting): Accept "A"lways and "N"ever as update options.
(create_uninstall): Load cygwin1.dll from the current directory rather than
\bin.
(main): Add some expository text.
* Makefile.in: Change method for compressing cygwin1.dll to avoid creating a
cygwin1.dll in the current directory. Ensure the addition of -nostdinc to
MINGW_CFLAGS.
* Makefile.in: Eliminate traces of cygwinisms. Don't link with libmsvcrt.a.
It's unneeded. Build .rc file on the fly from various sources.
* configure.in: Locate correct objcopy.
* configure: Regenerate.
* configure.in: New file.
* configure: New file.
* zlib/Makefile.am: New file.
* zlib/configure.in: New file.
* zlib/aclocal.m4: New file.
* zlib/acinclude.m4: New file.
* zlib/configure: Regenerate from configure.in.
* zlib/Makefile.in: Regenerate from Makefile.am