Use git-describe to determine release version
[cygwin-setup.git] / ChangeLog
blob7f7a2b40cd4e3793e7ae38469d974204e4bc89de
1 2015-02-16  Achim Gratz  <ASSI <Stromeko@NexGo.DE>>
3         * Makefile.am (VER): Use git-describe to construct version string
4         based on annotated release tags.
5         (setup_version.c): Echo setup version, use round parens instead of
6         curlies.
8 2015-02-10  Corinna Vinschen  <corinna@vinschen.de>
10         * Makefile.am (VER): Don't use ChangeLog revision number since git
11         doesn't maintain it.  Use ChangeLog's commit count instead.
13 2015-02-07  Achim Gratz  <Stromeko@NexGo.DE>
15         * install.cc (preremoveOne): Allow dash scripts and ".cmd" as an
16         additional extension for WIndows batch files.
18 2015-02-06  Corinna Vinschen  <corinna@vinschen.de>
20         * package_meta.h (packagemeta::trustp): Make sure that curr and
21         installed exist before using them in version comparisons.  Install exp
22         over installed only if exp has a higher version number than installed.
24 2015-02-05  Corinna Vinschen  <corinna@vinschen.de>
26         Throughout, change preceeding patch from SHA256 to SHA512.
27         * Makefile.am (BASECXXFLAGS): Add -Wno-attributes for the sake of
28         sha2.c.
30 2015-02-05  Corinna Vinschen  <corinna@vinschen.de>
32         Prepare for changing from MD5 to SHA256 checksums.
33         * IniDBBuilder.h (IniDBBuilder::buildInstallSHA256): Declare as pure
34         virtual method.
35         (IniDBBuilder::buildSourceSHA256): Ditto.
36         * IniDBBuilderPackage.h (IniDBBuilderPackage::buildInstallSHA256):
37         Declare.
38         (IniDBBuilderPackage::buildSourceSHA256): Ditto.
39         * IniDBBuilderPackage.cc: Formatting changes.
40         (IniDBBuilderPackage::buildInstallSHA256): New method to store SHA256
41         sum for binary package.
42         (IniDBBuilderPackage::buildSourceSHA256): Ditto for source package.
43         * Makefile.am (@SETUP@_SOURCES): Add sha256sum.c and sha256sum.h.
44         * inilex.ll: Formatting changes.  Implement string recognition for
45         SHA256 sums.
46         * iniparse.yy: Define new token.  Allow SHA256 as well as MD5 checksums.
47         * install.cc (do_install_thread): Call chksum_one instead of md5sum.
48         (sha256_str): New static function to create SHA256 checksum string for
49         log output.
50         (sha256_one): New function to compute SHA256 checksum for file.
51         (md5_one): Move validity tests into chksum_one.
52         (chksum_one): New static function.  Call either sha256_one
53         or md5_one depending on checksum read from ini file.
54         * package_source.h (packagesource::packagesource): Initialize sha256sum.
55         (packagesource::sha256sum): New member.
56         * sha2.c: New file, taken from OpenBSD.
57         * sha2.h: New file, taken from OpenBSD.
59 2015-02-04  Corinna Vinschen  <corinna@vinschen.de>
61         * Throughout, include LogFile.h instead of LogSingleton.h where
62         required.
63         * LogFile.cc (LogFile::exit_msg): Convert globally available variable
64         to protected, static LogFile member.
65         (LogFile::exit): Accept second parameter to decide if the end of install
66         message is  to be printed.  Revert to using the exit_code as is.
67         * LogFile.h (LogFile::setExitMsg): New static method.  Use throughout
68         rather than setting exit_msg directly.
69         (LogFile::getExitMsg): Ditto.
70         (LogFile::exit): Add second parameter to prototype.
71         (LogFile::exit_msg): New static member.
72         (Logger): New macro defining simplified access th logger instance.
73         Use throughout in place of LogSingleton::GetInstance and direct access
74         to theLog.
75         * LogSingleton.h (LogSingleton::exit): Add second parameter to
76         prototype.
77         * desktop.cc (theLog): Remove extern declaration.
78         (set_status): Call Logger ().getExitMsg () instead of
79         accessing exit_msg directly.
80         * localdir.cc (theLog): Remove extern declaration.
81         * main.cc (theLog): Remove.
82         (WinMain): Introduce local variables to store requirement to print
83         help output and if command line options were used incorrectly.  Use
84         throughout function.
86 2015-02-03  Corinna Vinschen  <corinna@vinschen.de>
88         * LogFile.cc (LogFile::exit): Deconstify exit_code.  Handle
89         exit_code -1 special (instead of IDS_ELEVATED).  Add comments to
90         explain.
91         * LogFile.h (LogFile::exit): Deconstify exit_code in prototype.
92         * main.cc (WinMain): Restructure code.  Revert to always initializing
93         log output.  Don't generate log files if setup is going to elevate
94         itself, or if only help output is requested.  Set exit_code to -1 in
95         call to LogFile::exit in the cases we don't want a log (elevate/help).
97 2015-01-28  Corinna Vinschen  <corinna@vinschen.de>
99         * choose.cc (MirrorOption): Add experimental local mirror option.
100         (ChooserPage::OnInit): Call packagemeta::ScanDownloadedFiles with
101         value of MirrorOption as argument.
102         * download.cc (check_for_cached): Add bool parameter.  If true, assume
103         correctness of download (==mirror) directory without checking files.
104         * download.h (check_for_cached): Add bool parameter to prototype,
105         default to false.
106         * package_meta.cc (packagemeta::ScanDownloadedFiles): Add bool
107         parameter.  Use to compute flag to call packageversion::scan with.
108         * package_meta.h (packagemeta::ScanDownloadedFiles): Align prototype.
109         * package_version.cc (packageversion::scan): Add bool parameter.  Call
110         check_for_cached with value of this parameter.
111         * package_version.h (packageversion::scan): Align prototype.
113 2015-01-28  Corinna Vinschen  <corinna@vinschen.de>
115         * PickPackageLine.cc (PickPackageLine::click): Rearrange code.  Switch
116         package to "Uninstall" if neither binary, nor source package are picked.
117         Explain why.
118         * choose.cc (ChooserPage::OnInit): Fix CleanOrphansOption broken with
119         latest patch.  Reformat slightly.
120         * package_meta.cc (packagemeta::set_action): Rearrange and further
121         simplify code.  Make sure to have binary and source version never
122         unpicked at the same time to avoid spurious uninstallation of package.
123         Try to comment thoroughly.
125 2015-01-26  Corinna Vinschen  <corinna@vinschen.de>
127         * PickPackageLine.cc (PickPackageLine::paint): Call trustp with default
128         flag set to false.
129         (PickPackageLine::click): Drop parameter from packagemeta::set_action
130         call.
131         (PickPackageLine::set_action): Call trustp with default flag set to
132         true.
133         * choose.cc (ChooserPage::OnInit): Call trustp with default flag set to
134         true to fetch default package version, rather than defaulting to curr.
135         * package_db.cc (packagedb::defaultTrust): Call trustp with default
136         flag set to true.
137         * package_meta.cc (packagemeta::set_action): Drop default_version
138         parameter.  Rewrite to simplify mechanism, and to account for correct
139         stepping through versions if installed version is not available anymore.
140         * package_meta.h (packagemeta::set_action): Align prototype.
141         (packagemeta::trustp): Add bool to request default package handling.
142         Add code to make sure not to downgrade packages by default.
143         * package_version.cc (processOneDependency): Call trustp with default
144         flag set to false.
145         * prereq.cc (PrereqChecker::getUnmetString): Ditto.
146         (PrereqChecker::selectMissing): Ditto.
148 2015-01-25  Corinna Vinschen  <corinna@vinschen.de>
150         * package_version.cc (packageversion::compareVersions): Get arguments
151         by const references instead of by value.
152         * package_version.h (packageversion::compareVersions): Match prototype.
153         * res.rc: Bump version date.
155 2014-12-09  Yaakov Selkowitz  <yselkowitz@cygwin.com>
157         * package_source.cc (packagesource::set_canonical): Fix handling
158         of package release number containing a period.
160 2014-11-28  Achim Gratz  <Stromeko@NexGo.DE>
162         * script.cc: New static string dash.
163         (init_run_script): Initialize dash.
164         (run): Implement dash as an extra shell type that is invoked for
165         suffix ".dash".  Implement suffix ".cmd" as an alias for ".bat".
167 2014-11-28  Achim Gratz  <Stromeko@NexGo.DE>
169         * install.cc (do_install_thread): Remove initialization for
170         run_script.
171         * postinstall.cc (do_postinstall_thread): Remove initialization
172         for run_script.  Implement stratified postinstall (hardcode three
173         strata for now).  For each stratum, run perpetual scripts first
174         after sorting them as ASCII, then the postinstall scripts just
175         installed, then check for dormant scripts in postinstall and try
176         to run those.
177         (PerpetualFindVisitor): New helper class to pick up perpetual
178         scripts.
179         (RunFindVisitor): Use new Script member function and pick up only
180         runnable non-perpetual scripts.
181         * script.h (Script::baseName): Add private variable.
182         (Script::scriptExtension): Ditto.
183         (Script::scriptStratum): Ditto
184         (Script::scriptType): Ditto
185         (Script::allowedStrata): Ditto
186         (Script::allowedTypes): Ditto
187         (Script::match): New private member function.
188         (Script::not_p): New public member function to check for
189         non-perpetual runnable script.
190         (Script::is_p): Ditto, but for perpetual scripts.
191         (Script::operator ==): Qualify as const.
192         (Script::operator <): New const qualified, used for sorting as ASCII.
193         * script.cc (class Script): Implement those additional members.
194         (run): Implement using the new member variables and std::string
195         functions instead of C string manipulations.
196         (isAScript): Ditto.
197         (fullName): Ditto.
198         (baseName): Ditto.
199         (Script): Extend initialization section and calculate values for
200         member variables.  Move initialization for run_script into the constructor.
202 2014-11-22  Achim Gratz  <Stromeko@nexgo.de>
204         * LogSingleton.h: Rename log macro to Log to avoid collision with
205         standard math function in some versions of g++.
206         * AntiVirus.cc: Replace invocations of log with Log.
207         * IniDBBuilderPackage.cc: Ditto.
208         * LogFile.cc: Ditto.
209         * PickView.cc: Ditto.
210         * archive.cc: Ditto.
211         * archive_tar.cc: Ditto.
212         * choose.cc: Ditto.
213         * cygpackage.cc: Ditto.
214         * download.cc: Ditto.
215         * geturl.cc: Ditto.
216         * ini.cc: Ditto.
217         * install.cc: Ditto.
218         * io_stream.cc: Ditto.
219         * io_stream_cygfile.cc: Ditto.
220         * localdir.cc: Ditto.
221         * main.cc: Ditto.
222         * mount.cc: Ditto.
223         * msg.cc: Ditto.
224         * net.cc: Ditto.
225         * nio-ftp.cc: Ditto.
226         * package_db.cc: Ditto.
227         * package_meta.cc: Ditto.
228         * package_version.cc: Ditto.
229         * prereq.cc: Ditto.
230         * processlist.cc: Ditto.
231         * proppage.cc: Ditto.
232         * root.cc: Ditto.
233         * script.cc: Ditto.
234         * site.cc: Ditto.
235         * source.cc: Ditto.
236         * threebar.cc: Ditto.
237         * win32.cc: Ditto.
238         * window.cc: Ditto.
240 2014-11-22  Achim Gratz  <Stromeko@nexgo.de>
242         * main.cc (WinMain): Show parameter usage before exiting when
243         options processing was unsuccessful (this usually means that an
244         unknown option was given on the command line).
246 2014-11-20  Corinna Vinschen  <corinna@vinschen.de>
248         * install.cc (Installer::StandardDirs): Add /etc/fstab.d, /dev,
249         /dev/mqueue, /dev/shm.  Sort array alphabetically.
251 2014-11-04  Achim Gratz  <Stromeko@nexgo.de>
253         * Makefile.am: Provide new targets "strip" and "upx" to remove
254         debugging symbols and compress the executable using UPX.
255         * README: Change description of how to produce stripped and compressed
256         binaries to use the new make targets.
258 2014-10-26  Corinna Vinschen  <corinna@vinschen.de>
260         * setup.exe.manifest: Add Windows 10 OS GUID.
261         * setup64.exe.manifest: Ditto.
263 2014-09-27  Eric Blake  <eblake@redhat.com>
265         * res.rc: Fix missing space.
267 2014-04-19  Jon TURNEY  <jon.turney@dronecode.org.uk>
269         * site.cc (init): Handle sitenames which aren't FQDNs correctly.
271 2014-04-19 Jon TURNEY <jon.turney@dronecode.org.uk>
273         * site.cc (PopulateListBox): Select listbox items by finding the
274         index of the item with a matching full URL, not by LB_FINDSTRING
275         which does an inexact match on the displayed URL.
277 2013-11-18  Jon TURNEY  <jon.turney@dronecode.org.uk>
279         * msg.cc (mbox): Generalize to a MessageBox wrapper which knows
280         what to do in unattended mode.
281         * msg.h: Add prototype.
282         * ini.cc (IniParseFeedback): Use here rather than MessageBox.
284 2014-04-22  Corinna Vinschen  <corinna@vinschen.de>
286         * mount.cc (read_mounts): Don't create rootdir key when just fetching
287         info from registry.
289 2014-04-22  Corinna Vinschen  <corinna@vinschen.de>
291         * mount.cc (is_admin): Drop function.  It's incorrectly implemented
292         and redundant.
293         (create_install_root): If installing the setup rootdir entry to HKLM
294         results in ERROR_ACCESS_DENIED, fall back to installing into HKCU.
295         Don't exit with a fatal error if writing the registry key fails.  Just
296         pop up an informative message box instead.  Also log access denied.
297         (read_mounts): call nt_sec.isRunAsAdmin instead of removed is_admin.
298         (NTSecurity::isRunAsAdmin): Fix formatting.
300 2014-03-10  Corinna Vinschen  <corinna@vinschen.de>
301             Jon Beniston <jon@beniston.com>
303         * main.cc (WaitOption): New -W/--wait option.
304         (WinMain): Rearrange code to make sure only the actual worker
305         instance of setup logs into the setup.log and setup.log.full files.
306         Call NTSecurity::initialiseWellKnownSIDs explicitely.  Explain why.
307         If WaitOption is given, let the parent process wait for the elevated
308         child process.
309         * win32.cc (NTSecurity::initialiseWellKnownSIDs): Drop generating
310         log messages.
311         (NTSecurity::setDefaultSecurity): Drop call to initialiseWellKnownSIDs.
312         * win32.h (NTSecurity::initialiseWellKnownSIDs): Make public.
314 2014-03-10  Jon Beniston <jon@beniston.com>
316         * main.cc (WinMain): If setup elevates, let the parent wait for the
317         child process to accommodate enclosing installers.
319 2013-11-19  Corinna Vinschen  <corinna@vinschen.de>
321         * setup.exe.manifest: Add Windows 8.1 GUID.
322         * setup64.exe.manifest: Ditto.
324 2013-11-18  Corinna Vinschen  <corinna@vinschen.de>
326         * filemanip.cc (nt_fopen): Rename from fopen.  Add permission parameter.
327         Drop C binding.  Move comment.
328         * filemanip.h (nt_fopen): Declare.
329         * geturl.cc (get_url_to_file): Call nt_fopen instead of fopen.
330         * nio-file.cc (NetIO_File::NetIO_File): Ditto.
331         * main.cc (dyn_AttachConsole): Remove.
332         (dyn_GetLongPathName): Remove.
333         (set_dynaddr): Remove.
334         (set_cout): Just call AttachConsole directly.
335         (WinMain): Drop call to set_dynaddr.
337 2013-11-15  Corinna Vinschen  <corinna@vinschen.de>
339         * resource.h (IDC_SOURCE_SUBTEXT): Define.
340         * res.rc: Define text below header as IDC_SOURCE_SUBTEXT to allow
341         reconfiguration.
343 2013-11-15  Corinna Vinschen  <corinna@vinschen.de>
345         * root.cc: Move inline definitions of GetDlgItemRect and
346         SetDlgItemRect from here...
347         * win32.h: ...to here, for potential usage in other dialogs.
349 2013-11-15  Corinna Vinschen  <corinna@vinschen.de>
351         * res.rc: Fix size and position of rootdir textbox and button.
352         Align size and position of localdir fields to rootdir fields for
353         optical reasons.
355 2013-11-15  Corinna Vinschen  <corinna@vinschen.de>
357         * resource.h (IDC_ROOTDIR_SUBTEXT): Fix typo.
359 2013-11-15  Corinna Vinschen  <corinna@vinschen.de>
361         * resource.h (IDC_ROOTDIR_SUBTEXT): Define.
362         * res.rc: Define text below header as IDC_ROOTDIR_SUBTEXT to allow
363         reconfiguration.
365 2013-11-15  Corinna Vinschen  <corinna@vinschen.de>
367         * mount.cc (read_mounts): Drop setting root_text.
368         * res.rc: Set content of root dir dialog correctly right from the start.
369         Remove unused items.
370         * resource.h (IDC_ROOT_TEXT): Remove.
371         (IDC_ROOT_BINARY): Ditto.
372         (IDC_FILEMODES_LINK): Ditto.
373         (IDC_MODE_GRP): Ditto.
374         (IDC_MODE_TEXT): Ditto.
375         (IDC_MODE_BIN): Ditto.
376         * root.cc (Root): Set "Install For" group items to CP_STRETCH.
377         Remove all "text/binary" items.
378         (rb): Remove.
379         (check_if_enable_next): Drop test for root_text.
380         (load_dialog): Remove all code setting items differently to what's
381         specified as default in the resources, in favor of setting this
382         correctly in the resources.
383         (save_dialog): Drop setting root_text.
384         (RootPage::OnMessageCmd): Drop IDC_ROOT_TEXT/IDC_ROOT_BINARY handling.
385         (RootPage::OnInit): Drop IDC_FILEMODES_LINK handling.
386         (RootPage::OnNext): Drop "text"/"binary" state from debug output.
387         * state.cc (root_text): Remove.
389 2013-11-14  Corinna Vinschen  <corinna@vinschen.de>
391         * archive_tar.cc: Drop commented out static variable definitions.
392         (archive_tar::next_file_name): Replace MAX_PATH with CYG_PATH_MAX.
393         * archive_tar.h (tar_state::filename): Ditto.
394         * cygpackage.cc (cygpackage::cygpackage): Ditto.
395         * cygpackage.h (cygpackage::getfilenamebuffer): Ditto.
396         * desktop.cc (start_menu): Add comment.  Drop Windows 9x considerations.
397         (desktop_icon): Ditto.
398         (check_desktop): Ditto.
399         (check_startmenu): Ditto.
400         * diskfull.cc (diskfull): Drop Windows 9x considerations.  Convert
401         incoming path to wide char and call GetDiskFreeSpaceExW.
402         * filemanip.cc (fopen): New function, overriding MSVCRT function.
403         Explain why.
404         (remove): Ditto.
405         (rename): Ditto.
406         (_access): Ditto.
407         * install.cc (check_for_old_cygwin): Add comment.
408         * localdir.cc (browse): Add comment.
409         (LocalDirPage::OnNext): Don't rely on being able to change CWD.
410         Call GetFileAttributesW instead and change conditional expressions
411         accordingly.  Explain why.  Rename trySetCurDir to tryLocalDir to
412         avoid confusion.  Call do_from_local_dir rather than do_fromcwd.
413         * mount.cc (read_mounts): Add comments.  Call GetSystemWindowsDirectory
414         rather than GetWindowsDirectory since that's what we're really want.
415         * postinstall.cc (do_postinstall_thread): Drop setting CWD.  Scripts
416         are called with CWD set to Cygwin root dir anyway.
417         * processlist.cc (Process::getName): Allow CYG_PATH_MAX sized module
418         names. 
419         (Process::isModuleLoadedInProcess): Allow CYG_PATH_MAX sized module
420         names.
421         * root.cc (browse): Add comment.
422         * script.cc (sanitize_PATH): Call GetSystemWindowsDirectory rather than
423         GetWindowsDirectory since that's what we're really want.
424         (Script::run): Allow cmdline up to CYG_PATH_MAX chars to allow longer
425         script paths.
426         * win32.h (CYG_PATH_MAX): Define as 4096 as Cygwin's PATH_MAX.
428 2013-11-13  Corinna Vinschen  <corinna@vinschen.de>
430         * desktop.cc (STARTMENUDIR): Define.
431         (check_startmenu): Use STARTMENUDIR instead of constant string.
432         (DesktopSetupPage::OnActivate): Use TARGET and TERMINALTITLE defines
433         to simplify calls to check_startmenu and check_desktop.
435 2013-11-13  Corinna Vinschen  <corinna@vinschen.de>
437         * desktop.cc: Drop dependency on static variable and order of
438         initialization.  Allow easier reconfiguration.
439         (iconname): Drop static variable.
440         (make_link): Add parameter to specify icon path.
441         (start_menu): Ditto.  Call make_link accordingly.
442         (desktop_icon): Ditto.
443         (save_icon): Take windows path as first parameter.  Drop setting
444         global iconname variable.
445         (TARGET): Define.
446         (DEFAULTICON): Define.
447         (TERMINALICON): Define.
448         (TERMINALTITLE): Define.
449         (do_desktop_setup): Rearrange code to use aforementioned defines and
450         align function calls to aforementioned changes.
452 2013-11-13  Corinna Vinschen  <corinna@vinschen.de>
454         * mount.cc (CYGWIN_INFO_CYGNUS_REGISTRY_NAME): Remove now unused
455         pre-1.7 registry key name.
456         (CYGWIN_INFO_CYGWIN_MOUNT_REGISTRY_NAME): Ditto.
457         (CYGWIN_INFO_CYGDRIVE_FLAGS): Ditto.
458         (CYGWIN_INFO_CYGDRIVE_PREFIX): Ditto.
459         (CYGWIN_INFO_CYGDRIVE_DEFAULT_PREFIX): Ditto.
461 2013-11-13  Corinna Vinschen  <corinna@vinschen.de>
463         * Makefile.am (EXTRA_DIST): Add cygwin-setup.ico and
464         cygwin-terminal.ico.
466 2013-11-07  Corinna Vinschen  <corinna@vinschen.de>
468         * LogFile.cc (LogFile::exit): Don't print ending message after
469         successful elevation.
470         * res.rc (IDS_ELEVATED): New string.
471         * resource.h (IDS_ELEVATED): New string resource number.
473 2013-11-07  Shaddy Baddah  <lithium-cygwin@shaddybaddah.name>
475         * LogFile.cc (LogFile::flushAll): New function to flush log all logging
476         to files without exiting (as LogFile::exit does).
477         * LogFile.h: Declare new method closeAll.
478         * main.cc (NoAdminOption): Add new CLI options -B/--no-admin. This
479         option allows the user to suppress privilege elevation (in tandem with
480         "asInvoker" requestedExecutionLevel changes to exe manifests).
481         (WinMain): check if setup run with Administrator privilege and if the
482         NoAdminOption has not been specified, attempt to elevate privilege to an
483         Administrator via WINAPI ShellExecuteEx().
484         * setup.exe.manifest: Add requestedExecutionLevel of asInvoker to allow
485         suppression of privilege elevation.
486         * setup64.exe.manifest: Modify requestedExecutionLevel from
487         requireAdministrator to asInvoker to allow suppression of privilege
488         elevation. Continuity of privilege elevation attempt on startup is
489         implemented by main.cc changes to WinMain().
490         * win32.cc (NTSecurity::isRunAsAdmin): New function to allow main.cc to
491         check if setup.exe has been run with privilege elevated to Administrator
492         level.
493         * win32.h: Declare new method isRunAsAdmin.
495 2013-10-07  Jon TURNEY  <jon.turney@dronecode.org.uk>
497         * prereq.cc (OnUnattended): Also select missing requirements in unattended
498         mode, since it's no longer a side effect of the chooser.
500 2013-09-17  Christopher Faylor <me.cygwin2013@cgf.cx>
502         * filemanip.cc (find_tar_ext): Generalize search for .tar extension,
503         avoiding looking for specific compression types.
505 2013-08-12  Achim Gratz  <Stromeko@Stromeko.DE>
507         * csu_util/MD5Sum.h (MD5Sum): Remove declaration for conversion
508         operator std::string().  Remove implementation of member
509         function str() using the conversion operator.
510         * csu_util/MD5Sum.cc (MD5Sum::str): Reuse implementation of conversion
511         operator std::String to implement member function str() with.
513 2013-08-09  Achim Gratz  <Stromeko@Stromeko.DE>
515         * csu_util/MD5Sum.cc (MD5Sum::operator std::string() const):
516         Reimplement using stringstream to avoid a SEGV.
518 2013-07-29  Corinna Vinschen  <corinna@vinschen.de>
520         * localdir.cc (LocalDirPage::OnNext): Accommodate architecture parameter
521         in IDS_NO_CWD string.
522         (IDS_NO_CWD): Add string argument for architecture in setup name.
524 2013-07-29  Corinna Vinschen  <corinna@vinschen.de>
526         * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildVersion): Align
527         warning string to target architecture.
529 2013-07-26  Achim Gratz <Stromeko@Stromeko.DE>
531         * choose.cc (UpgradeAlsoOption): Add new CLI option -g/--upgrade-also.
532         (CleanOrphansOption): Add new CLI option -o/--delete-orphans.
533         (OnInit): Implement -g/--upgrade-also, considers all installed packages
534         as candidates for upgrades (the default when no CLI package or category
535         options have been given) also when manual additions or removals are
536         requested at the same time.  Implement -o/--delete-orphans, considers
537         installed packages that do not exist anymore in the package repositories
538         as candidates for deletion.
540 2013-07-24  Jon TURNEY  <jon.turney@dronecode.org.uk>
542         * bootstrap.sh : Add support for x86_64-w64-mingw32 toolchain.
544 2013-07-25  Achim Gratz <Stromeko@Stromeko.DE>
546         * package_db.h (packagedb::addCommandLinePackages): Remove declaration.
547         * package_db.cc (packagedb::addCommandLinePackages): Remove.
549 2013-07-25  Achim Gratz <Stromeko@Stromeko.DE>
551         * choose.h (hasManualSelections): Declare new variable.
552         * choose.cc (ChooserPage::OnInit): Re-implement package handling
553         depending on options given on CLI using package actions instead of
554         package_meta low-level functions.  When no CLI package or category
555         options have been given, upgrade installed packages.  Do not check for
556         updates when packages are to be added or removed from the CLI, but this
557         behaviour can be requested with --upgrade-also.  A package that is
558         requested to be removed and also added at the same time gets reinstalled
559         or upgraded (when version curr != installed).  Uninstalled packages in
560         categories "Base" or "Misc" are always selected for installation;
561         installed packages in these categories are not eligible for deletion
562         and will be reinstalled or upgraded instead.
563         * package_meta.h (packagemeta::ismanuallyDeleted): Declare new method.
564         * package_meta.cc (DeletePackageOption): Add new CLI option
565         -x/--remove-packages, packages listed here are considered candidates
566         for deletion.
567         (DeleteCategoryOption): Add new CLI option -c/--remove-categories,
568         packages belonging to categories listed here are considered candidates
569         for deletion.
570         (hasManualSelections): Additional boolean to record if any manual
571         installations or deletions have been requested.
572         (packagemeta::isManuallyDeleted): Implement along the same lines as
573         isManuallyWanted, but for deletion candidates.
575 2013-07-25  Achim Gratz <Stromeko@Stromeko.DE>
577         * choose.cc (ChooserPage::createListview): Remove superflous and
578         detrimental default trust setting.  This has already been set correctly
579         in OnInit.
581 2013-07-24  Christopher Faylor  <me.cygwin2013@cgf.cx>
583         * configure.ac: Change setup64.exe -> setup.exe.
585 2013-07-23  Jon TURNEY  <jon.turney@dronecode.org.uk>
587         * install.cc (_custom_MessageBox): Restore custom message box.
588         (installOne): If processList is empty, use the custom message box
589         to ask if we should retry or continue.
590         * res.rc (IDD_FILE_INUSE): Use IDCONTINUE for continue buttom, to be
591         the same custom message box.
593 2013-07-22  Corinna Vinschen  <corinna@vinschen.de>
595         * root.cc (directory_contains_wrong_version): Check cygwin1.dll's
596         machine type.  If that fails, fall back to testing of cygcheck.exe's
597         binary type.  Tweak message text slightly for clearness.  Add comment
598         to explain what this function does.
600 2013-07-22  Corinna Vinschen  <corinna@vinschen.de>
602         * root.cc (directory_contains_wrong_version): New function to check
603         setup machine type against installation machine type.
604         (RootPage::OnNext): Call directory_contains_wrong_version and refuse to
605         continue if it returns != 0.
607 2013-07-22  Christopher Faylor  <me.cygwin2013@cgf.cx>
609         * IniParseFindVisitor.cc (iniParseFindVisitor::visitFile): Relax check
610         for SETUP_INI_DIR slightly.  Remove trailing SETUP_INI_DIR from mirror
611         directory or local downloaded packages will never be found.
613         * choose.cc (ChooserPage::OnInit): Fix some formatting.
614         * fromcwd.cc (SetupFindVisitor::visitFile): Relax check for
615         SETUP_INI_DIR slightly.
616         (ChooserPage::OnInit): Fix some formatting.
617         * ini.cc (do_local_ini): Remove name from unused parameter.  Fix some
618         formatting.
619         (do_ini_thread): Fix some formatting.
621         * package_version.cc (dumpAndList): Temporarily (?) just return from this
622         debugging function since it SEGVs otherwise.
624 2013-07-12  Christopher Faylor  <me.cygwin2013@cgf.cx>
626         * iniparse.yy: Move ARCH and RELEASE to the header processing, where
627         they belong.
629 2013-07-12  Christopher Faylor  <me.cygwin2013@cgf.cx>
631         * IniDBBuilder.h (IniDBBuilder::set_arch): New function.
632         (IniDBBuilder::set_release): New function.
633         (IniDBBuilder::arch): New storage for arch:.
634         (IniDBBuilder::arch): New storage for release:.
635         * IniDBBuilderPackage.cc (IniDBBuilderPackage::autodep): Fix cut/paste
636         error which ended up calling the wrong thing.
637         * ScanFindVisitor.cc (ScanFindVisitor::visitFile): Remove old code.
638         * cygpackage.cc (cygpackage::set_autodep): Implement to satisfy setup's
639         insane class hierarchy.
640         * cygpackage.h (cygpackage::set_autodep): See above.
641         (std::string autodep_regex): Ditto.
642         * package_version.cc (packageversion::set_autodep): Ditto.
643         * package_version.h (packageversion::set_autodep): Ditto.
644         * inilex.ll: Tokenize "arch:" and "release:".
645         * iniparse.yy: Parse ARCH and RELEASE.
647 2013-07-03  Christopher Faylor  <me.cygwin2013@cgf.cx>
649         * win32.h (struct acl_t): Just enforce alignment using attribute.
651 2013-07-03  Corinna Vinschen  <corinna@vinschen.de>
653         * FindVisitor.cc (FindVisitor::visitDirectory): Check tracking level
654         argument to limit the search depth.
655         * FindVisitor.h (FindVisitor::visitDirectory): Add tracking level
656         argument to declaration.
657         * IniParseFindVisitor.cc (IniParseFindVisitor::visitFile): Check
658         found file's basePath to end in SETUP_INI_DIR.
659         * find.cc (Find::accept): Accept additional tracking level argument
660         and submit to FindVisitor::visitDirectory.
661         * find.h (Find::accept): Add tracking level argument to declaration.
662         * fromcwd.cc (SetupFindVisitor::visitFile): Check found file's basePath
663         to end in SETUP_INI_DIR.
664         (do_fromcwd): Only search ini file two directory levels deep.
665         * ini.cc (do_local_ini): Ditto.
666         (do_remote_ini): Add SETUP_INI_DIR to current_ini_name.
667         * ini.h (SETUP_INI_DIR): New macro.
668         (SETUP_INI_FILENAME): Just define filename.
669         (SETUP_BZ2_FILENAME): Ditto.
671 2013-07-03  Corinna Vinschen  <corinna@vinschen.de>
673         * win32.h (struct acl_t): Use a union.
675 2013-07-02  Corinna Vinschen  <corinna@vinschen.de>
677         * win32.h (struct acl_t): Make sure struct is 4 byte aligned.
679 2013-07-02  Christopher Faylor  <me.cygwin2013@cgf.cx>
681         * archive.cc (archive::extract_file): Reformat.  Always return at the
682         bottom.
684 2013-07-02  Christopher Faylor  <me.cygwin2013@cgf.cx>
686         * archive.cc (archive::extract_file): Fix recently introduced bug:
687         don't fall through to next case.  break is your friend.
689 2013-06-30  Christopher Faylor  <me.cygwin2013@cgf.cx>
691         * mount.cc (LFSTAB): Define.
692         (from_fstab): Use LFSTAB constant where appropriate.  Properly size
693         path array to include \etc\fstab.  Change len argument of mklongpath to
694         reflect the actual size of the destination argument.
696 2013-06-29  Christopher Faylor  <me.cygwin2013@cgf.cx>
698         * archive.cc (archive::extract_file): Use named constants for return
699         values.
700         * archive.h (archive::extract_results): New enum.
701         (archive::extract_file): Use extract_results for return value.
702         * install.cc (Installer::installOne): Use archive::extract_results to
703         make decisions about archive::extract_file return.
704         * io_stream_cygfile.cc: Add a comment making return value clear.
705         * mkdir.cc: Ditto.
707 2013-06-26  Corinna Vinschen  <corinna@vinschen.de>
709         * io_stream_cygfile.cc: Rearrange inclusion of headers to workaround
710         bug in older mingw-w64 system headers.  Drop unneeded include files.
711         * io_stream_file.cc: Drop unneeded include files.
713 2013-06-26  Corinna Vinschen  <corinna@vinschen.de>
715         Drop pre-1.7 mount point considerations.
716         * mount.cc (find2): Remove.
717         (remove1): Remove.
718         (remove_mount): Remove.
719         (create_mount): Remove.
720         (set_cygdrive_flags): Remove.
721         (get_cygdrive_flags): Remove.
722         (default_cygdrive): Remove.
723         (in_table): Remove.
724         (is_admin): Fix comment.
725         (read_mounts_9x): Remove.
726         (read_mounts): Drop call to read_mounts_9x.
727         * mount.h (create_mount): Remove declaration.
728         (set_cygdrive_flags): Ditto.
729         * script.cc (run): Fix comment.
731 2013-06-25  Corinna Vinschen  <corinna@vinschen.de>
733         * Makefile.am (AM_CXXFLAGS): Add source file specific CXXFLAGS.
734         (inilex_CXXFLAGS): Add -Wno-sign-compare to workaround failing build
735         on Fedora 18 due to bison creating sign comparison mismatches in
736         generic yylex wrapper code.
738 2013-06-22  Christopher Faylor  <me.cygwin2013@cgf.cx>
740         * ini.h (SETUP_BZ2_FILENAME): Reflect new architecture layout in ftp.
741         (SETUP_INI_FILENAME): Ditto.
742         * main.cc (Arch): New option.  Include StringOption.h for this.
743         (WinMain): Change is_64bit calculation to allow overriding from
744         command-line.  Issue error if bad value provided.
745         * res.rc: Move some text closer together.
746         * splash.cc: Include ini.h.  Add architecture to opening screen.
748         * UserSettings.cc (UserSettings::get): Don't try to open a filename
749         with the name of the key.  That's old behavior.
751 2013-06-20  Christopher Faylor  <me.cygwin2013@cgf.cx>
753         * res.rc: Update copyright.
755 2013-04-05  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
757         * Makefile.am (EXTRA_DIST): Add setup64.exe.manifest.
758         (res.o): Depend on arch-specific manifest file.
759         * res.rc (CREATEPROCESS_MANIFEST_RESOURCE_ID): Add separate
760         definition for x86-64.
761         * setup.exe.manifest: Throughout, set processorArchitecture to x86.
762         Remove trustInfo section.
763         * setup64.exe.manifest: New file.
765 2013-03-22  Corinna Vinschen  <corinna@vinschen.de>
767         * desktop.cc (do_desktop_setup): Install "Cygwin64 Terminal" link on
768         64 bit.
769         (DesktopSetupPage::OnActivate): Check for "Cygwin64 Terminal" link on
770         64 bit.
771         * main.cc (main_display): Avoid compiler warning on 64 bit.
772         * mount.cc (from_fstab): Take 2nd parameter as const by reference to
773         avoid potential crash due to scope issue.
775 2013-03-14  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
777         * configure.ac: Remove check for libmingw32.
778         (SETUP): Define EXE name based on host_cpu.
779         (MINGWTARGET): Remove.
780         * Makefile.am: Use SETUP throughout.  Remove MINGWTARGET conditional.
781         Add -lmingw32 to LDFLAGS.
782         * ini.h (is_64bit): Declare.
783         (SETUP_INI_FILENAME): Make dependent on value of is_64bit.
784         (SETUP_BZ2_FILENAME): Ditto.
785         * main.cc (is_64bit): Define based on compiler target.
786         * mount.h (SETUP_KEY_WOW64): Define based on value of is_64bit.
787         * install.cc (create_allow_protected_renames): Add SETUP_KEY_WOW64
788         flag to RegOpenKeyEx call.
789         * mount.cc: Throughout, add SETUP_KEY_WOW64 flag to all RegOpenKeyEx
790         and RegCreateKeyEx calls.
791         (read_mounts): Change default Cygwin root depending on is_64bit.
793 2013-03-05  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
795         Throughout, drop support for Cygwin 1.5 and Windows pre-2000.
797 2013-03-04  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
799         * install.cc (FileInuseDlgProc): Fix return type.
800         * regex/regcomp.c (parse_dup_op): Fix invalid cast warning.
801         (create_token_tree): Ditto.
802         * setup.exe.manifest: Set processorArchitecture to "*".
803         Add explicit requestedExecutionLevel for 64-bit compatibility.
805 2013-03-04  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
807         * Makefile.am (inilint_extras): Remove autoload.c.
808         (setup_SOURCES): Ditto.
809         (setup_LDADD): Add ntdll and wininet.
810         (autoload.o): Remove rule.
811         * autoload.c: Remove file.
813 2013-03-03  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
815         * Makefile.am (res.o): Add rule to force rebuild upon change
816         to setup.exe.manifest, which is included by res.rc.
818 2013-02-17  Christopher Faylor  <me.cygwin2013@cgf.cx>
820         * configure.ac: Rename from configure.in.
821         * configure.in: Delete.
822         * libgetopt++/configure.ac: Rename from configure.in.
823         * libgetopt++/configure.in: Delete.
824         * Makefile.am: Remove ill-advised iniparse.hh change.
825         * libgetopt++/Makefile.am: Use "modern" AM_CPPFLAGS rather than INCLUDES.
826         * inilex.ll: Add autodep token recognition.
827         * iniparse.yy: Handle autodep.
828         * IniDBBuilder.h (autodep): Define for base class.
829         * IniDBBuilderPackage.cc (IniDBBuilderPackage::autodep): Define.
830         * IniDBBuilderPackage.h (IniDBBuilderPackage::autodep): Declare.
832 2013-02-17  Christopher Faylor  <me.cygwin2013@cgf.cx>
834         * Makefile.am: Add regex.c to list of sources.
835         (iniparse.hh): Rename if a iniparse.h has been created.
836         * regex/config.h: New file.
837         * regex/re_comp.h: New file.
838         * regex/regcomp.c: New file.
839         * regex/regex.c: New file.
840         * regex/regex.h: New file.
841         * regex/regex_internal.c: New file.
842         * regex/regex_internal.h: New file.
843         * regex/regexec.c: New file.
844         * processlist.cc (Process::isModuleLoadedInProcess): Avoid compiler
845         warning by changing 'i' to unsigned.
847 2013-01-25  Achim Gratz <Stromeko@nexgo.de>
848         * README (HOW TO BUILD): Cross compiler package is now named
849         mingw-gcc-g++, also mention package upx as an optional dependency.
851 2013-02-01  Jon TURNEY  <jon.turney@dronecode.org.uk>
853         * install.cc ( _custom_MessageBox): Remove custom message box.
854         (FileInuseDlgProc): Add file-in-use dialog box.
855         (installOne): Use processlist to list processes using a file, and
856         offer to kill them with the file-in-use dialog.
857         * res.rc (IDD_FILE_INUSE) : New dialog.
858         * resource.h (IDD_FILE_INUSE, IDC_FILE_INUSE_EDIT)
859         (IDC_FILE_INUSE_MSG, IDC_FILE_INUSE_HELP): Define corresponding
860         resource ID numbers.
861         * processlist.h: New file.
862         * processlist.cc: New file.
863         * Makefile.am (setup_LDADD): Add -lpsapi.
864         (setup_SOURCES): Add new files.
866 2013-02-01  Jon TURNEY  <jon.turney@dronecode.org.uk>
868         * script.cc (::run, Script::run): Move the formatting of the command
869         line used for postinstall script running out to Script::run. Move the
870         logging of the command and it's output into ::run.
871         * script.h: Add ::run() prototype.
873 2013-01-17  Jon TURNEY  <jon.turney@dronecode.org.uk>
875         * configure.in: Require automake 1.12.
876         * Makefile.am (BUILT_SOURCES): Update iniparse.h to iniparse.hh.
877         * iniparse.yy: Ditto.
878         * inilex.ll: Ditto.
880 2013-01-16  Jon TURNEY  <jon.turney@dronecode.org.uk>
882         * threebar.cc (ThreeBarProgressPage::SetBar2): Change from long int to
883         long long int to handle more than 2GB of data.
884         * threebar.h (ThreeBarProgressPage::SetBar2): Update prototype.
885         * install.cc: Change md5sum and install counters to long long int.
886         * geturl.cc: Change download counter to long long int.
887         * geturl.h: Ditto.
889 2012-11-08  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
891         * Makefile.am (EXTRA_DIST): Remove libmd5-rfc files.
892         (setup_SOURCES): Ditto.
893         * download.cc: Remove unused include.
894         * csu_util/MD5Sum.cc: Port from libmd5-rfc to libgcrypt.
895         * csu_util/MD5Sum.h: Ditto.
896         * libmd5-rfc/*: Remove.
898 2012-10-19  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
900         * bootstrap.sh: Add support for i686-w64-mingw32 toolchain.
901         Remove support for gcc-3 -mno-cygwin.
903 2012-09-12  Christopher Faylor  <me.cygwin2012@cgf.cx>
905         * README: Modernize.
906         * bootstrap.sh: Remove outdated options from configure.  Use mingw
907         compiler.
908         * configure.in: Remove AM_MAINTAINER_MODE.
910 2012-09-04  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
912         Fix build with mingw-w64 headers.
913         * autoload.c: Define DECLSPEC_IMPORT for mingw-w64 headers.
914         * filemanip.h: Include <sys/types.h> to fix missing mode_t typedef
915         error with mingw-w64 headers.
916         * gpg-packet.cc: Include "win32.h" to avoid macro redefinition
917         errors with mingw-w64 headers.
918         (ARRAYSIZE): Do not redefine.
919         * main.cc (_argv): Declare if using mingw-w64 headers.
920         (WinMain): Move up _argv definition to before it is first used.
921         * ntdll.h: Include PSDK headers with mingw-w64 instead of DDK.
922         * package_message.h: Include "win32.h" instead of <windows.h>.
923         * propsheet.cc (PROPSHEETHEADER_V1_SIZE): Do not redefine.
924         * win32.h: Include <sys/types.h> to fix missing mode_t typedef
925         error with mingw-w64 headers.
926         Define DECLSPEC_IMPORT for mingw-w64 headers.
928 2012-08-30  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
930         First step towards X86-64 compatibility.
931         * archive_tar.cc (archive_tar::next_file_name): Fix sscanf formats
932         for 64-bit size_t.
933         * choose.cc (ChooserPage::OnMouseWheel): Fix return type.
934         * choose.h (ChooserPage::OnMouseWheel): Ditto.
935         * filemanip.cc (nt_wfopen): Fix argument cast for _open_osfhandle.
936         * netio.cc (auth_proc): Fix return type.
937         * proppage.cc (PropertyPage::FirstDialogProcReflector): Fix return type.
938         Use SetWindowLongPtr and DWLP_* instead of SetWindowLong and DWL_*.
939         (PropertyPage::DialogProcReflector): Ditto.
940         (PropertyPage::DialogProc): Ditto.
941         (PropertyPage::OnMouseWheel): Ditto.
942         * proppage.h (PropertyPage::FirstDialogProcReflector): Fix return type.
943         (PropertyPage::DialogProcReflector): Ditto.
944         (PropertyPage::DialogProc): Ditto.
945         (PropertyPage::OnMouseWheel): Ditto.
946         * site.cc (drop_proc): Fix return type.
947         * window.cc (Window::FirstWindowProcReflector): Use GWLP_* with
948         SetWindowLongPtr calls.
949         (Window::WindowProcReflector): Ditto.
951 2012-08-30  Jacek Caban <jacek@codeweavers.com>
952             Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
954         * main.cc: Remove CINTERFACE define.
955         (main_display): Use C++ syntax for COM.
956         * mklink2.cc: Remove CINTERFACE define.
957         (make_link_2): Use C++ syntax for COM.
959 2012-08-21  Christopher Faylor  <me.cygwin2012@cgf.cx>
961         * setup.exe.manifest: Reorder "supportedOS" entries and add entry for
962         Windows 8.
964 2012-06-03  Christopher Faylor  <me.cygwin2012@cgf.cx>
966         * main.cc: Remove __CYGWIN__ ifdefs.
967         (main): Ditto.
969 2012-06-01  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
971         * Makefile.am (setup_version.c): Respect silent rules.
972         (.rc.o): Ditto.
973         * configure.in: Enable silent rules with automake-1.11.
975 2012-04-29  Christopher Faylor  <me.cygwin2012@cgf.cx>
977         * window.cc: Remove trailing whitespace.
979 2012-04-28  Christopher Faylor  <me.cygwin2012@cgf.cx>
981         * io_stream_file.cc (io_stream_file::exists): Properly treat return
982         from GetFileAttributesW as a bit field so that a directory will not be
983         seen as "existing".
985 2012-04-26  Corinna Vinschen  <corinna@vinschen.de>
987         * script.cc (run): Add quotes around file to allow spaces in path.
988         (Script::run): Add aforementioned quotes to log output as well.
990 2012-03-08  Corinna Vinschen  <corinna@vinschen.de>
992         * win32.h (FACTOR): Define, use correct value.
993         (NSPERSEC): Ditto.
994         * archive_tar.cc: Drop FACTOR and NSPERSEC definitions here.
995         * io_stream_cygfile.cc: Ditto.
996         * io_stream_file.cc: Ditto.
998 2012-02-29  Corinna Vinschen  <corinna@vinschen.de>
1000         * win32.cc (NTSecurity::GetPosixPerms): Don't allow write permissions
1001         in inheritable default permission ACEs for group and other if the
1002         directory is an S_ISVTX dir.
1004 2012-02-24  Christopher Faylor  <me.cygwin2012@cgf.cx>
1006         * bootstrap.sh: Don't assume that libgetopt++ exists in source directory.
1007         * configure.in: Remove some old options.
1008         * Makefile.am: Ditto.
1009         * libgetopt++/Makefile.am: Ditto.
1010         * libgetopt++/configure.in: Ditto.
1012 2012-02-24  Corinna Vinschen  <corinna@vinschen.de>
1014         * main.cc (WinMain): Move call to nt_sec.setDefaultSecurity here so
1015         it's called earlier in the process.  This avoids spurious error
1016         messages in --help output.
1018 2012-02-23  Jon TURNEY  <jon.turney@dronecode.org.uk>
1020         * main.cc (main_display): Move --help output from here ...
1021         (WinMain): ... to here, so we don't logging of the current directory
1022         and any errors from constructing a UserSettings object preceding the
1023         --help output.
1025 2011-05-30 SZAVAI Gyula <szgyg@ludens.elte.hu>
1027         * site.cc (SiteSetting::SiteSetting): Handle multiple
1028         --site options.
1029         * crypto.cc (verify_ini_file_sig): Handle multiple
1030         --pubkey and --sexpr-pubkey options.
1031         * package_meta.cc (packagemeta::isManuallyWanted): Handle
1032         multiple --packages and --categories options.
1034 2012-02-22  Christopher Faylor  <me.cygwin2012@cgf.cx>
1036         * res.rc: Change copyright notice to -2012.
1038 2012-02-19  Corinna Vinschen  <corinna@vinschen.de>
1040         * PickView.cc (PickView::list_click): Mark variable refresh as unused
1041         to avoid compiler warning.
1042         * nio-ftp.cc (NetIO_FTP::ok): Remove variable code to avoid compiler
1043         warning.
1044         * proppage.cc (PropertyPage::DialogProc): Ditto for retval.
1046         * setup.exe.manifest: Add supportedOS entries to avoid annoying
1047         "This program might not have installed correctly" PCA message on
1048         Windows 7.
1050 2011-12-22  Christopher Faylor  <me.cygwin2011@cgf.cx>
1052         * compress.cc: Explicitly include needed header.
1053         * compress_bz.cc: Ditto.
1054         * mkdir.h: Ditto.
1055         * io_stream_cygfile.cc: Eliminate obsolete attempt to build as
1056         non-mingw.
1057         * io_stream_file.cc: Ditto throughout.
1058         * mkdir.cc: Ditto.
1060 2011-12-21  Jon TURNEY  <jon.turney@dronecode.org.uk>
1062         * choose.cc (OnInit): Properly mark packages which were selected on
1063         command line in unattended mode for download and installation.
1065 2011-09-08  Christopher Faylor  <me.cygwin2011@cgf.cx>
1067         * io_stream.h: Just call sys/types.h here rather than using our own
1068         version of ssize_t.
1070 2011-09-01  Corinna Vinschen  <corinna@vinschen.de>
1072         * CONTRIBUTORS: Add Warren Young.
1074 2011-08-16  Corinna Vinschen  <corinna@vinschen.de>
1075             Warren Young  <warren@etr-usa.com>
1077         * cygwin-setup.ico: Slightly modified.
1078         * cygwin-terminal.ico: Ditto.
1080 2011-08-15  Corinna Vinschen  <corinna@vinschen.de>
1081             Warren Young  <warren@etr-usa.com>
1083         * cygwin.ico: New, smoother 152x152 icon.
1085 2011-08-13  Jon TURNEY  <jon.turney@dronecode.org.uk>
1087         * choose.cc (OnInit, createListview): Build the initial list of packages
1088         to install in OnInit() not in CreateListView().  If packages were
1089         selected on command line in unattended mode, just install those
1090         packages.
1091         * package_db.h (packagedb): Add addCommandLinePackages() method.
1092         * package_db.cc (addCommandLinePackages): Add separate method to add
1093         these so we can indicate if packages were added on the command line.
1095 2011-08-13  Jon TURNEY  <jon.turney@dronecode.org.uk>
1097         * PickView.cc (defaultTrust): Move implementation which deals with
1098         package db from here...
1099         * package_db.cc (defaultTrust): ... to here.
1100         * package_db.h (packagedb): ... a new member function.
1102 2011-08-12  Corinna Vinschen  <corinna@vinschen.de>
1104         * res.rc: Move spash icon slightly.  Fix copyright.
1106 2011-08-12  Corinna Vinschen  <corinna@vinschen.de>
1107             Warren Young  <warren@etr-usa.com>
1109         * cygwin-setup.ico: New file.
1110         * cygwin-terminal.ico: New file.
1111         * cygwin.ico: New icons.
1112         * desktop.cc (make_link): Take additional argument to take arguments
1113         for shortcut.  Append arg to argbuf.
1114         (start_menu): Take additional argument to take argments for shortcut.
1115         Add to call to make_link.
1116         (desktop_icon): Ditto.
1117         (save_icon): Take path and name of resource as arguments.  Replace
1118         Cygwin icon if it's the old one.
1119         (do_desktop_setup): Save Cygwin standalone and Cygwin terminal icons.
1120         Rename desktop and start menu shortcut name to "Cygwin Terminal", use
1121         the cygwin terminal icon for them, and point them to mintty.
1122         * res.rc: Change splash icon to keep size of original icon.
1123         (IDI_CYGWIN_SETUP): New entry.
1124         (IDI_CYGWIN_TERMINAL): New entry.
1125         (CYGWIN-SETUP.ICON): New entry.
1126         (CYGWIN-TERMINAL.ICON): New entry.
1127         * resource.h (IDI_CYGWIN_SETUP): Define.
1128         (IDI_CYGWIN_TERMINAL): Define.
1130 2011-07-25  Jon TURNEY  <jon.turney@dronecode.org.uk>
1132         * install.cc (do_install_thread): Only set progress bar output if at least
1133         one package gets installed, to avoid a cosmetic issue.
1135 2011-07-25  Corinna Vinschen  <corinna@vinschen.de>
1137         * desktop.cc (make_link): Create shortcuts to command.com only on 9x.
1139 2011-07-20  Andy Koppe  <andy.koppe@gmail.com>
1141         * res.rc: Remove Prev button from chooser page.
1142         * resource.h: Reflect removal of Prev button.
1143         * package_meta.h (trustp): Ditto.
1144         * choose.cc: Ditto.
1146 2011-04-24  Jon TURNEY  <jon.turney@dronecode.org.uk>
1148         * download.cc (do_download_thread): Update progress display
1149         when download phase starts
1151 2011-04-24  Jon TURNEY  <jon.turney@dronecode.org.uk>
1153         * install.cc (do_install_thread): Report overall progress while
1154         md5summing packages.
1156 2011-04-08  Jon TURNEY  <jon.turney@dronecode.org.uk>
1158         * archive_tar_file.cc (read): Handle short reads
1160 2011-04-08  Jon TURNEY  <jon.turney@dronecode.org.uk>
1162         * compress_bz.h (compress): Remove unused bufN member.
1163         * compress_bz.cc (read): Handle bzip2 files containing multiple
1164         streams
1166 2011-04-08  Jon TURNEY  <jon.turney@dronecode.org.uk>
1168         * install.cc (extract_replace_on_reboot): New function containg code
1169         extracted from...
1170         (installOne): Report read errors differently to write errors
1171         * archive.cc (extract_file): Distinguish read errors from write errors
1173 2011-04-08  Jon TURNEY  <jon.turney@dronecode.org.uk>
1175         * io_stream.cc (copy): Propagate errors.
1177 2011-04-08  Jon TURNEY  <jon.turney@dronecode.org.uk>
1179         * compress_bz.cc (read, peek): Consistently return -1 and set lasterr
1180         on an error.
1181         * compress_gz.cc (read, write, peek): Ditto.
1183 2011-04-08  Jon TURNEY  <jon.turney@dronecode.org.uk>
1185         * archive_tar_file.cc (read, write, peek, seek): Consistently return -1
1186         and set lasterr on an error.
1188 2011-01-02  Jon TURNEY  <jon.turney@dronecode.org.uk>
1190         * crypto.c (ExtraKeyOption): Correct option description.
1192 2010-12-16  Jon TURNEY  <jon.turney@dronecode.org.uk>
1194         * prereq.cc (OnNext, whatNext, OnUnattended): Fix PrereqPage::OnUnattended()
1195         so PrereqPage behaves correctly in unattended modes.
1196         * prereq.h (PrereqPage): Ditto
1197         * proppage.cc (DialogProc): Update comment to clarify meaning of
1198         OnUnattended() returning 0.
1200 2010-11-26  Jon TURNEY <jon.turney@dronecode.org.uk>
1202         * site.cc (init): Canonicalize mirror URLs to ensure the end
1203         with a '/'.
1205 2010-11-19  Jon TURNEY  <jon.turney@dronecode.org.uk>
1207         * IniDBBuilderPackage.cc (IniDBBuilderPackage): Remove db.packages vector
1208         sorting.
1209         (buildPackage, buildPackageSource): Change package collection from vector
1210         to map.
1211         * PickView.cc (setViewMode, init_headers, defaultTrust): Ditto.
1212         * choose.cc (createListview, logResults, keepClicked)
1213         (changeTrust): Ditto
1214         * install.cc (do_install_thread): Ditto
1215         * download.cc (do_download_thread): Ditto
1216         * prereq.cc (isMet): Ditto
1217         * package_meta.cc (ScanDownloadedFiles): Ditto
1218         * package_db.h (packagedb): Ditto
1219         * package_db.cc (packagedb, flush, markUnVisited, setExistence)
1220         (fillMissingCategory): Ditto
1221         (findBinary, findSource): Rewrite to locate packages in map rather than
1222         searching the whole vector, for performance.
1223         (ConnectedLoopFinder, doIt, visit): Rewrite to refer to package using a
1224         packagemeta *, as an index into the vector of packages can no longer be
1225         used.
1227 2010-11-25  Corinna Vinschen  <corinna@vinschen.de>
1229         * package_db.cc (ConnectedLoopFinder::doIt): Drop hardcoded base-cygwin
1230         dependency setting.  Fix comment.
1232 2010-11-23  Corinna Vinschen  <corinna@vinschen.de>
1234         * package_db.cc (ConnectedLoopFinder::doIt): Drop hardcoded base-passwd
1235         dependency setting.  Fix condition for base-cygwin string check.
1237 2010-11-06  Jon TURNEY  <jon.turney@dronecode.org.uk>
1239         * package_meta.h (packagemeta): Remove unused member variables for
1240         storing timestamp of the setup.ini that package version came from.
1241         * package_meta.cc (packagemeta): Ditto.
1243 2010-11-06  Jon TURNEY  <jon.turney@dronecode.org.uk>
1245         * package_version.h (packageversion): Add compareVersion() utility
1246         function.
1247         * package_version.cc (Vendor_version, Package_version)
1248         (compareVersions): Implement the Vendor_version() and Package_version()
1249         accessor functions.  Add compareVersions() utility function.
1250         * cygpackage.cc (setCanonicalVersion): Fix to extract vendor version
1251         correctly.
1252         * IniDBBuilderPackage.cc (add_correct_version): When multiple setup.ini's
1253         offer different packages for the same stability level, use the package with
1254         the highest version number rather than the package coming from the setup.ini
1255         with the latest timestamp.
1257 2010-11-19  Jon TURNEY  <jon.turney@dronecode.org.uk>
1259         * choose.cc (OnNext): Remove PrereqChecker call, instead use new
1260         WM_APP_PREREQ_CHECK state of Progress dialog.
1261         * threebar.h (WM_APP_PREREQ_CHECK)
1262         (WM_APP_PREREQ_CHECK_THREAD_COMPLETE): Add new messages.
1263         * threebar.cc (OnActivate, OnMessageApp): Use single bar mode for
1264         WM_APP_PREREQ_CHECK state.  Handle new messages.
1265         * dialog.h (do_prereq_check_thread): Add prototype.
1266         * prereq.cc (isMet, do_prereq_check_thread)
1267         (do_prereq_check_reflector, do_prereq_check): Add progress reporting
1268         during isMet, and thread containing moved PrereqChecker code.
1270 2010-11-17  Jon TURNEY  <jon.turney@dronecode.org.uk>
1272         * package_meta.cc (set_action): Always set the binary tick box
1273         when selecting a specific version (if binary is available)
1275 2010-11-17  Jon TURNEY  <jon.turney@dronecode.org.uk>
1277         * postinstall.cc (do_postinstall_thread): Refer to "Unknown package"
1278         rather than "No package"
1280 2010-11-19  Christopher Faylor  <me+cygwin@cgf.cx>
1282         Throughout, change all occurrences of "PostMessage" to PostMessageNow.
1283         This works around problem where w32api uses a #define which calls the
1284         Windows API version of PostMessage directly, confusing g++ 3.4.4.
1286 2010-11-07  Jon TURNEY  <jon.turney@dronecode.org.uk>
1288         * propsheet.cc (PropSheetProc): Set the big icon for the propsheet
1289         window
1291 2010-11-07  Jon TURNEY  <jon.turney@dronecode.org.uk>
1293         * ini.cc (GuiParseFeedback::progress, GuiParseFeedback::iniName):
1294         Update all the text in the progress dialog whilst parsing .ini file,
1295         not just the top line.
1297 2010-11-07  Jon TURNEY  <jon.turney@dronecode.org.uk>
1299         * choose.cc (OnBack): Move PlaceDialog(false) so window is resized in
1300         'Install from Local Directory' mode as well.
1302 2010-11-06  Jon TURNEY  <jon.turney@dronecode.org.uk>
1304         * res.rc (IDD_NET): Make text referring to IE5 more general
1306 2010-11-04 Jon TURNEY <jon.turney@dronecode.org.uk>
1308         * compress_bz.h (compress): Add endReached flag.
1309         * compress_bz.cc (read, compress_bz): Use endReached flag to return 0
1310         for a read when EOF has been reached, after BZ2_bzDecompress returns
1311         BZ_STREAM_END, rather than continue to try to call BZ2_bzDecompress
1312         beyond the end of the compressed data, generating a BZ_SEQUENCE_ERROR.
1313         * ini.cc (do_remote_ini): Now that bz2_stream doesn't always have a
1314         spurious error, detect and report if an error occurred decompressing.
1316 2010-09-13  Václav Haisman  <v.haisman@sh.cvut.cz>
1318         * propsheet.cc (PropSheet::SetActivePage): Remove :: from call to
1319         PropSheet_SetCurSel.
1320         (PropSheet::SetActivePageByID): Remove :: from call to
1321         PropSheet_SetCurSelByID.
1322         (PropSheet::SetButtons): Remove :: from call to PropSheet_SetWizButtons.
1323         (PropSheet::PressButton): Remove :: from call to PropSheet_PressButton.
1325 2010-09-07  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
1327         * postinstall.cc: Add #include <algorithm> to fix build with gcc-4.x.
1329 2010-08-29  Jon TURNEY <jon.turney@dronecode.org.uk>
1331         * postinstall.cc (do_postinstall_thread): Don't run postinstall
1332         scripts belonging to a just installed package twice.
1333         * script.h (Script): Add operator ==
1335 2010-08-25  Andy Koppe  <andy.koppe@gmail.com>
1337         * script.cc (init_run_script): Set CYGWINFORALL="-A" for
1338         postinstall/preremove scripts when installing for all users.
1340 2010-08-19  Andy Koppe  <andy.koppe@gmail.com>
1342         * package_meta.h (packagemeta::trustp): Update non-experimental 
1343         packages too when Exp is selected.
1345 2010-08-18  Andy Koppe  <andy.koppe@gmail.com>
1347         * res.rc (IDD_PREREQ): Say "Resolving Dependencies" instead of 
1348         "Unmet Dependencies found"
1349         * prereq.cc (PrereqPage::OnNext): Tone down message box about
1350         missing dependencies.
1352 2010-08-15  Andy Koppe  <andy.koppe@gmail.com>
1354         * postinstall.cc (PostInstallResultsPage::OnNext):
1355         Remove postinstall script error message box.
1356         * res.rc (IDS_POSTINSTALL): Try to make postinstall errors
1357         less scary.
1359 2010-08-11  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
1361         * bootstrap.sh: Allow running from a builddir. Run configure
1362         unless NOCONFIGURE is defined.
1363         * doconfigure: Remove.
1364         * Makefile.am (EXTRA_DIST): Remove doconfigure.
1365         * README: Document that bootstrap.sh runs configure.
1366         Remove reference to doconfigure.
1368 2010-08-10  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
1370         * configure.in: Check for prerequisites' headers.
1371         * Makefile.am: Remove libinilex.a library, instead...
1372         (inilint_SOURCES): Add inilex.ll. (setup_SOURCES): Ditto.
1373         * inilex.ll: Use option nounput to avoid "defined but not used"
1374         warning from yyunput().
1376 2010-08-10  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
1378         Fix compatibility with GCC 4.x.
1379         * Makefile.am (setup_LDFLAGS): Pass -static to compiler instead of
1380         linker so that libgcc is statically linked as well.
1381         (autoload.o): Disable optimization.
1382         * localdir.cc (browse_cb): Fix "jump to case label crosses
1383         initialization" error.
1384         * mklink2.cc (sfli): Fix "non-local variable uses anonymous type"
1385         warning.
1386         * ntdll.h: Fix "redeclared without dllimport attribute: previous
1387         dllimport ignored" warnings.
1388         * package_message.h (display): Fix "'exit' was not declared in this
1389         scope" error.
1391 2010-08-10  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net>
1393         * Makefile.am: Treat libgetopt++ as full-fledged SUBDIRS.
1394         (setup_LDADD): Always link against included libgetopt++.
1396 2010-08-08  Corinna Vinschen  <corinna@vinschen.de>
1398         * prereq.cc (PrereqChecker::getUnmetString): Improve dependency list
1399         output.
1401 2010-08-07  Andy Koppe  <andy.koppe@gmail.com>
1403         * prereq.cc (PrereqChecker::isMet): Find unmet indirect
1404         dependencies too.
1406 2010-08-06  Andy Koppe  <andy.koppe@gmail.com>
1408         * res.rc (IDS_VIEWBUTTON_TOOLTIP): Rename "Partial" view
1409         to "Pending" (again).
1411 2010-08-05  Andy Koppe  <andy.koppe@gmail.com>
1413         * res.rc (IDD_PREREQ DIALOG): Tweak wording on dependency page.
1415 2010-07-31  Dave Korn  <dave.korn.cygwin@gmail.com>
1417         * install.cc (Installer::installOne): Also record zero-sized
1418         tarballs as successfully installed.
1420 2010-07-30  Jon TURNEY <jon.turney@dronecode.org.uk>
1422         * postinstall.cc (do_postinstall_reflector): Fix typo.
1424 2010-07-30  Christopher Faylor  <me+cygwin@cgf.cx>
1426         * inilex.ll: Allow "~" in a string.
1428 2010-07-29  Jon TURNEY <jon.turney@dronecode.org.uk>
1430         * resource.h (IDD_POSTINSTALL, IDC_POSTINSTALL_EDIT): Add resource
1431         identifiers for postinstall results page.
1432         * res.rc (IDD_POSTINSTALL): Add dialog resource for postinstall results
1433         page.
1434         * postinstallresults.h: New file.
1435         * postinstallresults.cc: New file.
1436         * main.cc (main_display): Add a PostInstallResultsPage to the wizard.
1437         * Makefile.am (setup_SOURCES): Add new files.
1438         * threebar.cc (OnMessageApp): Allow WM_APP_POSTINSTALL_THREAD_COMPLETE
1439         to select the next page shown.
1440         * postinstall.cc (do_postinstall_thread)
1441         (do_postinstall_reflector): Collect results of running scripts and
1442         compose a reporting message which we pass to the postinstall results
1443         page.  Select postinstall results page next if there are results to
1444         show, otherwise desktop setup page as before.
1445         * script.cc (run): Don't rename as .done scripts which didn't run
1446         successfully.
1448 2010-07-26  Andy Koppe  <andy.koppe@gmail.com>
1450         * PickView.cc (PickView::views::caption): Rename "Partial" view
1451         to "Pending".
1452         * res.rc (IDS_VIEWBUTTON_TOOLTIP): Ditto.
1454 2010-07-22  Andy Koppe  <andy.koppe@gmail.com>
1456         * PickPackageLine.cc (PickPackageLine::{click,set_action}):
1457         Don't trigger automatic package selection when clicking on
1458         packages or categories on chooser screen.
1459         * PickCategoryLine.cc (PickCategoryLine::click): No more need to
1460         prepare for automatic package selection with markUnVisited().
1461         * res.rc: Drop "Warning!" from caption of Resolve Dependencies
1462         screen.
1464 2010-04-17  Dave Korn  <dave.korn.cygwin@gmail.com>
1466         * root.cc (RootPage::OnNext): Don't construct a packagedb here nor
1467         do deferred initialisation of static packagedb::task.
1468         * source.cc (save_dialog): Don't construct a packagedb here, and
1469         set static packagedb::task directly instead of chosen_db_task.
1470         * package_meta.cc (packagemeta::action_caption): Don't bother to
1471         construct a packagedb here, just access packagedb::task directly.
1472         * package_db.cc: Move 'static members' comment near static members.
1473         (chosen_db_task): Delete.
1474         * package_db.h (chosen_db_task): Don't declare extern.
1475         (packagedb): Extend comments on class.
1477 2010-04-14  Dave Korn  <dave.korn.cygwin@gmail.com>
1479         * PickView.cc (PickView::WindowProc): Delete inadvertently-committed
1480         debug logging.
1482 2010-04-13  Dave Korn  <dave.korn.cygwin@gmail.com>
1484         * PickView.h (PickView::set_vscroll_info): Add prototype.
1485         (PickView::hasClientRect): Rename from this ...
1486         (PickView::hasWindowRect): ... to this ...
1487         (PickView::lastClientRect): ... and from this ...
1488         (PickView::lastWindowRect): ... to this.
1489         * PickView.cc (PickView::PickView): Adjust member init to match.
1490         (PickView::set_vscroll_info): Abstract code to set vertical scroll
1491         bar proportions from ...
1492         (PickView::list_click): ... here.  Call it.  Fix comment typo.
1493         (PickView::WindowProc): Update all renamed variables in WM_SIZE
1494         case, and check also for a y delta, calling set_vscroll_info if so.
1496 2010-04-13  Dave Korn  <dave.korn.cygwin@gmail.com>
1498         * window.cc (Window::Window): Initialise BusyCount and BusyCursor.
1499         (Window::SetBusy): Set hourglass cursor, counting nested activations.
1500         (Window::ClearBusy): Cancel one call to SetBusy and restore original
1501         cursor if no longer busy.
1502         * window.h (Window::BusyCount): New data member.
1503         (Window::OldCursor): Likewise.
1504         (Window::BusyCursor): Likewise.
1505         (Window::SetBusy): Prototype.
1506         (Window::ClearBusy): Likewise.
1507         * choose.cc (ChooserPage::createListview): Invoke busy cursor
1508         around long-running operation.
1509         (ChooserPage::OnInit): Likewise.
1510         (ChooserPage::changeTrust): Likewise.
1511         * PickCategoryLine.cc (PickCategoryLine::set_action): Likewise.
1513 2010-04-08  Christopher Faylor  <me+cygwin@cgf.cx>
1515         * bootstrap.sh: Always reconfigure in libgetopt++.
1517         * Makefile.am: Remove old code for direct copying to sourceware.  Add
1518         -src to source tarball.
1520 2010-04-07  Matthias Andree  <matthias.andree@gmx.de>
1522         * README (HOW TO BUILD): Mention mingw-lib{gcrypt,lzma}-devel.
1524         * res.rc (IDD_DESKTOP): Move Installation Status line,
1525         IDC_STATUS_HEADER and IDC_STATUS up 20 units, make IDC_STATUS text
1526         20 units taller and 40 units wider so that IDS_REBOOT_REQUIRED
1527         message fits the screen.
1528         * res.rc (IDD_SPLASH): Bump copyright years in IDC_SLASH_COPYR to
1529         "2000-2010".
1531 2010-04-07  Corinna Vinschen  <corinna@vinschen.de>
1533         * install.cc (create_allow_protected_renames): New function to
1534         create AllowProtectedRenames registry entry.
1535         (Installer::installOne): Call create_allow_protected_renames if former
1536         call to MoveFileEx was successful.
1538 2010-03-18  Charles Wilson  <cygwin@cwilson.fastmail.fm>
1540         Use external crypto libraries
1541         * Makefile.am: Remove local libgcrypt and libgpg-error
1542         source directories from AM_CPPFLAGS.
1543         * configure.ac: Remove libgcrypt and libgpg-error subdirs
1544         from AC_CONFIG_SUBDIRS. Remove now-unnecessary cruft.
1545         * doconfigure: Specify gcc-3 and g++-3. Set PATH when $build
1546         is cygwin, so that correct (mingw) libgcrypt and libgpg-error
1547         config scripts can be used.
1549         Remove libgpg-error.
1550         * libgpg-error/tests/Makefile.am, libgpg-error/tests/Makefile.in,
1551         libgpg-error/tests/t-strerror.c, libgpg-error/tests/t-syserror.c,
1552         libgpg-error/po/ChangeLog, libgpg-error/po/LINGUAS,
1553         libgpg-error/po/Makefile.in.in, libgpg-error/po/Makevars,
1554         libgpg-error/po/POTFILES.in, libgpg-error/po/Rules-quot,
1555         libgpg-error/po/boldquot.sed, libgpg-error/po/de.gmo,
1556         libgpg-error/po/de.po, libgpg-error/po/en@boldquot.header,
1557         libgpg-error/po/en@quot.header, libgpg-error/po/fr.gmo,
1558         libgpg-error/po/fr.po libgpg-error/po/insert-header.sin,
1559         libgpg-error/po/libgpg-error.pot, libgpg-error/po/pl.gmo,
1560         libgpg-error/po/pl.po, libgpg-error/po/quot.sed,
1561         libgpg-error/po/remove-potcdate.sin, libgpg-error/po/ro.gmo,
1562         libgpg-error/po/ro.po libgpg-error/po/stamp-po,
1563         libgpg-error/po/sv.po, libgpg-error/po/vi.gmo,
1564         libgpg-error/po/vi.po, libgpg-error/po/sv.gmo,
1565         libgpg-error/m4/ChangeLog, libgpg-error/m4/Makefile.am,
1566         libgpg-error/m4/ac_prog_cc_for_build.m4, libgpg-error/m4/autobuild.m4,
1567         libgpg-error/m4/codeset.m4, libgpg-error/m4/gettext.m4,
1568         libgpg-error/m4/glibc2.m4, libgpg-error/m4/glibc21.m4,
1569         libgpg-error/m4/iconv.m4, libgpg-error/m4/intdiv0.m4,
1570         libgpg-error/m4/intmax.m4, libgpg-error/m4/inttypes-h.m4,
1571         libgpg-error/m4/inttypes-pri.m4, libgpg-error/m4/inttypes.m4,
1572         libgpg-error/m4/inttypes_h.m4, libgpg-error/m4/isc-posix.m4,
1573         libgpg-error/m4/lcmessage.m4, libgpg-error/m4/lib-ld.m4,
1574         libgpg-error/m4/lib-link.m4, libgpg-error/m4/lib-prefix.m4,
1575         libgpg-error/m4/libtool.m4, libgpg-error/m4/lock.m4,
1576         libgpg-error/m4/longdouble.m4, libgpg-error/m4/longlong.m4,
1577         libgpg-error/m4/nls.m4, libgpg-error/m4/po.m4,
1578         libgpg-error/m4/printf-posix.m4, libgpg-error/m4/progtest.m4,
1579         libgpg-error/m4/signed.m4, libgpg-error/m4/size_max.m4,
1580         libgpg-error/m4/stdint_h.m4, libgpg-error/m4/uintmax_t.m4,
1581         libgpg-error/m4/ulonglong.m4, libgpg-error/m4/visibility.m4,
1582         libgpg-error/m4/wchar_t.m4, libgpg-error/m4/wint_t.m4,
1583         libgpg-error/m4/xsize.m4, libgpg-error/m4/Makefile.in,
1584         libgpg-error/lang/Makefile.am, libgpg-error/lang/README,
1585         libgpg-error/lang/Makefile.in, libgpg-error/lang/cl/Makefile.am,
1586         libgpg-error/lang/cl/README, libgpg-error/lang/cl/gpg-error-package.lisp,
1587         libgpg-error/lang/cl/gpg-error.asd, libgpg-error/lang/cl/gpg-error.asd.in,
1588         libgpg-error/lang/cl/gpg-error.lisp, libgpg-error/lang/cl/mkerrcodes.awk,
1589         libgpg-error/lang/cl/Makefile.in, libgpg-error/src/Makefile.am,
1590         libgpg-error/src/README, libgpg-error/src/code-from-errno.c,
1591         libgpg-error/src/code-to-errno.c, libgpg-error/src/err-codes.h,
1592         libgpg-error/src/err-codes.h.in, libgpg-error/src/err-sources.h,
1593         libgpg-error/src/err-sources.h.in, libgpg-error/src/errnos.in,
1594         libgpg-error/src/gettext.h, libgpg-error/src/gpg-error-config.in,
1595         libgpg-error/src/gpg-error.c, libgpg-error/src/gpg-error.def,
1596         libgpg-error/src/gpg-error.h, libgpg-error/src/gpg-error.h.in,
1597         libgpg-error/src/gpg-error.m4, libgpg-error/src/init.c,
1598         libgpg-error/src/mkerrcodes.awk, libgpg-error/src/mkerrcodes.c,
1599         libgpg-error/src/mkerrcodes1.awk, libgpg-error/src/mkerrcodes2.awk,
1600         libgpg-error/src/mkerrnos.awk, libgpg-error/src/mkheader.awk,
1601         libgpg-error/src/mkstrtable.awk, libgpg-error/src/strerror-sym.c,
1602         libgpg-error/src/strerror.c, libgpg-error/src/strsource-sym.c,
1603         libgpg-error/src/strsource.c, libgpg-error/src/versioninfo.rc.in,
1604         libgpg-error/src/w32-gettext.c, libgpg-error/src/w32-gettext.h,
1605         libgpg-error/src/Makefile.in, libgpg-error/ABOUT-NLS,
1606         libgpg-error/AUTHORS, libgpg-error/COPYING, libgpg-error/COPYING.LIB,
1607         libgpg-error/ChangeLog, libgpg-error/INSTALL, libgpg-error/Makefile.am,
1608         libgpg-error/NEWS, libgpg-error/README, libgpg-error/THANKS,
1609         libgpg-error/VERSION, libgpg-error/autogen.sh, libgpg-error/compile,
1610         libgpg-error/config.guess, libgpg-error/config.rpath,
1611         libgpg-error/config.sub, libgpg-error/configure.ac, libgpg-error/depcomp,
1612         libgpg-error/install-sh, libgpg-error/libgpg-error.spec,
1613         libgpg-error/libgpg-error.spec.in, libgpg-error/ltmain.sh,
1614         libgpg-error/missing, libgpg-error/mkinstalldirs,
1615         libgpg-error/aclocal.m4, libgpg-error/configure,
1616         libgpg-error/config.h.in, libgpg-error/Makefile.in: Remove.
1618         Remove libgcrypt.
1619         * libgcrypt/tests/ChangeLog, libgcrypt/tests/Makefile.am,
1620         libgcrypt/tests/ac-data.c, libgcrypt/tests/ac-schemes.c,
1621         libgcrypt/tests/ac.c, libgcrypt/tests/basic.c,
1622         libgcrypt/tests/benchmark.c, libgcrypt/tests/hmac.c,
1623         libgcrypt/tests/keygen.c, libgcrypt/tests/keygrip.c,
1624         libgcrypt/tests/mpitests.c, libgcrypt/tests/pkbench.c,
1625         libgcrypt/tests/prime.c, libgcrypt/tests/pubkey.c,
1626         libgcrypt/tests/random.c, libgcrypt/tests/register.c,
1627         libgcrypt/tests/t-mpi-bit.c, libgcrypt/tests/testapi.c,
1628         libgcrypt/tests/tsexp.c, libgcrypt/tests/version.c,
1629         libgcrypt/tests/Makefile.in, libgcrypt/src/ChangeLog
1630         libgcrypt/src/Makefile.am, libgcrypt/src/Manifest, libgcrypt/src/ath.c,
1631         libgcrypt/src/ath.h, libgcrypt/src/cipher.h, libgcrypt/src/dumpsexp.c,
1632         libgcrypt/src/g10lib.h, libgcrypt/src/gcrypt-module.h,
1633         libgcrypt/src/gcrypt.h, libgcrypt/src/gcrypt.h.in,
1634         libgcrypt/src/gcryptrnd.c, libgcrypt/src/getrandom.c,
1635         libgcrypt/src/global.c, libgcrypt/src/hwfeatures.c,
1636         libgcrypt/src/libgcrypt-config.in, libgcrypt/src/libgcrypt.def,
1637         libgcrypt/src/libgcrypt.m4, libgcrypt/src/libgcrypt.vers,
1638         libgcrypt/src/misc.c, libgcrypt/src/missing-string.c,
1639         libgcrypt/src/module.c, libgcrypt/src/mpi.h, libgcrypt/src/secmem.h,
1640         libgcrypt/src/sexp.c, libgcrypt/src/stdmem.c, libgcrypt/src/stdmem.h,
1641         libgcrypt/src/types.h, libgcrypt/src/versioninfo.rc.in,
1642         libgcrypt/src/visibility.c, libgcrypt/src/visibility.h,
1643         libgcrypt/src/Makefile.in, libgcrypt/src/secmem.c,
1644         libgcrypt/m4/ChangeLog, libgcrypt/m4/Makefile.am,
1645         libgcrypt/m4/libtool.m4, libgcrypt/m4/noexecstack.m4,
1646         libgcrypt/m4/onceonly.m4, libgcrypt/m4/socklen.m4,
1647         libgcrypt/m4/sys_socket_h.m4, libgcrypt/m4/Makefile.in,
1648         libgcrypt/doc/ChangeLog, libgcrypt/doc/HACKING,
1649         libgcrypt/doc/Makefile.am, libgcrypt/doc/README.apichanges,
1650         libgcrypt/doc/gcrypt.texi, libgcrypt/doc/gpl.texi,
1651         libgcrypt/doc/lgpl.texi, libgcrypt/doc/mdate-sh,
1652         libgcrypt/doc/texinfo.tex, libgcrypt/doc/stamp-vti,
1653         libgcrypt/doc/version.texi, libgcrypt/doc/gcrypt.info,
1654         libgcrypt/doc/Makefile.in, libgcrypt/cipher/ChangeLog,
1655         libgcrypt/cipher/Makefile.am, libgcrypt/cipher/Manifest,
1656         libgcrypt/cipher/ac.c, libgcrypt/cipher/arcfour.c,
1657         libgcrypt/cipher/bithelp.h, libgcrypt/cipher/blowfish.c,
1658         libgcrypt/cipher/camellia-glue.c, libgcrypt/cipher/camellia.c,
1659         libgcrypt/cipher/camellia.h, libgcrypt/cipher/cast5.c,
1660         libgcrypt/cipher/cipher.c, libgcrypt/cipher/crc.c,
1661         libgcrypt/cipher/des.c, libgcrypt/cipher/dsa.c, libgcrypt/cipher/ecc.c,
1662         libgcrypt/cipher/elgamal.c, libgcrypt/cipher/md.c,
1663         libgcrypt/cipher/md4.c, libgcrypt/cipher/md5.c,
1664         libgcrypt/cipher/primegen.c, libgcrypt/cipher/pubkey.c,
1665         libgcrypt/cipher/rand-internal.h, libgcrypt/cipher/random-daemon.c,
1666         libgcrypt/cipher/random.c, libgcrypt/cipher/random.h,
1667         libgcrypt/cipher/rfc2268.c, libgcrypt/cipher/rijndael-tables.h,
1668         libgcrypt/cipher/rijndael.c, libgcrypt/cipher/rmd.h,
1669         libgcrypt/cipher/rmd160.c, libgcrypt/cipher/rndegd.c,
1670         libgcrypt/cipher/rndhw.c, libgcrypt/cipher/rndlinux.c,
1671         libgcrypt/cipher/rndunix.c, libgcrypt/cipher/rndw32.c,
1672         libgcrypt/cipher/rsa.c, libgcrypt/cipher/seed.c,
1673         libgcrypt/cipher/serpent.c, libgcrypt/cipher/sha1.c,
1674         libgcrypt/cipher/sha256.c, libgcrypt/cipher/sha512.c,
1675         libgcrypt/cipher/tiger.c, libgcrypt/cipher/twofish.c,
1676         libgcrypt/cipher/whirlpool.c, libgcrypt/cipher/Makefile.in,
1677         libgcrypt/AUTHORS, libgcrypt/BUGS, libgcrypt/COPYING,
1678         libgcrypt/COPYING.LIB, libgcrypt/ChangeLog, libgcrypt/INSTALL,
1679         libgcrypt/Makefile.am, libgcrypt/NEWS, libgcrypt/README,
1680         libgcrypt/README.SVN, libgcrypt/THANKS, libgcrypt/TODO, libgcrypt/VERSION,
1681         libgcrypt/acinclude.m4, libgcrypt/autogen.sh, libgcrypt/compile,
1682         libgcrypt/config.guess, libgcrypt/config.sub, libgcrypt/configure.ac,
1683         libgcrypt/depcomp, libgcrypt/install-sh, libgcrypt/ltmain.sh,
1684         libgcrypt/missing, libgcrypt/mkinstalldirs, , libgcrypt/aclocal.m4,
1685         libgcrypt/configure, libgcrypt/config.h.in, libgcrypt/Makefile.in,
1686         libgcrypt/mpi/ChangeLog, libgcrypt/mpi/Makefile.am,
1687         libgcrypt/mpi/Manifest, libgcrypt/mpi/config.links, libgcrypt/mpi/ec.c,
1688         libgcrypt/mpi/longlong.h, libgcrypt/mpi/mpi-add.c,
1689         libgcrypt/mpi/mpi-bit.c, libgcrypt/mpi/mpi-cmp.c,
1690         libgcrypt/mpi/mpi-div.c, libgcrypt/mpi/mpi-gcd.c,
1691         libgcrypt/mpi/mpi-inline.c, libgcrypt/mpi/mpi-inline.h,
1692         libgcrypt/mpi/mpi-internal.h, libgcrypt/mpi/mpi-inv.c,
1693         libgcrypt/mpi/mpi-mod.c, libgcrypt/mpi/mpi-mpow.c,
1694         libgcrypt/mpi/mpi-mul.c, libgcrypt/mpi/mpi-pow.c,
1695         libgcrypt/mpi/mpi-scan.c, libgcrypt/mpi/mpicoder.c,
1696         libgcrypt/mpi/mpih-div.c, libgcrypt/mpi/mpih-mul.c,
1697         libgcrypt/mpi/mpiutil.c, libgcrypt/mpi/Makefile.in,
1698         libgcrypt/mpi/alpha/README, libgcrypt/mpi/alpha/distfiles,
1699         libgcrypt/mpi/alpha/mpih-add1.S, libgcrypt/mpi/alpha/mpih-lshift.S,
1700         libgcrypt/mpi/alpha/mpih-mul1.S, libgcrypt/mpi/alpha/mpih-mul2.S,
1701         libgcrypt/mpi/alpha/mpih-mul3.S, libgcrypt/mpi/alpha/mpih-rshift.S,
1702         libgcrypt/mpi/alpha/mpih-sub1.S, libgcrypt/mpi/alpha/udiv-qrnnd.S,
1703         libgcrypt/mpi/amd64/distfiles, libgcrypt/mpi/amd64/mpih-add1.S,
1704         libgcrypt/mpi/amd64/mpih-lshift.S, libgcrypt/mpi/amd64/mpih-mul1.S,
1705         libgcrypt/mpi/amd64/mpih-mul2.S, libgcrypt/mpi/amd64/mpih-mul3.S,
1706         libgcrypt/mpi/amd64/mpih-rshift.S, libgcrypt/mpi/amd64/mpih-sub1.S,
1707         libgcrypt/mpi/generic/Manifest, libgcrypt/mpi/generic/distfiles,
1708         libgcrypt/mpi/generic/mpi-asm-defs.h, libgcrypt/mpi/generic/mpih-add1.c,
1709         libgcrypt/mpi/generic/mpih-lshift.c, libgcrypt/mpi/generic/mpih-mul1.c,
1710         libgcrypt/mpi/generic/mpih-mul2.c, libgcrypt/mpi/generic/mpih-mul3.c,
1711         libgcrypt/mpi/generic/mpih-rshift.c, libgcrypt/mpi/generic/mpih-sub1.c,
1712         libgcrypt/mpi/generic/udiv-w-sdiv.c, libgcrypt/mpi/hppa/README,
1713         libgcrypt/mpi/hppa/distfiles, libgcrypt/mpi/hppa/mpih-add1.S,
1714         libgcrypt/mpi/hppa/mpih-lshift.S, libgcrypt/mpi/hppa/mpih-rshift.S,
1715         libgcrypt/mpi/hppa/mpih-sub1.S, libgcrypt/mpi/hppa/udiv-qrnnd.S,
1716         libgcrypt/mpi/hppa1.1/distfiles, libgcrypt/mpi/hppa1.1/mpih-mul1.S,
1717         libgcrypt/mpi/hppa1.1/mpih-mul2.S, libgcrypt/mpi/hppa1.1/mpih-mul3.S,
1718         libgcrypt/mpi/hppa1.1/udiv-qrnnd.S, libgcrypt/mpi/i386/Manifest,
1719         libgcrypt/mpi/i386/distfiles, libgcrypt/mpi/i386/mpih-add1.S,
1720         libgcrypt/mpi/i386/mpih-lshift.S, libgcrypt/mpi/i386/mpih-mul1.S,
1721         libgcrypt/mpi/i386/mpih-mul2.S, libgcrypt/mpi/i386/mpih-mul3.S,
1722         libgcrypt/mpi/i386/mpih-rshift.S, libgcrypt/mpi/i386/mpih-sub1.S,
1723         libgcrypt/mpi/i386/syntax.h, libgcrypt/mpi/i586/Manifest,
1724         libgcrypt/mpi/i586/README, libgcrypt/mpi/i586/distfiles,
1725         libgcrypt/mpi/i586/mpih-add1.S, libgcrypt/mpi/i586/mpih-lshift.S,
1726         libgcrypt/mpi/i586/mpih-mul1.S, libgcrypt/mpi/i586/mpih-mul2.S,
1727         libgcrypt/mpi/i586/mpih-mul3.S, libgcrypt/mpi/i586/mpih-rshift.S,
1728         libgcrypt/mpi/i586/mpih-sub1.S, libgcrypt/mpi/m68k/Manifest,
1729         libgcrypt/mpi/m68k/distfiles, libgcrypt/mpi/m68k/mpih-add1.S,
1730         libgcrypt/mpi/m68k/mpih-lshift.S, libgcrypt/mpi/m68k/mpih-rshift.S,
1731         libgcrypt/mpi/m68k/mpih-sub1.S, libgcrypt/mpi/m68k/syntax.h,
1732         libgcrypt/mpi/mips3/Manifest, libgcrypt/mpi/mips3/README,
1733         libgcrypt/mpi/mips3/distfiles, libgcrypt/mpi/mips3/mpi-asm-defs.h,
1734         libgcrypt/mpi/mips3/mpih-add1.S, libgcrypt/mpi/mips3/mpih-lshift.S,
1735         libgcrypt/mpi/mips3/mpih-mul1.S, libgcrypt/mpi/mips3/mpih-mul2.S,
1736         libgcrypt/mpi/mips3/mpih-mul3.S, libgcrypt/mpi/mips3/mpih-rshift.S,
1737         libgcrypt/mpi/mips3/mpih-sub1.S, libgcrypt/mpi/pa7100/Manifest,
1738         libgcrypt/mpi/pa7100/distfiles, libgcrypt/mpi/pa7100/mpih-lshift.S,
1739         libgcrypt/mpi/pa7100/mpih-rshift.S, libgcrypt/mpi/pentium4/README,
1740         libgcrypt/mpi/pentium4/distfiles, libgcrypt/mpi/power/Manifest,
1741         libgcrypt/mpi/power/distfiles, libgcrypt/mpi/power/mpih-add1.S,
1742         libgcrypt/mpi/power/mpih-lshift.S, libgcrypt/mpi/power/mpih-mul1.S,
1743         libgcrypt/mpi/power/mpih-mul2.S, libgcrypt/mpi/power/mpih-mul3.S,
1744         libgcrypt/mpi/power/mpih-rshift.S, libgcrypt/mpi/power/mpih-sub1.S,
1745         libgcrypt/mpi/powerpc32/Manifest, libgcrypt/mpi/powerpc32/distfiles,
1746         libgcrypt/mpi/powerpc32/mpih-add1.S,
1747         libgcrypt/mpi/powerpc32/mpih-lshift.S,
1748         libgcrypt/mpi/powerpc32/mpih-mul1.S,
1749         libgcrypt/mpi/powerpc32/mpih-mul2.S,
1750         libgcrypt/mpi/powerpc32/mpih-mul3.S,
1751         libgcrypt/mpi/powerpc32/mpih-rshift.S,
1752         libgcrypt/mpi/powerpc32/mpih-sub1.S, libgcrypt/mpi/powerpc32/syntax.h,
1753         libgcrypt/mpi/powerpc64/distfiles, libgcrypt/mpi/sparc32/Manifest,
1754         libgcrypt/mpi/sparc32/distfiles, libgcrypt/mpi/sparc32/mpih-add1.S,
1755         libgcrypt/mpi/sparc32/mpih-lshift.S,
1756         libgcrypt/mpi/sparc32/mpih-rshift.S, libgcrypt/mpi/sparc32/udiv.S,
1757         libgcrypt/mpi/sparc32v8/Manifest, libgcrypt/mpi/sparc32v8/distfiles,
1758         libgcrypt/mpi/sparc32v8/mpih-mul1.S,
1759         libgcrypt/mpi/sparc32v8/mpih-mul2.S,
1760         libgcrypt/mpi/sparc32v8/mpih-mul3.S, libgcrypt/mpi/supersparc/Manifest,
1761         libgcrypt/mpi/supersparc/distfiles,
1762         libgcrypt/mpi/supersparc/udiv.S, libgcrypt/mpi/m68k/mc68020/distfiles
1763         libgcrypt/mpi/m68k/mc68020/Manifest,
1764         libgcrypt/mpi/m68k/mc68020/mpih-mul1.S,
1765         libgcrypt/mpi/m68k/mc68020/mpih-mul2.S,
1766         libgcrypt/mpi/m68k/mc68020/mpih-mul3.S,
1767         libgcrypt/mpi/pentium4/mmx/distfiles,
1768         libgcrypt/mpi/pentium4/mmx/mpih-lshift.S,
1769         libgcrypt/mpi/pentium4/mmx/mpih-rshift.S,
1770         libgcrypt/mpi/pentium4/sse2/distfiles,
1771         libgcrypt/mpi/pentium4/sse2/mpih-add1.S,
1772         libgcrypt/mpi/pentium4/sse2/mpih-mul1.S,
1773         libgcrypt/mpi/pentium4/sse2/mpih-mul2.S,
1774         libgcrypt/mpi/pentium4/sse2/mpih-mul3.S,
1775         libgcrypt/mpi/pentium4/sse2/mpih-sub1.S: Remove.
1777 2010-03-17  Corinna Vinschen  <corinna@vinschen.de>
1779         * autoload.cc (Auto): Create autoload code in an executable section
1780         called .autoload_text to avoid problems with DEP.
1782 2010-03-14  Christopher Faylor  <me+cygwin@cgf.cx>
1784         * Makefile.am: Add a setup-src target.
1786 2010-03-14  Charles Wilson  <cygwin@cwilson.fastmail.fm>
1788         Support xz and lzma decompression via liblzma
1789         * Makefile.am: Add -DLZMA_API_STATIC to AM_CPPFLAGS,
1790         -lzma to setup_LDADD, and -static-libtool-libs to
1791         setup_LDFLAGS. Update setup_SOURCES.
1792         * compress.cc: Update includes.
1793         (compress::decompress): Use compress_xz rather than
1794         compress_lzma; compress_xz supports both xz and lzma
1795         decompression.
1796         * compress_xz.h: New.
1797         * compress_xz.cc: New.
1798         * compress_lzma.h: Removed.
1799         * compress_lzma.cc: Removed.
1800         * lzma-sdk/LzmaDec.c: Removed.
1801         * lzma-sdk/LzmaDec.h: Removed.
1802         * lzma-sdk/Types.h: Removed.
1804 2010-03-13  DJ Delorie  <dj@redhat.com>
1806         * nio-ftp.c (read): Read RETR status code on EOF to avoid
1807         deadlock with PASV.
1809 2010-03-01  Corinna Vinschen  <corinna@vinschen.de>
1811         * filemanip.cc (mklongpath): Skip "." and ".." path components to
1812         avoid error messages.
1814 2010-02-15  Corinna Vinschen  <corinna@vinschen.de>
1816         * filemanip.cc (mklongpath): Simplify backslash folding.
1818 2010-02-15  Corinna Vinschen  <corinna@vinschen.de>
1820         * filemanip.cc (transform_chars): Drop function.
1821         (mklongpath): Call mbrtowc in a loop rather than just mbstowcs.
1822         Transform characters on the fly.  Fold multiple backslashes into one.
1823         Drop trailing backslash.
1825 2010-02-15  Dave Korn  <dave.korn.cygwin@gmail.com>
1827         * choose.cc (ChooserPage::PlaceDialog): Only skip resizing window
1828         in fully-unattended mode, not chooser-only mode.
1829         (ChooserPage::OnUnattended): Return appropriate status to run page
1830         or not according to kind of unattended mode.
1831         * choose.h (ChooserPage::OnUnattended): Remove inline implementation
1832         and retain prototype only.
1833         * main.cc (PackageManagerOption): New boolean option.
1834         (main): Take it into account when setting unattended_mode.
1835         * proppage.cc (PropertyPage::DialogProc): Use new enum type when
1836         setting unattended_mode.
1837         * state.cc (unattended_mode): Change from bool to enum attend_mode.
1838         * state.h (enum attend_mode): Declare new enum type.
1839         (unattended_mode): Update extern declaration to use it.
1841 2010-02-04  Corinna Vinschen  <corinna@vinschen.de>
1843         * win32.cc (NTSecurity::GetPosixPerms): Return NULL security descriptor
1844         if is_legacy is set.
1845         (NTSecurity::SetPosixPerms): Remove.
1846         * win32.h (NTSecurity::GetPosixPerms): Remove declaration.
1848 2010-02-02  Corinna Vinschen  <corinna@vinschen.de>
1850         * desktop.cc (make_link): Use 0 default permissions when creating files
1851         and directories.
1852         * download.cc (download_one): Ditto.
1853         * ini.cc (do_remote_ini): Ditto.
1854         * localdir.cc (offer_to_create): Ditto.
1855         * filemanip.cc (nt_wfopen): Use Windows default permissions if perms
1856         is set to 0.
1857         * mkdir.cc (mkdir_p): Ditto if mode is set to 0.
1859 2010-01-29  Christopher Faylor  <me+cygwin@cgf.cx>
1861         * mount.cc (read_mounts_9x): Preserve old way of doing things when
1862         is_legacy.
1864 2010-01-28  Christopher Faylor  <me+cygwin@cgf.cx>
1866         * desktop.cc (make_link): Preserve old way of doing things when
1867         is_legacy.
1868         (make_cygwin_bat): Ditto.
1869         (save_icon): Ditto.
1870         * mount.cc (read_mounts): Ditto.
1871         (set_root_dir): Ditto.
1872         * root.cc (load_dialog): Ditto.
1873         (save_dialog): Ditto.
1874         * install.cc (Installer::installOne): Don't install anything if there
1875         is no canonical file associated with source.
1876         (do_install_thread): Set up old-style registry entries if is_legacy
1877         rather than just keying on whether this is Windows NT.
1878         * io_stream_file.cc (io_stream_file::exists): Redefine "exists" to mean
1879         "it's a file".
1881 2010-01-16  Christopher Faylor  <me+cygwin@cgf.cx>
1883         * archive_tar.c (archive_tar_file::read): Always set read_something
1884         even for zero-length files.
1886 2010-01-16  Christopher Faylor  <me+cygwin@cgf.cx>
1888         * archive_tar.h (archive_tar_file::read_something): New member.
1889         * archive_tar_file.cc (archive_tar_file::archive_tar_file): Don't reset
1890         state unless we've actually read something.
1891         (archive_tar_file::read): Set read_something variable here to indicate
1892         that we've read something from the tar file.
1894 2010-01-13  Christopher Faylor  <me+cygwin@cgf.cx>
1896         * localdir.cc (LocalDirPage::OnNext): Strip trailing slashes.
1898 2009-12-27  Christopher Faylor  <me+cygwin@cgf.cx>
1900         * main.cc (dyn_AttachConsole): Make static.
1901         (dyn_GetLongPathName): New variable.
1902         (set_dynaddr): New function.
1903         (set_cout): Don't set dyn_AttachConsole here.
1904         (set_legacy): Don't attempt to call function which does not exist in
1905         older versions of NT.
1906         (main): Call set_dynaddr to set dynamic load addresses.
1908 2009-12-22  Christopher Faylor  <me+cygwin@cgf.cx>
1910         * ini.h: Use is_legacy to control setup.ini names.
1911         * main.cc (set_legacy): New function.
1912         (main): Call set_legacy with program name to determine if this is
1913         supposed to be an installation of the legacy version of cygwin.  Issue
1914         a warning on attempt to install legacy on Windows NT class system.
1916 2009-12-22  Christopher Faylor  <me+cygwin@cgf.cx>
1918         * package_message (packagemessage::display): Avoid displaying a message
1919         when in unattended mode.
1921 2009-12-22  Corinna Vinschen  <corinna@vinschen.de>
1923         * win32.h (isdirsep): Define to replace local isslash definitions.
1924         * UserSettings.cc (UserSettings::open_settings): Remove isslash.
1925         Use isdirsep instead of isslash.
1926         * filemanip.cc (mklongpath): Ditto.
1927         * root.cc (directory_is_rootdir): Ditto.
1928         * localdir.cc (LocalDirSetting::save): Avoid consecutive backslashes
1929         in setup log file paths.
1930         * main.cc (main): Ditto.
1932 2009-12-21  Christopher Faylor  <me+cygwin@cgf.cx>
1934         * choose.cc (ChooserPage::PlaceDialog): Put *correct* size in
1935         WINDOWPLACEMENT length field.
1937 2009-12-18  Corinna Vinschen  <corinna@vinschen.de>
1939         Throughout, revert prototypes and methods set_mtime_and_mode to
1940         set_mtime and only care for the file timestamp.
1942         Throughout, accommodate additional mode_t parameter in call to
1943         io_stream::open.
1945         * IOStreamProvider.h (IOStreamProvider::open): Add mode_t parameter.
1946         * archive.cc (archive::extract_file): Reorder creation of in and tmp
1947         to get the file mode from the tar archive earlier.  Call io_stream::open
1948         with additional mode from tar archive.  Accommodate reversion to
1949         set_mtime.
1950         * filemanip.cc (nt_wfopen): Remove retry loop.  Instead initialize
1951         OBJECT_ATTRIBUTES with matching POSIX perms according to incoming
1952         perms to create correct ACL on file creation.  Remove subsequent call
1953         to nt_sec.SetPosixPerms.
1954         * io_stream.cc (io_stream::open): Take additional mode_t parameter
1955         and connect through to IOStreamProvider's open.
1956         * io_stream.h (io_stream::open): Add mode_t parameter.
1957         * io_stream_cygfile.cc (CygFileProvider::open): Ditto.
1958         (io_stream_cygfile::io_stream_cygfile): Ditto.  Call nt_wfopen with
1959         incoming mode_t parameter.  Make sure .exe and .dll files always
1960         have execute permissions set.
1961         (io_stream_cygfile::set_mtime): Remove retry loop and open file with
1962         just GENERIC_WRITE access.
1963         * io_stream_cygfile.h (io_stream_cygfile::io_stream_cygfile): Add mode_t
1964         parameter.
1965         * io_stream_file.cc (FileProvider::open): Ditto.
1966         (io_stream_file::io_stream_file): Ditto.  Call nt_wfopen with incoming
1967         mode_t parameter.
1968         * io_stream_file.h (io_stream_file::io_stream_file): Add mode_t
1969         parameter.
1970         * io_stream_memory.h (class io_stream_memory): Remove mode member.
1971         Just return 0 from get_mode.
1972         * mkdir.cc (mkdir_p): Remove retry loop.  Instead initialize
1973         OBJECT_ATTRIBUTES with matching POSIX perms according to incoming
1974         perms to create correct ACL on file creation.  Remove subsequent call
1975         to nt_sec.SetPosixPerms.
1976         * mklink2.cc (mkcygsymlink_nt): Remove retry loop.  Instead initialize
1977         SECURITY_ATTRIBUTES with matching POSIX perms to create correct ACL on
1978         file creation.
1979         * win32.cc (NTSecurity::GetPosixPerms): New function to generate
1980         POSIX ACL.  Default to current owner and current primary group for
1981         owner/group permissions.
1982         (NTSecurity::SetPosixPerms): Let GetPosixPerms create the DACL.
1983         (NTSecurity::setAdminGroup): Set groupSID to admins SID if successful.
1984         (NTSecurity::setDefaultSecurity): Store user SID in ownerSID member.
1985         Default groupSID to original primary group.
1986         * win32.h (struct acl_t): Define here.
1987         (class NTSecurity): Rename ownerSID and groupSID to cr_ownerSID and
1988         cr_groupSID.  Change throughout.  Add members ownerSID and groupSID.
1989         Declare new method GetPosixPerms.
1991 2009-12-17  Corinna Vinschen  <corinna@vinschen.de>
1993         * filemanip.cc (nt_wfopen): Only call nt_sec.SetPosixPerms if we have
1994         WRITE_DAC access.
1995         * mkdir.cc (mkdir_p): Ditto.
1997 2009-12-17  Corinna Vinschen  <corinna@vinschen.de>
1999         * filemanip.cc (nt_wfopen): Fix requested access rights.  Retry
2000         without WRITE_DAC access on access denied.  Add comment.
2001         * io_stream_cygfile.cc (io_stream_cygfile::set_mtime_and_mode): Ditto.
2002         * mkdir.cc (mkdir_p): Ditto.
2003         * mklink2.cc (mkcygsymlink_nt): Ditto.
2005 2009-12-17  Corinna Vinschen  <corinna@vinschen.de>
2007         * localdir.cc (LocalDirSetting::save): Call mkdir_p with isadir set
2008         since /var/log is a dir.
2010 2009-12-16  Corinna Vinschen  <corinna@vinschen.de>
2012         * UserSettings.cc (UserSettings::open_settings): Never add more than
2013         one slash.
2014         * filemanip.cc (tfx_chars): Align to Cygwin's transformation table.
2015         * localdir.cc (LocalDirSetting::save): Call mkdir_p with DOS path.
2017 2009-12-16  Christopher Faylor  <me+cygwin@cgf.cx>
2019         * package_message.h: New file.
2021 2009-12-13  Christopher Faylor  <me+cygwin@cgf.cx>
2023         * IniDBBuilder.h (buildMessage): Define for base class.
2024         * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildMessage): Define.
2025         * IniDBBuilderPackage.h (IniDBBuilderPackage::buildMessage): Declare.
2026         * PickPackageLine.cc: Pass pointer to package to "pick" throughout,
2027         where appropriate.
2028         * PickView.cc: Ditto.
2029         * install.cc: Ditto.
2030         * package_meta.cc: Ditto.
2031         * prereq.cc: Ditto.
2032         * package_version.cc: Ditto.
2033         (packageversion::pick): Add pkg pointer as second argument.  Display
2034         message where appropriate.
2035         * package_version.h (packageversion::pick): Add pkg pointer as second
2036         argument.
2037         * package_meta.h (packagemeta::mesage): Define.
2038         (packagemeta::set_message): Define.
2039         * inilex.ll: Properly return MESSAGE token.
2040         * iniparse.yy: Handle message: keyword.
2042 2009-12-08  Dave Korn  <dave.korn.cygwin@gmail.com>
2044         * localdir.cc (offer_to_create): New function.
2045         (browse_cb): Handle selection changed and validate failed
2046         callbacks, and call offer_to_create where appropriate.
2047         (browse): Set new dialog style flags in browser info.
2048         (LocalDirPage::OnNext): Replace call to mkdir_p with offer to
2049         create or error message dialog display, allow proceeding to
2050         chooser even if local dir does not exist in unattend mode or
2051         if user insists, and fix small memory leak.
2053         * res.rc (IDS_MAYBE_MKDIR, IDS_CANT_MKDIR, IDS_NO_CWD): Define new
2054         string resources.
2055         * resource.h (IDS_MAYBE_MKDIR, IDS_CANT_MKDIR, IDS_NO_CWD): Define
2056         corresponding resource ID numbers.
2058 2009-12-03  Corinna Vinschen  <corinna@vinschen.de>
2060         * main.cc (WinMain): Disable running on Windows 9x.  Show message box
2061         instead and exit.
2063 2009-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
2065         (ChooserPage::createListview): When nothing is found in the "All"
2066         category, pass an empty static dummy category object to the PickView
2067         constructor, instead of trying to dereference not-found iterator.
2069 2009-11-23  Corinna Vinschen  <corinna@vinschen.de>
2071         * io_stream_cygfile.cc (io_stream_cygfile::get_size): Don't try to
2072         close invalid handle.
2073         * io_stream_file.cc (io_stream_file::get_size): Ditto
2075 2009-11-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2077         * threebar.cc (ThreeBarProgressPage::OnMessageApp): Don't loop forever
2078         retrying ini file download/parse if it errors in unattended mode.
2080 2009-11-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2082         * package_meta.cc (CategoryOption): New StringOption for '-C'.
2083         (parseNames): New helper subroutine abstracts string parsing from ...
2084         (packagemeta::isManuallyWanted): Use it, and check for category names
2085         from CategoryOption as well as individual package names.
2086         * package_db.cc (packagedb::fillMissingCategory): Don't check for
2087         manually-wanted packages until after initialising all the categories.
2089 2009-11-04  Dave Korn  <dave.korn.cygwin@gmail.com>
2091         * localdir.cc (LocalDirSetting::LocalDirSetting): Restore -l option.
2093 2009-11-04  Dave Korn  <dave.korn.cygwin@gmail.com>
2095         * site.cc: Add #include of BoolOption header from libgetopt.
2096         (OnlySiteOption): New BoolOption for command-line -O option.
2097         (get_site_list): Respect BoolOption by not downloading mirror
2098         list, nor using nor updating cached mirrors.
2100 2009-11-04  Dave Korn  <dave.korn.cygwin@gmail.com>
2102         * download.cc (do_download_thread): Only retry an incomplete download
2103         a limited number of times in unattended mode.
2105 2009-11-04  Dave Korn  <dave.korn.cygwin@gmail.com>
2107         * main.cc (main_display): Use apartment-, not multi- threading model
2108         when initialiseing COM.
2110 2009-11-04  Corinna Vinschen  <corinna@vinschen.de>
2112         * localdir.cc (browse): Make title text depend on what we do.
2113         (LocalDirPage::OnNext): If we plan to download, try to create directory
2114         before cd'ing into it.
2116 2009-11-03  Corinna Vinschen  <corinna@vinschen.de>
2118         * mkdir.cc: Include sys/stat.h unconditionally.
2119         (mkdir_p): Add S_IFDIR flag in call to nt_sec.SetPosixPerms.
2120         * win32.cc: Include sys/stat.h.
2121         (NTSecurity::SetPosixPerms): Add CREATOR OWNER, CREATOR GROUP, and
2122         Everyone inheritance-only entries when setting a directory DACL.
2123         (NTSecurity::initialiseWellKnownSIDs): Create SIDs for CREATOR OWNER and
2124         CREATOR GROUP.
2125         * win32.h (class NTSecurity): Add members ownerSID and groupSID.
2127 2009-10-03  Andy Koppe  <andy.koppe@gmail.com>
2129         * main.cc (main): Make sure C runtime uses same codepage as GUI.
2131 2009-09-20  Christopher Faylor  <me+cygwin@cgf.cx>
2133         * main (set_cout): Really do attach to a console if stdout is "bad".
2135 2009-09-18  Andy Koppe  <andy.koppe@gmail.com>
2137         * root.cc (string orig_root_dir): New variable.
2138         (check_if_enable_next): Show warning against installing Cygwin into
2139         disk root only if the root directory has actually been changed.
2140         * res.rc: Make the root dir warning a bit more meaningful, and refrain
2141         from using uppercase.
2143 2009-09-18  Christopher Faylor  <me+cygwin@cgf.cx>
2145         * choose.cc (ChooserPage::OnBack): Revert to non-maximized when
2146         returning to mirror from package selection.
2148 2009-09-18  Dave Korn  <dave.korn.cygwin@gmail.com>
2150         * site.cc (get_site_list): Use empty string if user settings
2151         return NULL pointer for cached mirrors list.
2152         (SiteSetting::getSavedSites): Do nothing if user settings return
2153         NULL pointer for last mirror URL.
2155 2009-08-21  Christopher Faylor  <me+cygwin@cgf.cx>
2157         * site.cc (SiteSetting::registerSavedSite): Fix comment.
2159 2009-07-03  Christopher Faylor  <me+cygwin@cgf.cx>
2161         * main.cc (set_cout): Don't reset stdout if we already have a stdout.
2163 2009-07-03  Christopher Faylor  <me+cygwin@cgf.cx>
2165         * choose.cc (ChooserPage::ChooserPage): Use more specific name for
2166         saving window settings.
2167         (ChooserPage::~ChooserPage): Ditto.
2169 2009-07-01  Dave Korn  <dave.korn.cygwin@gmail.com>
2171         * PickView.h (PickView::total_delta_x):  New int member.
2172         (PickView::set_header_column_order):  Add prototype.
2173         * PickView.cc (PickView::set_header_column_order):  New function,
2174         broken out from ...
2175         (PickView::set_headers):  ... here.  Call it.
2176         (PickView::init_headers):  Apply total_delta_x to last_col width.
2177         (PickView::PickView):  Initialise new total_delta_x member to zero.
2178         (PickView::WindowProc):  Use set_header_column_order to find and
2179         adjust final column for both sets of headers.
2181 2009-06-29  Christopher Faylor  <me+cygwin@cgf.cx>
2183         * SourceSetting.cc (SourceSetting::SourceSetting): Restore proper
2184         remembrane of last source setting.
2185         * choose.cc (ChooserPage::ChooserPage): Potentially retrieve dialog
2186         placement info.
2187         (ChooserPage::~ChooserPage): Save geometry settings if the user moved
2188         or resized the page.
2189         (ChooserPage::PlaceDialog): Rename from MaximizeDialog.  Accommodate
2190         changed user placement settings.
2191         (ChooserPage::OnActivate): MaximizeDialog -> PlaceDialog.
2192         (ChooserPage::OnNext): Ditto.
2193         * choose.h (ChooserPage::~ChooserPage): Define.
2194         (ChooserPage::cmd_show): Delete.
2195         (ChooserPage::saved_geom): New field.
2196         (ChooserPage::window_placement): Ditto.
2197         (ChooserPage::pre_chooser_placement): Ditto.
2198         (ChooserPage::PlaceDialog): Rename from MaximizeDialog.
2200 2009-06-28  Christopher Faylor  <me+cygwin@cgf.cx>
2202         * ConnectionSetting.cc (ConnectionSetting::ConnectionSetting): Remove
2203         old code which no longer makes sense when run from a constructor.
2204         * SourceSetting.cc (SourceSetting::SourceSetting): Ditto.
2205         * localdir.cc (LocalDirSetting::LocalDirSetting): Ditto.  Fix typo
2206         which caused saved settings to be ignored.
2208 2009-06-28  Christopher Faylor  <me+cygwin@cgf.cx>
2210         * UserSettings.cc (UserSettings::UserSettings): settings.rc -> setup.rc.
2212 2009-06-28  Corinna Vinschen  <corinna@vinschen.de>
2214         * desktop.cc (DesktopSetupPage::OnInit): Drop CoInitialize call here.
2215         * main.cc (main_display): Use InitCommonControlsEx rather than
2216         InitCommonControls per MSDN.  Call CoInitializeEx and create IShellLink
2217         instance here to workaround a problem on Windows 7.  Release IShellLink
2218         instance and call CoUninitialize on exit.
2219         * mklink.cc (sl): Change to global variable.  Drop call to
2220         CoCreateInstance here.  Check if sl is valid before using it.
2222 2009-06-27  Christopher Faylor  <me+cygwin@cgf.cx>
2224         Preliminary option handling revamp.
2225         Throughout, change load/save methods to constructors/destructors which
2226         use new UserSettings methods.  Do not inherit from UserSetting class.
2227         * KeysSetting.cc (ExtraKeysSetting *ExtraKeysSetting::global): Define.
2228         (ExtraKeysSetting::ExtraKeysSetting): Initialize some class members use
2229         new UserSettings methods.
2230         (ExtraKeysSetting::~ExtraKeysSetting): Use new UserSettings method.
2231         * Makefile.am (setup_SOURCES): Eliminate UserSetting.h and
2232         UserSetting.cc.
2233         * UserSettings.cc: Complete rewrite.  Implements new UserSettings
2234         class methods.
2235         * UserSettings.h: Complete rewrite.  Defines new UserSettings class
2236         methods.
2237         * crypto.cc (ExtraKeys): Delete.
2238         (add_key_from_sexpr): Use ExtraKeysSetting::instance rather than
2239         ExtraKeys.
2240         (verify_ini_file_sig): Ditto.
2241         * io_stream.h (io_stream): Define virtual << operators.
2242         * localdir.cc (localDir): Delete.
2243         * main.cc: Include headers which declar new dynamically invoked
2244         classes.
2245         (main_display): New function.  Controls order of option setting and
2246         property page setup.  Add new class invocations to force option setting
2247         initializtion.
2248         (main): Invoke new UserSettings class constructor to populate new
2249         settings class.  Call main_display() to do most of the setup work.
2250         Call Settings.save () to save all settings.
2251         * net.cc (theSetting): Delete.
2252         * site.cc (SiteSetting::save): Record whether we've saved the
2253         information already.
2254         (get_site_list): Just use value returned from new UserSettings method
2255         rather than parsing a file.
2256         (SiteSetting::getSavedSites): Ditto.
2257         (write_cache_list): Use UserSettings operator to store mirror cache.
2258         (save_cache_file): Ditto.
2259         * source.cc (theSetting): Delete.
2261         * win32.h: gcc-4 accommodation.
2263 2009-06-26  Dave Korn  <dave.korn.cygwin@gmail.com>
2265         * res.rc (SETUP_STANDARD_DIALOG_W, SETUP_STANDARD_DIALOG_H,
2266         SETUP_SMALL_DIALOG_W, SETUP_SMALL_DIALOG_H):  Add constant defines
2267         for dialog sizes.
2268         (SETUP_STANDARD_DIALOG_DIMS, SETUP_SMALL_DIALOG_DIMS):  Add helper
2269         macros for (W,H) pairs of dimensions.
2270         (SETUP_HEADICON_X):  New global constant define.
2271         (IDD_SOURCE, IDD_VIRUS, IDD_LOCAL, IDD_ROOT, IDD_SITE, IDD_NET,
2272         IDD_INSTATUS, IDD_PROXY_AUTH, IDD_NET_AUTH, IDD_DESKTOP,
2273         IDD_FTP_AUTH DIALOG, IDD_DROPPED):  Use the above for dialog sizes,
2274         horizontal rules and icon positioning.
2275         (SETUP_KPCE_W):  New define for radio-button size.
2276         (SETUP_VIEWCAP_W, SETUP_VIEWCAP_X, SETUP_VIEW_W, SETUP_VIEW_X,
2277         SETUP_EXP_X, SETUP_CURR_X, SETUP_PREV_X, SETUP_KEEP_X):  Add defines
2278         for right-aligned controls.
2279         (SETUP_SEARCH_X, SETUP_SEARCH_W, SETUP_SEARCHTEXT_X,
2280         SETUP_SEARCHTEXT_W, SETUP_CLEAR_X, SETUP_CLEAR_W):  Likewise defines
2281         for left-aligned controls.
2282         (IDD_CHOOSE):  Use all the above, and reformat with whitespace
2283         between args for clarity.
2285 2009-06-26  Corinna Vinschen  <corinna@vinschen.de>
2287         * Makefile.am (setup_LDADD): Add -lshlwapi.
2288         * PickView.cc: Include shlwapi.h.
2289         (PickView::setViewMode): Compare package name with search string
2290         case-insensitive.
2291         (PickView::insert_category): Ditto.
2293 2009-06-26  Corinna Vinschen  <corinna@vinschen.de>
2295         * script.cc (init_run_script): Don't set $HOME to /tmp.  It breaks
2296         mkpasswd -c.
2298 2009-06-25  Corinna Vinschen  <corinna@vinschen.de>
2300         * script.cc (init_run_script): Reinstantiate accidentally removed
2301         setting of sh.
2303 2009-06-22  Christopher Faylor  <me+cygwin@cgf.cx>
2305         * script.cc (init_run_script): Revert to initializing cmd based on OS
2306         type.
2308 2009-06-22  Corinna Vinschen  <corinna@vinschen.de>
2310         * script.cc (Script::run): Start bash without -c option.
2312 2009-06-20  Christopher Faylor  <me+cygwin@cgf.cx>
2314         * threebar.cc (ThreeBarProgressPage::ins_dialog): Move variable to more
2315         appropriate class.
2316         (ThreeBarProgressPage::MaximizeDialog): Move function to more
2317         appropriate class.
2318         (ThreeBarProgressPage::OnMessageApp): Remove MaximizeDialog calls.
2319         * threebar.h: Remove maximize handling.
2320         * choose.cc (ChooserPage::ins_dialog): New variable.
2321         (ChooserPage::MaximizeDialog): New function.
2322         (ChooserPage::ChooserPage): Remove unneeded handling of nCmdShow.
2323         (ChooserPage::OnActivate): Maximize chooser page via MaximizeDialog.
2324         (ChooserPage::OnNext): Revert chooser page to normal before returning.
2325         * main.cc (main): Don't pass cmd_show to ChooserPage.
2326         * propsheet.cc (PropSheetProc): Accommodate change in class for
2327         SetHwndDialog.
2329 2009-06-20  Christopher Faylor  <me+cygwin@cgf.cx>
2331         * script.cc (shells): Delete.
2332         (cmd): Just assign to "cmd.exe" since we're always running on NT now.
2333         (sanitize_PATH ): New function.
2334         (init_run_script): Ensure that we're only called once.  Strip
2335         environment of non-pertinent stuff.  Call sanitize_PATH to remove
2336         non-standard stuff from the PATH.  Set up a few standard environment
2337         variables.
2339 2009-06-16  Corinna Vinschen  <corinna@vinschen.de>
2341         * mount.cc (create_install_root): Don't load mount table again.
2342         (read_mounts_nt): Don't break loop, rather continue when not being
2343         able to open "Cygwin" registry key.
2345 2009-06-03  Ralph Hempel  <rhempel@bmts.com>
2347         * source.cc: Add support for both -D and -L on the command line.
2349 2009-06-03  Corinna Vinschen  <corinna@vinschen.de>
2351         * filemanip.cc (unlink): Rename from DeleteFileW.  Take additional
2352         parameter to indicate file type to unlink.  Use in flags given to
2353         NtCreateFile.
2354         (DeleteFileW): Just call unlink from here with FILE_NON_DIRECTORY_FILE
2355         flag.
2356         (RemoveDirectoryW): Ditto with FILE_DIRECTORY_FILE flag.
2358 2009-05-30  Charles Wilson  <cygwin@cwilson.fastmail.fm>
2360         * script.cc (Script::run): Really start bash with --norc
2361         --noprofile options.
2363 2009-05-13  Corinna Vinschen  <corinna@vinschen.de>
2365         * script.cc (Script::run): Start bash with --norc --noprofile options.
2367 2009-05-13  Corinna Vinschen  <corinna@vinschen.de>
2369         * filemanip.cc (struct _FILE_RENAME_INFORMATION): Remove definition.
2370         * io_stream_cygfile.cc (io_stream_cygfile::io_stream_cygfile): Set
2371         default permission for .exe files to 0755.
2372         (io_stream_cygfile::mklink): Try to create real hardlink first.  Add
2373         comment.
2374         * mklink2.cc (mkcyghardlink): New function to create real hardlink.
2375         * mklink2.h (mkcyghardlink): Declare.
2376         * mount.cc (from_fstab_line): Set got_usr_bin and got_usr_lib flags
2377         if /usr/bin and /usr/lib mount points exist in /etc/fstab.
2378         (add_usr_mnts): Only create mounts if corresponding got_usr_bin and
2379         got_usr_lib flags are not set.
2380         (read_mounts_nt): Initialize got_usr_bin and got_usr_lib to false.
2381         Always call add_usr_mnts, even if from_fstab succeeded.
2382         * ntdll.h: Include ddk/ntifs.h.
2384 2009-05-12  Corinna Vinschen  <corinna@vinschen.de>
2386         * filemanip.cc (GetFileAttributesW): Add accidentally omited
2387         OBJ_CASE_INSENSITIVE when creating OBJECT_ATTRIBUTES.
2388         (SetFileAttributesW): Ditto.
2389         (MoveFileW): Ditto.
2390         (DeleteFileW): Ditto.
2391         (RemoveDirectoryW): Ditto.
2392         (nt_wfopen): Ditto.
2394 2009-05-11  Bryan Thrall  <bryan.thrall@flightsafety.com>
2396         * localdir.cc (load_dialog): Choose description string based on install
2397         type.
2398         * res.rc (IDD_LOCAL_DIR): Replace static description text with
2399         IDC_LOCAL_DIR_DESC.
2400         * resource.h (IDS_LOCAL_DIR_DOWNLOAD): New string resource id.
2401         (IDS_LOCAL_DIR_INSTALL): Likewise.
2402         (IDC_LOCAL_DIR_DESC): New text control resource id.
2404 2009-05-11  Christopher Faylor  <me+cygwin@cgf.cx>
2406         * main.cc (set_cout): Simplify code a little.
2408 2009-05-11  Bryan Thrall  <bryan.thrall@flightsafety.com>
2410         * choose.cc (ChooserPage::OnMessageCmd): Clear search filter when
2411         clear button clicked.
2412         * res.rc (IDD_CHOOSE_DIALOG): Add IDC_CHOOSE_CLEAR_SEARCH button.
2413         * resource.h (IDC_CHOOSE_CLEAR_SEARCH): New button resource ID.
2415 2009-05-11  Corinna Vinschen  <corinna@vinschen.de>
2417         * UserSettings.cc (UserSettings::settingFileForLoad): Fix local load
2418         path strings.
2419         (UserSettings::settingFileForSave): Never store in cwd.
2420         * autoload.c (ntdll): Autoload ntdll.dll functions here.
2421         * desktop.cc (make_cygwin_bat): Use GetFileAttributesW rather than
2422         _waccess.  Use nt_wfopen instead of _wfopen.
2423         (save_icon): Ditto.
2424         * filemanip.cc (get_file_size): Call io_stream::open with empty mode
2425         string to avoid opening file twice.
2426         (GetFileAttributesW): New function to replace Win32 function with
2427         equivalent function opening files with backup intent.
2428         (SetFileAttributesW): Ditto.
2429         (MoveFileW): Ditto.
2430         (DeleteFileW): Ditto.
2431         (RemoveDirectoryW): Ditto.
2432         (nt_wfopen): New function to replace _wfopen with equivalent function
2433         opening files with backup intent.
2434         * filemanip.h (nt_wfopen): Declare.
2435         * io_stream_cygfile.cc (io_stream_cygfile::io_stream_cygfile): Initalize
2436         lasterr to 0.  Allow empty mode and don't open file, if so.  Call
2437         nt_wfopen rather than _wfopen.
2438         (io_stream_cygfile::exists): Use GetFileAttributesW rather than
2439         _waccess.
2440         (io_stream_cygfile::get_size): Use CreateFileW/GetFileSize to get
2441         file size on NT.
2442         * io_stream_file.cc (io_stream_file::io_stream_file): Initalize lasterr
2443         to 0.  Allow empty mode and don't open file, if so.  Call nt_wfopen
2444         rather than _wfopen.
2445         (io_stream_file::exists): Use GetFileAttributesW rather than _waccess.
2446         (io_stream_file::remove): Don't try to remove non-existant file.
2447         (io_stream_file::get_size): Use CreateFileW/GetFileSize to get
2448         file size on NT.  Add comment to keep track of 2GB border.
2449         * mkdir.cc: Remove function pointers for ntdll functions.
2450         (init_ntfuncs): Remove function.
2451         (mkdir_p): Drop call to init_ntfuncs.  Call ntdll functions directly
2452         rather than over local function pointers.
2453         * ntdll.h: New file.
2454         * postinstall.cc (do_postinstall_reflector): Switch to admins group
2455         as primary group after postinstall scripts have been written.
2456         Explain why.
2457         (do_postinstall): Add comment.
2458         * res.rc: Bump copyright date.
2459         * win32.h (class TokenGroupCollection): Remove.
2460         * win32.cc (TokenGroupCollection::populate): Remove.
2461         (TokenGroupCollection::find): Remove.
2462         (NTSecurity::setDefaultSecurity): Drop reading token groups.  Just
2463         try to switch to admins group as primary group.
2465 2009-05-07  Corinna Vinschen  <corinna@vinschen.de>
2467         * package_db.cc (ConnectedLoopFinder::doIt): Revert patch from
2468         2008-08-29.  Add dumb hardcoded algorithm to make sure base-cygwin
2469         and base-passwd are always the first packages in the postinstall
2470         executable order.
2472 2009-05-06  Corinna Vinschen  <corinna@vinschen.de>
2474         * install.cc (Installer::StandardDirs): Add /home with 1777 perms.
2475         * main.cc (main): Drop setting $CYGWIN to nontsec.
2477 2009-04-24  Andrew Punch  <andrew@magneticbooks.com.au>
2479         * PickView.h:  Add #include <string>.
2480         (PickView::SetPackageFilter):  Add new function.
2481         (PickView::packageFilterString):  Add new string data member.
2482         * PickView.cc (PickView::setViewMode):  Use it to filter names.
2483         (PickView::insert_category):  Likewise.
2484         (PickView::PickView):  Initialise packageFilterString to blank.
2485         * res.rc (IDD_CHOOSE):  Add IDC_CHOOSE_SEARCH_EDIT and
2486         IDC_CHOOSE_SEARCH_LABEL controls.
2487         (IDS_SEARCH_TOOLTIP):  Add new string resource.
2488         * resource.h (IDS_SEARCH_TOOLTIP):  New string resource ID.
2489         (IDC_CHOOSE_SEARCH_EDIT):  New edit control ID.
2490         (IDC_CHOOSE_SEARCH_LABEL):  Mew static text control ID.
2491         * choose.cc (ChooserControlsInfo[]):  Add IDC_CHOOSE_SEARCH_LABEL
2492         and IDC_CHOOSE_SEARCH_EDIT controls to auto-resize list.
2493         (ChooserPage::OnInit):  Add tooltip to search edit box.
2494         (ChooserPage::OnMessageCmd):  Handle EN_CHANGE event from
2495         IDC_CHOOSE_SEARCH_EDIT.
2497 2009-04-24  Dave Korn  <dave.korn.cygwin@gmail.com>
2499         * propsheet.cc (PropSheetWndProc):  Re-enable hasMinRect.
2501 2009-04-23  Corinna Vinschen  <corinna@vinschen.de>
2503         * win32.h (NTSecurity::primaryGroupSID): Convert to a structure for
2504         direct usage in GetTokenInformation.
2505         (NTSecurity::osid): Remove.
2506         (NTSecurity::setAdminGroup): Declare.
2507         * win32.cc (NTSecurity::resetPrimaryGroup): Accommodate change to
2508         primaryGroupSID.  Add log output.
2509         (NTSecurity::setAdminGroup): New method.
2510         (NTSecurity::setDefaultSecurity): Use local structures for getting
2511         TOKEN_USER and setting TOKEN_OWNER information.  Accommodate change to
2512         primaryGroupSID.  Slightly enhance log output.
2513         Only set primary group to Administrators group when installing for
2514         all users.  Call setAdminGroup to do it.
2516 2009-04-22  Corinna Vinschen  <corinna@vinschen.de>
2518         * mklink2.cc (mkcygsymlink_nt): Allow 4K chars in symlink.  Use strncat
2519         rather than strcat.
2520         * postinstall.cc (do_postinstall): Reset user token to original
2521         primary group.
2522         * win32.cc (NTSecurity::resetPrimaryGroup): New method.
2523         (NTSecurity::setDefaultSecurity): Store original primary group in
2524         new NTSecurity member primaryGroupSID.  Set primary group in user token
2525         to Administrators group for admin users.  Align comment.
2526         * win32.h (class NTSecurity): Add member primaryGroupSID.
2527         (NTSecurity::resetPrimaryGroup): Declare.
2529 2009-04-09  Christopher Faylor  <me+cygwin@cgf.cx>
2531         * main.cc (set_cout): Load AttachConsole dynamically to avoid using it
2532         on older Windows which don't support it.
2534 2009-03-21  Christopher Faylor  <me+cygwin@cgf.cx>
2536         * LogFile.cc (LogFile::endEntry): Output messages to stdout.
2537         * main.cc (set_cout): New function.  Sets stdout to console if one
2538         exists.
2539         (main): Redirect stdout to console if unattended_mode or help option is
2540         specified and no stdout is available.
2542 2009-03-21 Terry Fleming  <terrynfleming@gmail.com>
2543            Christopher Faylor <me+cygwin@cgf.cx>
2545         * propsheet.cc (PropSheetWndProc): Detect a Window closing event and
2546         issue an "Are you sure" message.
2548 2008-08-29  Corinna Vinschen  <corinna@vinschen.de>
2550         * package_db.cc (ConnectedLoopFinder::doIt): Add code to get a basic
2551         order into the dependency list.  Add comment to explain why.
2553 2008-08-22  Brian Dessent  <brian@dessent.net>
2555         * KeysSetting.cc: Include string.h for memcpy et al.
2556         * filemanip.cc: Include stdlib.h for for mbstowcs.
2557         * io_stream_cygfile.h: Update cygmkdir_p prototype for mode_t.
2558         * mount.cc (conv_fstab_spaces): Silence gcc 4.3 warning ("parentheses
2559         around assignment used as truth value").
2561 2008-08-20  Corinna Vinschen  <corinna@vinschen.de>
2563         * install.cc (Installer::StandardDirs): Additionally create /var/log
2564         dir.  Set mode of /var/log and /var/run to 01777.
2565         * localdir.cc (LocalDirSetting::save): Create /var/log with 01777
2566         permissions before creating setup.log files.
2568 2008-08-20  Corinna Vinschen  <corinna@vinschen.de>
2570         * io_stream_cygfile.cc (io_stream_cygfile::set_mtime_and_mode):
2571         Accommodate SetPosixPerms being method of nt_sec.
2572         * mkdir.cc (mkdir_p): Ditto.
2573         * mklink2.cc (mkcygsymlink_nt): Ditto.
2574         * win32.cc: Slightly rearrange.
2575         (NTSecurity::SetPosixPerms): Make SetPosixPerms method of NTSecurity
2576         rather than stand-alone function.  Remove dynamic allocation for
2577         security descriptors in favor of static allocation.  Drop out
2578         preliminary if well-known SIDs are not initialized.  Slightly change
2579         and rearrange comments.  Add creating NULL SID ACE for special
2580         permissions.
2581         (NTSecurity::initialiseWellKnownSIDs): New function, replacing
2582         NTSecurity::initialiseEveryOneSID.  Initialize all well-known SIDs
2583         here.  Set wellKnownSIDsinitialized to true on success.
2584         (NTSecurity::setDefaultDACL): Don't call initialiseEveryOneSID.  Change
2585         comment.  Drop setting failed.  Don't open process token here.
2586         (NTSecurity::setBackupPrivileges): New function.
2587         (NTSecurity::setDefaultSecurity): Call initialiseWellKnownSIDs.
2588         Open process token here.  Disable setting primary group.  Add comment
2589         to explain why.
2590         * win32.h (SetPosixPerms): Move to NTSecurity.
2591         (class NTSecurity): Add SetPosixPerms method.  Make all SIDs private
2592         again.  Make NoteFailedAPI private.  Add setBackupPrivileges method.
2593         Rename usid to UsersSID.  Remove failed method and _failed member.
2594         Add wellKnownSIDsinitialized accessors and _wellKnownSIDsinitialized
2595         member.
2597 2008-08-19  Corinna Vinschen  <corinna@vinschen.de>
2599         * install.cc (struct std_dirs_t): New type.
2600         (class Installer): Change type of StandardDirs to std_dirs_t.
2601         (Installer::StandardDirs): Store filename and mode.
2602         (do_install_thread): Call io_stream::mkpath_p with name and mode from
2603         Installer::StandardDirs.
2604         * main.cc (main): Call setDefaultSecurity on global nt_sec.
2605         * IOStreamProvider.h (IOStreamProvider::mkdir_p): Add mode parameter.
2606         * LogFile.cc (LogFile::log_save): Call io_stream::mkpath_p with 0755
2607         mode.
2608         * UserSettings.cc (UserSettings::settingFileForSave): Ditto.
2609         * desktop.cc (make_link): Ditto.
2610         * download.cc (download_one): Ditto.
2611         * ini.cc (do_remote_ini): Ditto.
2612         (do_ini_thread): Ditto.
2613         * package_db.cc (packagedb::flush): Ditto.
2614         * archive.cc (archive::extract_file): Ditto.  Call set_mtime_and_mode
2615         with mode from archive.  Add code to handle directory permissions as
2616         well.
2617         * archive_tar.cc (archive_tar::get_mtime): Return time_t.  Reformat.
2618         (archive_tar::get_mode): New method.
2619         * archive_tar.h (class archive_tar_file): Fix prototypes.  Replace
2620         prototype for set_mtime with prototype for set_mtime_and_mode.
2621         (class archive_tar): Ditto.
2622         * archive_tar_file.cc (archive_tar_file::get_mtime): Return time_t.
2623         (archive_tar_file::get_mode): New method returning mode from tar header.
2624         * compress_bz.cc (compress_bz::set_mtime_and_mode): Replace set_mtime.
2625         (compress_bz::get_mtime): Return time_t.
2626         (compress_bz::get_mode): New function.
2627         * compress_gz.cc: Ditto.
2628         * compress_lzma.cc: Ditto.
2629         * io_stream.cc (io_stream::mkpath_p): Take additional file mode.
2630         Call mkdir_p with additional file mode.
2631         * io_stream_cygfile.cc (CygFileProvider::mkdir_p): Take additional file
2632         mode.
2633         (cygmkdir_p): Ditto.  Call mkdir_p with additional file mode.
2634         (io_stream_cygfile::set_mtime_and_mode): Replace set_mtime.  Call
2635         SetPosixPerms.
2636         * io_stream_file.cc (FileProvider::mkdir_p): Take additional file mode.
2637         (io_stream_file::set_mtime_and_mode): Replace set_mtime.
2638         * mkdir.cc (init_ntfuncs): New function to initialize function pointers
2639         from ntdll.dll.
2640         (mkdir_p): Take additional file mode.  On NT, use NT functions to create
2641         directory.  Call SetPosixPerms.
2642         * compress_bz.h: Change prototypes accordingly.
2643         * compress_gz.h: Ditto.
2644         * compress_lzma.h: Ditto.
2645         * io_stream.h: Ditto.
2646         * io_stream_cygfile.h: Ditto.
2647         * io_stream_file.h: Ditto.
2648         * io_stream_memory.h: Ditto.
2649         * mkdir.h: Ditto.
2650         * mklink2.cc (mkcygsymlink_nt): Open file with STANDARD_RIGHTS_ALL
2651         access and FILE_FLAG_BACKUP_SEMANTICS flag.  Call SetPosixPerms.
2652         * mount.cc (from_fstab): Open file with FILE_FLAG_BACKUP_SEMANTICS.
2653         * script.cc (OutputLog::OutputLog): Call io_stream::mkpath_p with 0755
2654         mode.  Open file with FILE_FLAG_BACKUP_SEMANTICS.
2655         * win32.cc (SetPosixPerms): New function to set POSIX-like permissions.
2656         (nt_sec): New global NTSecurity variable.
2657         (NTSecurity::setDefaultDACL): Open token with TOKEN_ADJUST_PRIVILEGES.
2658         (NTSecurity::setDefaultSecurity): Enable SE_BACKUP_NAME and
2659         SE_RESTORE_NAME privileges if available.
2660         * win32.h (SetPosixPerms): Add prototype.
2661         (class NTSecurity): Make everyOneSID and administratorsSID public.
2662         (nt_sec): Declare.
2664 2008-08-14  Corinna Vinschen  <corinna@vinschen.de>
2666         * mount.cc (unconvert_slashes): New inline function.
2667         (skip_ws): New inline function.
2668         (find_ws): New inline function.
2669         (conv_fstab_spaces): New inline function.
2670         (from_fstab_line): New function to read single line from fstab file.
2671         (from_fstab): New function to read /etc/fstab file and fill mount
2672         table.
2673         (read_mounts_nt): Call from_fstab after getting setup/rootdir from
2674         registry.  Only call add_usr_mnts if no fstab file found.
2676 2008-08-13  Corinna Vinschen  <corinna@vinschen.de>
2678         * install.cc (Installer::installOne): Skip 46 bytes type tar package
2679         silently.
2681 2008-08-13  Corinna Vinschen  <corinna@vinschen.de>
2683         * install.cc (Installer::installOne): Use MoveFileExW on NT.  Special
2684         case for bug in Windows 2000.
2685         * package_meta.cc (packagemeta::uninstall): Use wide char file functions
2686         on NT.
2687         * win32.h (VersionInfo::major): New method.
2688         (VersionInfo::minor): New method.
2689         (OSMajorVersion): Define.
2690         (OSMinorVersion): Define.
2692 2008-08-12  Corinna Vinschen  <corinna@vinschen.de>
2694         Revamp for Cygwin 1.7.
2695         * desktop.cc (make_cygwin_bat): Use wide char file functions on NT.
2696         (save_icon): Ditto.
2697         * filemanip.cc (tfx_chars): New char table for wide char transformation
2698         of reserved FS chars to UNICODE private use area.
2699         (transform_chars): New static function.
2700         (mklongpath): New function to convert multibyte path to wide char
2701         path with long path prefix.
2702         * filemanip.h (mklongpath): Declare.
2703         * ini.h (SETUP_INI_FILENAME): Use setup.ini filenames as defined in
2704         real life (setup-2.ini/setup.ini).
2705         (SETUP_BZ2_FILENAME): Ditto.
2706         * install.cc (do_install_thread): Don't create registry mount points
2707         on NT, rather create setup/rootdir entry.
2708         * io_stream_cygfile.cc: Throughout use wide char file functions on NT.
2709         (io_stream_cygfile::w_str): New method to create wide char path.
2710         * io_stream_cygfile.h (class io_stream_cygfile): Remove lmode member.
2711         Add wname member and w_str method.
2712         * io_stream_file.cc: Throughout use wide char file functions on NT.
2713         (io_stream_file::w_str): New method to create wide char path.
2714         * io_stream_file.h (class io_stream_file): Remove lmode member.
2715         Add wname member and w_str method.
2716         * mkdir.cc (mkdir_p): Use wide char file functions on NT.
2717         * mklink2.cc (mkcygsymlink_9x): Rename from mkcygsymlink.  Make static.
2718         (mkcygsymlink_nt): New static function.
2719         (mkcygsymlink): Just call mkcygsymlink_9x or mkcygsymlink_nt dependent
2720         on OS.
2721         * mount.cc (CYGWIN_INFO_CYGWIN_SETUP_REGISTRY_NAME): Define.
2722         (remove1): Move to earlier point in file to avoid declaration.
2723         (remove_mount): Ditto.  Make static.
2724         (create_install_root): New function to create setup/rootdir registry
2725         value on NT.
2726         (read_mounts_9x): Rename from read_mounts.  Make static.  Conditionalize
2727         for OS.
2728         (add_usr_mnts): New static function.
2729         (read_mounts_nt): Ditto, to read mounts on NT.
2730         (read_mounts): Just call read_mounts_nt or read_mounts_9x dependent on
2731         OS.
2732         (set_root_dir): On NT, call read_mounts.
2733         (cygpath): Only add slash for non-root mount to avoid multiple slashes
2734         in resulting path (invalid in long path names).
2735         * mount.h (find_mount): Drop declaration.
2736         (remove_mount): Ditto.
2737         (create_install_root): Add declaration.
2738         (read_mounts): Accommodate new parameter.
2739         * package_db.cc (chosen_db_task): New global variable.
2740         * package_db.h (chosen_db_task): Declare.
2741         * root.cc (check_if_enable_next): Don't use get_root_dir here to
2742         avoid having to call save_dialog in RootPage::OnMessageCmd.
2743         (GetDlgItemRect): New static inline function.
2744         (SetDlgItemRect): Ditto.
2745         (load_dialog): On NT, stretch "Install For" block to full dialog width
2746         and hide "Default Text File Type" block.
2747         (save_dialog): On NT set root_text always to IDC_ROOT_BINARY.
2748         (RootPage::OnMessageCmd): Remove call to save_dialog.
2749         (RootPage::OnNext): Initialize packagedb here the first time, to
2750         avoid fetching wrong data from different previous installation.
2751         * source.cc (save_dialog): Don't initialize packagedb here, rather
2752         just memorize setting in chosen_db_task for the deferred initialization
2753         in RootPage::OnNext.
2755 2008-08-07  Dave Korn  <dave.korn.cygwin@gmail.com>
2757         Implement command-line selection of packages to install and make
2758         unattended mode deal with any dialogs that might arise.  A joint
2759         effort synthesized from contributions by:
2761         Dr. Frank Lee  <rl201@cam.ac.uk>
2762         Bryan Thrall  <bryan.thrall@flightsafety.com>
2763         Kohsuke Kawaguchi  <kk@kohsuke.org>
2764         Dave Korn  <dave.korn.cygwin@gmail.com>
2766         * install.cc (rebootneeded):  Don't define statically here.
2767         (do_install_thread):  Let exit_msg reflect rebootneeded.
2768         * main.cc (main):  If rebootneeded, log it when exiting.
2769         * msg.cc (mbox):  In unattended_mode, choose and log default answer.
2770         * package_db.cc (packagedb::fillMissingCategory):  Iterate over all
2771         packages adding those selected by packagemeta::isManuallyWanted to
2772         base category so that command-line selections are installed.
2773         * package_meta.cc (PackageOption):  Add new StringOption to allow
2774         command-line selection of packages to add to base install.
2775         (packagemeta::isManuallyWanted):  New function tests if package was
2776         selected on command-line.
2777         (packagemeta::addToCategoryBase):  New function adds package to
2778         "base" category.
2779         * state.cc (rebootneeded):  Define here non-static.
2780         * state.h (rebootneeded):  Declare here with extern linkage.
2781         * threebar.cc (ThreeBarProgressPage::MaximizeDialog):  Don't change
2782         size when running in unattended mode.
2784 2008-08-05  Christopher Faylor  <me+cygwin@cgf.cx>
2786         * UserSettings.cc (UserSettings::settingFileForLoad): Look locally for
2787         settings before looking outside of current directory.
2788         * choose.cc (ChooserPage::ChooserPage): Record the property sheet's
2789         current show state via new passed in parameter.
2790         * choose.h (ChooserPage::ChooserPage): Reflect change in argument list.
2791         (ChooserPage::nCmdShow): Define new element.
2792         * main.cc (main): Send current show state to Chooser.
2793         * package_version.cc (packageversion::set_requirements): Increase
2794         recursion check from 5 to 30.
2795         * propsheet.cc (PropSheetWndProc): Register hwndDlg with
2796         ThreeBarProgressPage.
2797         * threebar.cc (ControlAdjuster::ControlInfo): Initialize cmd_show_set.
2798         (ThreeBarProgressPage::MaximizeDialog): New function.
2799         (ThreeBarProgressPage::OnMessageApp): Call MaximizeDialog to maximize
2800         package selection screen and restore when done.
2801         * threebar.h (ThreeBarProgressPage::MaximizeDialog): Declare function.
2802         (ThreeBarProgressPage::cmd_show_set): Declare variable.
2803         (ThreeBarProgressPage::cmd_show): Declare variable.
2804         (ThreeBarProgressPage::ins_dialog): Declare variable.
2805         (ThreeBarProgressPage::SetHwndDialog): Define function.
2807 2008-07-22  Charles Wilson  <cygwin@cwilson.fastmail.fm>
2809         Add support for .tar.lzma files (decompress only).
2811         * Makefile.am: Add new files.
2812         * compress.cc (compress::decompress): add support
2813         for compress_lzma.
2814         * compress_lzma.h: new file.
2815         * compress_lzma.cc: new file.
2816         * filemanip.cc (find_tar_ext): add support for
2817         .tar.lzma files.
2818         * install.cc (Installer::installOne): update comments.
2819         * lzma-sdk/LzmaDec.h: new file.
2820         * lzma-sdk/LzmaDec.c: new file.
2821         * lzma-sdk/Types.h: new file.
2823 2008-07-08  Charles Wilson  <cygwin@cwilson.fastmail.fm>
2825         * compress.cc (compress::decompress): clean up concrete
2826         decompressor objects on failure -- but in that case, do
2827         NOT destroy original io_stream.
2828         * compress_bz.h (compress_bz::release_original): new method.
2829         (owns_original): new member variable.
2830         * compress_bz.cc (compress_bz::release_original): new method.
2831         (compress_bz::compress_bz): take ownership of parent by default.
2832         (compress_bz::~compress_bz): only delete original if
2833         owns_original is true.
2834         * compress_gz.h (compress_gz::release_original): new method.
2835         (owns_original): new member variable.
2836         * compress_gz.cc (compress_gz::release_original): new method.
2837         (compress_gz::construct): take ownership of parent by default.
2838         (compress_gz::~compress_gz): only delete original if
2839         owns_original is true.
2841 2008-06-25  Dave Korn  <dave.korn.cygwin@gmail.com>
2843         * configure.in, gpg-error-config-fake:  Revert previous removal.
2845 2008-06-25  Dave Korn  <dave.korn.cygwin@gmail.com>
2847         * net.cc:  Correct stray CRLF.
2849 2008-06-25  Dave Korn  <dave.korn.cygwin@gmail.com>
2851         * configure.in (ac_cv_path_GPG_ERROR_CONFIG):  Remove nasty hack.
2852         * gpg-error-config-fake:  Delete file obsoleted by de-hackification.
2854 2008-06-24  Christopher Faylor  <me+cygwin@cgf.cx>
2856         * configure.in: Disable shared library builds.
2858 2008-06-24  Christopher Faylor  <me+cygwin@cgf.cx>
2860         * Makefile.am: Make and install libraries into common location and use
2861         them from there.
2862         * configure.in: Find gpg-error-config in the libgpg-error/src
2863         subdirectory rather than using the host system's version.  Set the
2864         prefix and exec_prefix to a common location for the subdirs so that
2865         useful files will be installed in a common location.
2867 2008-06-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2869         Merged across diffs between setup_crypto_branch_branchpoint and
2870         setup_crypto_branch_mergepoint2 from setup_crypto_branch.
2872         * crypto.cc, crypto.h, gpg-packet.cc, gpg-packet.h, KeysSetting.cc,
2873         KeysSetting.h, gpg-error-config-fake, cygwin.pub, cyg-pubkey.h,
2874         gpg-key-to-s-expr.sh: New files.
2875         * ini.cc, ini.h, resource.h, res.rc, netio.cc, Makefile.am,
2876         configure.ac, libgetopt++/src/OptionSet.cc: Modified files.
2878 2008-06-21  Dave Korn  <dave.korn.cygwin@gmail.com>
2880         * ini.cc (do_remote_ini):  Revert misbegotten removal of
2881         not-always-superfluous-after-all added slash in URLs.
2883 2008-06-18  Dave Korn  <dave.korn.cygwin@gmail.com>
2885         * gpg-packet.h (GPG_KEY_SEXPR_BUF_SIZE):  Move from here ...
2886         * crypto.h (GPG_KEY_SEXPR_BUF_SIZE):  ... to here.
2887         (GPG_KEY_MAX_COEFF_SIZE):  Add related definition.
2889 2008-06-18  Dave Korn  <dave.korn.cygwin@gmail.com>
2891         * gpg-packet.cc (walk_packets_1):  Check packet length field is
2892         valid sane and possible to avoid malicious manipulation.
2893         * ChangeLog:  Corrected date on previous commit.
2895 2008-06-18  Dave Korn  <dave.korn.cygwin@gmail.com>
2897         * crypto.cc (add_key_from_sexpr):  Use real buffer size, not debug
2898         constant size.
2900 2008-06-16  Dave Korn  <dave.korn.cygwin@gmail.com>
2902         * crypto.cc (verify_ini_file_sig):  Actually set init-once flag!
2904 2008-06-16  Dave Korn  <dave.korn.cygwin@gmail.com>
2906         * crypto.cc (KeepUntrustedKeysOption):  Fix helpstring punctuation.
2908 2008-06-16  Dave Korn  <dave.korn.cygwin@gmail.com>
2910         * crypto.cc (verify_ini_file_sig):  Fix two minor logic errors.
2912 2008-06-16  Dave Korn  <dave.korn.cygwin@gmail.com>
2914         * ini.h (current_ini_sig_name):  Declare extern.
2915         * ini.cc (current_ini_sig_name):  New variable.
2916         (NoVerifyOption):  New boolean option.
2917         (do_remote_ini):  If sig verification not disabled, attempt to
2918         download the matching sig file for any setup.bz2 or setup.ini
2919         and use it to verify or discard the download.
2921 2008-06-16  Dave Korn  <dave.korn.cygwin@gmail.com>
2923         * resource.h (IDS_SIG_INVALID, IDS_CRYPTO_ERROR):  Reserve IDs for
2924         two new message strings.
2925         * res.rc (IDS_SIG_INVALID, IDS_CRYPTO_ERROR):  Define the text.
2927 2008-06-16  Dave Korn  <dave.korn.cygwin@gmail.com>
2929         * Makefile.am (setup_SOURCES):  Add new files crypto.cc, crypto.h,
2930         cyg-pubkey.h, gpg-packet.cc, gpg-packet.h. KeysSetting.cc and
2931         KeysSetting.h to the build.
2932         * crypto.cc, crypto.h, gpg-packet.cc, gpg-packet.h, KeysSetting.cc,
2933         KeysSetting.h:  New files.  Adds gpg sig verification support.
2935 2008-06-16  Dave Korn  <dave.korn.cygwin@gmail.com>
2937         * Makefile.am (DIST_SUBDIRS, SUBDIRS):  Add libgpg-error and
2938         libgcrypt subdirs.
2939         (AM_CPPFLAGS):  Add -I paths to generated headers in both and to
2940          shipped headers in libgcrypt.
2941         (setup_LDADD):  Add libgpg-error.a and libgcrypt.a to final link.
2943         * configure.in (ac_cv_path_GPG_ERROR_CONFIG):  Preload into cache
2944         to fake out libgcrypt configure process.
2945         (AC_CONFIG_SUBDIRS):  Add libgpg-error/ and libgcrypt/
2947         * gpg-error-config-fake:  New shell script to redirect libgcrypt
2948         sub-configure into looking for newly-built libgpg-error.
2950 2008-06-16  Dave Korn  <dave.korn.cygwin@gmail.com>
2952         * setup/libgpg-error/:  Fresh import of upstream sources of
2953         libgpg-error-1.6.tar.bz2 from http://www.gnupg.org/
2954         * setup/libgcrypt/:  Fresh import of upstream sources of
2955         libgcrypt-1.4.1.tar.bz2 from http://www.gnupg.org/
2957 2008-06-16  Dave Korn  <dave.korn.cygwin@gmail.com>
2959         * netio.cc (NetIO::set_url):  Avoid double-free bug on delete
2960         by setting path to a strdup of url rather than using the same
2961         pointer value twice.
2963 2008-06-16  Dave Korn  <dave.korn.cygwin@gmail.com>
2965         * cygwin.pub:  Add reference copy of Cygwin setup signing key.
2966         * gpg-key-to-s-expr.sh:  New bash script.  Outputs textual
2967         representation of public key in s-expr format.
2968         * cyg-pubkey.h:  New header generated by the above from Cygwin
2969         setup signing key.  Currently needs manual regeneration if key
2970         ever updated.
2972 2008-04-16  Brian Dessent  <brian@dessent.net>
2974         * mount.cc: Include malloc.h.
2975         (is_admin): Use alloca instead of a VLA in case
2976         GetTokenInformation is sensitive to alignment.
2978 2008-04-15  Brian Dessent  <brian@dessent.net>
2980         * mount.cc (is_admin): Get explicit size of required buffer by
2981         calling GetTokenInformation first with NULL.
2982         
2983 2008-04-10  Brian Dessent  <brian@dessent.net>
2985         * Makefile.am (setup_LDFLAGS): Make sure static libbz2 and zlib
2986         are used.
2988 2008-04-09  Brian Dessent  <brian@dessent.net>
2990         * README: flex and bison are required when building from CVS.
2992 2008-04-08  Brian Dessent  <brian@dessent.net>
2994         * Makefile.am (snapshot): Provide default value of ${cygwinsite}
2995         if not set.
2997 2008-04-08  Brian Dessent  <brian@dessent.net>
2999         * Makefile.am (release): Use -f so that "make release" works
3000         when existing binaries of the same name exist.
3001         
3002 2008-04-08  Brian Dessent  <brian@dessent.net>
3004         * res.rc (IDD_SPLASH): Update copyright years on splash page.
3006 2008-04-08  Brian Dessent  <brian@dessent.net>
3008         * CHANGES: Update.
3009         * install.cc (Installer::installOne): Cope with compressed
3010         0-byte dummy packages.  Fix progress bar update bug introduced
3011         in earlier refactoring.
3013 2008-04-08  Brian Dessent  <brian@dessent.net>
3015         * CHANGES: Update.
3017 2008-04-08  Brian Dessent  <brian@dessent.net>
3019         Various warning/header cleanups necessary for clean gcc 4.3 build.
3020         * ConnectionSetting.cc: Include stdlib.h.
3021         * LogFile.cc: Ditto.
3022         * Makefile.am: Don't hardcode paths to MinGW libz and libbz2.
3023         * PickView.cc: Include limits.h.
3024         * String++.cc: Include string.h.
3025         * archive_tar.cc (archive_tar::next_file_name): Silence nested-if
3026         warning.
3027         * autoload.c: Switch back to .text section before emiting
3028         autoload_common.
3029         * choose.cc: Include stdlib.h and algorithm.
3030         * compress_gz.cc: Include memory.h and malloc.h.
3031         * filemanip.cc: Include string.h.
3032         (parse_filename): Silence nested-if warning.
3033         * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Silence warning.
3034         * package_db.cc: Include algorithm.
3035         * site.cc (get_site_list): Silence warning.
3036         * win32.cc: Include memory.
3037         * csu_util/MD5Sum.cc: Include string.h.
3038         
3039 2008-03-02  Dave Korn  <dave.korn@artimi.com>
3041         * install.cc (Installer::installOne):  Accept new HWND argument
3042         from caller and pass it to MessageBox calls so that MB_TASKMODAL
3043         can work.
3044         (check_for_old_cygwin):  Likewise.
3045         (do_install_thread):  Pass owner's HWND (from thread context) when
3046         calling them.
3048 2008-02-23  Dave Korn  <dave.korn@artimi.com>
3050         * cygpackage.cc (cygpackage::getfirstfile):  Guard against trying to
3051         construct std::string from NULL returned by io_stream::gets when the
3052         stream decompressor fails on a corrupt *.lst.gz file.
3054 2008-02-21  Dave Korn  <dave.korn@artimi.com>
3056         * geturl.cc (progress):  Correct SI unit notation.
3058 2008-02-01  Vincent Privat <vincent.privat@gmail.com>
3060         * net.cc (OnInit): New StringOption (ProxyOption)
3061         This new option (-p) allows to call setup.exe with a proxy
3062         in its command-line arguments.
3064 2007-07-31  Brian Dessent  <brian@dessent.net>
3066         * ini.cc (do_remote_ini): Fix crash due to double free of ini_file.
3068 2007-07-30  Brian Dessent  <brian@dessent.net>
3070         * CHANGES: Update.
3071         * configure.in (AM_INIT_AUTOMAKE): Enable more automake warnings.
3072         * Makefile.am (INCLUDES): Use AM_CPPFLAGS instead.
3073         (CLEANFILES): Add.  Minor portability tweaks.
3074         * tests/Makefile.am (INCLUDES): Use AM_CPPFLAGS instead.
3075         * archive.cc (archive::extract): Try to be more compatible when
3076         opening tar files.
3077         * compress_bz.cc: Fix whitespace throughout.
3078         (compress_bz::~compress_bz): Ensure that underlying io_stream's dtor is
3079         also run.
3080         * install.cc (Installer::installOne): Refactor.
3081         * package_db.cc (ConnectedLoopFinder::doIt): Move some log spewage into
3082         setup.log.full from setup.log.
3083         (packagedb::connectedBegin): Ditto. Consolidate log output to one line.
3085 2007-07-02  Brian Dessent  <brian@dessent.net>
3087         * CHANGES: Update.
3089 2007-06-26  Brian Dessent  <brian@dessent.net>
3091         * Makefile.am (release): Drop inconsistent use of $(EXEEXT).  Leave an
3092         untouched copy of setup.exe so that later make invocations don't
3093         unnecessarily rebuild it.
3094         (snapshot): Fix typo.
3095         * install.cc (md5_one): Don't try to check packages whose
3096         pkgsource.Cached () is NULL, as with those whose download failed.
3098 2007-06-26  Brian Dessent  <brian@dessent.net>
3100         * CHANGES: Update to reflect release branch.
3102 2007-06-26  Brian Dessent  <brian@dessent.net>
3104         * CHANGES: Make current.
3106 2007-05-30  Brian Dessent  <brian@dessent.net>
3108         * find.h (class Find): Make _start_dir non-const.
3109         * find.cc (Find::Find): Append a trailing slash to _start_dir only if
3110         it does not already contain one.
3111         (Find::accept): Use the previously stored value of _start_dir rather
3112         than unconditionally appending a slash.
3114 2007-05-29  Brian Dessent  <brian@dessent.net>
3116         * Makefile.am: No need to specify the default value of --preprocessor
3117         to windres.  Rework the automatic version extraction rules so that the
3118         source tarball is generated with the proper name and directory instead
3119         of setup-0.  Update snapshot rule to also upload a copy of the binary
3120         with debugging symbols still present.
3122 2007-05-29  Brian Dessent  <brian@dessent.net>
3124         This is a general tidying up/modernization of the build infrastructure.
3125         Renaming the lexer and parser to .ll and .yy allows using automake's
3126         builtin support for flex and bison with C++ sources, and libinilex is a
3127         slightly cleaner way of omitting -Werror.
3129         * Makefile.am (AUTOMAKE_OPTIONS): Move to AM_INIT_AUTOMAKE.
3130         (AM_YFLAGS): Define.
3131         (AM_LFLAGS): Define.
3132         (INCLUDES): Remove redundant mingw directory.
3133         (EXTRA_DIST): Adjust for newly named lexer/parser.
3134         (BUILT_SOURCES): Ditto.
3135         (inilint_LDADD): Ditto.
3136         (inilint_SOURCES): Ditto.
3137         (setup_LDADD): Ditto.
3138         (setup_SOURCES): Ditto.
3139         (iniparse.cc): Remove custom rules.
3140         (inilex.cc): Ditto.
3141         * configure.in: Update quoting and use modern form of AC_INIT and
3142         AM_INIT_AUTOMAKE.
3143         * inilex.l: Rename from this ...
3144         * inilex.ll: ... to this.
3145         * iniparse.y: Rename from this ...
3146         * iniparse.yy: ... to this.
3148 2007-05-29  Brian Dessent  <brian@dessent.net>
3150         * IniParseFindVisitor.cc (IniParseFindVisitor::IniParseFindVisitor):
3151         Remove error_buf and error_count initializers.
3152         (IniParseFindVisitor::visitFile): Store filename in current_ini_name.
3153         Use yyerror_count and yyerror_messages in place of removed error_count
3154         and error_buf members.
3155         * IniParseFindVisitor.h (class IniParseFindVisitor): Remove error_buf
3156         and error_count members.
3157         * ini.cc: Include io_stream_memory.h.  Remove file static variables
3158         error_buf, error_count, and ini_filename.
3159         (GuiParseFeedback::progress): Remove some verbose log spam.
3160         (do_remote_ini): Recode .ini-fetching logic to properly display parse
3161         errors, and to account for corrupt bzip2 files.
3162         (yyerror): Moved elsewhere.
3163         (fprintf): Delete unused function.
3164         * ini.h: Remove useless __cplusplus guard.  Declare extern variables
3165         current_ini_name, yyerror_messages, and yyerror_count.
3166         * inilex.l: Add current_ini_name, yyerror_messages, and
3167         yyerror_count.
3168         (ini_init): Initialize new variables.
3169         (yybol): Delete.
3170         (yyerror): Reimplement using std::string and relocate from ini.cc.
3171         * io_stream.cc (io_stream::copy): Add clarifying comment.
3173 2007-05-04  Igor Peshansky  <pechtcha@cs.nyu.edu>
3175         * resource.h (IDC_STATIC_HEADER): New control id.
3176         * res.rc (IDD_SPLASH): Adjust the copyright.
3177         (IDD_DESKTOP): Make header text accessible as a separate control.
3178         * desktop.cc (set_status): Use eset() instead of SetWindowText().
3179         (load_dialog): Disable checkboxes and change dialog text in
3180         download-only mode.
3181         (DesktopSetupPage::OnInit): Disable checkboxes in download-only
3182         mode.
3183         * threebar.cc (ThreeBarProgressPage::OnMessageApp): Deprecate the
3184         default fallthrough.
3185         * download.cc (do_download_thread): Explicitly return the next
3186         dialog.
3188 2007-04-19  Max Bowsher  <maxb1@ukf.net>
3190         * configure.in: Turn inilint default build off again, since I cannot
3191         get it to work.
3193 2007-04-19  Max Bowsher  <maxb1@ukf.net>
3195         * configure.in: Make inilint built by default.
3197 2007-04-19  Max Bowsher  <maxb1@ukf.net>
3199         * inilintmain.cc: Fix multiple compile errors.
3201 2007-04-19  Max Bowsher  <maxb1@ukf.net>
3203         * Makefile.am: Make inilint use same warnonly-inilex workaround that
3204         setup already does.
3206 2007-03-29  Igor Peshansky  <pechtcha@cs.nyu.edu>
3208         * LogFile.cc (LogFile::exit): Write exit_msg directly to log, without
3209         the message box.
3210         * resource.h (IDC_DESKTOP_SEPARATOR,IDC_STATUS_HEADER,IDC_STATUS): New
3211         control ids.
3212         * res.rc (IDD_DESKTOP): Change the caption.  Add status information.
3213         * desktop.h (DesktopSetupPage::DesktopSetupPage): Define constructor
3214         in the implementation.
3215         * desktop.cc (DesktopControlsInfo): Position specifiers for status
3216         information items.
3217         (DesktopSetupPage::DesktopSetupPage): Register position specifiers.
3218         (set_status): New static method.
3219         (load_dialog): Set status information, if available.
3220         (DesktopSetupPage::OnInit): Set status header font.
3222 2007-03-01  Brian Dessent  <brian@dessent.net>
3224         * ini.h (SETUP_INI_FILENAME): Rename setup_9x.ini to setup_legacy.ini.
3225         (SETUP_BZ2_FILENAME): Likewise.
3227 2007-02-27  Brian Dessent  <brian@dessent.net>
3229         * ini.h (SETUP_INI_FILENAME): Add define.
3230         (SETUP_BZ2_FILENAME): Add define.
3231         * IniParseFindVisitor.cc (IniParseFindVisitor::visitFile): Use
3232         above macros to parameterize setup.ini filename.
3233         * fromcwd.cc (SetupFindVisitor::visitFile): Ditto.
3234         * ini.cc (do_remote_ini): Ditto.
3235         * Makefile.am (setup_SOURCES): Add win32.cc.
3236         * autoload.c: Include windows.h directly instead of win32.h so that
3237         win32.h can contain C++.
3238         * desktop.cc (verinfo): Delete.
3239         (make_link): Use IsWindowsNT to check for NT instead of verinfo.
3240         (DesktopSetupPage::OnInit): Likewise.
3241         * mount.cc (is_admin): Likewise.
3242         * script.cc (init_run_script): Likewise.
3243         * main.cc (class SIDWrapper, SIDWrapper::SIDWrapper,
3244         SIDWrapper::~SIDWrapper, SIDWrapper::theSID, class HANDLEWrapper,
3245         HANDLEWrapper::HANDLEWrapper, HANDLEWrapper::~HANDLEWrapper,
3246         HANDLEWrapper::theHANDLE, class TokenGroupCollection,
3247         TokenGroupCollection::TokenGroupCollection,
3248         TokenGroupCollection::~TokenGroupCollection,
3249         TokenGroupCollection::populate, TokenGroupCollection::find,
3250         class NTSecurity, set_default_sec, NTSecurity::NoteFailedAPI,
3251         NTSecurity::NTSecurity, NTSecurity::failed,
3252         NTSecurity::initialiseEveryOneSID, NTSecurity::setDefaultDACL,
3253         NTSecurity::setDefaultSecurity): Remove implementation of these
3254         classes from this file and into new file win32.cc and existing win32.h.
3255         (main): Fix whitespace and formatting per GNU coding standards.
3256         * res.rc (IDS_SETUPINI_MISSING): Parameterize filename with %s.
3257         * win32.cc: New file containing methods removed from main.cc as well
3258         as new class VersionInfo methods.
3259         * win32.h: Include <string> for std::string.
3260         (class SIDWrapper, class HANDLEWrapper, class TokenGroupCollection,
3261         class NTSecurity): Add classes removed from main.cc.
3262         (class VersionInfo): Add new class.
3263         (GetVer): Declare.
3264         (IsWindowsNT): Define.
3266 2007-02-20  Brian Dessent  <brian@dessent.net>
3268         * README: Modernize list of required packages, and mention doconfigure.
3270 2007-02-17  Cesar Strauss  <cstrauss@cea.inpe.br>
3272         * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackageSource):
3273         Initialize the version and operator fields of the newly created
3274         PackageSpecification object, so setup can pick the correct source
3275         version later on.
3277 2007-02-17  Brian Dessent  <brian@dessent.net>
3279         * script.cc (Script::run): Check for existance of script file and
3280         return without doing anything if it does not exist.
3282 2006-12-26  Max Bowsher  <maxb1@ukf.net>
3284         * IniDBBuilder.h (IniDBBuilder): Make this class abstract.
3285         * IniDBBuilder.cc: Delete file.
3286         * Makefile.am (inilint_SOURCES, setup_SOURCES): Remove IniDBBuilder.cc.
3288 2006-12-26  Max Bowsher  <maxb1@ukf.net>
3290         Add a shell script that documents/centralizes the standard configure
3291         command line.
3293         * doconfigure: New file.
3294         * Makefile.am (EXTRA_DIST): Add doconfigure.
3296 2006-11-28  Igor Peshansky  <pechtcha@cs.nyu.edu>
3298         * install.cc (Installer::installOne): If file is in use, ask the user
3299         to stop processes and retry.
3300         (MB_RETRYCONTINUE, IDCONTINUE): New macros.
3301         (hMsgBoxHook): New static field.
3302         (CBTProc): New window hook function.
3303         (_custom_MessageBox): New function.
3304         * CHANGES: Update with the above.
3306 2006-10-12  Igor Peshansky  <pechtcha@cs.nyu.edu>
3308         * desktop.cc (make_cygwin_bat,save_icon): Capitalize filename.
3310 2006-08-06  Igor Peshansky  <pechtcha@cs.nyu.edu>
3312         * package_version.cc (packageversion::scan): Catch and handle
3313         validation exception.
3315 2006-08-06  Igor Peshansky  <pechtcha@cs.nyu.edu>
3317         * cygpackage.h (filesize): Remove unused field.
3318         (cygpackage::createInstance): Ditto.
3319         * cygpackage.cc (cygpackage::createInstance): Ditto.
3320         * package_db.cc (packagedb::packagedb): Remove unused variables.
3321         Simplify parsing of installed.db.
3323 2006-08-06  Igor Peshansky  <pechtcha@cs.nyu.edu>
3325         * desktop.cc (DesktopSetupPage::OnInit): Remove stray MessageBox.
3327 2006-05-24  Igor Peshansky  <pechtcha@cs.nyu.edu>
3329         * PickPackageLine.h (PickPackageLine::DrawIcon): Move to PickView.
3330         * PickView.h (PickView::DrawIcon): Move from PickPackageLine.
3331         (PickView::icon_dc,PickView::bm_icon): New instance field.
3332         (PickView::rect_icon,PickView::bg_fg_brush): Ditto.
3333         * PickCategoryLine.cc (PickCategoryLine::paint): Use
3334         PickView::DrawIcon() instead of BitBlt().
3335         * PickPackageLine.cc (PickPackageLine::DrawIcon): Move to PickView.
3336         (PickPackageLine::paint): Use PickView::DrawIcon().
3337         * PickView.cc (PickView::~PickView): Delete GDI objects.
3338         (PickView::init): Create icon drawing context.
3339         (PickView::DrawIcon): New function.  Use system default colors to
3340         draw bitmaps.
3341         (PickView::paint): Set background color instead of using transparent
3342         mode.  Create system-colored brush.
3344 2006-04-25  Brian Dessent  <brian@dessent.net>
3346         * COPYING: New file (GPL).
3347         * Makfile.am (EXTRA_DIST): Add COPYING.
3349 2006-04-17  Max Bowsher  <maxb1@ukf.net>
3351         * String++.cc, String++.h: Finally, it's time for the long-awaited
3352         departure of 'class String' from this world. setup.exe can now
3353         happily claim to follow the sane path of using just one general
3354         purpose string class throughout :-)
3355         
3356 2006-04-17  Max Bowsher  <maxb1@ukf.net>
3358         * cygpackage.cc, cygpackage.h, package_version.cc, package_version.h:
3359         Do some String to std::string migration.
3361 2006-04-17  Max Bowsher  <maxb1@ukf.net>
3363         * package_meta.cc, package_meta.h, package_source.cc,
3364         package_source.h: Do some String to std::string migration.
3365         * package_db.cc: Small tweak to assist with the above.
3367 2006-04-17  Max Bowsher  <maxb1@ukf.net>
3369         * PickView.cc, PickView.h, package_db.cc, package_db.h:
3370         Do some String to std::string migration.
3371         * package_meta.h: Change a couple of types to assist with the above.
3373 2006-04-17  Max Bowsher  <maxb1@ukf.net>
3375         * IniDBBuilder.cc, IniDBBuilder.h, IniDBBuilderPackage.cc,
3376         IniDBBuilderPackage.h, PickLine.h, PickPackageLine.cc:
3377         Do some String to std::string migration.
3379 2006-04-16  Max Bowsher  <maxb1@ukf.net>
3381         * FindVisitor.cc, FindVisitor.h, IniParseFindVisitor.cc,
3382         IniParseFindVisitor.h, ScanFindVisitor.cc, ScanFindVisitor.h, find.cc,
3383         find.h, fromcwd.cc, ini.cc, ini.h, iniparse.y, postinstall.cc:
3384         Do some String to std::string migration.
3386 2006-04-16  Max Bowsher  <maxb1@ukf.net>
3388         * IOStreamProvider.h, archive.cc, archive.h, archive_tar.cc,
3389         archive_tar.h, io_stream.cc, io_stream.h, io_stream_cygfile.cc,
3390         io_stream_cygfile.h, io_stream_file.cc, io_stream_file.h:
3391         Do some String to std::string migration.
3393 2006-04-16  Max Bowsher  <maxb1@ukf.net>
3395         * desktop.cc, download.cc, install.cc, mount.cc, mount.h, script.cc,
3396         script.h: Do some String to std::string migration.
3398 2006-04-16  Max Bowsher  <maxb1@ukf.net>
3400         * category.cc: Remove source file that contained no code!
3401         * category.h: Delete, moving the single useful line to...
3402         * package_meta.h: ...here. Remove category.h include.
3403         * choose.cc, package_db.h, package_meta.cc: Remove category.h include.
3404         * Makefile.am: Remove references to removed files.
3406 2006-04-15  Max Bowsher  <maxb1@ukf.net>
3408         * ConnectionSetting.cc, ConnectionSetting.h, Exception.cc,
3409         Exception.h, IniParseFeedback.cc, IniParseFeedback.h, LogFile.cc,
3410         LogFile.h, LogSingleton.h, PackageSpecification.cc,
3411         PackageSpecification.h, SourceSetting.cc, SourceSetting.h,
3412         UserSettings.cc, UserSettings.h, dialog.cc, dialog.h, diskfull.cc,
3413         diskfull.h, filemanip.cc, filemanip.h, inilintmain.cc, localdir.cc,
3414         main.cc, nio-file.cc, nio-http.cc, prereq.cc, prereq.h, proppage.cc,
3415         proppage.h, site.cc, site.h, splash.cc, state.cc, state.h, window.cc,
3416         window.h: Do some String to std::string migration.
3418 2006-04-15  Max Bowsher  <maxb1@ukf.net>
3420         * String++.cc, String++.h
3421         (new_cstr_char_array, format_1000s): Migrate String to std::string.
3422         (casecompare_lt_op, std::string operator+): New.
3424 2006-04-06  Max Bowsher  <maxb1@ukf.net>
3426         * String++.h, String++.cc
3427         (String::replace): Remove - usused.
3428         (String::find): Remove - semantics do not match std::string.
3430         * root.cc (directory_is_rootdir): Switch to std::string.find().
3431         * script.cc (Script::baseName): Rewrite use of String.find().
3433 2006-03-30  Max Bowsher  <maxb1@ukf.net>
3435         * String++.cc (replace): New function to take the place of one form
3436         of String::replace method.
3437         * String++.h (replace): Declare.
3438         (String::replace): Make private.
3440         * desktop.cc (make_cygwin_bat): Use new function.
3441         * filemanip.cc (backslash): Use simple loop in place of
3442         String::replace.
3443         * filemanip.h (backslash): Change signature to use std::string in
3444         place of String.
3446 2006-03-30  Max Bowsher  <maxb1@ukf.net>
3448         * String++.cc, String++.h (casecompare): New function replacing
3449         String.casecompare to increase parity with std::string.
3450         (String::casecompare): Make private.
3452         * ConnectionSetting.cc, IniDBBuilderPackage.cc,
3453         IniParseFindVisitor.cc, LogFile.cc, PackageSpecification.cc,
3454         PickView.cc, SourceSetting.cc, String++.cc, String++.h, fromcwd.cc,
3455         io_stream.cc, mount.cc, package_db.cc, package_source.h,
3456         package_version.cc, prereq.h, script.cc:
3457         Use casecompare in place of String::casecompare.
3459 2006-03-30  Max Bowsher  <maxb1@ukf.net>
3461         * String++.cc, String++.h: Remove String(int) constructor, which
3462         was causing dangerously bizarre implicit conversions, and was a point
3463         of disparity between String and std::string.
3464         (stringify): New function to replace functionality removed above.
3466         * PickView.cc (PickView::init_headers),
3467         archive_tar.cc (archive_tar::next_file_name),
3468         cygpackage.cc (cygpackage::setCanonicalVersion):
3469         Make explicit and call out with a FIXME some bizarre behaviour.
3470         
3471         * ScanFindVisitor.cc (ScanFindVisitor::visitFile),
3472         filemanip.cc (base), iniparse.y,
3473         threebar.cc (ThreeBarProgressPage::SetBar2):
3474         Make simple adaptations to the changed API.
3476 2006-03-14  Igor Peshansky  <pechtcha@cs.nyu.edu>
3478         * PickView.cc (PickView::setViewMode): Auto-expand category if
3479         its name starts with a dot.
3481 2006-03-14  Dave Korn  <dave.korn@artimi.com>
3483         * String++.cc (new_cstr_char_array):  Handle null input correctly.
3485 2006-03-10  Christopher Faylor  <cgf@timesys.com>
3487         * res.rc: Update copyright.
3488         (IDS_MIRROR_LST): Use cygwin.com for mirror list, not
3489         sources.redhat.com.
3490         * site.cc (NOSAVE1): Use preferred name of sourceware site.
3491         (NOSAVE2): sourceware.cygnus.com -> sources.redhat.com.
3492         (NOSAVE1_LEN): Use just-defined name to determine length.
3493         (NOSAVE2_LEN): Ditto.
3494         (NOSAVE3_LEN): Ditto.
3496 2006-03-10  Bas van Gompel  <patch-cygsup.buzz@bavag.tmfweb.nl>
3498         * res.rc (IDD_DROPPED): New dialog.
3499         * resource.h (IDD_DROPPED): New dialog-id.
3500         (IDC_DROP_MIRRORS, IDC_DROP_NOWARN): New control-ids.
3501         * site.cc: Add enum for response on dropped mirrors.
3502         (cache_is_usable, cache_needs_writing): New bools.
3503         (cache_warn_urls): New string.
3504         (cached_site-list, dropped_site_list): New SiteLists.
3505         (site_list_type::init, site_list_type::site_list_type): Change to four
3506         parameter form.
3507         (site_list_type::site_list_type, site_list_type::operator=) Copy
3508         servername, area and location.
3509         (load_site_list): New function, broken out of get_site_list.  Support
3510         four-parameter site_list_type.
3511         (get_site_list): Break out load_site_list.  Move reading cache earlier.
3512         Don't write new cache.  Set flags to record cache state.  Load both
3513         all_site_list and cached_site_list.
3514         (SiteSetting::registerSavedSite): Use four-parameter site_list_type.
3515         (drop_proc, check_dropped_mirrors, write_cache_list, save_cache_file):
3516         New functions.
3517         (SitePage::OnNext): Check for dropped mirrors and save cache as
3518         appropriate.
3519         (SitePage::OnMessageCmd): Use four-parameter site_list_type.
3520         * site.h
3521         (site_list_type::init, site_list_type::site_list_type): Change to four
3522         parameter form.
3523         (site_list_type): Add servername, area and location members.
3525 2006-03-09  Igor Peshansky  <pechtcha@cs.nyu.edu>
3527         * script.cc (Script::run): Fix inverted test for abnormal exit.
3529 2006-03-09  Bas van Gompel  <patch-cygsup.buzz@bavag.tmfweb.nl>
3530             Max Bowsher  <maxb1@ukf.net>
3532         Provide indication of site that a file is being downloaded from.
3533         
3534         * geturl.cc: Use std::string instead of String throughout.
3535         (init_dialog): Put more information into GUI.
3536         Remove unused 'owner' parameter and change all callers.
3537         (progress): Remove spurious \n characters from GUI.
3538         * geturl.h: Use std::string instead of String throughout.
3539         * res.rc (IDD_INSTATUS): Use SS_ENDELLIPSIS.
3541 2006-03-09  Max Bowsher  <maxb1@ukf.net>
3542         
3543         * Makefile.am (EXTRA_DIST): Add tree-minus.bmp and tree-plus.bmp.
3545 2006-01-20  Bryan Thrall  <bryan.thrall@flightsafety.com>
3547         * source.cc (SourcePage::OnActivate): Command line takes precedence
3548         over last user selection.
3550 2005-11-30  Max Bowsher  <maxb1@ukf.net>
3552         * res.rc (IDD_ROOT, IDD_LOCAL_DIR): Rearrange some controls a little,
3553         in response to suggestion from Carl Karsten.
3555 2005-11-30  Max Bowsher  <maxb1@ukf.net>
3557         * site.h, site.cc: Use std::string in preference to String.
3558         (site_list_type::init): Convert some painful raw C string work to
3559         STL std::string work.  Stop totally ignoring the result of this
3560         calculation, implementing the (somewhat weird) sort order for sites
3561         that was apparently indented for ages.
3563 2005-10-14  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
3565         * io_stream.cc (url_scheme_not_registered): New macro.
3566         (io_stream::open): Better log message on error.
3567         (io_stream::mkpath_p,io_stream::remove,io_stream::mklink): Ditto.
3568         (io_stream::move,io_stream::exists): Ditto.
3570 2005-10-13  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
3572         * site.cc (get_site_list): Default to empty mirror list if
3573         server unavailable and none cached, to allow using preferred
3574         mirrors anyway.
3576 2005-09-29  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
3578         * package_db.cc (packagedb::packagedb): Remember missing package
3579         database file.
3581 2005-09-29  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
3583         * site.cc (get_site_list): Store mirror list locally.
3584         Use local copy if unable to download.
3586 2005-09-27  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
3588         * io_stream_cygfile.cc (io_stream_cygfile::io_stream_cygfile):
3589         Better log message on error.
3591 2005-09-27  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
3593         * script.cc (Script::isAScript): Fix string comparison.
3595 2005-09-27  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
3597         * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Reconnect on FTP timeout.
3599 2005-09-11  Masayuki FUJII  <boochang@m4.kcn.ne.jp>
3601         * package_meta.cc (packagemeta::ScanDownloadedFiles): Don't use an
3602         invalid iterator.  Fix whitespace.
3604 2005-09-09  Brian Dessent  <brian@dessent.net>
3606         * CHANGES: Document recent updates.
3607         * choose.cc (ChooserPage::OnInit): Add new tooltip.
3608         * res.rc (IDD_CHOOSE): Remove 'administrative' from description.
3609         (IDS_HIDEOBS_TOOLTIP): Add new string for tooltip.
3610         * resource.h (IDS_HIDEOBS_TOOLTIP): Define.
3611         * window.cc (Window::ActivateTooltips): Fix whitespace.  Set tooltip
3612         delay to 30 seconds.
3614 2005-09-09  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
3616         * PickView.cc (PickView::paint): Set background mode to transparent.
3617         * PickCategoryLine.cc (PickCategoryLine::paint): Use bitwise AND to
3618         blit bitmaps.
3619         * PickPackageLine.cc (PickPackageLine::paint): Ditto.
3621 2005-09-01  Brian Dessent  <brian@dessent.net>
3623         * package_meta.cc (packagemeta::uninstall): Remove support for
3624         undocumented and dangerous postremove script.
3626 2005-09-01  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
3628         * script.cc (run): Change to return the exit code or negative error.
3629         (Script::run): Ditto.
3630         (try_run_script): Receive both filename and extension and run only
3631         one script.  Also return the exit code.
3632         * script.h (try_run_script): Change signature.
3633         (Script::run): Ditto.
3634         * postinstall.cc (RunScript::operator()): Change to return the exit
3635         code or negative error.
3636         * install.cc (Installer::preremoveOne): Pass extension to
3637         try_run_script().
3639 2005-09-01  Eric Blake  <ebb9@byu.net>
3641         * script.cc (shells): Use /bin/bash, not sh, to allow upgrades to
3642         /bin/sh.
3644 2005-09-01  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
3646         * PickView.h (PickView::size_col): New instance variable.
3647         * PickView.cc (pkg_headers, cat_headers): Add size column.
3648         (PickView::set_headers): Initialize size_col.
3649         (PickView::init_headers): Include width of size column.
3650         * PickPackageLine.cc (PickPackageLine::paint): Handle size_col.
3651         * String++.cc (format_1000s): New function.
3652         * String++.h (format_1000s): Declare new function.
3654 2005-09-01  Brian Dessent  <brian@dessent.net>
3656         * Makefile.am (BASECXXFLAGS): Add -Wno-uninitialized to work around
3657         spurious warnings with gcc 3.4.4.
3659 2005-05-22  Brian Dessent  <brian@dessent.net>
3661         * res.rc (IDD_CHOOSE): Change description to include administrative
3662         packages in addition to obsolete.
3664 2005-05-21  Brian Dessent  <brian@dessent.net>
3666         * prereq.cc: New file.
3667         * prereq.h: Ditto.
3668         * tree-minus.bmp: Ditto.
3669         * tree-plus.bmp: Ditto.
3670         * Makefile.am: Add prereq.cc and prereq.h to build.
3671         * PickCategoryLine.cc (PickCategoryLine::paint): Add new parameter and
3672         refactor.  Use bitmap for '+' and '-' indicators.  Draw package lines
3673         column-wise for better drawing efficiency.
3674         (PickCategoryLine::click): Use previously calculated x value.
3675         * PickCategoryLine.h (PickCategoryLine::paint): Update prototype.  Add
3676         'spin_x' member.
3677         * PickLine.h (PickLine:paint): Update prototype.
3678         * PickPackageLine.cc (PickPackageLine::DrawCheck): Remove.
3679         (PickPackageLine::DrawIcon): New function.
3680         (PickPackageLine::paint): Add parameter.  Refactor completely for more
3681         efficient painting.
3682         * PickPackageLine.h (PickPackageLine::DrawIcon): Add prototype.
3683         (PickPackageLine::paint): Update prototype.
3684         (PickPackageLine::DrawCheck): Remove.
3685         * PickView.cc (pkg_headers): Remove unused 'slen' field, add new
3686         'needs_clip' field to signify if clipping is necessary for this column.
3687         (PickView::note_width): Fold long line.  Refactor slightly for
3688         simplicity.
3689         (PickView::set_view_mode): Remove.
3690         (PickView::cycleViewMode): New function.
3691         (PickView::setViewMode): Refactor completely.  Incorporate functionality
3692         of clear_view() here instead.  Simplify package selection into a single
3693         'for' loop rather than repeating code for each type.
3694         (isObsolete): New function, with second overloaded version.
3695         (PickView::setObsolete): New function.
3696         (PickView::insert_pkg): Do not show obsolete packages.  Move
3697         declaration of 'db' lower.  Fix whitespace.
3698         (PickView::insert_category): Do not show obsolete packages.
3699         (PickView::clear_view): Remove.  Moved logic into 'setViewMode'.
3700         (PickView::scroll): Add additional parameter 'howmany' with default
3701         value of 1.  Scroll by 'howmany' lines for SB_LINEDOWN and SB_LINEUP.
3702         (NUM_CATEGORY_COL_WIDTH): Define.
3703         (PickView::init_headers): Fix whitespace.  Add comments.  Ignore
3704         obsolete packages in width calculations.  Add functionality to size
3705         'Category' column so that at least NUM_CATEGORY_COL_WIDTH categories
3706         are displayed for every package.  Ensure that 'new_col' takes into
3707         account all possible labels.
3708         (PickView::PickView): Initialize showObsolete to false.
3709         (PickView::init): Remove unused bitmap bm_rtarrow.  Add new bitmaps
3710         bm_treeplus and bm_treeminus.  Use a macro for better readability.
3711         Fix whitespace formatting.  Remove header computation from here, call
3712         refresh() instead.
3713         (PickView::registerWindowClass): Remove unnecessary background brush.
3714         (PickView::WindowProc): Add support for WM_MOUSEWHEEL message
3715         processing.  Fix indentation.  Reformat for readability.
3716         (PickView::paint): Get the update region before calling BeginPaint.
3717         Fill the update region with the default colors.  Do not do clipping
3718         here.  Pass update region to the PickLine paint function instead.
3719         Free the update region when finished.
3720         (PickView::Create): Fix indentation.
3721         (PickView::defaultTrust): Ditto.
3722         (PickView::refresh): Add column recalculation logic here.
3723         * PickView.h: Fix indentation.
3724         (RTARROW_WIDTH): Remove unused define.
3725         (NEW_COL_SIZE_SLOP): Ditto.
3726         (TREE_INDENT): Define.
3727         (PickView::get_view_mode): Remove.
3728         (PickView::set_view_mode): Rename to setViewMode for consistency.
3729         (PickView::cycleViewMode): Add new function.
3730         (PickView::setObsolete): Ditto.
3731         (PickView::clear_view): Remove.
3732         (PickView::bm_treeplus): Define new member.
3733         (PickView::bm_treeminus): Ditto.
3734         (PickView::scroll): Add parameter.
3735         (PickView::Header::slen): Remove unused member.
3736         (PickView::Header::needs_clip): Define new member.
3737         (PickView::showObsolete): Ditto.
3738         (isObsolete): Add prototype, and for overloaded version as well.
3739         * choose.cc: Add include.
3740         (ChooserControlsInfo): Allow new checkbox to be resized.
3741         (ChooserPage::OnInit): Start dialog with 'Hide obsolete' checked.
3742         (ChooserPage::OnNext): Call the dependency checker, act accordingly.
3743         (ChooserPage::changeTrust): Notify dependency checker of current trust
3744         level when it changes.
3745         (ChooserPage::OnMessageCmd): Just call cycleViewMode instead when
3746         changing the view.  Update the chooser when the user toggles the
3747         'hide obsolete' checkbox.
3748         (ChooserPage::OnMouseWheel): New function.  Pass mouse wheel message
3749         on to chooser.
3750         * choose.h (OnMouseWheel): Add prototype.
3751         * main.cc: Add include.
3752         (main): Define and initialize the PrereqPage object.  Add it into
3753         the property sheet list.
3754         * PropPage.cc (PropertyPage::DialogProc): Add support for WM_MOUSEWHEEL
3755         message processing in derived classes.
3756         (PropertyPage::OnMouseWheel): New function.
3757         * PropPage.h (PropertyPage::OnMouseWheel): Add prototype.
3758         * res.rc (IDD_LOCAL_DIR): Shorten edit box so that pushbutton is not
3759         crowded.
3760         (IDD_SITE): Provide static text with an ID so that it can be resized
3761         properly.  Move pushbutton slightly to right so that it doesn't crowd
3762         edit box.
3763         (IDD_SPLASH): Change copyright displayed on spash screen to be generic
3764         since the actual list of contributors is long.
3765         (IDD_CHOOSE): Add checkbox.  Resize other controls to accomodate.
3766         (IDD_PREREQ): New dialog.
3767         (SPIN): Delete duplicated bitmap resource.
3768         (IDB_RTARROW): Remove unused bitmap resource.
3769         (IDB_TREE_PLUS): Add.
3770         (IDB_TREE_MINUS): Ditto.
3771         (IDS_TRUSTPREV_TOOLTIP): Revise wording to be more concise.
3772         (IDS_TRUSTCURR_TOOLTIP): Ditto.
3773         (IDS_TRUSTEXP_TOOLTIP): Ditto.
3774         (IDS_VIEWBUTTON_TOOLTIP): Ditto.
3775         * resource.h (IDD_PREREQ): Define.
3776         (IDB_RTARROW): Remove.
3777         (IDB_TREE_PLUS): Add, and renumber.
3778         (IDB_TREE_MINUS): Ditto.
3779         (IDC_SITE_USERURL): Define.
3780         (IDC_CHOOSE_HIDE): Ditto.
3781         (IDC_PREREQ_TEXT): Ditto.
3782         (IDC_PREREQ_EDIT): Ditto.
3783         (IDC_PREREQ_CHECK): Ditto.
3784         * site.cc (SiteControlsInfo): Ensure that 'User URL' static text is
3785         properly resized.
3787 2005-05-14  Max Bowsher  <maxb@ukf.net>
3789         "Type" field of packageversions was not even being filled in. Fix.
3791         * cygpackage.h, cygpackage.cc (cygpackage::createInstance):
3792         Make "type" a mandatory parameter of the constructor.
3793         * IniDBBuilderPackage.cc: Adjust callers.
3795 2005-05-14  Bas van Gompel  <patch-cygsup.buzz@bavag.tmfweb.nl>
3797         Fix behaviour of hardlinks in source packages.
3799         * archive.cc (archive::extract_file):
3800         Use prefixPath for link target on hardlinks.
3802 2005-05-14  Max Bowsher  <maxb@ukf.net>
3803         
3804         Hopefully, solve the "preremove DLL dependency" bug, by running all
3805         preremove scripts before actually removing any files.
3807         * install.cc
3808         (Installer::preremoveOne): New method. Run preremove scripts here.
3809         (Installer::replaceOne): Remove method.
3810         (num_replacements): Remove variable.
3811         (do_install_thread): Significantly rewrite.
3812         * package_meta.cc (packagemeta::uninstall):
3813         Do not run preremove script here.
3815 2005-05-14  Max Bowsher  <maxb@ukf.net>
3817         * download.cc (do_download_thread):
3818         Do not use packageversion::changeRequested().
3819         * package_version.cc (packageversion::Type):
3820         Implement declared but previously unimplemented method.
3821         (packageversion::changeRequested, _packageversion::changeRequested):
3822         Remove.
3823         * package_version.h
3824         (packageversion::changeRequested, _packageversion::changeRequested):
3825         Remove.
3826         * install.cc (Installer::replaceOne): Simplify, return void, not int.
3827         (installOneSource): Rename to...
3828         (installOne): ...this. Change arguments and return type. Refactor.
3829         (install_one): Remove.
3830         (do_install_thread): Tidying up.
3832 2005-05-07  Max Bowsher  <maxb@ukf.net>
3834         * download.cc (validateCachedPackage): Remove all MD5 checking code.
3835         It is not acceptable to check MD5 sums as part of simply answering
3836         whether a package exists in the local cache or not. It is too slow.
3837         MD5 sums always have been - and will continue to be - checked at
3838         install time.
3839         (NoMD5Option): Remove this option, as the code it controls has been
3840         removed.
3842 2005-05-07  Max Bowsher  <maxb@ukf.net>
3844         * install.cc (md5_one): Make the MD5 checking done at install time
3845         display a progess GUI, as the MD5 checking done at other times does.
3847 2005-05-07  Max Bowsher  <maxb@ukf.net>
3849         * resource.h, res.rc: Followup to recent de-MSVC-ification of
3850         resource.h, by removing a lot from res.rc, and the last few bits
3851         from resource.h.
3853 2005-05-05  Brian Dessent  <brian@dessent.net>
3855         * choose.cc (ChooserPage::OnInit): Initialize tooltips for this
3856         dialog.
3858         * proppage.h (PropertyPage::makeClickable): Update prototype to
3859         reflect same argument name as function.
3861         * proppage.cc (PropertyPage::DialogProc): Remove redundant 'break'
3862         statements that follow 'return's.  Add missing braces to case
3863         statements.  Call handler for TTN_GETDISPINFO.
3865         * res.rc (IDS_TRUSTKEEP_TOOLTIP): Add new STRINGTABLE entry for
3866         tooltip text.
3867         (IDS_TRUSTPREV_TOOLTIP): Ditto.
3868         (IDS_TRUSTCURR_TOOLTIP): Ditto.
3869         (IDS_TRUSTEXP_TOOLTIP): Ditto.
3870         (IDS_TRUSTPREV_TOOLTIP): Ditto.
3871         (IDS_VIEWBUTTON_TOOLTIP): Ditto.
3873         * resource.h: Likewise, add identifiers for tooltip resources.
3875         * window.h: Add includes.
3876         (Window::TooltipHandle): Add new private data structure.
3877         (Window::TooltipStrings): Ditto.
3878         (Window::ActivateTooltips): Define new function to support tooltip
3879         functionality.
3880         (Window::SetTooltipState): Ditto.
3881         (Window::AddTooltip): Ditto.
3882         (Window::TooltipNotificationHandler): Ditto.
3883         
3884         * window.cc (Window::Window): Initialize handle to NULL.
3885         (Window::~Window): Call DestroyWindow on tooltip control if it was
3886         activated.
3887         (Window::ActivateTooltips): New function to activate the tooltip
3888         control.
3889         (Window::SetTooltipState): New function to allow toggling of
3890         tooltips.
3891         (Window::AddTooltip): New function that adds a tooltip to a given
3892         control in a given window.  Also implement overloaded versions that
3893         provide simpler interface and the ability to use a string resource.
3894         (Window::TooltipNotificationHandler): New function to handle
3895         TTN_GETDISPINFO notification messages.
3897 2005-05-05  Brian Dessent  <brian@dessent.net>
3899         * resource.h: Reorganize.  Group by type, and give each its own
3900         range of IDs.  Regenerate IDs accordingly.
3901         (IDD_CHOOSER): Remove obsolete and unused symbol.
3903 2005-05-05  Brian Dessent  <brian@dessent.net>
3905         * root.h (class RootPage): Add missing virtual to OnMessageCmd.
3907 2005-05-05  Brian Dessent  <brian@dessent.net>
3909         * root.cc (dialog_cmd): Remove.  Use OnMessageCmd instead.
3910         (RootPage::Create): Accomodate above change.
3911         
3912         * root.h (class RootPage): Add prototype for OnMessageCmd.
3913         
3914         * res.rc (IDD_ROOT): Fix broken button groups.  Correct the order of
3915         the controls and use of WS_GROUP so that the radio buttons act
3916         correctly.
3918 2005-05-05  Max Bowsher  <maxb@ukf.net>
3920         Bulk rename of String++ member cstr_oneuse () to c_str () for
3921         similarity to std::string.
3923         * Exception.cc
3924         * IniDBBuilderPackage.cc
3925         * IniParseFindVisitor.cc
3926         * LogFile.cc
3927         * PickCategoryLine.cc
3928         * PickPackageLine.cc
3929         * PickView.cc
3930         * String++.cc
3931         * String++.h
3932         * archive.cc
3933         * cygpackage.cc
3934         * desktop.cc
3935         * dialog.cc
3936         * diskfull.cc
3937         * download.cc
3938         * filemanip.cc
3939         * find.cc
3940         * geturl.cc
3941         * ini.cc
3942         * install.cc
3943         * io_stream.cc
3944         * io_stream_cygfile.cc
3945         * io_stream_file.cc
3946         * localdir.cc
3947         * mount.cc
3948         * nio-http.cc
3949         * package_db.cc
3950         * package_meta.cc
3951         * package_source.h
3952         * postinstall.cc
3953         * proppage.cc
3954         * root.cc
3955         * script.cc
3956         * site.cc
3957         * splash.cc
3958         * threebar.cc
3959         * window.cc
3961 2005-05-05  Max Bowsher  <maxb@ukf.net>
3963         Some String++ refactoring, setting out in the general direction of
3964         eventually just using the STL std::string, not our own class.
3966         * String++.cc (String::cstr, String::cstr () const): Remove.
3967         (new_cstr_char_array): New function.
3968         * String++.h: Sync with above.
3969         Remove irrelevant "class io_stream;" declaration.
3971         * cygpackage.h: Add "class io_stream;" declaration, now no longer
3972         being supplied by side-effect.
3974         * filemanip.cc: Remove unneeded includes, add "using namespace std;".
3975         (parse_filename): Exchange some awkward pointer manipulation for
3976         std::string usage. Use new_cstr_char_array ().
3977         * filemanip.h: Sync with above.
3978         (fileparse): Improve style of declaration.
3980         * io_stream_cygfile.cc (io_stream_cygfile::normalise):
3981         Use new_cstr_char_array ().
3982         * site.cc (site_list_type::init, get_site_list): Ditto.
3984 2005-05-05  Brian Dessent  <brian@dessent.net>
3986         * ControlAdjuster.h (enum ControlPosition): Declare new resizing
3987         methods CP_STRETCH_LEFTHALF and CP_STRETCH_RIGHTHALF, and their
3988         TOP/BOTTOM aliases.
3989         
3990         * ControlAdjuster.cc (ControlAdjuster::ControlInfo::adjust):
3991         Implement CP_STRETCH_LEFTHALF and CP_STRETCH_RIGHTHALF, which are
3992         designed to resize elements in a two-column layout.
3993         
3994         * localdir.h (class LocalDirPage): Remove constructor implementation
3995         from here...
3996         
3997         * localdir.cc (LocalDirPage::LocalDirPage): ...to here, and call
3998         AddControlsInfo on initialization.
3999         (static LocaldirControlsInfo): Add.  Define sizing rules for dialog
4000         elements.
4001         
4002         * proppage.h: Add includes.
4003         (PropertyPage::ClickableURL):
4004         Declare new storage type for internal use by class.
4005         (PropertyPage::urls): Likewise.
4006         (PropertyPage::urlWinProc): Add declaration.
4007         (PropertyPage::makeClickable): Likewise.
4009         * proppage.cc: Add includes.
4010         (PropertyPage::DialogProc): Implement handler for WM_CTLCOLORSTATIC
4011         message.  Supports static controls that have been turned into
4012         clickable hyperlinks.
4013         (static PropertyPage::urls): Declare.
4014         (PropertyPage::makeClickable): Implement new member function that
4015         provides user interface for making text into clickable URLs.
4016         (PropertyPage::urlWinProc): Implement new private member function used
4017         as a windowproc for subclassing a static control.
4019         * resource.h (IDC_SPLASH_URL, IDC_FILEMODES_LINK, IDC_ROOTDIR_GRP,
4020         IDC_INSTALLFOR_GRP, IDC_ALLUSERS_TEXT, IDC_JUSTME_TEXT, IDC_MODE_GRP,
4021         IDC_MODE_TEXT, IDC_MODE_BIN, IDC_LOCALDIR_GRP, IDC_SPLASH_TEXT,
4022         IDC_SPLASH_ICON, IDC_SPLASH_COPYR): Add. Replaces anonymous
4023         IDC_STATIC ids, so that controls can be referenced by the resizer.
4024         
4025         * res.rc (IDD_LOCAL_DIR): Rearrange controls to match top-down order
4026         in the dialog.  Fold long lines.  Replace anonymous IDC_STATIC ids.
4027         (IDD_ROOT): Reorder in same manner.  Replace anonymous IDC_STATIC ids.
4028         Add descriptive text of each option, and hyperlink for more
4029         information.  Mark suggested choice as "(RECOMMENDED)".  Swap order of
4030         'unix'/'dos' radio buttons so that recommended choice is first in both
4031         columns.
4032         (IDD_SPLASH): Reorder elements to match top-down order of dialog, fold
4033         long lines. Add descriptive paragraph, remove anonymous ids.  Update
4034         copyright text, replace sources.redhat.com with cygwin.com.
4035         
4036         * root.h (class RootPage): Remove constructor implementation from
4037         here...
4038         
4039         * root.cc: ...to here, and call AddControlInfo.
4040         (static RootControlsInfo): Add.  Populate with resizing data.
4041         (RootPage::OnInit): Make text a clickable hyperlink.
4042         
4043         * splash.h (class SplashPage): Likewise, move constructor from
4044         here...
4045         
4046         * splash.cc: ...to here.  Call AddControlInfo.
4047         (static SplashControlsInfo): Add and populate.
4048         (SplashPage::Create): Make link on splash page a clickable hyperlink.
4049         
4050         * window.h: Add include.
4051         (class Window): Store allocated fonts with a vector instead of fixed
4052         array.  Change indentation of setParent to be consistent.
4053         
4054         * window.cc (Window::Window): Remove FontCounter.
4055         (Window::~Window): Likewise.  Iterate over vector of fonts instead.
4056         (Window::SetDlgItemFont): Use vector.
4058 2005-05-05  Max Bowsher  <maxb@ukf.net>
4060         * Makefile.am (EXTRA_DIST, inilint_SOURCES):
4061         Sync with several recent changes.
4063 2005-05-05  Brian Dessent  <brian@dessent.net>
4065         * res.rc: (CREATEPROCESS_MANIFEST_RESOURCE_ID): Include section
4066         comment.
4068 2005-05-05  Brian Dessent  <brian@dessent.net>
4070         * res.rc: (IDC_CHOOSE): Widen 'view' button by 6px horizontally and
4071         4px vertically.  Adjust other controls to accomodate.
4072         (CREATEPROCESS_MANIFEST_RESOURCE_ID): Define so that manifest is
4073         included in the binary.
4074         
4075         * setup.exe.manifest: New file.  Results in common controls with
4076         themed appearance on modern versions of Windows.
4078 2005-05-05  Brian Dessent  <brian@dessent.net>
4080         * main.cc (WinMain): Change conditional to avoid spurious error
4081         message on success.  Include reason for failure in log message.
4083 2005-05-04  Max Bowsher  <maxb@ukf.net>
4085         * state.cc, state.h (net_method, net_proxy_host, net_proxy_port,)
4086         (net_user, net_passwd, net_proxy_user, net_proxy_passwd,)
4087         Inet_ftp_user, net_ftp_passwd):
4088         Move these global variables to be static variables of the NetIO class.
4090         * netio.h, netio.cc (net_method, net_proxy_host, net_proxy_port,)
4091         (net_user, net_passwd, net_proxy_user, net_proxy_passwd,)
4092         net_ftp_user, net_ftp_passwd):
4093         As above.
4095         * ConnectionSetting.cc, net.cc:
4096         Change include, refer to variables in new location.
4098 2005-05-04  Max Bowsher  <maxb@ukf.net>
4100         * PickLine.cc: Remove file - redundant.
4101         * Makefile.am (setup_SOURCES): Adjust.
4103 2005-05-04  Max Bowsher  <maxb@ukf.net>
4105         * package_version.h (packageversion::set_requirements):
4106         Remove deftrust argument default value.
4108 2005-05-04  Max Bowsher  <maxb@ukf.net>
4110         * package_version.cc (DependencyProcessor): Remove trivial class.
4111         (select, processOneDependency): Do not use DependencyProcessor, just
4112         pass parameters normally.
4114 2005-05-04  Brian Dessent  <brian@dessent.net>
4116         Fix bug #820: Clicking Curr, etc., causes some dependencies to not
4117         be installed.
4119         * choose.cc (ChooserPage::changeTrust):
4120         Add a missing "packagedb.markUnVisited ()".
4122 2005-05-03  Max Bowsher  <maxb@ukf.net>
4123         
4124         * PickCategoryLine.cc (PickCategoryLine::click):
4125         * PickPackageLine.cc (PickPackageLine::click):
4126         Abandon use of trivial packagemeta::PrepareForVisit() wrapper.
4128         * package_meta.h (packagemeta::PrepareForVisit): Remove.
4129         * package_meta.cc (packagemeta::PrepareForVisit): Remove.
4131 2005-05-03  Max Bowsher  <maxb@ukf.net>
4133         * choose.h (ChooserPage::ifChecked): Remove.
4134         (ChooserPage::changeTrust): Convert from template to ordinary function.
4135         * choose.cc (ChooserPage::changeTrust): As above, plus avoid the use
4136         of custom class SetRequirement, when bind2nd(mem_fun(...),...) can
4137         achieve the same effect.
4138         * package_meta.h (SetRequirement): Remove, now unused.
4140 2005-05-03  Max Bowsher  <maxb@ukf.net>
4142         * package_meta.h (packagemeta::set_requirements):
4143         Remove default argument which seems inappropriate.
4144         * PickPackageLine.cc (PickPackageLine::click):
4145         Make an argument explicit, and not that it seems like the wrong value.
4147 2005-05-03  Brian Dessent  <brian@dessent.net>
4149         Fix part of bug #853 - proxy port not remembered.
4151         * net.cc (doing_loading): New static boolean.
4152         (load_dialog): Use the boolean to prevent save_dialog() from taking
4153         action due to field changes due to initialization.
4154         (save_dialog): Check the boolean and respond appropriately.
4156 2005-04-19  Max Bowsher  <maxb@ukf.net>
4158         * postinstall.cc (RunFindVisitor::visitFile): Fix crash on
4159         encountering a postinstall script with a name of 4 characters or less.
4160         Bug introduced on 2004-12-25.
4162 2005-04-05  Max Bowsher  <maxb@ukf.net>
4164         The Big Cleanup: Phase "rfc1738"
4166         * rfc1738.cc, rfc1738.h: Delete.
4167         * csu_util/rfc1738.cc: Reimport latest version from upstream source.
4168         Make thread-safe. Rewrite C++ wrapper in terms of std::string.
4169         Document the divergences from the upstream source.
4170         * csu_util/rfc1738.h: Recreate for the std::string version of the
4171         C++ wrapper.
4173         * Makefile.am (setup_SOURCES): Sync with added/removed files.
4174         * IniParseFindVisitor.cc: Modify #includes.
4175         (IniParseFindVisitor::visitFile): Change function name, as the new
4176         C++ wrapper does not contain an irregularity that the old one did.
4177         * download.cc: Modify #includes.
4178         * ini.cc: Modify #includes.
4180 2005-04-05  Max Bowsher  <maxb@ukf.net>
4182         Remove setup's internal compression libraries, instead relying on the
4183         mingw-foo packages which have been part of the Cygwin net distribution
4184         for some time now.  At the same time, reorganize the README file to
4185         inform about the change, and make some additional tidy-ups there whilst
4186         working there.
4188         * GUIDELINES: Remove, contents transferred to README.
4189         * README: Add build instructions. Delete unconfirmed and fixed bugs
4190           sections. Incorporate the former contents of GUIDELINES.
4192         * bz2lib/: Remove.
4193         * zlib/: Remove.
4194         * Makefile.am (DIST_SUBDIRS, SUBDIRS):
4195         * configure.in: Remove AC_CONFIG_SUBDIRS for removed subdirs.
4196         * compress_bz.h: Remove complex _WIN32 preprocessor conditional.
4197         * compress_gz.h: Fix #include file name.
4198         * archive_tar_file.cc: Remove unused #include.
4199         * install.cc: Remove unused #include.
4201 2005-01-27  Max Bowsher  <maxb@ukf.net>
4203         Set CYGWIN=nontsec, for postinstall scripts.
4205         * main.cc (main): putenv("CYGWIN=nontsec").
4207 2005-01-27  Bas van Gompel  <patch-cygsup.buzz@bavag.tmfweb.nl>
4209         Fix corrupt display of ini parse percentage in log file.
4211         * ini.cc (GuiParseFeedback): Use a sensible data type for lastpct.
4213 2004-12-29  Max Bowsher  <maxb@ukf.net>
4215         * site.cc (get_site_list): Filter the incoming mirrors list to contain
4216         only URL schemes that we can read.
4218 2004-12-28  Max Bowsher  <maxb@ukf.net>
4220         The Big Cleanup: Phase "hash"
4222         * hash.cc, hash.h: Delete.
4223         * Makefile.am (setup_SOURCES): Sync with deleted files.
4225         * package_mets: Modify includes.
4226         (standard_dirs): Remove.
4227         (hash::add_subdirs): Remove.
4228         (packagemeta::uninstall): Re-implement using STL set instead of
4229         homebrew hash.
4231 2004-12-28  Max Bowsher  <maxb@ukf.net>
4233         * String++.h (operator std::string): Take care to never do
4234         std::string((char*)NULL) - it causes a hang!
4236 2004-12-27  Max Bowsher  <maxb@ukf.net>
4238         The Big Cleanup: Phase "log"
4240         * log.cc, log.h: Delete old C-style compatibility wrapper around the
4241         logging subsystem.
4242         * Makefile.am (setup_SOURCES): Sync with deleted files.
4244         * AntiVirus.cc, archive_tar_file.cc, ini.cc, install.cc,
4245         * io_stream_cygfile.cc, localdir.cc, msg.cc, net.cc, netio.cc,
4246         * netio.h, nio-ftp.cc, nio-ftp.h, root.cc, source.cc:
4247         Throughout, refine includes, and update code using the old
4248         compatibility wrapper to C++ streams style code.
4250 2004-12-27  Max Bowsher  <maxb@ukf.net>
4252         * compress.cc: Refine includes. Remove placeholder function
4253         definitions. Make destructor an empty function.
4254         * compress.h: Refine includes. Make placeholder functions pure
4255         virtual. Add missing const on buffer argument to write function,
4256         to match derived classes.
4257         * compress_bz.cc, compress_gz.cc: Refine includes. Throw exception,
4258         rather than logging and returning an error, when an unimplemented
4259         function is called.
4260         * compress_bz.h, compress_gz.h: Refine includes.
4262 2004-12-26  Max Bowsher  <maxb@ukf.net>
4264         The Big Cleanup: Phase "version"
4266         * String++.h (operator std::string): Add.
4267         * desktop.cc, fromcwd.cc: Remove irrelevant include.
4269         * version.cc, version.h: Delete, replacing all functionality in new
4270         files.
4272         * setup_version.h: Add, taking over declaration of generated version
4273         symbol functionality.
4275         * Makefile.am (setup_SOURCES): Sync with new/deleted files.
4276         (setup_version.c): Rename the symbol 'version' to 'setup_version'.
4277         * main.cc: Modify includes.
4278         (main): Adapt to setup_version rename.
4279         * splash.cc: Modify includes.
4280         (SplashPage::OnInit): Adapt to setup_version rename.
4282         * csu_util/version_compare.cc, csu_util/version_compare.h: Add,
4283         containing a completely rewritten replacement for canonical_version().
4285         * IniDBBuilderPackage.cc: Modify includes.
4286         (IniDBBuilderPackage::buildVersion): Use new version_compare API.
4287         * ini.cc: Modify includes.
4288         (setup_version): Rename...
4289         (ini_setup_version): ...to this.
4290         (do_local_ini, do_remote_ini): Adapt to above change.
4291         (do_ini_thread): Adapt to above change. Use new version_compare API.
4293 2004-12-25  Max Bowsher  <maxb@ukf.net>
4295         * install.cc (Installer::installOneSource): Remove a stray "break;"
4296         left over from the switch-case -> if-else conversion in the previous
4297         change.
4299 2004-12-25  Max Bowsher  <maxb@ukf.net>
4301         The Big Cleanup: Phase "win32"
4303         * win32.h: Major overhaul. Document why we use _WIN32_IE. Move out
4304         fragment dealing with alloca() to the single file in which it is used.
4305         Remove fragment dealing with _MAX_PATH, and convert all uses of it
4306         elsewhere to MAX_PATH. Remove random include of <stdarg.h>. Remove
4307         NOCOMATTRIBUTE, as setup contains no code which it affects. Remove
4308         includes of <wininet.h> and <windowsx.h> - see later in this log.
4309         (IsWindowsNT): New inline function, a much simpler implementation of
4310         Win32::OS().
4312         * win32.cc: Delete.
4314         * Makefile.am (setup_SOURCES): Remove "win32.cc".
4316         * AntiVirus.cc (detect), PickPackageLine.cc (PickPackageLine::paint),
4317         * install.c (Installer::installOneSource):
4318         Use IsWindowsNT(), not Win32::OS().
4319         * main.cc (main): Use IsWindowsNT(), not locally defined iswinnt.
4321         * PickView.cc (PickView::WindowProc), netio.cc (auth_proc),
4322         * proppage.cc (PropertyPage::DialogProc):
4323         Avoid using obfuscating macros from <windowsx.h>.
4325         * archive.cc: Include or #define alloca() in the only file in which
4326         it is used.
4328         * nio-ie5.h: Include <wininet.h> here, where it is actually needed,
4329         rather than in "win32.h" which is included almost everywhere.
4331         * archive_tar.cc, archive_tar.h, cygpackage.cc, cygpackage.h,
4332         * desktop.cc, find.cc, install.cc, main.cc, mklink2.c, mount.cc,
4333         * script.cc: Use MAX_PATH, not _MAX_PATH.
4335 2004-12-25  Max Bowsher  <maxb@ukf.net>
4337         Remove some overcomplications.
4339         * Makefile.am (setup_SOURCES): Remove FilterVisitor.{cc,h}.
4340         * FilterVisitor.cc, FilterVisitor.h: Delete.
4341         * String++.cc (strmatch, String::matches): Remove.
4342         * String++.h (String::matches): Remove.
4343         * postinstall.cc: Do not include "FilterVisitor.h".
4344         (RunFindVisitor): Exclude items with the extension ".done".
4345         (do_postinstall_thread): Remove overcomplicated exclusion of items
4346         with the extension ".done".
4347         
4348 2004-12-24  Max Bowsher  <maxb@ukf.net>
4350         * String++.cc, String++.h: Remove unused and incomplete code.
4351         * LogFile.cc (LogFile::log_save): Don't leak memory.
4352         * filemanip.cc, geturl.cc, root.cc, version.cc:
4353         Don't pointlessly create temporary copies strings.
4355 2004-12-23  Max Bowsher  <maxb@ukf.net>
4357         * choose.cc (ChooserPage::OnNext): Relegate some overly verbose
4358         logging to an #ifdef DEBUG section.
4359         * geturl.h (dismiss_url_status_dialog): Remove stale function
4360         declaration, for which there is no definition.
4361         * io_stream_cygfile.cc (io_stream_cygfile::io_stream_cygfile):
4362         Motivated by the recent unexplained hang bug, add some extra logging.
4364 2004-11-22  Max Bowsher  <maxb@ukf.net>
4366         * MD5++.cc, MD5++.h: Remove this class.
4367         * csu_util/MD5Sum.cc, csu_util/MD5Sum.h: New more complete MD5 class.
4368         * Makefile.am (setup_SOURCES): Adjust to new files.
4369         * download.cc (validateCachedPackage): Simplify, using the new class.
4370         * install.cc (md5_one): Ditto.
4371         * package_source.h (packagesource::md5): Change to be an object of the
4372         new class.
4374 2004-11-22  Max Bowsher  <maxb@ukf.net>
4376         * main.cc (main): Fix bug in one of the 2004-11-19 commits.
4377         Avoid referring to the theLog pointer before it is set.
4379 2004-11-20  Max Bowsher  <maxb@ukf.net>
4381         * res.rc (IDD_SOURCE): Clarify the radio-button option descriptions.
4382         Re-layout the radio buttons.
4384 2004-11-20  Max Bowsher  <maxb@ukf.net>
4386         Repair the broken detection of wrongly-sized package files.
4387         
4388         * download.cc (validateCachedPackage): Make static, since not used
4389         elsewhere. Improve logging. Migrate file-size tests to here, alongside
4390         the MD5 tests.
4391         (check_for_cached): Remove broken testing of file-size, now covered by
4392         the above. Code cleanups.
4394 2004-11-19  Max Bowsher  <maxb@ukf.net>
4396         * package_version.cc (dumpAndList): Make dependencies much more
4397         readable in full log output.
4399 2004-11-19  Max Bowsher  <maxb@ukf.net>
4401         * proppage.cc (PropertyPage::DialogProc): Wrap in a TOPLEVEL_CATCH
4402         block, since allowing exceptions to unwind into the guts of Windows is
4403         quite disasterous.
4405 2004-11-19  Max Bowsher  <maxb@ukf.net>
4407         * main.cc (main): Move option parsing code earlier - it must execute
4408         before any significant object creations, which might test options in
4409         their initialization.
4411 2004-11-19  Max Bowsher  <maxb@ukf.net>
4413         * main.cc (main): Remove some junk code - either commented out, or
4414         contained within unreachable preprocessor conditional sections.
4416 2004-11-19  Max Bowsher  <maxb@ukf.net>
4418         * install.cc (Installer::installOneSource): Avoid leaking the open
4419         file handles of every tarball that is installed.
4421 2004-11-19  Max Bowsher  <maxb@ukf.net>
4423         * package_source.h (packagesource::Canonical, packagesource::Base)
4424         (packagesource::Filename): Add "const" specification to accessor
4425         methods.
4427 2004-11-18  Max Bowsher  <maxb@ukf.net>
4429         * archive.h (archive::~archive): Define a pure virtual destructor to
4430         enforce the abstract nature of this class.
4431         * archive.cc (archive::~archive): Pure virtual destructors require an
4432         implementation! Add one.
4433         * io_stream.h (io_stream::destroyed): Remove this severely
4434         brain-damaged implementation of a weakly-enforced abstract class.
4435         The pure virtual destructor was strongly enforcing the abstract nature
4436         anyway.
4437         * io_stream.cc (io_stream::~io_stream): Empty out horribly pointless
4438         code from the pure virtual destructor.
4439         * archive_tar.cc (archive_tar::~archive_tar): Remove all
4440         reference to the removed "destroyed" member.
4441         * archive_tar_file.cc (archive_tar_file::~archive_tar_file): Ditto.
4442         * compress_bz.cc (compress_bz::~compress_bz): Ditto.
4443         * compress_gz.cc (compress_gz::~compress_gz): Ditto.
4444         * io_stream_cygfile.cc (io_stream_cygfile::~io_stream_cygfile): Ditto.
4445         * io_stream_file.cc (io_stream_file::~io_stream_file): Ditto.
4446         * io_stream_memory.cc (io_stream_memory::~io_stream_memory): Ditto.
4448 2004-11-17  Max Bowsher  <maxb@ukf.net>
4450         * mount.cc (create_mount): Fix operator precedence error introduced in
4451         first 2004-11-11 commit - warned of by gcc 3.3.3 but not 3.4.1 !
4453 2004-11-13  Max Bowsher  <maxb@ukf.net>
4455         Miscellaneous cleanup.
4457         * geturl.cc (getUrlToStream): Make static.
4458         * geturl.h (getUrlToStream): Remove declaration.
4460         * geturl.cc, geturl.h, netio.cc, netio.h, nio-ftp.cc, nio-ftp.h,
4461         nio-http.cc, nio-http.h:
4462         Remove unused "allow_ftp_auth" flag throughout.
4464 2004-11-11  Max Bowsher  <maxb@ukf.net>
4466         * libmd5-rfc: New directory, to hold code imported from the libmd5-rfc
4467         project in a clearly delineated fashion.
4468         * libmd5-rfc/README: New file.
4469         * md5.c, md5.h: Delete...
4470         * libmd5-rfc/md5.c, libmd5-rfc/md5.h: ...and replace with pristine
4471         versions from upstream (only change is restoration of upstream CVS
4472         keyword expansions).
4473         * libmd5-rfc/md5main.c: New file.
4474         * Makefile.ami (setup_SOURCES): Edit file paths.
4475         * download.cc, install.cc: Edit include paths.
4476         
4477 2004-11-11  Max Bowsher  <maxb@ukf.net>
4479         * dialog.cc (fatal): Make capable of handling a passed-in error code,
4480         as an alternative to calling GetLastError().
4481         * dialog.h (fatal): Adjust prototype as above.
4482         * mount.cc (create_mount): Use the above to correctly report errors.
4484 2004-10-28  Max Bowsher  <maxb@ukf.net>
4486         * LogFile.cc (LogFile::getFileName), splash.cc (SplashPage::Create),
4487         threebar.cc (ThreeBarProgressPage::SetBar2):
4488         Migrate from cistring and string resources
4489         to String and string literals.
4490         * localdir.cc: Remove unneeded #include of "cistring.h".
4491         * cistring.cc, cistring.h: Remove this now-redundant class.
4492         * Makefile.am: Remove mention of the above removed files.
4493         * res.rc, resource.h: Remove obsolete strings and IDs, both those
4494         obseleted by and obselete before the above changes.
4495         * res.rc: Merge the 2 adjacent STRINGTABLEs.
4497 2004-10-27  Max Bowsher  <maxb@ukf.net>
4499         * Makefile.am (setup_SOURCES): Add "RECTWrapper.h". It was missing.
4501 2004-10-25  Bas van Gompel  <cygsup-patch.buzz@bavag.tmfweb.nl>
4503         * package_source.cc (packagesource::set_canonical):
4504         Fix one-off in 'base' when ini is in same dir as package.
4506 2004-10-25  Max Bowsher  <maxb@ukf.net>
4508         * main.cc (next_dialog): Remove this legacy global variable.
4509         * download.cc (do_download_thread): Return a value instead of setting
4510         a global variable, then returning void.
4511         (do_download_reflector): Look for the next dialog code as a return
4512         value instead of a global variable.
4514 2004-10-25  Max Bowsher  <maxb@ukf.net>
4516         * port.h: Remove this redundant file - all contained definitions are
4517         duplicated in "win32.h".
4518         * Makefile.am, UserSetting.cc, UserSettings.cc, archive.cc,
4519         archive_tar.cc, archive_tar_file.cc, choose.cc, compress.cc,
4520         compress_bz.cc, compress_gz.cc, desktop.cc, find.cc, fromcwd.cc,
4521         iniparse.y, install.cc, io_stream_cygfile.cc, io_stream_file.cc,
4522         main.cc, netio.cc, site.cc, version.cc:
4523         Remove all references to "port.h".
4525 2004-10-25  Max Bowsher  <maxb@ukf.net>
4527         Fix compilation with w32api 3.1 and later.
4529         * ControlAdjuster.h, RECTWrapper.h, cistring.h, propsheet.h,
4530         window.cc, window.h: Include "win32.h" not <windows.h> directly.
4531         * win32.h (WINBASEAPI): Define to empty string.
4533 2004-09-13  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
4535         * script.cc (run): Kill stdin when running scripts.
4537 2004-09-01  Max Bowsher  <maxb@ukf.net>
4539         * Makefile.am: Oops. Unwanted keyword expansion ate the code of the
4540         previous commit. Restore the code, escaped to not look like a keyword.
4542 2004-09-01  Max Bowsher  <maxb@ukf.net>
4544         * Makefile.am: Simplify the shell incantation for getting the revision
4545         of ChangeLog from grep-and-sed to just sed.
4547 2004-08-31  Max Bowsher  <maxb@ukf.net>
4549         Attain GCC 3.4 compatibility.
4551         * PackageSpecification.h (PackageSpecification): Make the
4552         unnecessarily private copy-constructor public.
4554 2004-08-30  Max Bowsher  <maxb@ukf.net>
4556         Rework the implementation of not including -Werror for specific files,
4557         to a way that does not require hardcoding modified automake output back
4558         into its input.
4560         * Makefile.am (AM_CXXFLAGS, BASECXXFLAGS): Seperate out -Werror.
4561         (autoload.o): Drop this rule, -finline-functions is no longer required
4562         and -Werror is acceptable here now we have __attribute__ ((used)).
4563         (WARNONLY_CFLAGS, inilex.o): Drop these.
4564         (EXTRA_PROGRAMS): Add a fake "warnonly" program.
4565         (warnonly_CXXFLAGS): Set to the $(BASECXXFLAGS).
4566         (warnonly_SOURCES): Set to "inilex.cc".
4567         (EXTRA_setup_SOURCES): Set to $(warnonly_SOURCES).
4568         (setup_SOURCES): Remove "inilex.cc".
4569         (setup_LDADD): Add "warnonly-inilex.o".
4571 2004-08-30  Max Bowsher  <maxb@ukf.net>
4573         Move closer to GCC 3.4 compatibility.
4575         * IOStreamProvider.h, io_stream_cygfile.cc, io_stream_cygfile.h,
4576         io_stream_file.cc: Do not incorrectly use "enum" after it has been
4577         hidden inside a typedef.
4578         * archive.h: In "virtual func() = 0;", the 0 is a language construct,
4579         not some symbol that might evaluate to 0, and gcc 3.4 enforces this.
4580         * autoload.c (DllInfo.name): Silence warning by making const.
4581         (DLL, autoload_common): __attribute__ ((used)) is now required to
4582         prevent gcc being over-eager in it's optimization, and removing these
4583         seemingly-unused (used only from assembly) functions.
4584         Silences some warnings, too.
4585         * Makefile.am (AM_CXXFLAGS, AM_CFLAGS): The options
4586         -Wstrict-prototypes -Wmissing-prototypes do not apply to C++ and
4587         g++ 3.4 complains about them.
4589 2004-08-29  Max Bowsher  <maxb@ukf.net>
4591         * Exception.h: Reformatting, #include more, remove incorrect and
4592         less-than-useful comments.
4593         (TOPLEVEL_CATCH): New preprocessor macro.
4595         * LogFile.cc (LogFile::operator()): Throw an exception object, not a
4596         char* string.
4598         Wrap the top-level of each thread (including the main thread) in a
4599         try...catch block, in order to display a useful error message if an
4600         exception is not caught.
4601         * download.cc (do_download_reflector): Here ...
4602         * ini.cc (do_ini_thread_reflector): ... and here ...
4603         * install.cc (do_install_reflector: ... and here ...
4604         * main.cc (main): ... and here ...
4605         * postinstall.cc (do_postinstall_thread): ... and here ...
4606         * site.cc (do_download_site_info_thread): ... and here!
4608         * msg.h: Include a missing header requirement.
4609         * res.rc (IDS_UNCAUGHT_EXCEPTION, IDS_UNCAUGHT_EXCEPTION_WITH_ERRNO):
4610         New strings.
4611         * resource.h (IDS_UNCAUGHT_EXCEPTION)
4612         (IDS_UNCAUGHT_EXCEPTION_WITH_ERRNO): New IDs.
4614 2004-08-28  Max Bowsher  <maxb@ukf.net>
4616         * res.rc (IDS_WINDOW_INIT_BADMSG): New string.
4617         * resource.h (IDS_WINDOW_INIT_BADMSG): New string resource ID.
4618         * window.cc (Window::FirstWindowProcReflector): Convert an abort()
4619         into a descriptive error.
4621 2004-08-24  Max Bowsher  <maxb@ukf.net>
4623         The Doug Lee replacement malloc was no longer hooked up with the
4624         buildsystem in any way. Pruning the remaining unused file.
4626         * dlmalloc.c: Removed.
4628 2004-08-18  Max Bowsher  <maxb@ukf.net>
4630         "librsync is not wire-compatible with rsync 2.x, and is not likely
4631         to be in the future." -- librsync.sourceforge.net
4633         So, it is of no practical use to setup. Therefore, removing all
4634         rsync related files and code from setup.
4636         * rsync: Directory removed.
4637         * Makefile.am: Remove rsync support from the buildsystem.
4638         * configure.in: Ditto.
4639         * README: Since it seems vanishingly unlikely that it will ever happen,
4640             remove rsync support from the wishlist.
4641         * io_stream_rsync.cc: Remove.
4642         * io_stream_rsync.h: Remove.
4644 2004-04-25  Robert Collins  <rbtcollins@hotmail.com>
4646         * package_meta.cc (packagemeta::set_requirements): fix problem with
4647         libpcre0 not being pulled in automatically.
4649 2004-04-25  Robert Collins  <rbtcollins@hotmail.com>
4651         * IniDBBuilderPackage.cc (dumpAndList):
4652           Move out to packageversion for reuse.
4653         * package_meta.cc (packagemeta::logAllVersions): log dependencies.
4654         * package_version.cc (packageversion::depends):
4655             provide a const accessor.
4656         (dumpAndList): Moved from INIDBBuilder.cc.
4657         * package_version.h: declare new method and function.
4659 2003-12-21  Robert Collins  <rbtcollins@hotmail.com>
4661         * main.cc (main): Update to head libgetopt++ syntax.
4663 2003-11-2  Robert Collins  <rbtcollins@hotmail.com>
4665         * ControlAdjuster.h (ControlPosition::CP_MIDDLE): Rename to
4666         CP_CENTERED.
4667         * ControlAdjuster.cc: Ditto.
4669 2003-10-31  Frank Richter  <frichter@gmx.li>
4671         * localdir.cc (OnNext): When SelectDirectoryA() fails, display a
4672         message with the error returned from the system instead of just
4673         'could not change dir'. Also, offer the user to 'Retry', 'Ignore' the
4674         error or 'Abort' the directory change.
4676 2003-10-31  Frank Richter  <frichter@gmx.li>
4678         * propsheet.cc (PropSheetWndProc): Don't do child resizing if a the
4679         window gets minimized. Otherwise some glitches (e.g. wrong child
4680         sizes) occur.
4681         Added support for WM_GETMINMAXINFO. Prevents the property sheet from
4682         getting smaller than the original size.
4684 2003-11-1  Robert Collins  <rbtcollins@hotmail.com>
4686         * ControlAdjuster.h (ControlDimension): Add.
4687         (ControlAdjuster): Factor adjust functionality into ControlInfo.
4688         * ControlAdjuster.cc (ControlAdjuster::adjust): Ditto.
4689         (ControlAdjuster::ControlInfo::adjust): Ditto.
4691 2003-10-31  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
4693         * ControlAdjuster.h (ControlPosition): New enum type.
4694         (ControlInfo::horizontalPos, ControlInfo::verticalPos): New
4695         instance variables.
4696         (ControlInfo::anchorLeft, ControlInfo::anchorTop,
4697         ControlInfo::anchorRight, ControlInfo::anchorBottom): Remove.
4698         * ControlAdjuster.cc (ControlAdjuster::AdjustControls): Switch to
4699         using position specifiers instead of anchors.
4700         * choose.cc (ChooserControlsInfo): Ditto.
4701         * proppage.cc (DefaultControlsInfo): Ditto.
4702         * propsheet.cc (PropSheetControlsInfo): Ditto.
4703         * site.cc (SiteControlsInfo): Position specifiers for site
4704         selection dialog controls.
4705         * threebar.cc (ThreeBarControlsInfo): Position specifiers for
4706         progress dialog controls.
4708 2003-10-27  Ralf Habacker  <ralf.habacker@freenet.de>
4710         * main.cc (HelpOption): New instance.
4711         (main): Added help command line option handling.
4712         * localdir.cc (LocalDirOption): New instance.
4713         (LocalDirSetting::load): allow setting localdir from command line.
4715 2003-10-16  Frank Richter  <frichter@gmx.li>
4717         * ControlAdjuster.cc: New file, helper to move elements of a dialog
4718         along when the it's resized.
4719         * ControlAdjuster.h: Ditto.
4720         * Makefile.am: Add new source files.
4721         * proppage.cc (PropertyPage::DialogProc): Adjust some common
4722         controls (Cygwin icon top right, separator below) when a page is
4723         resized.
4724         (PropertyPage::PropertyPage): Dito.
4725         * propsheet.cc (IsDialog): New. Test whether a window is a dialog.
4726         Used internally by resize logic.
4727         (EnumPages): New. Used internally by resize logic: resizes the
4728         property sheet's individual pages.
4729         (PropSheetWndProc): New. Hook for the propery sheet window proc.
4730         (PropSheetProc): More style tweaks, add maximize box and thick border
4731         as well. Hook into the property sheet's window proc.
4732         (PropSheet::AdjustPageSize): New. Adjust the metrics of a single page
4733         to fit nicely into the property sheet. Part of resize logic.
4734         * res.rc (All dialogs): The top-right Cygwin icon and top separator
4735         now have IDs distinct from IDC_STATIC, so their metrics can be
4736         adjusted upon a resize. Also, all those Cygwin icons are at the exact
4737         same spot now.
4738         * choose.cc (ChooserPage::ChooserPage): Now the controls on the
4739         chooser page move/size when the page size is changed.
4740         * choose.h: Dito.
4742 2003-10-23  Jerry D. Hedden <jerry@hedden.us>
4744         * ConnectionSetting.cc (ConnectionSetting::load): Load proxysettings.
4745         (ConnectionSetting::save): Save proxy settings.
4747 2003-10-07  Robert Collins <rbtcollins@hotmail.com>
4749         * proppage.h (PropertyPage::wantsActivation): const correctness fix.
4751 2003-08-19  Max Bowsher  <maxb@ukf.net>
4753         * win32.h: Define NOMINMAX only if not already defined - because
4754         libstdc++-v3 3.3.1 defines NOMINMAX itself.
4755         
4756 2003-08-03  Max Bowsher  <maxb@ukf.net>
4758         * ChangeLog: Fix broken line-wrapping throughout. Clarify that
4759         "Ran automake" in 2003-07-26 entry was in bz2lib and zlib subdirs.
4761 2003-08-03  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
4763         * propsheet.cc (Copyright): Update copyright dates.
4764         (PropSheet::PropSheet): Remove NumPropPages initialization.
4765         (PropSheet::CreatePages): Use PropertyPages.size() instead of
4766         NumPropPages.
4767         (PropSheet::Create): Ditto.
4768         (PropSheet::AddPage): Change to use new PropertyPages std::vector<>.
4769         * propsheet.h (Copyright): Update copyright dates.
4770         (File Scope): Include <vector>.
4771         (PropSheet::PropertyPages): Change from array to vector<>.
4772         (PropSheet::NumPropPages): Remove.
4774 2003-08-02  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
4775         
4776         Changes modified by Max Bowsher  <maxb@ukf.net>
4777         * splash.cc (Copyright): Update copyright dates.
4778         (SplashPage::OnInit): Remove call to SetDlgItemFont().  Now handled in
4779         base class.
4780         * proppage.h (PropertyPage::setTitleFont): Declare.
4781         * proppage.cc (Copyright): Update copyright dates.
4782         (PropertyPage::DialogProc WM_INITDIALOG): Move all font setting code,
4783         including that from splash.cc into new function...
4784         (PropertyPage::setTitleFont): Create, using moved code. Change font
4785         "MS Sans Serif" to "MS Shell Dlg" in line with recent res.rc change.
4786         Set font for IDC_STATIC_WELCOME_TITLE here, to allow easy re-use of
4787         style for future "Finished" page.
4789 2003-08-02  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
4791         * propsheet.cc: Include "resource.h".
4792         (PropSheet::Create): Add the Cygwin icon in the left of the title bar.
4794 2003-08-01  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
4796         * proppage.cc (PropertyPage::FirstDialogProcReflector): Modify comment.
4798 2003-08-01  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
4800         * proppage.h (Copyright): Update copyright dates.
4801         (PropertyPage): Document OnNext and OnBack.
4803 2003-07-31  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
4805         * proppage.cc (PropertyPage::Create): Use more self-documenting
4806         MAKEINTRESOURCE() instead of cast to LPCSTR.
4808 2003-07-31  Robert Collins  <rbtcollins@hotmail.com>
4810         * README: Mark completed items complete.
4812 2003-07-31  Pierre Humblet  <pierre.humblet@ieee.org>
4814         * main.cc (set_default_sec): Set token owner from token user.
4815         Always try to set the token primary group to Users or Admins.
4817 2003-07-30  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
4819         * String++.h (String::replace): New instance functions.
4820         * String++.cc (String::replace): Implement.
4821         * filemanip.cc (backslash): Change to use String::replace.
4822         * desktop.cc (make_cygwin_bat): Escape '%' in path.
4824 2003-07-30  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
4826         * String++.h (TOSTRING): New macro.
4827         * UserSettings.cc (UserSettings::deRegisterSetting): Fix
4828         erroneous __LINE__/__FILE__ usage.
4829         * download.cc (validateCachedPackage, check_for_cached): Ditto.
4830         * geturl.cc (getUrlToStream): Ditto.
4831         * install.cc (md5_one): Ditto.
4833 2003-07-30  Max Bowsher  <maxb@ukf.net>
4835         * ini.cc (do_ini_thread): Return bool.
4836         (do_ini_thread_reflector): Put returned bool in lParam.
4837         * threebar.cc (WM_APP_SETUP_INI_DOWNLOAD_COMPLETE): Rework for new
4838         meaning of lParam. Replace erroneous use of do_fromcwd with
4839         SetActivePageByID (IDD_SOURCE).
4841 2003-07-30  Robert Collins  <rbtcollins@hotmail.com>
4843         * ConnectionSetting.cc: New file, persist connection type selection.
4844         * ConnectionSetting.h: Ditto.
4845         * net.cc: Hold a ConnectionSetting instance to trigger the logic.
4846         (NetPage::OnInit): Don't force net_method to any value.
4847         * Makefile.am: Add new source files.
4848         
4849 2003-07-30  Robert Collins  <rbtcollins@hotmail.com>
4851         * SourceSetting.cc: New file, persist source selection.
4852         * SourceSetting.h: Ditto.
4853         * source.cc: Hold a Source setting instance to trigger the logic.
4854         * Makefile.am: Add new source files.
4856 2003-07-30  Robert Collins  <rbtcollins@hotmail.com>
4858         * UserSettings.h (UserSettings::settingFileForLoad): Extracted method
4859         from LocalDirSetting::load().
4860         * UserSettings.cc (UserSettings::settingFileForLoad): Ditto.
4861         * UserSettings.h (UserSettings::settingFileForSave): Extracted method
4862         from LocalDirSetting::save().
4863         * UserSettings.cc (UserSettings::settingFileForSave): Ditto.
4864         * localdir.cc (LocalDirSetting::load): Extract location logic to
4865         UserSettings.
4866         (LocalDirSetting::save): Extract location logic to UserSettings.
4867         * site.cc (SiteSetting::getSavedSites): Use
4868         UserSettings::settingFileForLoad.
4869         (SiteSetting::save): Use UserSettings::settingFileForSave.
4871 2003-07-30  Robert Collins  <rbtcollins@hotmail.com>
4873         * PickView.cc: Adjust ::GetClientRect(..) to the inherited one
4874         throughout.
4876 2003-07-29  Max Bowsher  <maxb@ukf.net>
4878         Based on a patch by Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>.
4879         * AntiVirus.cc (AntiVirusPage::wantsActivation): Define.
4880         * AntiVirus.h (AntiVirusPage::wantsActivation): Declare.
4881         * localdir.cc (LocalDirPage::OnBack): Remove logic subsumed by
4882         RootPage::wantsActivation.
4883         * proppage.cc (PropertyPage::DialogProc): Call wantsActivation(),
4884         and skip to next page in sequence if activation is refused.
4885         * proppage.h (PropertyPage::wantsActivation): Default implementation.
4886         * root.cc (RootPage::wantsActivation): Define.
4887         * root.h (RootPage::wantsActivation): Declare.
4888         * source.cc: Don't include "AntiVirus.h".
4889         (SourcePage::OnNext): Remove logic subsumed by
4890         RootPage::wantsActivation.
4891         (SourcePage::OnBack): Remove logic subsumed by
4892         AntiVirusPage::wantsActivation.
4893         * splash.cc: Don't include "AntiVirus.h" or "dialog.h".
4894         (SplashPage::OnNext): Remove - subsumed by
4895         AntiVirusPage::wantsActivation.
4896         * splash.h (SplashPage::OnNext): Remove declaration.
4898 2003-07-29  Robert Collins  <rbtcollins@hotmail.com>
4900         * PickView.h (PickView::refresh): New method.
4901         * PickView.cc (PickView::refresh): Extracted from various
4902         ChooserPage callers.
4903         * choose.cc: Use PickView::refresh wherever possible.
4905 2003-07-29  Robert Collins  <rbtcollins@hotmail.com>
4907         * choose.h (ChooserPage::createListView): Remove last parameter.
4908         (ChooserPage::getDefaultListViewSize): Extracted method.
4909         * choose.cc (ChooserPage::createListView): Remove last parameter.
4910         (ChooserPage::getDefaultListViewSize): Extracted method.
4912 2003-07-29  Robert Collins  <rbtcollins@hotmail.com>
4914         * choose.cc (ChooserPage::createListView): Remove unneeded
4915         parameter.
4916         * choose.h: Ditto.
4918 2003-07-29  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
4920         * dialog.h (do_fromcwd): Change function declaration.
4921         * fromcwd.cc (do_fromcwd): Change return type to bool.  Eliminate
4922         use of next_dialog, return true or false instead.
4923         * localdir.cc (LocalDirPage::OnNext): Use do_fromcwd()'s return
4924         value instead of next_dialog.
4926 2003-07-29  Robert Collins  <rbtcollins@hotmail.com>
4928         * package_db.h (packagedb::fillMissingCategory): Move from ChooserPage.
4929         * choose.h (ChooserPage::fillMissingCategory): Delete.
4930         * package_db.cc (packagedb::fillMissingCategory): Move from ChooserPage.
4931         * choose.cc (ChooserPage::fillMissingCategory): Delete and adjust
4932         callers.
4934 2003-07-29  Robert Collins  <rbtcollins@hotmail.com>
4936         * PickView.h (CATEGORY_EXPANDED): Move from choose.h
4937         (CATEGORY_COLLAPSED): Move from choose.cc.
4938         (PickView::setViewMode): Move from ChooserPage.
4939         * choose.h (CATEGORY_EXPANDED): Delete.
4940         (CATEGORY_COLLAPSED): Delete.
4941         (ChooserPage::setViewMode): Delete.
4942         * PickView.cc (PickView::setViewMode): Move from ChooserPage.
4943         * chooser.cc (ChooserPage::setViewMode): Delete, and adjust callers
4944         throughout.
4946 2003-07-28  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
4948         * AntiVirus.cc (AntiVirusPage::OnNext): Do not explicitly specify the
4949         page to display next, since it follows in the default page ordering
4950         anyway.
4952 2003-07-28  Max Bowsher  <maxb@ukf.net>
4954         * dialog.h: (NEXT): Remove obsolete macro.
4955         * site.cc (save_dialog): Remove use of NEXT(), and non-functional
4956         unnecessary error handler.
4958 2003-07-28  Robert Collins  <rbtcollins@hotmail.com>
4960         * package_meta.h (packagemeta::addToCategoryAll): Declare.
4961         * package_meta.cc (packagemeta::addToCategoryAll): New method,
4962         separated to allow clear iteration.
4963         * choose.cc (ChooserPage::fillMissingCategory): BUGFIX: "all" is
4964         meant to be added unconditionally.
4965         
4966 2003-07-27  Robert Collins  <rbtcollins@hotmail.com>
4968         * Generic.h: New file, home for generic programming tools.
4969         (visit_if): Move here from package_meta.cc.
4970         Adjust to be fully parameterised.
4971         * package_meta.h (packagemeta::hasNoCategories): Query for generic
4972         programming.
4973         (packagemeta::setDefaultCategories): set categories for packages
4974         with none.
4975         * package_meta.cc: Move visit_if out. Adjust users for
4976         full paramterised operation.
4977         (packagemeta::hasNoCategories): Implement.
4978         (packagemeta::setDefaultCategories): Implement.
4979         * choose.cc (ChooserPage::fillMissingCategory): Use visit_if to
4980         reduce duplicate code.
4981         (ChooserPage::setExistence): Delete.
4982         * choose.h (ChooserPage::setExistence): Rename to
4983         packagedb::setExistence.
4984         * package_db.h (packagedb::setExistence): Declare.
4985         * package_db.cc (packagedb::setExistence): Copy from choose.cc
4986         
4987 2003-07-27  Robert Collins  <rbtcollins@hotmail.com>
4989         * localdir.h (LocalDirPage::OnInit): Remove.
4990         * localdir.cc (LocalDirPage::OnInit): Move to LocalDirSetting
4991         ::load().
4992         (LocalDirSetting::load): Copied from LocalDirPage::OnInit.
4993         * site.h (SitePage::OnInit): Remove.
4994         (SitePage::getSavedSites): New member, replaces get_saved_sites.
4995         (SitePage::registerSavedSite): New member, replaces
4996         register_saved_site.
4997         * site.cc (SitePage::OnInit): Move to SiteSetting::load().
4998         (SiteSetting::load): Copied from SitePage::OnInit.
4999         (SitePage::getSavedSites): Renamed from get_saved_sites.
5000         (SitePage::registerSavedSite): Renamed from register_saved_site.
5001         (do_download_site_info_thread): Don't look at the list size for
5002         determining if the download was successful.
5003         
5004 2003-07-27  Robert Collins  <rbtcollins@hotmail.com>
5006         * choose.h (ChooserPage::setViewMode): Remove HWND from
5007         signature.
5008         (ChooserPage::defaultTrust): Ditto.
5009         Move to PickView.
5010         (ChooserPage::ifChecked): Use Window helper function
5011         IsButtonChecked.
5012         * choose.cc (ChooserPage::setViewMode): Use chooser->GetHWND()
5013         throughout.
5014         Update all callers with new signature.
5015         (ChooserPage::defaultTrust): Ditto.
5016         Move to PickView.
5017         * PickView.h (PickView::defaultTrust): Declare.
5018         * PickView.cc (PickView::defaultTrust): Copy from chooser.cc.
5020 2003-07-27  Robert Collins  <rbtcollins@hotmail.com>
5022         * PickView.h (PickView::lv): Eliminate.
5023         * PickView.cc (PickView::init): Replace use of lv with
5024         GetHWND().
5025         (PickView::list_click): Ditto.
5026         * choose.h (ChooserPage::lv): Eliminate.
5027         * choose.cc: Replace lv with chooser->GetHWND()
5028         throughout.
5030 2003-07-27  Robert Collins  <rbtcollins@hotmail.com>
5032         * PickView.h (PickView::chooser): Eliminate.
5033         (PickView::list_vscroll): Make non-static.
5034         (PickView::list_hscroll): Ditto.
5035         (PickView::list_click): Ditto.
5036         (PickView::paint): Ditto.
5037         * PickView.cc (PickView::list_vscroll): Eliminate use
5038         of PickView::chooser.
5039         (PickView::list_hscroll): Ditto.
5040         (PickView::list_click): Ditto.
5041         (PickView::paint): Ditto.
5042         * choose.cc (Chooser::createListView): Eliminate use
5043         of PickView::chooser.
5044         
5045 2003-07-27  Robert Collins  <rbtcollins@hotmail.com>
5047         * PickView.h (PickView): Inherit from Window.
5048         (PickView::RegisterWindows): Move from ChooserPage.
5049         (PickView::listview_proc): Likewise.
5050         (PickView::paint): Ditto.
5051         (PickView::list_click): Ditto.
5052         (PickView::list_hscroll): Ditto.
5053         (PickView::list_vscroll): Ditto.
5054         (PickView::lv): Ditto.
5055         (PickView::chooser): Ditto.     
5056         (PickView::Create): Override Windows::Create as we migrate.
5057         (PickView::registerWindowClass): Renamed RegisterWindows.
5058         (PickView::WindowClassAtom): Prevent double registration.
5059         (PickView::init): Declare.
5060         * PickView.cc: Adjust for new inheritance.
5061         (PickView::RegisterWindows): Move from ChooserPage.
5062         (PickView::listview_proc): Likewise.
5063         (PickView::paint): Ditto.
5064         (PickView::list_click): Ditto.
5065         (PickView::list_hscroll): Ditto.
5066         (PickView::list_vscroll): Ditto.
5067         (PickView::lv): Ditto.
5068         (PickView::chooser): Ditto.     
5069         (PickView::Create): Introduce stub.
5070         (PickView::RegisterWindows): Rename
5071         (PickView::init): Extracted from constructor to allow
5072         reordering.
5073         * chooser.h (ChooserPage::registerWindows): Rename to
5074         PickView::RegisterWindows.
5075         (ChooserPage::listview_proc): Likewise.
5076         (ChooserPage::paint): Ditto.
5077         (ChooserPage::list_click): Ditto.
5078         (ChooserPage::list_hscroll): Ditto.
5079         (ChooserPage::list_vscroll): Ditto.
5080         (ChooserPage::lv): Duplicate into PickView, observe
5081         as non-static.
5082         (ChooserPage::chooser): Ditto.
5083         * chooser.cc (ChooserPage::registerWindows): Delete.
5084         (ChooserPage::listview_proc): Ditto.
5085         (ChooserPage::paint): Ditto.
5086         (ChooserPage::list_click): Ditto.
5087         (ChooserPage::list_hscroll): Ditto.
5088         (ChooserPage::list_vscroll): Ditto.
5089         (ChooserPage::createListView): Create() on PickView.
5090         * window.h (Window::RegisterWindowClass): Make virtual
5091         to allow Create to become a Template Method, and rename
5092         to registerWindowClass as it's not static.
5093         * window.cc (Window::registerWindowClass): Ditto.
5094         (Window::FirstWindowProcReflector): BUGFIX: Set window
5095         handle to prevent races with the window procedure.
5097 2003-07-27  Robert Collins  <rbtcollins@hotmail.com>
5099         * choose.cc (set_view_mode): Rename to ChooserPage::setViewMode.
5100         (default_trust): Rename to ChooserPage::defaultTrust.
5101         (fill_missing_category): Rename to ChooserPage::fillMissingCategory.
5102         (set_existence): Rename to ChooserPage::setExistence.
5103         (register_windows): Rename to ChooserPage::registerWindows.
5104         (listview_proc): Rename to ChooserPage::listview_proc.
5105         (paint): Rename to ChooserPage::paint.
5106         (list_click): Rename to ChooserPage::list_click.
5107         (list_hscroll): Rename to ChooserPage::list_hscroll.
5108         (list_vscroll): Rename to ChooserPage::list_vscroll.
5109         (lv): Rename to ChooserPage::lv.
5110         (chooser): Rename to ChooserPage::chooser.
5111         * choose.h (ChooserPage::setViewMode): Declare.
5112         (ChooserPage::defaultTrust): Declare.
5113         (ChooserPage::fillMissingCategory): Declare.
5114         (ChooserPage::setExistence): Declare.
5115         (ChooserPage::registerWindows): Declare.
5116         (ChooserPage::listview_proc): Declare.
5117         (ChooserPage::paint): Declare.
5118         (ChooserPage::list_click): Declare.
5119         (ChooserPage::list_hscroll): Declare.   
5120         (ChooserPage::list_vscroll): Declare.
5121         (ChooserPage::lv): Declare.
5122         (ChooserPage::chooser): Declare.
5123         
5124 2003-07-27  Robert Collins  <rbtcollins@hotmail.com>
5126         * choose.cc (create_listview): Use for_each instead of explicit
5127         iteration.
5128         (create_listview): Rename to ChooserPage::createListview.
5129         * package_meta.h (packagemeta::set_requirements): Explicitly separate
5130         the 1 and 2 parameter versions.
5131         
5132 2003-07-27  Robert Collins  <rbtcollins@hotmail.com>
5134         * String++.h (String::operator !=): Declare for char * and String.
5135         * String++.cc (String::operator !=): Implement.
5136         * package_meta.cc(StringConcatenator): Move above all users.
5137         (_visit_if): Predicate support for visitors.
5138         (packagemeta::getReadableCategoryList): Refactor to use
5139         StringConcatenator with a predicate.
5140         * choose.h: Remove unneeded c++ guards.
5142 2003-07-26  Robert Collins  <rbtcollins@hotmail.com>
5144         * choose.cc (scan_downloaded_files): Rename to
5145         packagemeta::ScanDownloadedFiles.
5146         (scanAVersion): Rename to packageversion::scan.
5147         (GetParentRect): Rename to ChooserPage::getParentRect.
5148         * choose.h (ChooserPage::getParentRect): Declare.
5149         * package_meta.h (packagemeta::ScanDownloadedFiles): Declare.
5150         * package_version.h (packageversion::scan): Declare.
5151         * package_version.cc (packageversion::scan): Move from choose.cc
5152         * package_meta.cc (packagemeta::ScanDownloadedFiles): Move from
5153         choose.cc
5155 2003-07-26  Robert Collins  <rbtcollins@hotmail.com>
5157         * choose.cc (ChooserPage::OnNext): log before starting activity threads.
5158         (ChooserPage::OnInit): Remove temporary variable frame.
5159         (ChooserPage::setPrompt): Extract method from OnInit.
5160         (choose_inst_text): Remove unused variable.
5161         * choose.h(ChooserPage::setPrompt): Declare
5162         * res.rc (IDD_CHOOSE): Bugfix: the chooser was setting a non-present
5163         caption.
5165 2003-07-26  Robert Collins  <rbtcollins@hotmail.com>
5167         Remove package specific code from choose.cc.
5168         Update copyrights where appropriate.
5169         * choose.cc(ChooserPage::OnNext): Extract logging to
5170         packagemeta::logSelectionStatus.
5171         * package_meta.cc(packagemeta::logSelectionStatus): Extract from
5172         ChooserPage::OnNext.
5173         (StringConcatenator): helper for logSelectionStatus.
5174         (action_caption): Make const.
5175         * package_meta.h(packagemeta): Declare logSelectionStatus.
5176         (packagemeta::action_caption): Make const.
5177         * package_version.cc(packageversion::sourcePackage): Make const.
5178         * package_version.h(packageversion::sourcePackage): Make const.
5179         
5180 2003-07-26  Robert Collins  <rbtcollins@hotmail.com>
5182         * choose.cc: Update copyright.
5183         (ChooserPage::keepClicked): Extracted from OnMessageCmd.
5184         (ChooserPage::changeTrust): Ditto.
5185         * choose.h (ChooserPage): Declare keepClicked and changeTrust.
5186         (ChooserPage::ifChecked): Extracted from OnMessageCmd.
5187         * package_meta.h (SetRequirement): Adapter for visiting package
5188         collections.
5190 2003-07-26  Max Bowsher  <maxb@ukf.net>
5192         * tests/.cvsignore: New file, listing Makefile.in.
5194 2003-07-26  Robert Collins  <rbtcollins@hotmail.com>
5196         Save used local cache dir from initial run of setup, so the user doesn't
5197         need to retype it.
5198         * localdir.h (LocalDirSetting): UserSetting class for the local cache
5199         dir.
5200         * localdir.cc (LocalDirSetting::save): Replace save_local_dir, and
5201         update callers.
5203 2003-07-26  Robert Collins  <rbtcollins@hotmail.com>
5205         Save used site from initial run of setup, so the user doesn't need to
5206         retype it.
5207         * main.cc (main): Load and save all user settings.
5208         * site.cc (SiteSetting::save): Migrate logic from save_site_url.
5209         (SitePage::OnNext): Use ChosenSites.save() to remove uneeded
5210         save_site_url call.
5211         (save_site_url): Delete.
5212         * site.h (save_site_url): Remove declaration.
5213         * .cvsignore: Update autoconf generated files.
5215 2003-07-26  Robert Collins  <rbtcollins@hotmail.com>
5217         * tests/Makefile.am: Driver for test suite.
5218         * tests/UserSettingTest.cc: Test UserSetting interface.
5219         * tests/UserSettingsTest.cc: Test UserSettings interface.
5220         * Makefile.am: Add the tests dir to recurse into.
5221         * configure.in: Ditto.
5222         * UserSetting.h: Add load and save methods to allow global
5223         serialisation.
5224         Add explicit copy and assignment operators to prevent synthetics.
5225         Make the constructor protected to prevent direct instantiation.
5226         * UserSettings.h (UserSettings::loadAllSettings): New method.
5227         (UserSettings::savedAllSettings): New method.
5228         * UserSettings.cc: Implement new methods.
5229         * site.cc: Implement stubs for new required UserSetting methods.
5230         * site.h (ChosenSite): Ditto.
5231         * bz2lib/: Ran automake.
5232         * zlib/: Ran automake.
5233         
5234 2003-07-23  Max Bowsher  <maxb@ukf.net>
5236         * desktop.cc (DesktopSetupPage::OnBack): Remove obsolete use of NEXT().
5237         * root.cc (RootPage::OnNext): Ditto.
5238         (RootPage::OnBack): Ditto.
5239         * install.cc (do_install_thread): Remove obsolete use of next_dialog.
5240         * main.cc (main): Ditto.
5241         * postinstall.cc (do_postinstall_thread): Ditto.
5242         
5243 2003-07-23  Max Bowsher  <maxb@ukf.net>
5245         * dialog.h (do_choose, do_desktop, do_local_dir, do_net, do_other)
5246         (do_root, do_site, do_source, do_splash): Remove declarations, since
5247         these functions no longer exist.
5249 2003-07-23  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
5251         * choose.cc (initialized): Remove obsolete file scope variable.
5253 2003-07-18  Max Bowsher  <maxb@ukf.net>
5255         * res.rc: Make caption of every dialog page begin with "Cygwin Setup".
5256         This aids recognition when minimized.
5257         Prompted by Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>.
5259 2003-07-10  Jeremy White  <jwhite@codeweavers.com>
5261         * mount.cc, root.cc, site.cc:  Make StringOptions required,
5262         thereby making --longopt <parm> behave as a newbie would expect.
5264 2003-07-08  Max Bowsher  <maxb@ukf.net>
5266         * LogFile.h, cistring.h, dialog.h, diskfull.h, filemanip.h, geturl.h,
5267         hash.h, log.h, mkdir.h, mklink2.h, mount.h, msg.h, netio.h, nio-file.h,
5268         nio-ftp.h, nio-http.h, nio-ie5.h, port.h, simpsock.h, state.h,
5269         version.h: Add inclusion guard.
5270         * root.h: Standardize naming of inclusion guard.
5272 2003-06-23  Max Bowsher  <maxb@ukf.net>
5274         * AntiVirus.h, Exception.h, FilterVisitor.h, FindVisitor.h,
5275         IOStreamProvider.h, IniDBBuilder.h, IniDBBuilderPackage.h,
5276         IniParseFeedback.h, IniParseFindVisitor.h, LogSingleton.h, MD5++.h,
5277         PackageSpecification.h, PackageTrust.h, PickCategoryLine.h, PickLine.h,
5278         PickPackageLine.h, PickView.h, RECTWrapper.h, ScanFindVisitor.h,
5279         String++.h, UserSetting.h, UserSettings.h, archive.h, archive_tar.h,
5280         category.h, choose.h, compress.h, compress_bz.h, compress_gz.h,
5281         cygpackage.h, desktop.h, download.h, find.h, ini.h, io_stream.h,
5282         io_stream_cygfile.h, io_stream_file.h, io_stream_memory.h,
5283         io_stream_rsync.h, localdir.h, net.h, package_db.h, package_meta.h,
5284         package_source.h, package_version.h, proppage.h, propsheet.h, script.h,
5285         site.h, source.h, splash.h, threebar.h, win32.h, window.h:
5286         Standardize naming and placement of inclusion guards.
5288 2003-06-22  Benjamin Riefenstahl  <Benjamin.Riefenstahl@epost.de>
5290         * res.rc (all dialogs): Change font from "MS Sans Serif" to
5291         "MS Shell Dlg".
5293 2003-06-22  Max Bowsher  <maxb@ukf.net>
5295         * Makefile.am: Clarify comment.
5296         Derive AM_CFLAGS from AM_CXXFLAGS, rather than the other way around.
5297         (AM_CXXFLAGS): Remove -Wmissing-declarations - it is a C-only warning.
5298         (AM_CFLAGS): Add -Winline, and -Wmissing-declarations.
5300 2003-06-22  Max Bowsher  <maxb@ukf.net>
5302         * rfc1738.cc (rfc1738_do_escape): Eliminate redundant conditional.
5304 2003-06-05  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
5306         * window.h (SETUP_WINDOW_H): Rename multi-include guard.
5307         (Copyright): Update.
5308         (RECTWrapper): New forward declaration.
5309         (Window::Create): Move.
5310         (Window::MoveWindow): New overload declaration.
5311         * window.cc: (RECTWrapper.h) Include.
5312         (Copyright): Update.
5313         (Window::FirstWindowProcReflector): Use reinterpret_cast<> instead
5314         of C-style casts.
5315         (Window::MoveWindow): New overload.
5317 2003-05-31  Max Bowsher  <maxb@ukf.net>
5319         * res.rc: Resize title controls to fully fill available width.
5321 2003-05-07  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
5323         * RECTWrapper.h: New file.
5325 2003-04-12  Robert Collins  <rbtcollins@hotmail.com>
5327         * script.cc (Script::extension): Extract method from Script::run.
5328         (Script::run): Extract extension generation to Script::extension.
5329         * script.h (Script::extension): Declare.
5331 2003-04-12  Robert Collins  <rbtcollins@hotmail.com>
5333         * script.cc (run_script): Remove.
5334         (try_run_script): Inline method run_script.
5335         * script.h (run_script): Remove.
5337 2003-04-12  Robert Collins  <rbtcollins@hotmail.com>
5339         * postinstall.cc (RunScript::operator()): Use new run syntax.
5340         * script.h (Script::run): Eliminate to_log parameter.
5341         * script.cc (Script::run): Ditto.
5342         (run_script): Use new run syntax.
5344 2003-04-12  Robert Collins  <rbtcollins@hotmail.com>
5346         * script.cc (Script::run): Eliminate temp variable 'f2'.
5347         Rename temp variable 'f2' to 'windowsName' for increased clarity.
5349 2003-04-12  Robert Collins  <rbtcollins@hotmail.com>
5351         * script.cc (Script::run): Eliminate temp variable 'fname'.
5353 2003-04-12  Robert Collins  <rbtcollins@hotmail.com>
5355         * script.cc (Script::run): Eliminate temp variable 'dir'.
5357 2003-04-12  Robert Collins  <rbtcollins@hotmail.com>
5359         * script.cc (run_script): Always pass TRUE to Script::run.
5360         * script.h (run_script): Remove optional to_log parameter.
5362 2003-04-12  Robert Collins  <rbtcollins@hotmail.com>
5364         * script.cc (run_script): Move functionality into Script.
5365         (Script::run): Absorb run_script.
5367 2003-04-12  Robert Collins  <rbtcollins@hotmail.com>
5369         * PickCategoryLine.cc (PickCategoryLine::click): Tell packagemeta we
5370         are about to perform a visit.
5371         * PickPackageLine.cc (PickPackageLine::click): Tell packagemeta we
5372         are about to perform a visit.
5373         * package_db.cc (packagedb::markUnVisited): Convenience wrapper -
5374         mark all packages as unvisited.
5375         * package_db.h (packagedb::markUnVisited): Declare.
5376         * package_meta.cc (packagemeta::PrepareForVisit): New static method
5377         to prepare for a loop-free visit.
5378         (packagemeta::packagemeta): Adjust for new member.
5379         (packagemeta::set_requirements): Only visit a node once.
5380         (packagemeta::visited): Get and Set methods for new member visited_.
5381         * package_meta.h (packagemeta::PrepareForVisit): Declare.
5382         (packagemeta::visited): Declare.
5383         (packagemeta::visited_): Declare.
5385 2003-04-07  Max Bowsher  <maxb@ukf.net>
5387         * download.cc: Add command line option to suppress MD5 checks.
5388         (validateCachedPackage): Test option and possibly skip.
5390 2003-04-02  Robert Collins  <rbtcollins@hotmail.com>
5392         Merge in setup-200303-troubleshooting fixes.
5394 2003-04-02  Robert Collins  <rbtcollins@hotmail.com>
5396         * main.cc (NTSecurity::setDefaultDACL): Reinstate commented code.
5397         (NTSecurity::setDefaultSecurity): Ditto.
5399 2003-04-02  Robert Collins  <rbtcollins@hotmail.com>
5401         * main.cc (NTSecurity::setDefaultDACL): Use MS calculations for ACL
5402         buffer sizing.
5403         
5404 2003-04-02  Robert Collins  <rbtcollins@hotmail.com>
5406         * main.cc (NTSecurity::setDefaultDACL): Sanity check memory allocation.
5407         
5408 2003-04-02  Robert Collins  <rbtcollins@hotmail.com>
5410         * main.cc (NTSecurity::setDefaultDACL): Adjust commented code for
5411         auto_ptr use.
5412         
5413 2003-04-02  Robert Collins  <rbtcollins@hotmail.com>
5415         * main.cc (NTSecurity::NoteFailedAPI): Helper function.
5416         Use throughout NTSecurity routines.
5417         (NTSecurity::setDefaultDACL): Use dynamic memory for ACL storage.
5418         
5419 2003-04-02  Robert Collins  <rbtcollins@hotmail.com>
5421         * main.cc (NTSecurity::setDefaultDACL): Disable ~ 50% of remaining
5422         active code.
5424 2003-04-02  Robert Collins  <rbtcollins@hotmail.com>
5426         * main.cc (NTSecurity::GroupInfo): Extract group query code.
5427         (NTSecurity::setDefaultDACL): Disable ~ 50% of code.
5428         
5429 2003-04-02  Robert Collins  <rbtcollins@hotmail.com>
5431         * main.cc (NTSecurity::setDefaultSecurity): Disable ~ 50% of security
5432         code.
5434 2003-04-01  Robert Collins  <rbtcollins@hotmail.com>
5436         * main.cc (NTSecurity::setDefaultSecurity): Remove double declaration of
5437         sz. User TokenGroupCollection to abstract token searching logic,
5438         eliminate isadmin and isuser temporary variables.
5439         (TokenGroupCollection): New class for querying token group information.
5440         
5441 2003-04-01  Robert Collins  <rbtcollins@hotmail.com>
5443         * main.cc (NTSecurity::setDefaultSecurity): Extract esid initialisation.
5444         Move local variables to just before first use.
5445         SetTokenInformationFailures where being handled inconsistently.
5446         Remove assignments from if statements.
5447         (NTSecurity::esid): Rename to everyOneSID.
5448         (NTSecurity::initialiseEveryOneSID): new method.
5449         (NTSecurity::setDefaultDACL): Extract method for default DACL logic.
5451 2003-04-01  Robert Collins  <rbtcollins@hotmail.com>
5453         * main.cc (SIDWrapper): Manage SID memory.
5454         (HANDLEWrapper): Likewise for HANDLES.
5455         (NTSecurity): Worker class for set_default_sec().
5456         (set_default_sec): Move body into NTSecurity::setDefaultSecurity().
5457         (NTSecurity::setDefaultSecurity): Eliminate goto out: via memory
5458         managing objects.
5460 2003-04-01  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
5462         * cygwin.ico:  Added two new resolutions, 64x64 and 72x72.
5464 2003-03-29  Robert Collins  <rbtcollins@hotmail.com>
5466         * GUIDELINES: New file documenting code guidelines.
5468 2003-03-26  Max Bowsher  <maxb@ukf.net>
5470         * .cvsignore: Add cfgaux.
5472 2003-03-26  Robert Collins  <rbtcollins@hotmail.com>
5474         * package_version.cc (_defaultversion::accessible): Override and make
5475         always false.
5476         (_packageversion::accessible): Fix a couple of logic bugs resulting in
5477         incorrect trues.
5478         * package_version.h (_packageversion::accessible): Make virtual.
5480 2003-03-25  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
5482         * threebar.h (WM_APP_START_POSTINSTALL): New message.
5483         (WM_APP_POSTINSTALL_THREAD_COMPLETE): New message.
5484         * threebar.cc (ThreeBarProgressPage::OnMessageApp):
5485         Add handling for WM_APP_START_POSTINSTALL and
5486         WM_APP_POSTINSTALL_THREAD_COMPLETE.
5487         * install.cc (do_install_thread): Set next_dialog to
5488         IDD_S_POSTINSTALL.
5489         * desktop.cc (DesktopSetupPage::OnFinish): Move the
5490         do_postinstall call to ThreeBarProgressPage::OnMessageApp.
5491         * script.h (Script::fullName): New member function.
5492         (Script::run): New member function.
5493         (Script::ETCPostinstall): New static member constant.
5494         * script.cc (Script::fullName): Implement.
5495         (Script::run): Implement.
5496         (Script::ETCPostinstall): Define.
5497         (Script::isAScript): Use ETCPostinstall instead of a
5498         hardcoded string constant.
5499         (run): Enable "#if 0"'d code.
5500         * postinstall.cc (Progress): New extern variable.
5501         (RunFindVisitor::visitFile): Add script to vector
5502         instead of running.
5503         (RunFindVisitor::_scripts): New member variable.
5504         (RunScript): New helper class for use in for_each.
5505         (do_postinstall_thread): Rename do_postinstall to.  Add
5506         Progress bar and text setting.  Add package count.
5507         (do_postinstall_reflector): New static function.
5508         (do_postinstall): Rename to do_postinstall_thread.
5509         Create a thread instead.
5511 2003-03-18  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
5513         * script.cc (run): Add file_out parameter.
5514         Redirect output of subprocess to file, creating the
5515         path if necessary.  Minimize the script window.
5516         (run_script): Add optional to_log boolean parameter.
5517         If to_log, redirect output to temporary file and then
5518         import it into LOG_BABBLE.
5519         (OutputLog): New helper class.
5520         (operator<<): New operation on OutputLog.
5521         * script.h (run_script): Add optional to_log parameter.
5522         * postinstall.cc (RunFindVisitor::visitFile): Instruct
5523         run_script() to log script output.
5524         (do_postinstall): Ditto.
5526 2003-03-20  Robert Collins  <rbtcollins@hotmail.com>
5528         * package_meta.cc (packagemeta::set_action): The logic
5529         test for the default action was reversed.
5531 2003-03-18  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
5533         * postinstall.cc (do_postinstall): Filter out '*.done'.
5534         * FilterVisitor.h: New header file.  Declare the
5535         FilterVisitor, Filter, and ExcludeNameFilter classes.
5536         * FilterVisitor.cc: New file.  Implement FilterVisitor,
5537         Filter, and ExcludeNameFilter.
5538         * String++.h (String::matches): New instance function.
5539         * String++.cc (String::matches): Implement.
5540         (strmatch) Import and adapt for <buf,len> strings.
5541         * Makefile.am (setup_SOURCES): Add FilterVisitor.cc and
5542         FilterVisitor.h to value.
5544 2002-03-18  Max Bowsher  <maxb@ukf.net>
5546         * LogFile.cc (LogFile::exit): Use CRT exit() instead of ExitProcess().
5547         Use passed exit_code even if been_here.
5548         Remove incorrect _CYGWIN_ preprocessor conditional.
5550 2003-03-16  Robert Collins  <rbtcollins@hotmail.com>
5552         * package_db.h (PackageDBConnectedIterator): Typedef
5553         for connected loop detection collection iterator.
5554         * package_db.cc (ConnectedLoopDetector): An
5555         implementation of R.E. Tarjans strongly connected
5556         set visitor algorithm.
5557         * postinstall.cc (do_postinstall): Use the new iterator
5558         for visiting postinstall scripts.
5560 2003-03-16  Robert Collins  <rbtcollins@hotmail.com>
5562         * install.cc: Introduce Installer class.
5563         (init_dialog): Rename to Installer::initDialog.
5564         (progress): Rename to Installer::progress.
5565         (standard_dirs): Rename to Installer::StandardDirs.
5566         (uninstall_one): Rename to Installer::uninstallOne.
5567         (replace_one): Rename to Installer::replaceOne.
5568         (log_ror_failure): Rename to
5569         Installer::replaceOnRebootFailed.
5570         (log_ror_success): Rename to
5571         Installer::replaceOnRebootSucceeded.
5572         (install_one_source): Rename to Installer::installOneSource.
5573         Note script files as they are installed.
5574         * package_version.cc (packageversion::addScript): Implement.
5575         (packageversion::scripts): Implement.
5576         * package_version.h (packageversion::addScript): Record the
5577         presence of a script.
5578         * script.h (Script): New class to track scripts.
5579         * postinstall.cc (do_postinstall): Iterate through the
5580         package listed scripts before searching for scripts.
5581         * String++.cc (String::substr): Second argument needed to
5582         be signed.
5583         * String++.h (String::substr): Second argument needed to
5584         be signed.
5586 2003-03-16  Max Bowsher  <maxb@ukf.net>
5588         * .cvsignore: Create, to ignore configure, aclocal.m4, Makefile.in and
5589         autom4te.cache.
5591 2003-03-16  Max Bowsher  <maxb@ukf.net>
5593         * UserSettings.cc (UserSettings::Instance): Remove premature return.
5595 2003-03-15  Robert Collins  <rbtcollins@hotmail.com>
5597         * script.cc (run): Rename variable b to createSucceeded.
5599 2003-03-15  Igor Pechtchanski <pechtcha@cs.nyu.edu>
5601         * script.cc (run): Close unneeded handles.
5602         
5603 2003-03-15  Robert Collins  <rbtcollins@hotmail.com>
5605         * configure: Remove.
5606         * aclocal.m4: Remove.
5607         * Makefile.in: Remove.
5608         * cfgaux: Remove.
5609         * cfgaux/compile: Remove.
5610         * cfgaux/config.guess: Remove.
5611         * cfgaux/config.sub: Remove.
5612         * cfgaux/depcomp: Remove.
5613         * cfgaux/install-sh: Remove.
5614         * cfgaux/ltmain.sh: Remove.
5615         * cfgaux/missing: Remove.
5616         * cfgaux/mkinstalldirs: Remove.
5618 2003-03-14  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
5620         * install.cc (replace_one): Clear Text3.
5622 2003-03-14  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
5624         * install.cc (install_one_source): Add logging for successful
5625         replace-on-reboot scheduling. Factor out duplicate code.
5626         Set rebootneeded on Win9x.
5627         (log_ror_failure): New static function.
5628         (log_ror_success): New static function.
5630 2003-03-14  Robert Collins  <rbtcollins@hotmail.com>
5632         * choose.cc (ChooserPage::OnNext): Fix iterator bug. Reported by
5633         Igor Pechtchanski  <pechtcha@cs.nyu.edu>.
5635 2003-03-13  Max Bowsher  <maxb@ukf.net>
5637         * Update included zlib to 1.1.4.
5639 2003-03-13  Robert Collins  <rbtcollins@hotmail.com>
5641         * install.cc (do_install_thread): Use a query method rather than temp
5642         variable do_skip.
5644 2003-03-09  Pavel Tsekov  <ptsekov@gmx.net>
5646         * install.cc (do_install_thread): Use IDS_SKIP_PACKAGE
5647         instead of IDS_CORRUPT_PACKAGE when asking the user to take
5648         action if the hash verification check fails for a source package.
5649         Do not increase the value of 'total_bytes' variable if the
5650         user chooses to skip over a package, which failed the hash
5651         verification.
5653 2003-03-10  Max Bowsher  <maxb@ukf.net>
5655         * Makefile.am: Add foreign to AUTOMAKE_OPTIONS.
5657 2003-03-10  Robert Collins  <rbtcollins@hotmail.com>
5659         * UserSettings.cc (UserSettings::init): Really initialize all members.
5661 2003-03-10  Robert Collins  <rbtcollins@hotmail.com>
5663         * Exception.h: Add a logic error exception id.
5664         * Makefile.am: Add new sources.
5665         * UserSettings.cc: New file.
5666         * UserSettings.h: New file.
5667         * UserSetting.cc: New file.
5668         * UserSetting.h: New file.
5669         * site.h: Add a SiteSetting as example of a UserSetting.
5670         * site.cc (ChosenSites): Add a instance of SiteSetting to trigger
5671         registration.
5673 2003-03-10  Robert Collins  <rbtcollins@hotmail.com>
5675         * compress_bz.cc (compress_bz::read): Adjust incorrect assignment of
5676         lasterr.
5677         (compress_bz::error): Return lasterr which will indicate any error.
5679 2003-03-10  Robert Collins  <rbtcollins@hotmail.com>
5681         * choose.h (ChooserPage): Override OnActivate.
5682         * choose.cc (ChooserPage::OnActivate): Refresh the current view when
5683         activating the dialog.
5685 2003-03-09  Robert Collins  <rbtcollins@hotmail.com>
5687         * package_version.cc (_defaultversion::pick(bool)): Override this and
5688         do nothing.
5689         (packageversion::pick(bool): Use a mutator function rather than direct
5690         member access.
5691         * package_version.h (_packageversion::pick(bool)): Move method from
5692         _packageversion.
5694 2003-02-16  Pavel Tsekov  <ptsekov@gmx.net>
5696         * install.cc (install_one_source): Remove the MD5 verification
5697         code.
5698         Delay the creation of the package listing file.
5699         (do_install_thread): Check the hashes for packages which need
5700         to be installed before the uninstall step. Allow the user to
5701         skip over packages, which fail the hash verification.
5702         (md5_one): Define new function.
5703         * res.rc (IDS_SKIP_PACKAGE): New string resource.
5704         * resource.h (IDS_SKIP_PACKAGE): New macro definition.
5706 2003-02-16  Pavel Tsekov  <ptsekov@gmx.net>
5708         * Exception.h: Declare new constructor.
5709         (Exception::_message): Change the type from 'const char *' to
5710         'class String'.
5711         (Exception::~Exception): Implement destructor (make gcc shut up).
5712         * Exception.cc: Implement new constructor.
5713         (Exception::what): Use String::cstr_oneuse ().
5714         * download.cc (validateCachedPackage): Use the constructor, which
5715         takes String& as its second argument, when throwing objects
5716         of type Exception.
5717         (check_for_cached): Ditto.
5718         * install.cc (install_one_source): Ditto.
5720 2003-02-01  Igor Pechtchanski <pechtcha@cs.nyu.edu>
5722         * res.rc (IDS_INSTALL_INCOMPLETE): Change hard-coded
5723         log filename to %s.
5724         (IDS_MISSING_LOG): New string resource.
5725         * resource.h (IDS_MISSING_LOG): New resource.
5726         * LogFile.cc (LogFile::exit): Pass log filename for
5727         LOG_BABBLE to note().
5728         (LogFile::getFileName): New function.
5729         * LogFile.h (LogFile::getFileName): New function.
5731 2003-02-01  Igor Pechtchanski <pechtcha@cs.nyu.edu>
5733         * String++.cc: Don't include concat.h.
5734         * Makefile.am: Remove concat.cc and concat.h references.
5735         * concat.h: Remove.
5736         * concat.cc: Remove.
5738 2003-03-09  Max Bowsher  <maxb@ukf.net>
5740         * bootstrap.sh: Add sanity check of current directory.
5741         Recurse into libgetopt++ if needed.
5743 2003-03-09  Robert Collins  <rbtcollins@hotmail.com>
5745         * Update readme of bugs and wishes.
5747 2003-03-05  Max Bowsher  <maxb@ukf.net>
5749         * netio.cc (save_dialog): Allocate an empty string if the password is
5750         null, so that an empty password is accepted elsewhere in setup.
5751         (check_if_enable_ok): An empty password is OK.
5753 2003-03-05  Brian Keener  <bkeener@thesoftwaresource.com>
5755         * PickView.cc (PickView::views): Add two new views for Skipped
5756         packages and Installed Packages not requiring update.
5757         (PickView::set_headers () ): Ditto.
5758         (PickView::clear_view (void) ): Ditto.
5759         (PickView::views::caption () ): Add two new captions for the new
5760         views added for Skipped and Installed Packages.
5761         (PickView::scroll () ): Modify Scroll Bar property to Disable
5762         instead of disappearing when there is nothing to Scroll.
5763         * PickView.h: Add two new views for Skipped packages and Installed
5764         packages to public class view.
5765         * choose.cc (list_click () ): Modify Scroll Bar property to Disable
5766         instead of disappearing when there is nothing to Scroll.
5767         (listview_proc () ): Ditto.
5768         (set_view_mode): Add two new views for Skipped Packages and Installed
5769         Packages not requiring update.  Modify Scroll Bar property to Disable
5770         instead of disappearing when there is nothing to scroll.
5771         * res.rc (IDD_CHOOSE): Reposition Radio Buttons, View Selection
5772         Button and View Button Caption to make room for longer captions.
5774 2003-03-04  Max Bowsher  <maxb@ukf.net>
5776         * compress_gz.cc (compress_gz::construct):
5777         Fix broken checkin dated 2002-07-03.
5779 2003-02-28  Max Bowsher  <maxb@ukf.net>
5781         * main.cc (set_default_sec): Add logging.
5783 2003-02-28  Pierre Humblet  <pierre.humblet@ieee.org>
5785         * main.cc (set_default_dacl): Replace with set_default_sec.
5786         (set_default_sec): Attempt to change the default group to
5787         Users or Administrators if it is None, in addition to setting
5788         Everyone in the default DACL.
5789         (main): Call set_default_sec instead of set_default_dacl.
5791 2003-01-31  Max Bowsher  <maxb@ukf.net>
5793         * install.cc (install_one_source): Fix spacing in log message.
5795 2003-01-19  Max Bowsher  <maxb@ukf.net>
5797         * resource.h (IDC_CHOOSE_KEEP): Define.
5798         * res.rc (IDD_CHOOSE): Add radio button IDC_CHOOSE_KEEP.
5799         * choose.cc (create_listview): Add IDC_CHOOSE_KEEP to ta[].
5800         (ChooserPage::OnMessageCmd): Handle new IDC_CHOOSE_KEEP button.
5802 2003-01-15  Max Bowsher  <maxb@ukf.net>
5804         * mkdir.cc [_CYGWIN_]: Implement what was pseudocode.
5805         * io_stream.h [__CYGWIN__]: Don't typedef ssize_t.
5806         * proppage.h: Include "win32.h" instead of <windows.h>.
5808 2003-01-15  Max Bowsher  <maxb@ukf.net>
5810         * mount.cc [MAINTAINER_FEATURES]: Add --override-registry-name option.
5812 2002-12-11  Abraham Backus  <abraham@backus.com>
5814         * nio-http.cc (NetIO_HTTP::NetIO_HTTP): Leave port out of Host header,
5815         unless non-default.
5817 2002-12-11  Max Bowsher  <maxb@ukf.net>
5819         * package_meta.cc: Change 'endl' to 'endLog' as appropriate.
5820         * package_version.cc: Ditto.
5822 2002-09-22  Max Bowsher  <maxb@ukf.net>
5824         * PickView.cc (pkg_headers): Rename column 'Category' to 'Categories'.
5825         * package_meta.h (packagemeta::getReadableCategoryList): Declare.
5826         * package_meta.cc (packagemeta::getReadableCategoryList): Implement.
5827         * PickPackageLine.cc (PickPackageLine::paint): Change to use
5828         getReadableCategoryList.
5829         Fix x2 argument to IntersectClipRect.
5831 2002-11-25  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
5833         * window.h (Window::GetWindowRect): New method declaration.
5834         (Window::GetClientRect): Ditto.
5835         (Window::MoveWindow): Ditto.
5836         (Window::ScreenToClient): Ditto.
5837         * window.cc (REFLECTION_INFO): Remove.
5838         (ReflectionInfo): Remove.
5839         (Window::FirstWindowProcReflector): Use the WM_NCCREATE message instead
5840         of the horrid REFLECTION_INFO hack to hook the Window instance to the
5841         HWND instance.
5842         (Window::WindowProcReflector): Use GetWindowLongPtr() now that it's
5843         available.
5844         (Window::Create): Change to use new WM_NCCREATE reflection procedure
5845         above.
5846         (Window::GetWindowRect): New method.
5847         (Window::GetClientRect): New method.
5848         (Window::MoveWindow): New method.
5849         (Window::CenterWindow): Use new methods, also specify "::" for some non-
5850         member functions with the same names.
5851         (Window::ScreenToClient): New method.
5853 2002-11-26  Robert Collins  <rbtcollins@hotmail.com>
5855         * AntiVirus.cc: Change the short option again! It's now 'A'.
5856         * desktop.cc (etc_profile): Remove.
5857         (make_etc_profile): Remove.
5858         (uexists): Remove.
5859         (make_passwd_group): Remove.
5860         (do_desktop_setup): Don't call removed functions.
5862 2002-11-26  Robert Collins  <rbtcollins@hotmail.com>
5864         * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Fix my botched application of
5865         Marcel's patch.
5867 2002-07-08  Marcel Telka  <marcel@telka.sk>
5869         * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Fixed decoding of the FTP
5870         reply (code 227) to the PASV command.
5872 2002-11-26  Robert Collins  <rbtcollins@hotmail.com>
5874         * IniDBBuilderPackage.cc (IniDBBuilderPackage::~IniDBBuilderPackage):
5875         Sort the packages db once all the new packages have been added.
5876         * IniDBBuilderPackage.h (IniDBBuilderPackage::~IniDBBuilderPackage):
5877         Declare this.
5879 2002-11-26  Robert Collins  <rbtcollins@hotmail.com>
5881         * choose.cc (ChooserPage::OnNext): Remove extracted comment.
5882         * package_version.cc (processOneDependency): Return once selecting
5883         a package (bugfix to prevous rework).
5884         Log if the default trust fails the package specification.
5886 2002-11-26  Robert Collins  <rbtcollins@hotmail.com>
5888         * package_meta.h (packagemeta::logAllVersions): Declare.
5889         (packagemeta::trustLabel): Ditto.
5890         * choose.cc (ChooserPage::OnNext): Get each package to log all it's
5891         versions.
5892         * package_meta.cc (packagemeta::logAllVersions): Implement.
5893         (packagemeta::trustLabel): Ditto.
5895 2002-11-25  Robert Collins  <rbtcollins@hotmail.com>
5897         * AntiVirus.cc: Change 'd' to 'D' to fix command line conflict.
5899 2002-11-25  Robert Collins  <rbtcollins@hotmail.com>
5901         * AntiVirus.cc: New file.
5902         * AntiVirus.h: Ditto.
5903         * LogFile.cc: Include AntiVirus.h for class definition.
5904         (LogFile::exit): Trigger AntiVirus::AtExit().
5905         * MakeFile.am(setup_SOURCES): Add AntiVirus files.
5906         * autoload.c: Declare Service Control Manager related API's.
5907         * main.cc: Include AntiVirus.h for class definition.
5908         (main): Add the AntiVirus page in.
5909         * res.rc: Define IDD_VIRUS.
5910         * resource.h: Define IDD_VIRUS related control ID's.
5911         * splash.h: Override OnNext.
5912         * splash.cc: Only show AntiVirus page when one has been detected.
5913         * source.cc: Ditto.
5915 2002-11-25  Robert Collins  <rbtcollins@hotmail.com>
5917         * package_version.cc (DependencyProcessor): Create convenience class.
5918         (select): Extract version selection method.
5919         (processOneDependency): Check for a satisfactory trusted version
5920         first.
5922 2002-11-10  Robert Collins  <rbtcollins@hotmail.com>
5924         * main.cc (main): Use the factory for LogFile.
5925         * String++.cc: Update to use sstream.
5926         (String::String): Use a ostringstream for libC++ 3.2.
5927         * LogFile.h (LogFile): Make createLogFile static.
5929 2002-11-10  Robert Collins  <rbtcollins@hotmail.com>
5931         * main.cc (main): Oops, pass LogSingleton a reference, not a pointer.
5933 2002-11-04  Max Bowsher  <maxb@ukf.net>
5935         * Exception.h (Exception::what): Add throw() specification,
5936         to agree with libstdc++-v3.
5937         * Exception.cc (Exception::what): Ditto.
5938         * IniDBBuilderPackage.h: Add 'std::' where needed.
5939         * PickCategoryLine.h: Ditto.
5940         * category.h: Ditto.
5941         * package_db.h: Ditto.
5942         * package_meta.h: Ditto.
5943         * package_source.h: Ditto.
5944         * package_version.h: Ditto.
5945         * site.h: Ditto.
5946         * win32.h: Define NOMINMAX before including <windows.h>.
5947         * package_meta.cc: Add 'using namespace std;'.
5948         (packagemeta::set_requirements): Remove default parameter values
5949         from definition (gcc3 likes them only in declaration).
5950         * package_version.cc: Add 'using namespace std;'.
5951         (packageversion::set_requirements): Remove default parameter
5952         values from definition (gcc3 likes them only in declaration).
5954 2002-11-10  Robert Collins <rbtcollins@hotmail.com>
5956         * compress_bz.cc: Don't include bzlib.h directly, the compress_bz.h
5957         header includes it.
5959 2002-11-04  Max Bowsher  <maxb@ukf.net>
5961         * compress_bz.h: #undef small before including bzlib.h - if we are
5962         going to hide the fact that we are _WIN32 from bzlib, then we need
5963         to #undef small for it as well (bad windows.h clash).
5965 2002-11-10  Robert Collins  <rbtcollins@hotmail.com>
5967         * localdir.cc: Update the extern LogFile to be a pointer.
5968         (save_local_dir): Change . to -> for the above.
5969         * main.cc (theFile): Change from an instance to a pointer.
5970         (main): Change . to -> for the above.
5972 2002-11-10  Robert Collins  <rbtcollins@hotmail.com>
5974         * LogFile.cc: use 'std::' where needed throughout.
5975         (LogFile::createLogFile): Implement a factory for LogFile.
5976         (LogFile::LogFile): Update for use with the factory, and to
5977         handle the latest g++ library changes.
5978         (LogFile::operator()): Ditto.
5979         (LogFile::endEntry()): Ditto.
5980         * LogFile.h: Ditto.
5981         * LogSingleton.cc: Ditto.
5982         * LogSingleton.h: Ditto.
5984 2002-11-04  Max Bowsher  <maxb@ukf.net>
5986         * String++.h: Add 'std::' where needed.
5988 2002-11-04  Max Bowsher  <maxb@ukf.net>
5990         * IniDBBuilderPackage.cc: Add 'using namespace std;'.
5991         * IniParseFindVisitor.cc: Ditto.
5992         * LogFile.cc: Ditto.
5993         * LogSingleton.cc: Ditto.
5994         * PickView.cc: Ditto.
5995         * String++.cc: Ditto.
5996         * choose.cc: Ditto.
5997         * download.cc: Ditto.
5998         * find.cc: Ditto.
5999         * install.cc: Ditto.
6000         * io_stream.cc: Ditto.
6001         * io_stream_file.cc: Ditto.
6002         * package_db.cc: Ditto.
6003         * root.cc: Ditto.
6004         * site.cc: Ditto.
6006 2002-11-04  Max Bowsher  <maxb@ukf.net>
6008         * LogSingleton.h: Add 'std::' where needed.
6010 2002-11-04  Max Bowsher  <maxb@ukf.net>
6012         * archive_tar_file.cc: Include <algorithm>.
6013         Change min(a,b) to std::min(a,b)
6014         * compress_bz.cc: Ditto.
6015         * compress_gz.cc: Ditto.
6017 2002-11-04  Max Bowsher  <maxb@ukf.net>
6019         * res.rc: Change a #-comment (invalid) to a //-comment.
6021 2002-11-04  Max Bowsher  <maxb@ukf.net>
6023         * Makefile.am (%.o: %.rc): Make windres use $(CC) not hardcoded gcc.
6024         (inilint_LDADD): Remove -lstd++.
6025         (setup_LDADD): Ditto.
6027 2002-09-22  Max Bowsher  <maxb@ukf.net>
6029         * IniDBBuilderPackage.cc: Update DEBUG code to current class
6030         layout.
6032 2002-09-21  Robert Collins  <rbtcollins@hotmail.com>
6034         * choose.h: Add OnUnattended method.
6035         * desktop.cc (DesktopSetupPage::OnInit): Allow fine grained
6036         control via command line options.
6037         (DesktopSetupPage::OnUnattended): Implement.
6038         (DesktopSetupPage::OnMessageApp): Implement.
6039         * desktop.h (DesktopSetupPage::OnUnattended): declare.
6040         (DesktopSetupPage::OnMessageApp): Ditto.
6041         * download.cc (do_download_thread): Support unattended mode.
6042         * install.cc (do_install_thread): Ditto.
6043         * localdir.h: Ditto.
6044         * main.cc (main): Ditto.
6045         * net.cc (NetPage::OnUnattended): Ditto.
6046         * net.h (NetPage::OnUnattended): Declare.
6047         * proppage.cc (PropertyPage::DialogProc): Support unattended mode.
6048         * proppage.h (PropertyPage::OnUnattended): Declare.
6049         * root.cc (RootPage::OnInit): Support unattended mode.
6050         (RootPage::OnUnattended): Implement.
6051         * root.h (RootPage::OnUnattended): Declare.
6052         * site.cc (register_saved_site): Extract Method from get_saved_sites.
6053         (get_saved_sites): Remove common code for adding a site.
6054         (SitePage::OnInit): Support unattended mode.
6055         (SitePage::OnUnattended): Implement.
6056         * site.h (SitePage::OnUnattended): Declare.
6057         * source.cc (SourcePage::OnActivate): Support unattended mode.
6058         (SourcePage::OnUnattended): Implement.
6059         * source.h (SourcePage::OnUnattended): Declare.
6060         * splash.h (SplashPage::OnUnattended): Declare.
6061         * state.cc (unattended_mode): Declare.
6062         * state.h (unattended_mode): Declare.
6063         * threebar.h (ThreeBarProgressPage::OnUnattended): New method.
6065 2002-09-21  Robert Collins  <rbtcollins@hotmail.com>
6067         * res.rc: Commit Harry Johnston's dialog caption patch. From July.
6069 2002-07-15  Robert Collins  <rbtcollins@hotmail.com>
6071         * package_version.cc (packageversion::sources): Implement this.
6072         * download.cc (do_download_thread): Support multiple files per package.
6074 2002-07-15  Robert Collins  <rbtcollins@hotmail.com>
6076         * package_version.h (packageversion::sources): Support multiple files in
6077         a single package version.
6078         * package_version.cc (_packageversion::accessible): Ditto.
6079         (packageversion::source): Ditto.
6081 2002-07-15  Robert Collins  <rbtcollins@hotmail.com>
6083         * iniparse.y: Implement support for multiple source files for a source
6084         package.
6085         * IniDBBuilder.h (IniDBBuilder::buildSourceFile): Ditto.
6086         * IniDBBuilderPackage.h (IniDBBuilder::buildSourceFile): Ditto.
6087         * IniDBBuilder.cc (IniDBBuilder::buildSourceFile): Ditto.
6088         * IniDBBuilderPackage.cc (IniDBBuilder::buildSourceFile): Implement a
6089         stub as preparation.
6091 2002-07-13  Robert Collins  <rbtcollins@hotmail.com>
6093         * PickPackageLine.cc (PickPackageLine::click): Set requirements for
6094         packages under all circumstances - slightly higher overheader, simpler
6095         code.
6096         * download.cc (do_download_thread): Correctly download source
6097         packages.
6098         * package_meta.cc (checkForInstalled): Remove.
6099         (checkForUpgradeable): Ditto.
6100         (checkForSatisfiable): Ditto.
6101         (processOneDependency): Ditto.
6102         (packagemeta::set_requirements): Move guts to packageversion.
6103         * package_version.cc (checkForInstalled): Copied from package_meta.cc.
6104         (checkForUpgradeable): Ditto.
6105         (checkForSatisfiable): Ditto.
6106         (processOneDependency): Ditto.
6107         (packageversion::set_requirements): Ditto.
6108         * package_version.h (packageversion::set_requirements): Declare.
6110 2002-07-13  Robert Collins  <rbtcollins@hotmail.com>
6112         * IniDBBuilder.cc (IniDBBuilder::buildBeginBuildDepends): Implement.
6113         (IniDBBuilder::buildBeginBinary): Implement.
6114         * IniDBBuilder.h (IniDBBuilder::buildBeginBuildDepends): Declare.
6115         (IniDBBuilder::buildBeginBinary): Ditto.
6116         * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildBeginBuildDepends):
6117         Implement.
6118         (IniDBBuilderPackage::buildBeginBinary): Ditto.
6119         * IniDBBuilderPackage.h (IniDBBuilderPackage::buildBeginBuildDepends):
6120         Declare.
6121         (IniDBBuilderPackage::buildBeginBinary): Ditto.
6122         * inilex.l: Recognise Build-Depends-Indep, [,], >, < and remove
6123         T_UNKNOWN.
6124         * iniparse.y: Full support for parsing a debian Sources file in-line in
6125         setup.ini.
6126         * package_version.cc (packageversion::binaries): Implement.
6127         * package_version.h (packageversion::binaries): Declare list of what
6128         packages are created from a given source package.
6129         (_packageversion::binaries): Ditto.
6131 2002-07-10  Robert Collins  <rbtcollins@hotmail.com>
6133         * iniparse.y: Add basis for support for parsing a debian Sources file.
6134         * inilex.l: Ditto.
6136 2002-07-09  Robert Collins  <rbtcollins@hotmail.com>
6138         Change custom container code for packagedb::packages to STL containers
6139         throughout.
6140         * IniDBBuilderPackage.cc: Ditto.
6141         * PickView.cc: Ditto.
6142         * choose.cc: Ditto.
6143         * desktop.cc: Ditto.
6144         * download.cc: Ditto.
6145         * install.cc: Ditto.
6146         * package_db.cc: Ditto.
6147         * package_db.h: Ditto.
6148         * Makefile.am: Remove list.h references.
6149         * list.h: Remove.
6151 2002-07-08  Max Bowsher  <maxb@ukf.net>
6153         * PickView.cc (PickView::PickView): Set font of package list header to
6154         the same as used in the rest of the package list.
6155                 
6156 2002-07-08  Robert Collins  <rbtcollins@hotmail.com>
6158         * install.cc (NoReplaceOnReboot): New command line option to prevent
6159         replacing in use files.
6160         (install_one_source): Check the option and use it.
6161         * README: Update TODO lists.
6163 2002-07-08  Robert Collins  <rbtcollins@hotmail.com>
6165         * PickCategoryLine.cc: Change bucket to use STL container syntax
6166         throughout.
6167         (PickCategoryLine::paint): Use new Category type syntax.
6168         * PickCategoryLine.h: Use STL vectors rather than custom containers
6169         throughout.
6170         * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackageCategory):
6171         Use new add_category syntax.
6172         * PickView.cc (PickView::insert_pkg): Use new Category type syntax.
6173         (PickView::insert_category): Ditto.
6174         (PickView::init_headers): Ditto.
6175         * category.cc: Trim obsolete code.
6176         * category.h: Replace interconnecting class with a typedef to
6177         facilitate leveraging STL maps.
6178         * choose.cc (fill_missing_category): Use updated pkg.add_category
6179         syntax.
6180         (default_trust): Use new Category type syntax.
6181         (set_view_mode): Ditto.
6182         (create_listview): Ditto.
6183         * package_db.cc (categories): Ditto.
6184         * package_db.h: Update headers list to include needed headers.
6185         (packagedb::categories): Replace custom list with STL map.
6186         * package_meta.cc: Use new Category type syntax throughout.
6187         (packagemeta::add_category): Implement new syntax.
6188         * package_meta.h: Remove commented out source.
6189         (packagemeta::add_category): Update syntax to decouple interface from
6190         packagedb.
6192 2002-07-06  Christopher Faylor  <cgf@redhat.com>
6194         * site.cc (do_download_site_info_thread): Correct spelling error.
6196 2002-07-06  Robert Collins  <rbtcollins@hotmail.com>
6198         * PickCategoryLine.h: Include required header list.h.
6199         * PickPackageLine.cc (PickPackageLine::paint): Adjust to use STL
6200         containers for listing of packages per category and vice verca.
6201         * PickView.cc (PickView::insert_pkg): Ditto.
6202         (PickView::insert_category): Ditto.
6203         * String++.h (String::caseless): STL helper to allow trivial containers
6204         of Strings with case insensitive comparisons.
6205         * category.h: Adjust to use STL containers for listing of packages per
6206         category and vice verca.
6207         * choose.cc (fill_missing_category): Ditto.
6208         (default_trust): Ditto.
6209         (ChooserPage::OnNext): Ditto.
6210         * package_meta.cc (CategoryPackage::~CategoryPackage): Remove.
6211         (packagemeta::packagemeta): Adjust for new category list name.
6212         (packagemeta::~packagemeta): Adjust to use STL containers for listing
6213         of packages per category and vice verca.
6214         (packagemeta::set_action): Ditto.
6215         * package_meta.h (CategoryPackage): Remove.
6216         (packagemeta): Adjust to use STL containers for listing of packages per
6217         category and vice verca.
6219 2002-07-05  Robert Collins  <rbtcollins@hotmail.com>
6221         * io_stream.cc: Use STL containers rather than custom ones.
6222         (io_stream::registerProvider): Ditto.
6223         (findProvider): Ditto.
6225 2002-07-05  Robert Collins  <rbtcollins@hotmail.com>
6227         * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackageSource):
6228         Use STL collections for download site collections.
6229         (IniDBBuilderPackage::add_correct_version): Ditto.
6230         (IniDBBuilderPackage::process_src): Ditto.
6231         * PickPackageLine.cc (PickPackageLine::click): Use the packageversion
6232         accessible() call to abstract package availability.
6233         * choose.cc (scanAVersion): Use STL collections for download site
6234         collections.
6235         * download.cc (check_for_cached): Ditto.
6236         (download_one): Ditto.
6237         * package_meta.cc (packagemeta::set_action): Use the packageversion
6238         accessible() call to abstract package availability.
6239         * package_source.h: Use STL containers rather than custom containers.
6240         (site): Create a == operator to allow STL container use.
6241         (packagesource::sites): Use STL containers rather than custom
6242         containers.
6243         * package_version.cc (_packageversion::accessible): Use STL containers
6244         for download site containers.
6246 2002-07-05  Robert Collins  <rbtcollins@hotmail.com>
6248         * LogFile.cc: Use STL containers rather than custom containers.
6249         (filedef): Create == and < operators for STL use.
6250         (files): Convert to an STL set.
6251         (LogFile::setFile): Use STL operations on files.
6252         (LogFile::exit): Ditto.
6254 2002-07-05  Robert Collins  <rbtcollins@hotmail.com>
6256         * ini.cc (do_remote_ini): Use STL collection for site collection.
6257         * site.cc: Include site.h first to ensure it's parsable standalone.
6258         Use STL algorithms.
6259         (site_list): Convert to an STL container.
6260         (all_site_list): Ditto.
6261         (site_list_type::site_list_type): Implement copy constructor.
6262         (site_list_type::operator=): Implement assignment operator.
6263         (site_list_type::operator ==): Implement.
6264         (site_list_type::operator <): Ditto.
6265         (save_dialog): Use STL collection calls for site collection.
6266         (save_site_url): Ditto.
6267         (get_site_list): Ditto.
6268         (get_saved_sites): Ditto.
6269         (do_download_site_info_thread): Ditto.
6270         (SitePage::OnNext): Ditto.
6271         (SitePage::PopulateListBox): Ditto.
6272         (SitePage::OnMessageCmd): Ditto.
6273         * site.h: Use STL vectors instead of custom code.
6274         (site_list_type::site_list_type): Declare.
6275         (site_list_type::operator=): Ditto.
6276         (site_list_type::operator ==): Ditto.
6277         (site_list_type::operator !=): Ditto.
6278         (site_list_type::operator <): Ditto.
6279         (site_list_type::operator <=): Ditto.
6280         (site_list_type::operator >): Ditto.
6281         (site_list_type::operator >=): Ditto.
6282         (site_list): Convert to an STL container.
6283         (all_site_list): Ditto.
6285 2002-07-05  Robert Collins  <rbtcollins@hotmail.com>
6287         * choose.cc (default_trust): Check package accessibility before
6288         triggering an install. (Suggested by Pavel).
6290 2002-07-03  Pavel Tsekov  <ptsekov@gmx.net>
6292         * compress_gz.cc (compress_gz::construct): Always initialize key members
6293         to ensure the destructor does the right thing.
6295 2002-07-03  Pavel Tsekov  <ptsekov@gmx.net>
6297         * filemanip.cc (parse_filename): Do not try to parse empty
6298         strings (filenames).
6299         * package_db.cc (packagedb::packagedb): For each line check if sscanf()
6300         extracted good package name and filename.
6302 2002-07-03  Robert Collins  <rbtcollins@hotmail.com>
6304         * package_meta.cc (packagemeta::set_requirements): Automatically select
6305         version of dependent packages that satisfies the requirements.
6306         Use processOneDependency to trigger the install of those packages.
6307         (checkForInstalled): Check that the package remains installed.
6308         (processOneDependency): Helper function for dependent packages.
6309         * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackage): Add more
6310         debug information.
6311         Clear out all current state on new packages.
6312         (IniDBBuilderPackage::add_correct_version): Copy the dependency list
6313         across.
6315 2002-07-02  Robert Collins  <rbtcollins@hotmail.com>
6317         * Makefile.am (inilint_SOURCES): Add PackageSpecification sources.
6318         nb: inilint is still incomplete, as the packageversion code is not
6319         ready for database-less linking.
6320         * site.cc (get_site_list): When the same site is reentered by the user
6321         replace the old one. (Suggested by John Marshall).
6323 2002-07-02  Robert Collins  <rbtcollins@hotmail.com>
6325         * IniDBBuilderPackage.cc (IniDBBuilderPackage::buildPackageSource):
6326         Clear out package selections when generating implicit source packages.
6327         * PackageSpecification.cc (PackageSpecification::satisfies): Implement.
6328         (PackageSpecification::_operators::satisfies): Implement.
6329         * PackageSpecification.h (PackageSpecification::_operators::satisfies):
6330         Worker function for testing versions.
6332 2002-07-01  Robert Collins  <rbtcollins@hotmail.com>
6334         * IniDBBuilder.cc (IniDBBuilder::buildPackageRequirement): Remove.
6335         * IniDBBuilder.h (IniDBBuilder::buildPackageRequirement): Ditto.
6336         * IniDBBuilderPackage.cc: Use the STL algorithms.
6337         Change cpv to cbpv throughout. Adjust -> to ., and use the new accessor
6338         functions for the same variable throughout.
6339         (IniDBBuilderPackage::IniDBBuilderPackage): Initialise new members.
6340         (IniDBBuilderPackage::buildPackage): Use new cygpackage syntax,
6341         and set an empty source package.
6342         (IniDBBuilderPackage::buildPackageInstall): Use the new source member
6343         to record an install package.
6344         (IniDBBuilderPackage::buildPackageSource): Move source package logic
6345         out from process_src, as it now occurs at separate times.
6346         (IniDBBuilderPackage::buildPackageRequirement): Remove.
6347         (IniDBBuilderPackage::buildSourceName): Use renamed package
6348         specifiation accessor for clarity.
6349         (IniDBBuilderPackage::buildSourceNameVersion): Ditto.
6350         (IniDBBuilderPackage::add_correct_version): Use STL iterators rather
6351         than custom code.
6352         Remove source package references.
6353         (IniDBBuilderPackage::process_src): Remove source package code as it's
6354         now handled separately.
6355         Set Path information before merging versions, to prevent dangling
6356         pointers.
6357         * IniDBBuilderPackage.h (IniDBBuilderPackage::buildPackageRequirement):
6358         Remove.
6359         (IniDBBuilderPackage::cpv): Remove.
6360         (IniDBBuilderPackage::cbpv): New generic binary working variable.
6361         (IniDBBuilderPackage::cspv): Ditto, but for source packages.
6362         (IniDBBuilderPackage::csp): Source package variable for disjoint
6363         source packages.
6364         * Makefile.am (AM_CFLAGS): Remove -Winline to allow stl set code
6365         to compile. If it compiles cleanly in gcc 3.1, then reinstate.
6366         * PickPackageLine.cc: Adjust packageversion accessors to the new
6367         reference calls. (i.e. -> to .) throughout.
6368         (PickPackageLine::paint): Use accessible() for clarity.
6369         Use new split out source package logic.
6370         (PickPackageLine::click): Ditto.
6371         * PickView.cc (PickView::init_headers): Adjust packageversion accessors
6372         to the new reference calls. (i.e. -> to .) throughout.
6373         Use new split out source package logic.
6374         * choose.cc: Don't depend on a specific package type.
6375         Adjust packageversion accessors to the new reference calls. (i.e. -> to
6376         .) throughout.
6377         (set_existence): Use accessible () for clarity.
6378         (default_trust): Simplify a little.
6379         (scanAVersion): Factored out code from scan_downloaded_files for
6380         clarity.
6381         (scan_downloaded_files): Factor out inner loop for clarity.
6382         (ChooserPage::OnNext): Don't dump the dependency list,
6383         it's parsing is robust now!.
6384         * cygpackage.cc (createInstance): Use a factory method to create new
6385         objects.
6386         (cygpackage::cygpackage): Make this private for use by the factory.
6387         (cygpackage::setCanonicalVersion): Renamed from set_canonical_version.
6388         Remove key usage as it's obsolete.
6389         * cygpackage.h (cygpackage): Inherit from _packageversion, not
6390         packageversion.
6391         (cygpackage::createInstance): New factory.
6392         (cygpackage::cygpackage): Make private.
6393         * desktop.cc (make_passwd_group): Use new packageversion reference.
6394         * download.cc (do_download_thread): Use changeRequested() for clarity.
6395         Use new packageversion reference calls.
6396         * iniparse.y (REQUIRES): Reuse the packageList code and dump the one-off
6397         requires code.
6398         * install.cc: Adjust -> to ., and use the new accessor functions for
6399         packageversion throughout.
6400         * package_db.cc: Adjust -> to ., and use the new accessor functions for
6401         packageversion throughout.
6402         (packagedb::packagedb): Use the new cygpackage factory.
6403         (packagedb::flush): Leverage String to remove buffer overflow chance in
6404         sprintf.
6405         (packagedb::findBinary): Find a binary meta package that has a version
6406         matching a given specification.
6407         (packagedb::findSource): Ditto, but for source.
6408         * package_db.h (packagedb::findBinary): Declare.
6409         (packagedb::findSource): Ditto.
6410         * package_meta.cc: Adjust packageversion accessors to the new
6411         reference calls. (i.e. -> to .) throughout.
6412         Include the package_meta header first to ensure it parses standalone.
6413         Use the STL algorithms.
6414         (packagemeta::packagemeta): Create a copy constructor to allowing
6415         cloning binary package metadata to source package metadata.
6416         (packagemeta::~packagemeta): Use the STL coleltion code rather than
6417         custom  collection code.
6418         (packagemeta::add_version): Ditto.
6419         (packagemeta::set_installed): Ditto.
6420         (packagemeta::SDesc): Ditto.
6421         (hasSDesc): Helper function for find_if.
6422         (checkForInstalled): Ditto.
6423         (checkForUpgradeable): Ditto.
6424         (checkForSatisfiable): Ditto.
6425         (packagemeta::action_caption): Update for split out source packages.
6426         (packagemeta::set_action): Ditto.
6427         (packagemeta::set_requirements): Support multi-valued dependency
6428         lists - a|b & c|d - with versioned package specifications.
6429         (packagemeta::accessible): Helper member to improve abstraction.
6430         (packagemeta::sourceAccessible): Ditto.
6431         * package_meta.h: Adjust packageversion accessors to the new
6432         reference calls. (i.e. "->" to "." and"*" to "" ) throughout.
6433         (packagemeta::packagemeta): Declare copy constructor.
6434         Remove self initialising members.
6435         (packagemeta::set_action): Update parameters for new packageversion.
6436         (packagemeta::trustp): Ditto.
6437         (packagemeta::versions): Becomes an STL set.
6438         * package_source.h (packagesource::Cached): Const correctness change.
6439         * package_version.cc: Rewrite the packageversion interface to remove
6440         the cygpackage nonvirtual members, and provide a copy by value,
6441         pointer semantics reference counting wrapper class to ease use and
6442         comparison of packageversions.
6443         Change existing packageversion class to _packageversion throughout.
6444         (_defaultversion): A trivial concrete class to prevent specialcasing
6445         the default constructor for packageversion;
6446         (packageversion::packageversion): Implement.
6447         (packageversion::~packageversion): Ditto.
6448         (packageversion::operator=): Ditto.
6449         (packageversion::operator !): Ditto.
6450         (packageversion::operator bool): Ditto.
6451         (packageversion::operator ==): Ditto.
6452         (packageversion::operator !=): Ditto.
6453         (packageversion::operator <): Ditto.
6454         (packageversion::Name): Ditto.
6455         (packageversion::Canonical_version): Ditto.
6456         (packageversion::setCanonicalVersion): Ditto.
6457         (packageversion::getfirstfile): Ditto.
6458         (packageversion::getnextfile): Ditto.
6459         (packageversion::SDesc): Ditto.
6460         (packageversion::set_sdesc): Ditto.
6461         (packageversion::LDesc): Ditto.
6462         (packageversion::set_ldesc): Ditto.
6463         (packageversion::sourcePackage): Ditto.
6464         (packageversion::sourcePackageSpecification): Ditto.
6465         (packageversion::setSourcePackageSpecification): Ditto.
6466         (packageversion::depends): Ditto.
6467         (packageversion::predepends): Ditto.
6468         (packageversion::recommends): Ditto.
6469         (packageversion::suggests): Ditto.
6470         (packageversion::replaces): Ditto.
6471         (packageversion::conflicts): Ditto.
6472         (packageversion::provides): Ditto.
6473         (packageversion::picked): Ditto.
6474         (packageversion::pick): Ditto.
6475         (packageversion::changeRequested): Ditto.
6476         (packageversion::uninstall): Ditto.
6477         (packageversion::source): Ditto.
6478         (packageversion::accessible): Ditto.
6479         (_packageversion::sourcePackage): Ditto.
6480         (_packageversion::accessible): Ditto.
6481         (_packageversion::changeRequested): Ditto.
6482         * package_version.h: Rewrite the packageversion interface to remove
6483         the cygpackage nonvirtual members, and provide a copy by value,
6484         pointer semantics reference counting wrapper class to ease use and
6485         comparison of packageversions.
6486         Change existing packageversion class to _packageversion throughout.
6487         (Dependency): Remove.
6488         (packageversion): New wrapper class.
6489         (_packageversion): Renamed from packageversion.
6490         (_packageversion::setCanonicalVersion): New method.
6491         (_packageversion::sourcePackage): Ditto.
6492         (_packageversion::sourcePackageSpecification): Ditto.
6493         (_packageversion::setSourcePackageSpecification): Ditto.
6494         (_packageversion::changeRequested): Ditto.
6495         (_packageversion::bin): Rename to source.
6496         (_packageversion::src): Remove.
6497         (_packageversion::accessible): New method.
6498         (_packageversion::references): Allow reference counting.
6499         (_packageversion::sourceVersion): Cached the best-match source
6500         package version.
6502 2002-06-27  Robert Collins  <rbtcollins@hotmail.com>
6504         * compress_bz.h (compress_bz::position): Track how much has been read.
6505         * compress_bz.cc (compress_bz::compress_bz): And initialise it.
6506         (compress_bz::read): Track amount read by the client.
6507         (compress_bz::tell): And report it when asked.
6509 2002-06-27  Robert Collins  <rbtcollins@hotmail.com>
6511         * Makefile.am (snapshot): Automate snapshot creation some more.
6513 2002-06-27  Robert Collins  <rbtcollins@hotmail.com>
6515         * msg.cc (msg): Use vsnprintf to avoid buffer overflows.
6516         (mbox): Ditto.
6517         * ini.cc (fprintf): Ditto.
6518         * log.cc (log): Ditto.
6519         * package_db.cc (packagedb::sourcePackages): Split out source packages
6520         from binary packages.
6521         * package_db.h: Ditto.
6523 2002-06-27  Robert Collins  <rbtcollins@hotmail.com>
6525         * PackageSpecification.h: New file. Abstracts the ability to refer
6526         to another package, by name, or name and version.
6527         * PackageSpecification.cc: Ditto.
6528         * IniDBBuilder.cc (IniDBBuilder::buildPackageInstall): Simplify.
6529         (IniDBBuilder::buildPackageSource): Ditto.
6530         (IniDBBuilder::buildBeginDepends): New method for versioned
6531         dependencies.
6532         (IniDBBuilder::buildBeginPreDepends): Likewise, for dependencies to be
6533         satisfied before pre-install.
6534         (IniDBBuilder::buildPriority): New method, for getting the package
6535         Priority.
6536         (IniDBBuilder::buildInstalledSize): How much disk space does it need?
6537         (IniDBBuilder::buildMaintainer): Who maintains the package?
6538         (IniDBBuilder::buildArchitecture): What platform is it for?
6539         (IniDBBuilder::buildInstallSize): How big is the binary download?
6540         (IniDBBuilder::buildInstallMD5): Whats the MD5 on the binary?
6541         (IniDBBuilder::buildSourceMD5): Whats the MD5 on the source package?
6542         (IniDBBuilder::buildBeginRecommends): What other packages are
6543         recommended with this one?
6544         (IniDBBuilder::buildBeginSuggests): And suggested?
6545         (IniDBBuilder::buildBeginReplaces): What packages does this replace?
6546         (IniDBBuilder::buildBeginConflicts): And collide with?
6547         (IniDBBuilder::buildBeginProvides): What virtual packages (or obsolete
6548         package names) does this provide?
6549         (IniDBBuilder::buildDescription): Grab a multi line description one
6550         line at a time.
6551         (IniDBBuilder::buildSourceName): What source package should be used to
6552         install the source for this binary package?
6553         (IniDBBuilder::buildSourceNameVersion): Is a specific version needed?
6554         (IniDBBuilder::buildPackageListAndNode): Add another AND clause to a
6555         list of package specifications.
6556         (IniDBBuilder::buildPackageListOrNode): Add another OR clause.
6557         (IniDBBuilder::buildPackageListOperator): Add a versioning operator
6558         to the current specification.
6559         (IniDBBuilder::buildPackageListOperatorVersion): What version does the
6560         operator act on?
6561         * IniDBBuilder.h: Declare all the IniDBBuilder.cc changes.
6562         * IniDBBuilderPackage.cc: As for IniDBBuilder.cc.
6563         (IniDBBuilderPackage::IniDBBuilderPackage): Iniitialize new members.
6564         (IniDBBuilderPackage::process_src): Streamline and split out
6565         functionality.
6566         (IniDBBuilderPackage::setSourceSize): From process_src.
6567         * IniDBBuilderPackage.h: Declare the IniDBBuilderPackage.cc changes.
6568         (IniDBBuilderPackage::currentSpec): Track the in-progress specifiation.
6569         (IniDBBuilderPackage::currentOrList): Track the current Or list.
6570         (IniDBBuilderPackage::currentAndList): Track the current And list.
6571         * IniParseFeedback.cc (IniParseFeedback::progress): Provide completion
6572         progress on parsing.
6573         (IniParseFeedback::iniName): Tell what ini filename we are currently
6574         processing.
6575         * IniParseFeedback.h: Declare IniParseFeedback.cc changes.
6576         * IniParseFindVisitor.cc (IniParseFindVisitor::IniParseFindVisitor):
6577         Make the feedback object non-const to allow mutating methods which are
6578         needed when the object has state.
6579         (IniParseFindVisitor::visitFile): Tell the caller the name of each
6580         .ini found.
6581         Initialise the parser with the feedback object to allow it to tell of
6582         progress.
6583         * IniParseFindVisitor.h: Declare IniParseFindVisitor.cc changes.
6584         * Makefile.am (inilinst_SOURCES): Add more requisite classes.
6585         (setup_SOURCES): Add the new PackageSpecification sources.
6586         * ScanFindVisitor.cc (ScanFindVisitor::visitFile): Use the new
6587         builder syntax to setup binary package details.
6588         * choose.cc: Use the LogSingleton calls throughout.
6589         * configure.in: Create the INILINT substitution correctly for recent
6590         autotool configurations.
6591         * cygpackage.cc (cygpackage::getfirstfile): Return an empty String
6592         rather than a string built from an int. Thanks to Pavel Tsekov for
6593         identifying the bug.
6594         (cygpackage::getnextfile): Ditto.
6595         * download.cc: Use LogSIngletion calls throughout.
6596         (validateCachedPackage): A refactoring of the
6597         check_for_cached code to eliminate duplciation.
6598         (check_for_cached): Use validateCachedPackage to check packages.
6599         * ini.cc (GuiParseFeedback): Provide gui feedback on ini name and
6600         parsing progress.
6601         (do_remote_ini): Ditto.
6602         * ini.h (ini_init): Pass a IniParseFeedback to the parser, to allow
6603         progress reporting.
6604         * inilex.l: Identify new symbols - operators, and multi line plain text.
6605         Releases files.
6606         * inilintmain.cc (show_help): Provide basic infomation on inilint.
6607         * iniparse.y: Adjust for the new builder syntax, and process debian
6608         Release files.
6609         * io_stream_file.cc: Always include mkdir.h.
6610         * list.h: Factor index location into a private routine.
6611         (list::findindex): Implement this.
6612         * mkdir.cc (mkdir_p): Make the use of WIN32 code conditional on mingw
6613         builds. NB: This breaks cygwin build functionality still.
6614         * package_meta.cc: Use the LogSingleton calls throughout.
6615         (packagemeta::set_requirements): Adjust for object changes in
6616         dependencies.
6617         * package_meta.h (packagemeta::packagemeta): Initialise new members.
6618         (packagemeta::architecture): What platform does this package run on?
6619         This may need to move in the future to a per packagefile object.
6620         (packagemeta::priority): What priority does this package have?
6621         * package_source.h (packagesource::packagesource): Initialise new
6622         members.
6623         (packagesource::installedSize): How much space does the package need?
6624         (packagesource::setInstalledSize): Tell the amount.
6625         (packagesource::_installedSize): And store it.
6626         * package_version.cc (packageversion::sourcePackage): return the
6627         source package.
6628         (packageversion::setSourcePackage): And set it.
6629         * package_version.h: Declare the package_version.cc changes.
6630         (packageversion::depends): New package specification AND list.
6631         (packageversion::predepends): Ditto.
6632         (packageversion::recommends): Ditto.
6633         (packageversion::suggests): Ditto.
6634         (packageversion::replaces): Ditto.
6635         (packageversion::conflicts): Ditto.
6636         (packageversion::provides): Ditto.
6637         (packageversion::sourcePackage): What source package is needed?
6638         * threebar.cc (ThreeBarProgressPage::SetText4): Set the label beside
6639         the bottom bar.
6640         * threebar.h: Declare the threebar.cc change.
6642 2002-06-27  John Marshall  <johnm@falch.net>
6644         * res.rc (SETUPINI_MISSING): Make trailing spaces visible.
6645         * site.cc (SitePage::OnMessageCmd): Ditto
6647 2002-06-15  Robert Collins  <rbtcollins@hotmail.com>
6649         * nio-ie5.cc (NetIO_IE5::NetIO_IE): Allow cached data.
6651 2002-06-15  Robert Collins  <rbtcollins@hotmail.com>
6653         * package_meta.cc (packagemeta::set_action): When installing packages
6654         with no binaries, choose the source package.
6656 2002-06-10  Robert Collins  <rbtcollins@hotmail.com>
6658         * IniParseFindVisitor (IniParseFindVisitor::visitFile): Apply Max
6659         Bowshers fix for the crash with a root level setup.ini.
6660         * README: Update todos.
6662 2002-05-26 Ralf Habacker  <ralf.habacker@freenet.de>
6664         * archive_tar.cc (archive_tar::next_file_name()): fixed broken
6665         GNU long name extension support.
6667 2002-05-27  Robert Collins  <rbtcollins@hotmail.com>
6669         * IniParseFindVisitor.cc (IniParseFindVisitor::visitFile): Don't
6670         unescape 0 length strings.
6672 2002-05-20  Robert Collins  <rbtcollins@hotmail.com>
6674         * package_meta.cc (packagemeta::set_action): Don't allow reinstall
6675         when local with no cached file, and install the default source if the
6676         default version has no binary.
6678 2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
6680         * IniDBBuilderPackage.cc (IniDBBuilderPackage::IniDBBuilderPackage): New
6681         method.
6682         (IniDBBuilderPackage::buildVersion): Provide a warning when a newer
6683         setup version created the ini file.
6684         * IniDBBuilderPackage.h (IniDBBuilderPackage::IniDBBuilderPackage): New
6685         method.
6686         * IniParseFindVisitor.cc (IniParseFindVisitor::visitFile): Use the new
6687         feedback strategy.
6688         * IniParseFindVisitor.h (IniParseFindVisitor::IniParseFindVisitor):
6689         Require a feedback strategy.
6690         * Makefile.am (setup_SOURCES): Add IniParseFeedback sources.
6691         * Makefile.in: Regenerate.
6693 2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
6695         * io_stream_file.cc (io_stream_file::remove): Use the SetFileAttributes
6696         trick to delete read only files.
6697         * io_stream_cygfile.cc (io_stream_cygfile::remove): Use file:// to
6698         remove files.
6699         * Makefile.am (release): Tweak to be more helpful.
6700         * Makefile.in: Regenerate.
6702 2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
6704         * Makefile.am (release): Tweak to be more helpful.
6705         * Makefile.in: Regenerate.
6706                 
6707 2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
6709         * Makefile.am (release): Tweak to be more helpful.
6710         * Makefile.in: Regenerate.
6712 2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
6714         * choose.cc (scan_downloaded_files): When a non-installed version
6715         has neither bin nor src cached files for local installs,
6716         remove the version from availability.
6718 2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
6720         * ini.cc (do_remote_ini): Save uncompressed ini's correctly.
6722 2002-05-19  Robert Collins  <rbtcollins@hotmail.com>
6724         * rsync: New support library, contains librsync. This is not (yet)
6725         rsync interoperable.
6726         * configure.in: --with-rsync to enable rsync support. (Not complete).
6727         * Makefile.am: Enable building with rsync.
6728         * Makefile.in: Regenerate.
6729         * configure: Ditto.
6730         * IniDBBuilder.cc (IniDBBuilder::buildPackageInstall): Pass the md5 as
6731         an array.
6732         (IniDBBuilder::buildPackageSource): Ditto.
6733         * IniDBBuilder.h: Ditto.
6734         * IniDBBuilderPackage.cc: Ditto.
6735         * IniDBBuilderPackage.h: Ditto.
6736         * FindVisitor.cc: New file.
6737         * FindVisitor.h: New file, interface for visiting a file system
6738         aggregate.
6739         * IniParseFindVisitor.cc: New file.
6740         * IniParseFindVisitor.h: New file, concrete FindVisitor that parses
6741         found setup.ini's.
6742         * README: Update TODO's.
6743         * String++.cc (String::String): New constructor for <string> inter-
6744         operability.
6745         (String::substr): New method.
6746         * String++.h: Ditto.
6747         * choose.cc (scan2): Remove.
6748         (scan_downloaded_files): Simplify.
6749         * dialog.h: Include parsing pre-requirements.
6750         * download.cc (check_for_cached): Fullname was used incorrectly - fix.
6751         * filemanip.cc (parse_filename): -src packages where incorrectly parsed.
6752         * find.cc: Rewrite. Now uses a Visitor pattern and is re-entrant.
6753         * find.h: Ditto.
6754         * fromcwd.cc: Remove unneeded includes.
6755         (is_test_version): Remove.
6756         (found_file): Remove.
6757         (SetupFindVisitor): Trivial visitor to detect setup.ini's.
6758         (found_ini): Remove.
6759         (do_fromcwd): Remove commented code that has be replaced elsewhere.
6760         * ini.cc (local_ini): Remove.
6761         (findBuilder): Remove.
6762         (find_routine): Remove.
6763         (do_local_ini): Use new IniParseFindVisitor.
6764         * iniparse.y: Typecase MD5 arrays, as we know they are allocated as
6765         unsigned char.
6766         * postinstall.cc: Remove non-core includes.
6767         (run_script_in_postinstall): Remove.
6768         (RunFindVisitor): Trivial Visitor, runs each found script.
6769         (do_postinstall): Use new find syntax.
6771 2002-05-14  Christopher Faylor  <cgf@redhat.com>
6773         * ini.cc (find_routine): Don't clear buffer it it's NULL.
6775 2002-05-14  Christopher Faylor  <cgf@redhat.com>
6777         * filemanip.h (trail): Declare.
6778         * filemanip.cc (trail): New function.
6779         (find_tar_ext): Use trail() instead of strstr().
6780         * fromcwd.cc (check_ini): Ditto.
6781         * ini.cc (find_routine): Ditto.  Don't tack local_dir to path since it
6782         should now be fully qualified.  Set ini_filename.  Reset error_buf and
6783         error_count for any subsequent ini file parsing.
6784         (ini_filename): New static variable for parse error reporting.
6785         (yyerror): Use full path of setup.ini in error message.  Subtract one
6786         from line number if at bol.
6787         * find.cc (found_part): Eliminate.
6788         (find_sub): Call for_each with full path found rather than just file
6789         component.
6790         (find): Don't calculate found_part.
6791         * inilex.l (ini_init): Flush input buffer and reset line number.
6792         (yybol): New function.  Exports YY_AT_BOL.
6793         * iniparse.y: Increase stack depth to allow more tokens to be processed.
6794         (yyparse): Remove newline from error condition to allow subsequent
6795         per-line error processing to proceed normally.
6797 2002-05-14  Christopher Faylor  <cgf@redhat.com>
6799         * find.cc (find_sub): Be more defensive in preserving trailing parts of
6800         components when doing recursive directory searches or calling user
6801         supplied for_each().
6802         * ini.cc (find_routine): Don't assume that any path name with
6803         "setup.ini" in it is actually a setup.ini file.  Only honor trailing
6804         components.  Copy path argument to temporary storage when unescaping
6805         to prevent nuking of argument.
6807 2002-05-12  Robert Collins  <rbtcollins@hotmail.com>
6809         * CONTRIBUTORS: New file.
6811 2002-04-02  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
6813         * choose.cc: Run indent.
6814         (nextbutton): Remove static variable.
6815         (default_trust): Remove use of nextbutton.
6816         (set_view_mode): Ditto.
6817         (create_listview): Add IDC_CHOOSE_PREV and IDC_CHOOSE_NEXT to ta[] so
6818         rbset() sets the prev/next/curr radio buttons properly.
6819         (dialog_cmd): Delete function.
6820         (dialog_proc): Delete function.  Move WM_INITDIALOG functionality to
6821         ChooserPage::OnInit.
6822         (do_choose): Delete function.  Move pre-DialogBox() code to
6823         ChooserPage::OnInit(), post-DialogBox() code to ChooserPage::OnNext.
6824         (WM_APP_START_CHOOSE): Remove define.
6825         (WM_APP_CHOOSE_IS_FINISHED): Remove define.
6826         (do_choose_thread): Delete function.
6827         (ChooserPage::OnActivate): Delete method.
6828         (ChooserPage::OnMessageApp): Delete method.
6829         (ChooserPage::OnInit): New method.
6830         (ChooserPage::OnNext): New method.
6831         (ChooserPage::OnBack): New method.
6832         (ChooserPage::OnMessageCmd): New method.
6833         * choose.h: Run indent.
6834         (ChooserPage::OnMessageApp): Delete declaration.
6835         (ChooserPage::OnActivate): Ditto.
6836         (ChooserPage::OnMessageCmd): New declaration.
6837         (ChooserPage::OnInit): Ditto.
6838         (ChooserPage::OnNext): Ditto.
6839         (ChooserPage::OnBack): Ditto.
6840         * desktop.cc (DesktopSetupPage::OnBack): Replace use of IDD_CHOOSER
6841         with IDD_CHOOSE.
6842         * fromcwd.cc (do_fromcwd): Replace use of IDD_CHOOSER with IDD_CHOOSE.
6843         * ini.cc (do_ini_thread): Replace use of IDD_CHOOSER with IDD_CHOOSE.
6844         * res.rc (IDD_CHOOSE): Remove dialog template.
6845         (IDD_CHOOSER): Alter dialog template to fit wizard size and format.
6847 2002-05-12  Robert Collins  <rbtcollins@hotmail.com>
6849         * LogFile.cc (endLog): Work around an apparent libg++-3 bug causing
6850         corrupt log file entries.
6851         * geturl.cc: Convert to the new LogSingleton logging.
6853 2002-05-12  Robert Collins  <rbtcollins@hotmail.com>
6855         * ini.cc (do_remote_ini): Use setup.bz2 if it exists in preference to
6856         setup.ini.
6858 2002-05-12  Robert Collins  <rbtcollins@hotmail.com>
6860         * geturl.h: Declare getUrlToStream.
6861         * geturl.cc (getUrlToStream):  New function.
6862         (get_url_to_membuf): Refactor to use getUrlToStream.
6864 2002-05-11  Robert Collins  <rbtcollins@hotmail.com>
6866         * Makefile.am: Add a release target to automate some of the routine
6867         work.
6868         * Makefile.in: Regenerate.
6870 2002-05-11  Robert Collins  <rbtcollins@hotmail.com>
6872         * choose.cc (scan_downloaded_files): On local installs remove all
6873         mirror sites if no cached copy of a package is found.
6875 2002-05-10  Robert Collins  <rbtcollins@hotmail.com>
6877         * Makefile.in: Regenerate.
6878         * iniparse.y: Use left recursion, not right in the lines rule to
6879         avoid stack overflows.
6880         * README: Update TODO's.
6881         * io_stream_file.cc: Native builds need to include sys/stat.h
6883 2002-05-06  John Marshall  <jmarshall@acm.org>
6885         * site.cc (SitePage::OnMessageCmd): recalculate navigation
6886         button activation when "Add" is pressed.
6887         (SitePage::CheckControlsAndDisableAccordingly): tweak comment.
6889 2002-05-07 Robert Collins  <rbtcollins@hotmail.com>
6891         * Makefile.am (inlint_SOURCES): Add conditional objects to inilint
6892         depending on platform.
6893         Add file:// support.
6894         * configure.in: Set conditional MINGWTARGET if compiling against mingw
6895         libraries.
6896         * Makefile.in: Regenerate.
6897         * configure: Ditto.
6898         * io_stream_file.cc: Only use win32 calls when building for mingw.
6900 2002-05-05 Robert Collins  <rbtcollins@hotmail.com>
6902         * Makefile.am (noinst_PROGRAMS): Make inilint configurable.
6903         * configure.in: Ditto.
6904         Fix incorrect header checking syntax.
6905         * aclocal.m4: Regenerate.
6906         * configure: Regenerate.
6907         * Makefile.in: Regenerate.
6908         * io_stream.cc: Remove platform specific and provider specific code.
6909         (io_stream::registerProvider): New method, registers a Url provider with
6910         the io_stream code.
6911         Make all methods consistently throw invalid_argument exceptions when
6912         a provider that is requested is not present.
6913         (findProvider): New private function, finds a provider.
6914         * io_stream.h: Declare io_stream::registerProvider.
6915         * io_stream_cygfile.cc: Create a Provider class to register with
6916         io_stream.cc.
6917         * io_stream_file.cc: Ditto.
6918         * archive.cc: Remove unneeded includes.
6919         * archive_tar.cc: Remove unneeded includes.
6920         * archive_tar.h: Add required include.
6921         * archive_tar_file.cc: Remove unneded includes.
6922         * choose.cc: Remove unneeded includes:
6924 2002-05-04 Robert Collins  <rbtcollins@hotmail.com>
6926         * io_stream.cc: Use the new log interface thruout.
6928 2002-05-04 Robert Collins  <rbtcollins@hotmail.com>
6930         * log.cc (log): Reimplement via LogSingleton.
6931         (log_save): Remove.
6932         (exit_setup): Remove.
6933         * log.h (log_save): Remove.
6934         (exit_setup): Remove.
6935         * LogSingleton.cc: New file.
6936         * LogSingleton.h: New file.
6937         * LogFile.cc: New file.
6938         * LogFile.h: New file.
6939         * Makefile.am (inilint_SOURCES): Add the new log interface.
6940         (setup_SOURCES): Add the new log interface and the concrete File
6941         implementation.
6942         * Makefile.in: Regenerate.
6943         * archive.cc: Use the new log interface thruout.
6944         * archive_tar.cc: Ditto.
6945         * main.cc: Ditto.
6946         * dialog.cc (fatal): Use the new log interface.
6947         * ini.cc (do_ini_thread): Use the log interface to exit.
6948         * isntall.cc (do_install_thread): Ditto.
6949         * netio.cc (auth_cmd): Ditto.
6950         * msg.cc (fatal): Ditto.
6951         * localdir.cc (save_local_dir): Save to different files depending on
6952         the mode, and if a root dir exists.
6954 2002-05-04 Robert Collins  <rbtcollins@hotmail.com>
6956         * IniDBBuilder.cc: New file.
6957         * IniDBBuilder.h: New file.
6958         * IniDBBuilderPackage.cc: New file.
6959         * IniDBBuilderPackage.h: New file.
6960         * PackageTrust.h: New file.
6961         * IniState.h: Remove, wasn't thought out well enough.
6962         * Makefile.am (inilint_SOURCES): Add more requirements.
6963         (setup_SOURCES): Add new Builder base and concrete classes.
6964         * Makefile.in: Regenerate.
6965         * String++.cc (String::String): Implement int contructor.
6966         * String++.h (String): Declare int constructor.
6967         * archive_tar.cc (archive_tar::next_file_name): Return String() when
6968         no filename exists.
6969         * archive_tar.h (archive_tar_file): Remove get_next_filename method,
6970         it's not needed.
6971         * ini.cc: Replace IniState wuth IniDBBuilderPacakge.
6972         (find_routine): Use new IniDBBuilder to configure the parser.
6973         (do_local_ini): Ditto.
6974         (do_remote_ini): Ditto.
6975         * ini.h: Use IniDBBuilder to initialise parsing.
6976         * inilex.l (MD5): Parse the MD5 string correctly, we had the nibbles
6977         swapped.
6978         (ini_init): Use an IniDBBuilder rather than static variables.
6979         * iniparse.y: Hand off all the object creation to a builder, rather
6980         than hardcoding the behaviour. This allows run-time configured
6981         behaviour.
6982         * io_stream_cygfile.h (io_stream_cygfile): Remove get_next_filename
6983         method, it's not needed.
6984         * io_stream_file.h (io_stream_file): Ditto.
6985         * mount.cc (cygpath): Return String() for missing mounts.
6986         * package_meta.cc (packagemeta::SDesc): Return String() for blank
6987         descriptions.
6988         * package_meta.h (trusts): Remove - replaced by PackageTrust.h.
6989         (packagemeta::packagemeta): Fix incorrect syntax in String constructor
6990         usage.
6991         * cygpackage.cc (cygpackage::cygpackage): Fix incorrect syntax in
6992         String constructor usage.
6993         * site.h (site_list_type): Ditto.
6995 2002-05-03 Robert Collins  <rbtcollins@hotmail.com>
6997         * String++.h: Declare a << operator that accepts String objects.
6998         * String++.cc: We need iostream for..
6999         (operator <<): this. Provide a << operator that accepts String objects.
7000         * ini.cc (yyerror): Remove the "C" classifier - it's not needed.
7001         Change from vargs to a String parameter.
7002         * inilintmail.cc: Remove the gui related headers.
7003         (yyerror): Implement this for parsing.
7004         * iniparse.y: Use the new yyerror syntax.
7006 2002-05-03 Robert Collins  <rbtcollins@hotmail.com>
7008         * Makefile.am: Add IniState.h.
7009         * Makefile.in: Regenerate.
7010         * IniState.h: New file.
7011         * choose.cc: Don't include ini.h - it's not needed.
7012         * configure: Regenerate.
7013         * desktop.cc: Don't include ini.h - it's not needed.
7014         * download.cc: Ditto.
7015         * fromcwd.cc: Ditto.
7016         * ini.cc: Use IniState.h to track each parsing calling.
7017         (find_routine): Ditto.
7018         (do_remote_ini): Ditto.
7019         (do_ini_thread): Ditto.
7020         * ini.h (ini_init): Adjust parameters to include state object.
7021         * inilex.l: Declare parser state variable.
7022         (ini_init): Adjust parameters to include state object.
7023         * iniparse.y: Remove obsolete setup_timestamp and setup_version
7024         declarations.
7025         (setup_header): Use new state variable to track time and version.
7026         (add_correct_version): Ditto.
7027         * install.cc: Don't include ini.h - it's not needed.
7029 2002-05-03 Robert Collins  <rbtcollins@hotmail.com>
7031         * nio-files.cc (NetIO): Use io_stream syntax for get_file_size.
7032         * io_stream_file.cc: Don't include filemanip.h.
7033         (io_stream_file::get_size): Implement here to remove filemanip
7034         dependency.
7035         * io_stream_cygfile.cc: Don't include filemanip.h.
7036         (io_stream_cygfile::get_size): Implement here to remove filemanip
7037         dependency.
7038         Implement a stat based version for when win32 is not available.
7039         * filemanip.h (get_file_size): Return size_t - it's more appropriate.
7040         * filemanip.cc: Don't include win32.h - be platform independent.
7041         Include strings.h and io_stream.h as part of that.
7042         (get_file_size): Leverage io_streams and remove win32 implementation.
7043         * download.cc (check_for_cached): Use io_stream syntax for
7044         get_file_size.
7045         (download_one): Ditto.
7047 2002-05-02 Robert Collins  <rbtcollins@hotmail.com>
7049         * configure.in: Correct a typo in last change.
7050         * configure: Regenerate.
7051         * Makefile.in: Regenerate.
7053 2002-05-02 Robert Collins  <rbtcollins@hotmail.com>
7055         * configure.in: Check for string.h and string.
7056         * configure: Regenerate.
7057         * Makefile.in: Regenerate.
7059 2002-05-01  Robert Collins  <rbtcollins@hotmail.com>
7061         * res.rc (IDD_SPLASH): Remove white box.
7063 2002-05-01  Robert Collins  <rbtcollins@hotmail.com>
7065         Oops! forgot to list these in the last checkin.
7066         * inilintmain.cc: New file.
7067         * md5.h: New file - imported md5 source, BSD style licence.
7068         * md5.cc: New file - imported md5 source, BSD style licence.
7069         * Exception.cc: New file.
7070         * Exception.h: New file.
7071         * MD5++.cc: New file.
7072         * MD5++.h: New file.
7074 2002-05-01  Robert Collins  <rbtcollins@hotmail.com>
7076         * Makefile.am (AM_CFLAGS): Remove -mwindows, it's a linker flag.
7077         Remove -fno-rtti, we need it for exceptions.
7078         (AM_CXXFLAGS): Ditto.
7079         (WARNONLY_CFLAGS): Ditto.
7080         (EXTRA_PROGRAMS): Add with initial linter sources - not functional yet.
7081         (setup_LDFLAGS): Add and set to -mwindows.
7082         (setup_SOURCES): Add new sources.
7083         * Makefile.in: Regenerate.
7084         * README: Update TODO.
7085         * choose.cc (scan_downloaded_files): Use ini information if it's
7086         available.
7087         * configure: Regenerate.
7088         * download.cc (check_for_cached): Make reusable from elsewhere.
7089         Throw exceptions on errors (as opposed to failures).
7090         Check MD5 sum when it's known.
7091         (download_one): Never force a download.
7092         Handle corrupt package exceptions.
7093         * ini.cc (find_routine): Reverse escape the URL to correctly identify
7094         the site URL.
7095         * inilex.l (MD5): Provide a parsing rule (note: lowercase is required).
7096         * iniparse.y: Allow calculation of MD5 sums, and allow src only
7097         packages.
7098         (process_src): New helper function.
7099         * isntall.cc (install_one_source): Check MD5 sums when possible.
7100         Throw exceptions on errors.
7101         (do_install_thread): Handle exceptions for installation calls.
7102         * package_source.h: Store MD5 information.
7103         * propsheet.cc (PropSheet::Create): Add a useful comment.
7104         * res.rc (IDS_INSTALL_ERROR): Define.
7105         (IDS_CORRUPT_PACKAGE): Define.
7106         * resource.h (IDS_INSTALL_ERROR): Define.
7107         (IDS_CORRUPT_PACKAGE): Define.
7108         * rfc1738.cc (rfc1738_unescape_part): Implement.
7109         * rfc1738.h (rfc1738_unescape_part): Declare.
7111 2002-04-29  Robert Collins  <rbtcollins@hotmail.com>
7113         * Makefile.am: Remove dependecy rules that automake emits.
7114         Correct badly copied dependency info for manually compiled files.
7115         (setup_SOURCES): Add all used headers.
7116         (EXTRA_DIST): Include non compilate but required sources.
7117         (setup_LDADD): Remove mingw32, it is autodetected.
7118         * Makefile.in: Regenerate.
7119         * String++.h: sys/types is a system header.
7120         * choose.cc (do_choose_thread): Make into a Win32 thread routine.
7121         Use ExitThread.
7122         (ChooserPage::OnMessageApp): Use Win32 threads. (_beginthread is not
7123         portable).
7124         * configure: Regenerate.
7125         * configure.in: Check for mingw32/cygwin specific headers and libraries.
7126         * cygpackage.h: Include the win32.h header to get correct macro
7127         definitions in all situations.
7128         * download.cc (do_download_reflector): Make into a Win32 thread routine.
7129         Use ExitThread.
7130         (do_download): Use Win32 threads.
7131         * ini.cc: Ditto.
7132         * install.cc: Ditto.
7133         * (WinMain): Adjust to build valid command line using application
7134         under both mingw32 and cygwin.
7135         * mount.cc (set)cygdrive_flags): Create new system flags if the
7136         user requests system and the value does not exist.
7137         * nio-http.cc: Define a _strnicmp for cygwin.
7138         * package_db.cc: Include <errno.h> if it exists.
7139         * site.cc (do_download_site_info_thread): Make into a Win32 thread
7140         routine.
7141         Use ExitThread.
7142         (do_download_site-Info): Use Win32 threads.
7143         * state.cc: Explicity declare variables to avoid header conflicts
7144         caused by '#define extern" on cygwin.
7145         * win32.h: Include <alloca.h> if it exists.
7146         (_MAX_PATH): Define as MAX_PATH when not defined by windows.h.
7147         (_access): Define as access if not defined by windows.h.
7149 2002-04-27  Robert Collins  <rbtcollins@hotmail.com>
7151         * compress_gz.cc (compress_gz::error): EOF is not an error condition.
7153 2002-04-27  Robert Collins  <rbtcollins@hotmail.com>
7155         * Makefile.am: Add libgetopt++ to the subdirs list.
7156         Search the libgetopt++ header directory.
7157         Link against libgetopt++.la.
7158         (setup_SOURCES): Remove GetOption.cc and getopt.c and Option.cc.
7159         (setup_LDADD): Explicitly include res.o.
7160         * Makefile.in: Regenerate.
7161         * aclocal.m4: Regenerate.
7162         * bootstrap.sh: Call libtoolize.
7163         * configure: Regenerate.
7164         * configure.in: Add libtool support and configure libgetopt++.
7165         * desktop.cc (NoShortcutsOption): Turn into a BoolOption.
7166         (DesktopSetupPage::OnInit): Use the simpler syntax.
7167         * desktop.h: Remove dependency on Option.h, and remove NoShortcustOption
7168         declaration.
7169         * main.cc: Include getopt++/GetOption.h.
7170         (main): Use simpler syntax.
7171         * cdefs.h: Remove.
7172         * getopt.h: Remove.
7173         * getopt.c: Remove.
7174         * GetOption.h: Remove.
7175         * GetOption.cc: Remove.
7176         * Option.h: Remove.
7177         * Option.cc: Remove.
7179 2002-04-26  Robert Collins  <rbtcollins@hotmail.com>
7181         * Makefile.am: Add zlib and bz2lib to SUBDIRS.
7183 2002-04-26  Robert Collins  <rbtcollins@hotmail.com>
7185         * aclocal.m4: New file, cached macros.
7186         * bootstrap.sh: New file, calls required autotools in appropriate
7187         order.
7188         * Makefile.am: New file, input Makefile for automake.
7189         * Makefile,in: Now a generated file - regenerate.
7190         * configure: Regenerate.
7191         * configure.in: Add automake support.
7192         * inilex.l: Change VERSION to PACKAGEVERSION to avoid a collision with
7193         automake's VERSION define.
7194         * iniparse.y: Ditto.
7196 2002-04-26  Robert Collins  <rbtcollins@hotmail.com>
7198         * cdefs.h: New file, imported to allow getopt.c to build without
7199         cygwin headers.
7200         * getopt.h: New file, imported to allow building without cygwin headers.
7201         * getopt.c: Ditto.
7202         * bz2lib: New directory, contains copy of bz2lib.
7203         * cfgaux: New directory, contains autotool helper scripts.
7204         * Makefile,in: Adjust library and target definitions for building
7205         outside the sourceware tree.
7206         * compress_bz.h: Use new bz2lib header location.
7207         * mount.cc: Import key defines and enums to be independent of cygwin
7208         headers.
7209         * configure.in: Update to autoconf 2.53, and to be sourceware
7210         independent.
7211         * configure: Regenerate.
7213 2002-04-12  Robert Collins  <rbtcollins@hotmail.com>
7215         * mklink2.cc (make_link_2): Tweak to work with current w32api
7216         headers.
7217                 
7218 2002-04-10  Pavel Tsekov  <ptsekov@gmx.net>
7220         * version.cc (canonicalize_version): Fix a call delete[]
7221         to delete the allocated address.
7223 2002-03-29  Robert Collins  <rbtcollins@hotmail.com>
7225         * PickView.cc (PickView::set_headers): Set last_col correctly. Thanks
7226         to Ton van Overbeek for locating the bug area.
7228 2003-03-27  Robert Collins  <rbtcollins@hotmail.com>
7230         * PickView.cc (PickView::insert_pkg): Be more generic with
7231         object use.
7232         (PickView::insert_category): Ditto.
7233         (PickView::~PickView): Create.
7234         * PickView.h (PickView::~PickView): Declare.
7236 2003-03-27  Robert Collins  <rbtcollins@hotmail.com>
7238         * Makefile.in (OBJS): Add new commandline objects.
7239         * desktop.cc (NoShortCutsOption): New option code.
7240         (DesktopSetupPage::OnInit): Check whether to skip shortcuts.
7241         * desktop.h (NoShortCutsOption): New concrete command line option class.
7242         * main.cc (WinMain): Process command line options.
7243         * GetOption.h: New file, singleton command line class.
7244         * GetOption.cc: New file, implementation of the above.
7245         * Option.h : New file, abstract option for GetOption.
7246         * Option.cc: New file, implement constructor and destructor.
7248 2002-03-26  Pavel Tsekov  <ptsekov@gmx.net>
7250         * mkdir.cc (mkdir_p): Stop processing if the path is exhausted.
7252 2002-03-26 Ton van Overbeek  <tvoverbe@cistron.nl>
7254         * PickPackageLine.cc (PickPackageline::paint): Adjust clipping rectangle
7255         to textheight, so large fonts work.
7257 2003-03-26  Robert Collins  <rbtcollins@hotmail.com>
7259         * io_stream_cygfile.cc (io_stream_cygfile::mklink): Don't translate
7260         symlinks.
7262 2003-03-26  Robert Collins  <rbtcollins@hotmail.com>
7264         * io_stream_cygfile.cc (cwd): New static for cwd storage.
7265         (io_stream_cygfile::normalise): New method.
7266         (io_stream_cygfile::io_stream_cygfile): Use it.
7267         (io_stream_cygfile::exists): Ditto.
7268         (io_stream_cygfile::remove): Ditto.
7269         (io_stream_cygfile::mklink): And again.
7270         (cygmkdir_p): Yes, again.
7271         (io_stream_cygfile::move): And once more.
7272         * io_stream_cygfile.h (io_stream_cygfile::normalise): Declare.
7273         (io_stream_cygfile::cwd): Ditto.
7275 2003-03-26  Robert Collins  <rbtcollins@hotmail.com>
7277         * package_meta.cc (package_meta::~package_meta): Remove duplicate.
7278         (CategoryPackage::~CategoryPackage): Ditto. (Thanks to Ton van
7279         Overbeek for the report).
7280         * mklink2.cc: Moved from mklink2.c to avoid 'not a prototype error'.
7281         Make g++ compatible.
7282         * mklink2.c: Remove.
7283         * site.cc (site_list_type::init): Delete the correct memory addres.
7284         Thanks to Pavel Tsekov for tracking this down.
7286 2002-03-20  Robert Collins  <rbtcollins@hotmail.com>
7288         * win32.h: Only define alloca if it's not already.
7290 2002-03-20  Robert Collins  <rbtcollins@hotmail.com>
7292         * package_meta.h (packamgemeta::trustp): Make 'test' choice leave
7293         installed packages alone.
7294         * README: Update with latest requests.
7295         * Various: MTC fixes from setup200202 branch.
7297 2002-03-19  Christopher Faylor  <cgf@redhat.com>
7299         * Makefile.in (setup_version.c): Add back magic which allows detection
7300         of setup.exe version number.
7302 2002-03-17  Robert Collins <rbtcollins@hotmail.com>
7304         * PickPackageLine.cc (PickPackageLine::paint): Fix incorrect clip region
7305         calculation on win9x systems.
7307 2002-03-16  Robert Collins <rbtcollins@hotmail.com>
7309         * install.cc (install_one_source): Write the correct length of a string
7310         to the lst file (Thanks to Pavel Tsekov for reporting the bug).
7312 2002-03-15  Robert Collins <rbtcollins@hotmail.com>
7314         * choose.cc (list_click): Always refresh the entire chooser, as our
7315         package state change mechanism is broken with the new improved list
7316         classes.
7318 2002-03-15  Robert Collins <rbtcollins@hotmail.com>
7320         * desktop.cc (make_passwd_group): Check for .lnk suffix on /etc/passwd
7321         and /etc/group.
7323 2002-03-15  Robert Collins <rbtcollins@hotmail.com>
7325         * PickPackageLine.cc (PickPackageLine::DrawCheck): New method factored
7326         out from paint().
7327         (PickPackageLine::paint): Use DrawCheck to draw the src tick box, and
7328         the new bin tickbox.
7329         (PickPackageLine::click): Handle the new bin tickbox.
7330         * PickPackageLine.h (PickPackageLine::DrawCheck): Declare this.
7331         * PickView.cc (pkg_headers): Add a Bin? column.
7332         (cat_headers): Ditto.
7333         (PickView::set_headers): Ditto.
7334         (PickView::init_headers): Ditto.
7335         * PickView.h (PickView): Ditto.
7336         * choose.cc (list_click): Use the new name for src_col to set the clip
7337         rectangle.
7339 2002-02-24  Michael A Chase <mchase@ix.netcom.com>
7341         * io_stream_cygfile.cc (io_stream_cygfile::mklink): Fix up Robert's
7342         fixup.
7344 2002-02-24  Michael A Chase <mchase@ix.netcom.com>
7346         * desktop.cc (make_link): Add "file://" prefix to io_stream::mkpath_p()
7347         call.
7348         (make_passwd_group): Ditto.
7349         * localdir.cc (save_local_dir): Ditto.
7350         * io_stream_cygfile.cc (io_stream_cygfile::mklink): Wrap long lines.
7351         Add "cygfile://" prefix to io_stream::open() calls.
7353 2002-02-24  Robert Collins <rbtcollins@hotmail.com>
7355         * log.cc (log_save): Fix creating /var/log.
7356         * packate_meta.cc (standard_dirs): Remove duplicate '/''s.
7358 2002-02-24  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
7360         * res.rc (STRINGTABLE): Add IDS_CYGWIN_SETUP and
7361         IDS_CYGWIN_SETUP_WITH_PROGRESS strings.
7362         * resource.h: Add IDS_CYGWIN_SETUP and
7363         IDS_CYGWIN_SETUP_WITH_PROGRESS IDs.
7365         * splash.cc (OnInit): Qualify SetWindowText() call with global scope
7366         operator (::SetWindowText()).
7368         * threebar.cc: Run indent.
7369         (cistring.h): Add include.
7370         (SetText1, SetText2, SetText3): Qualify SetWindowText() call with
7371         global scope operator.
7372         (SetBar2): Add logic for writing percent complete into window title.
7374         * window.h: Run indent.
7375         (SetWindowText): New function.
7376         (String): Add forward declaration.
7377         * window.cc: Run indent.
7378         (String++.h): Add include.
7379         (SetWindowText): New function.
7381 2002-02-24  Robert Collins <rbtcollins@hotmail.com>
7383         * README: Update TODO list.
7384         * install.cc (install_one): Fix src package location.
7385         (do_install_thread): Fix creating directories.
7386                 
7387 2002-02-19  Robert Collins <rbtcollins@hotmail.com>
7389         * choose.cc: Include cygpackage.h for scan2 use.
7390         (set_existence): Ignore setup.ini mirrors when installing from cwd.
7391         (scan2): Process any valid file.
7392         Add cache entries when a file matching a setup.ini listed version is
7393         found.
7394         * filemanip.cc (parse_filename): Remove pkgtar - not used anywhere else.
7395         * filemanip.h (filemanip::pkgtar): Remove.
7396         * package_meta.cc (CategoryPackage::~CategoryPackage): New method.
7397         (packagemeta::~packagemeta): Move from package_meta.h
7398         Remove and delete all version and category information.
7399         * package_meta.h (CategoryPackage): Create a destructor.
7400         (packagemeta::~packagemeta): Move to .cc file.
7402 2002-02-19  Robert Collins <rbtcollins@hotmail.com>
7404         * install.cc (install_one_source): Make NULL cached package names cause
7405         errors.
7407 2002-02-18  Michael A Chase <mchase@ix.netcom.com>
7409         * desktop.cc (make_passwd_group): Don't create passwd-grp.bat
7410         unnecessarily.
7411         
7412 2002-02-18  Michael A Chase <mchase@ix.netcom.com>
7414         * log.cc (log_save): Put "\n" at end of log lines instead of "'".
7416 2002-02-19  Robert Collins <rbtcollins@hotmail.com>
7418         * mount.cc (create_mount): Avoid a const char*->char* warning.
7419         (read_mounts): Ditto.
7421 2002-02-05  Jason Tishler  <jason@tishler.net>
7423         * download.cc (do_download_thread): Fix off-by-one error.
7424         
7425 2002-02-19  Robert Collins  <rbtcollins@hotmail.com>
7427         * configure.in (CXXFLAGS): Substitute at configure time, not runtime.
7428         * configure (CXXFLAGS): Regenerate.
7429         * Makefile.in (iniparse.o): Build via default rules - no errors now.
7430         * README: TODO list updates.
7432 2002-02-19  Michael A Chase  <mchase@ix.netcom.com>
7434         * String++.cc (String::concat):: Remove.
7435         (String::vconcat):: Ditto.
7436         * String++.h (String::concat):: Remove.
7437         (String::vconcat):: Ditto.
7438         * archive_tar.cc: Don't include concat.h.
7439         * archive_tar_file.cc: Don't include concat.h.
7440         * compress_bz.cc (compress_bz::peek): Don't log unneeded messages.
7441         (compress_bz::seek): Ditto.
7442         (compress_bz::~compress_bz): Ditto.
7443         * compress_gz.cc (compress_gz::peek): Ditto.
7444         (compress_gz::error): Ditto.
7445         (compress_gz::~compress_gz): Ditto.
7446         * concat.cc (vconcat): Remove.
7447         (concat): Ditto.
7448         * concat.h (vconcat): Remove.
7449         (concat): Ditto.
7450         * desktop.cc (desktop_icon): Use new cygpath.
7451         (make_etc_profile): Ditto.
7452         (uexists): Ditto.
7453         (make_passwd_group): Ditto.
7454         (save_icon): Ditto.
7455         (check_desktop): Remove concat use.
7456         (check_start_menu): Ditto.
7457         * download.cc (download_one): Use new mkpath_p correctly.
7458         Use LOG_PLAIN.
7459         * fromcwd.cc: Don't include concat.h.
7460         * geturl.cc (get_url_to_membuf): Use String log() call.
7461         (get_url_to_file): Ditto.
7462         * install.cc: Don't include concat.h.
7463         (uninstall_one): Use LOG_PLAIN.
7464         (replace_one): Ditto.
7465         (install_one_source): Ditto.
7466         (install_one): More char to String conversion.
7467         (do_install_thread): Use new cygpath.
7468         Use new create_mount.
7469         * io_stream.cc (io_stream::move): Use new log().
7470         * io_stream_cygfile (io_stream_cygfile::io_stream_cygfile): Use new
7471         cygpath.
7472         (io_stream_cygfile::exists): Ditto.
7473         (io_stream_cygfile::remove): Ditto.
7474         (io_stream_cygfile::mklink): Ditto.
7475         (io_stream_cygfile::write): Ditto.
7476         (cygmkdir_p): Ditto.
7477         (io_stream_cygfile::move): Ditto.
7478         * io_stream_file.cc: Don't include log.h.
7479         (io_stream_file::write): Don't log unneeded messages.
7480         * localdir.cc: Don't include concat.h.
7481         (LocalDirPage::OnNext): Use LOG_PLAIN.
7482         * log.cc: Don't include log.h.
7483         (exit_setup): Use new cygpath.
7484         * log.h (log_level): Add new level LOG_PLAIN.
7485         * main.cc (WinMain): Use new log().
7486         * mount.cc (SLASH_P): New macro from concat.h.
7487         (cygpath): Make String version globally visible.
7488         Remove varargs version.
7489         * mount,h: Ditto.
7490         * msg.cc (mbox): Use LOG_PLAIN.
7491         * net.cc (NetPage::OnNext): Ditto.
7492         * nio-ftp.cc (ftp_line): Use new log().
7493         * nio-http.cc: Don't include log.h.
7494         (retry_get): Use alternative url variable.
7495         * package_db.cc: Don't include concat.h.
7496         (packagedb::flush): Don't use concat.
7497         * package_meta.cc: Don't include concat.h.
7498         (packagemeta::uninstall): Use new cygpath.
7499         * postinstall.cc (do_postinstall): Ditto.
7500         * root.cc (RootPage::OnNext): Use LOG_PLAIN.
7501         * script.cc: Don't include concat.h.
7502         (init_run_script): Use new cygpath.
7503         (run_script): More char * to String conversion.
7504         (try_run_script): Ditto.
7505         * site.cc: Don't include concat.h.
7506         (SitePage::OnNext): Use LOG_PLAIN.
7507         (SitePage::OnMessageCmd): Use new log().
7508         * source.cc (SourcePage::OnDeactivate): Use LOG_PLAIN.
7510 2002-02-19  Robert Collins  <rbtcollins@hotmail.com>
7512         * Makefile.in (OBJS): Add new object.
7513         * PickCategoryLine.cc (PickCategoryLine::paint): Print a "+" before the
7514         name.
7515         * PickCategoryLine.h (PickCategoryLine::bucket): Use the String class.
7516         * PickLine.h (Pickline::key): Change to a String to help plug leaks.
7517         (PickLine::Pickline): Accept a String for the key.
7518         * PickPackageLine.cc (PickPackageLine::paint): Convert all char use to
7519         Strings.
7520         * PickPackageLine.h (PickPackageLine::PickPackageLine): The key is
7521         automatically initialised now.
7522         * PickView.cc (PickView::note_width): Convert all char * use to Strings.
7523         (PickView::init_header): Move category length checking out of the inner
7524         loop for efficiency.
7525         Convert all char use to Strings.
7526         * PickView.h: Include the String++ header.
7527         (PickView::note_width): Update the prototype.
7528         * String++.cc: New file, implements a reference counting string class.
7529         * String++.h: New file, declares a reference counting string class.
7530         * archive.cc: Include String++ instead of concat.
7531         (archive::extract_file): Convert char * usage to Strings.
7532         * archive.h: Inlude the String++ header.
7533         (archive::extract_file): Update prototype.
7534         (archive::next_file_name): Convert to a String.
7535         (archive::linktarget): Ditto.
7536         * archive_tar.cc (archive_tar::next_file_name): Convert to String usage.
7537         (archive_tar::linktarget): Ditto.
7538         * arhive_tar.h: Update the copyright.
7539         Explicitly include the relevant headers.
7540         (tar_map_result_type): Convert to String usage.
7541         (archive_tar::next_file_name): Update prototype.
7542         (archive_tar::linktarget): Ditto.
7543         * category.cc (Category::Category): Update initialisers.
7544         Convert to String usage.
7545         (Categorycmp): Update to String usage.
7546         * category.h: Include the String++ header.
7547         (Category::Category): Update to String usage.
7548         (Category::name): Ditto.
7549         (Category::key): Ditto.
7550         * choose.cc: Remove concat.h, it's not needed.
7551         (scan2): Update to String usage.
7552         (do_choose): Ditto.
7553         * cygpackage.cc: Update includes for use of String class.
7554         (cygpackage::cygpackage): Update for String usage.
7555         (cygpackage::set_canonical_version): Ditto.
7556         (cygpackage::destroy): Ditto.
7557         (cygpackage::getfirstfile): Ditto.
7558         (cygpackage::getnextfile): Ditto.
7559         (cygpackage::Name): Ditto.
7560         (cygpackage::Vendor_version): Ditto.
7561         (cygpackage::Package_version): Ditto.
7562         (cygpackage::Canonical_version): Ditto.
7563         (cygpackage::set_sdesc): Ditto.
7564         (cygpackage::set_ldesc): Ditto.
7565         * cygpackage.h: Include String++.h for parsing this file.
7566         (cygpackage::cygpackage): Update for String usage.
7567         (cygpackage::set_canonical_version): Ditto.
7568         (cygpackage::destroy): Ditto.
7569         (cygpackage::getfirstfile): Ditto.
7570         (cygpackage::getnextfile): Ditto.
7571         (cygpackage::Name): Ditto.
7572         (cygpackage::Vendor_version): Ditto.
7573         (cygpackage::Package_version): Ditto.
7574         (cygpackage::Canonical_version): Ditto.
7575         (cygpackage::set_sdesc): Ditto.
7576         (cygpackage::set_ldesc): Ditto.
7577         (cygpackage::name): Ditto.
7578         (cygpackage::vendor): Ditto.
7579         (cygpackage::packagev): Ditto.
7580         (cygpackage::canonical): Ditto.
7581         (cygpackage::fn): Ditto.
7582         (cygpackage::sdesc): Ditto.
7583         (cygpackage::ldesc): Ditto.
7584         * desktop.cc: Update includes for use of String class.
7585         (batname): Update for String usage.
7586         (iconname): Ditto.
7587         (make_link): Ditto.
7588         (start)menu): Ditto.
7589         (desktop_icon): Ditto.
7590         (make_cygwin_bat): Ditto.
7591         (make_etc_profile): Ditto.
7592         (uexists): Ditto.
7593         (make_passwd_group): Ditto.
7594         (save_icon): Ditto.
7595         (check_desktop): Ditto.
7596         (check_startmenu): Ditto.
7597         * dialog.cc (eget): Update for String usage.
7598         (egetString): New function.
7599         (eset): New variant for Strings.
7600         * dialog.h: Include String++.h for parsing this file.
7601         (egetString): New function.
7602         (eset): New variant for Strings.
7603         * diskfull.cc (diskfull): Update for String usage.
7604         * diskfull.h: Include String++.h for parsing this file.
7605         (diskfull): Update for String usage.
7606         * download.cc: Update includes for use of String class.
7607         (check_for_cached): Update for String usage.
7608         (download_one): Ditto.
7609         * filemanip.cc (get_file_size): Ditto.
7610         (base): Ditto.
7611         (parse_filename): Ditto.
7612         (backslash): Ditto.
7613         * filemanip.h: Include String++.h for parsing this file.
7614         (fileparse): Update for String usage.
7615         (base): Ditto.
7616         (parse_filename): Ditto.
7617         Don't consider '_' to be a separator.
7618         (backslash): Ditto.
7619         * find.cc: Update includes for use of String class.
7620         (find_sub): Make more flexible.
7621         (find): Update for String usage.
7622         * find.h (find): Use Strings.
7623         * fromcwd.cc (found_file): Update for String usage.
7624         * geturl.cc: Ditto.
7625         (init_dialog): Ditto.
7626         (get_url_to_membuf): Ditto.
7627         (get_url_to_string): Ditto.
7628         (get_url_to_file): Ditto.
7629         * geturl.h: Ditto.
7630         (get_url_to_membuf): Ditto.
7631         (get_url_to_string): Ditto.
7632         (get_url_to_file): Ditto.
7633         * hash.h: Ditto.
7634         (add_subdirs): Ditto.
7635         * ini.cc: Update includes for String usage.
7636         (find_routine): Update for String usage.
7637         (do_remote_ini): Ditto.
7638         (do_ini_thread): Ditto.
7639         * ini.h (ini_init): Ditto.
7640         * inilex.l: Update includes for String usage.
7641         (ini_init): Update for String usage.
7642         * iniparse.y: Ditto.
7643         (add_correct_version): Ditto.
7644         * install.cc: Update includes for String usage.
7645         (install_one_source): Update for String usage.
7646         (uninstall_one): Ditto.
7647         (replace_one): Ditto.
7648         (install_one_source): Ditto.
7649         (do_install_thread): Ditto.
7650         * io_stream.cc: Update includes for String usage.
7651         (io_stream::open): Update for String usage.
7652         (io_stream::mkpath_p): Ditto.
7653         (io_stream::remove): Ditto.
7654         (io_stream::mklink): Ditto.
7655         (io_stream::move_copy): Ditto.
7656         (io_stream::move): Ditto.
7657         (io_stream::exists): Ditto.
7658         * io_stream.h: Update includes to allow correct parsing.
7659         (io_stream::open): Update for String usage.
7660         (io_stream::mkpath_p): Ditto.
7661         (io_stream::remove): Ditto.
7662         (io_stream::mklink): Ditto.
7663         (io_stream::move_copy): Ditto.
7664         (io_stream::move): Ditto.
7665         (io_stream::exists): Ditto.
7666         * io_stream_cygfile.cc: Update includes for String usage.
7667         (get_root_dir_now): Update for String usage.
7668         (io_stream_cygfile::io_stream_cygfile): Ditto.
7669         (io_stream_cygfile::~io_stream_cygfile): Ditto.
7670         (io_stream_cygfile::exists): Ditto.
7671         (io_stream_cygfile::remove): Ditto.
7672         (io_stream_cygfile::mklink): Ditto.
7673         (cygmkdir_p): Ditto.
7674         (io_stream_cygfile::set_mtime): Ditto.
7675         (io_stream_cygfile::move): Ditto.
7676         (io_stream_cygfile::get_size): Ditto.
7677         * io_stream_cygfile.h: Update includes for String usage.
7678         (io_stream_cygfile::io_stream_cygfile): Update for String usage.
7679         (io_stream_cygfile::~io_stream_cygfile): Ditto.
7680         (io_stream_cygfile::exists): Ditto.
7681         (io_stream_cygfile::remove): Ditto.
7682         (io_stream_cygfile::mklink): Ditto.
7683         (cygmkdir_p): Ditto.
7684         (io_stream_cygfile::set_mtime): Ditto.
7685         (io_stream_cygfile::move): Ditto.
7686         (io_stream_cygfile::get_size): Ditto.
7687         (io_stream_cygfile::fname): Ditto.
7688         (io_stream_cygfile::lmode): Ditto.
7689         * io_stream_file.cc: Update includes for String usage.
7690         (io_stream_file::io_stream_file): Update for String usage.
7691         (io_stream_file::~io_stream_file): Ditto.
7692         (io_stream_file::exists): Ditto.
7693         (io_stream_file::remove): Ditto.
7694         (io_stream_file::mklink): Ditto.
7695         (io_stream_file::set_mtime): Ditto.
7696         (io_stream_file::move): Ditto.
7697         (io_stream_file::get_size): Ditto.
7698         * io_stream_file.h: Update includes for String usage.
7699         * io_stream_file.cc: Update includes for String usage.
7700         (io_stream_file::io_stream_file): Update for String usage.
7701         (io_stream_file::~io_stream_file): Ditto.
7702         (io_stream_file::exists): Ditto.
7703         (io_stream_file::remove): Ditto.
7704         (io_stream_file::mklink): Ditto.
7705         (io_stream_file::set_mtime): Ditto.
7706         (io_stream_file::move): Ditto.
7707         (io_stream_file::get_size): Ditto.
7708         (io_stream_file::fname): Ditto.
7709         (io_stream_file::lmode): Ditto.
7710         * localdir.cc: Update includes for String usage.
7711         (save_local_dir): Update for String usage.
7712         (check_if_enable_next): Ditto.
7713         (load_dialog): Ditto.
7714         (browse_cb): Ditto.
7715         (LocalDirPage::OnInit): Ditto.
7716         (LocalDirPage::OnNext): Ditto.
7717         * log.cc: Update includes for String usage.
7718         (struct LogEnt): Update for String usage.
7719         (log): Ditto.
7720         (log_save): Ditto.
7721         (exit_setup): Ditto.
7722         * log.h: Update includes for String usage.
7723         (log_level): Update for String usage.
7724         (log): Ditto.
7725         (log_save): Ditto.
7726         * main.cc (WinMain): Update for String usage.
7727         * mklink2.c (make_link_2): Update for String usage.
7728         * mklink2.h (make_link_2): Update for String usage.
7729         * mount.cc: Update includes for String usage.
7730         (mount_table): Update for String usage.
7731         (find2): Ditto.
7732         (create_mount): Ditto.
7733         (remove1): Ditto.
7734         (remove_mount): Ditto.
7735         (read_mounts): Ditto.
7736         (set_root_dir): Ditto.
7737         (get_root_dir): Ditto.
7738         (path_prefix_p): Ditto.
7739         (cygpath): Ditto.
7740         * mount.h: Update includes for String usage.
7741         (create_mount): Update for String usage.
7742         (remove_mount): Ditto.
7743         (cygpath): Ditto.
7744         (set_root_dir): Ditto.
7745         (get_root_dir): Ditto.
7746         * msg.cc (mbox): Ditto.
7747         * net.cc (NetPage::OnNext): Ditto.
7748         * package_db.cc (packagedb::flush): Ditto.
7749         (packagedb::packages): Ditto.
7750         (packagedb::categories): Ditto.
7751         * package_db.h: Update includes for String usage.
7752         (packagedb::packages): Update for String usage.
7753         (packagedb::categories): Ditto.
7754         * package_meta.cc: Update includes for String usage.
7755         (hash::add_subdirs): Update for String usage.
7756         (packagemeta::uninstall): Ditto.
7757         (packagemeta::SDesc): Ditto.
7758         (packagemeta::action_caption): Ditto.
7759         * package_meta.h: Update includes for String usage.
7760         (packagemeta::packagemeta): Update for String usage.
7761         (packagemeta::~packagemeta): Ditto.
7762         (packagemeta::uninstall): Ditto.
7763         (packagemeta::SDesc): Ditto.
7764         (packagemeta::action_caption): Ditto.
7765         (package_source.cc site::site): Ditto.
7766         (packagesource::set_canonical): Ditto.
7767         (packagesource::set_cached): Ditto.
7768         * package_source.h: Update includes for String usage.
7769         (site::site): Update for String usage.
7770         (packagesource::set_canonical): Ditto.
7771         (packagesource::set_cached): Ditto.
7772         (packagesource::packagesource): Ditto.
7773         (packagesource::sites): Ditto.
7774         (packagesource::cached): Ditto.
7775         * package_version.h: Update includes for String usage.
7776         (Dependency): Update for String usage.
7777         (packageversion): Ditto.
7778         * postinstall.cc: Update includes for String usage.
7779         (do_postinstall): Update for String usage.
7780         * res.rc (IDD_LOCAL_DIR): Fix typo again!
7781         * rfc1738.cc (rfc1738_escape_part): Update for String usage.
7782         * rfc1738.h: Update includes for String usage.
7783         (rfc1738_escape_part): Update for String usage.
7784         * root.cc: Update includes for String usage.
7785         (check_if_enable_next): Update for String usage.
7786         (save_dialog): Ditto.
7787         (browse_cb): Ditto.
7788         (directory_is_absolute): Ditto.
7789         (directory_is_rootdir): Ditto.
7790         (directory_has_spaces): Ditto.
7791         (RootPage::OnInit): Ditto.
7792         (RootPage::OnNext): Ditto.
7793         * script.cc: Update includes for String usage.
7794         (init_run_script): Update for String usage.
7795         (run): Ditto.
7796         (run_script): Ditto.
7797         (try_run_script): Ditto.
7798         * script.h: Update includes for String usage.
7799         (run_script): Update for String usage.
7800         (try_run_script): Ditto.
7801         * site.cc site_list): Ditto.
7802         (all_site_list): Ditto.
7803         (other_url): Eliminate.
7804         (site_list_type::init): Update for String usage.
7805         (site_list_type::site_list_type): Ditto.
7806         (get_site_list): Ditto.
7807         (get_saved_sites): Ditto.
7808         (do_download_site_info_thread): Ditto.
7809         (SitePage::OnNext): Ditto.
7810         (SitePage::OnActivate): Ditto.
7811         (SitePage::PopulateListBox): Ditto.
7812         (SitePage::OnMessageCmd): Handle empty url's.
7813         * site.h: Update includes for String usage.
7814         (site_list_type::site_list_type): Update for String usage.
7815         (site_list_type::init): Ditto.
7816         (site_list_type::~site_list_type): Ditto.
7817         (site_list_type::url): Ditto.
7818         (site_list_type::displayed_url): Ditto.
7819         (site_list_type::key): Ditto.
7820         * source.cc (SourcePage::OnDeactivate): Ditto.
7821         * state.h: Update includes for String usage.
7822         (local_dir): Update for String usage.
7823         (trust_level): Remove.
7824         * version.cc: Update includes for String usage.
7825         (canonicalize_version): Update for String usage.
7826         * version.h: Update includes for String usage.
7827         (canonicalize_version): Update for String usage.
7828         
7829 2002-02-15  Christopher Faylor  <cgf@redhat.com>
7831         * filemanip.c (parse_filename): Revert previous change.
7833 2002-02-14  Christopher Faylor  <cgf@redhat.com>
7835         * filemanip.c (parse_filename): Don't treat '_' as a version number
7836         introducer.
7838 2002-01-29  Christopher Faylor  <cgf@redhat.com>
7840         * configure: Regenerate.
7842 2002-01-27  Robert Collins  <rbtcollins@hotmail.com>
7844         * res.rc (IDD_LOCAL_DIR): Fix typo reported by Rene
7845         <Hoeck@extern.lrz-muenchen.de>
7847 2002-01-27  Robert Collins  <rbtcollins@hotmail.com>
7849         * README: Update Todo's.
7850         * list.h: Run indent.
7851         (list): New methods checksize and insert to reduce code duplication.
7852         (list::registerbykey): Use them.
7853         (list::registerbyobject): Ditto.
7854         (list::removebyindex): Copy each object individually - safe for non
7855         trivial objects.
7856         (list::checksize): Implement.
7857         (list::insert): Implement.
7859 2002-01-27  Robert Collins  <rbtcollins@hotmail.com>
7861         * Makefile.in: Remove the dlmalloc object by default.
7862         * install.cc (do_install_thread): Remove the mallinfo call for 'working
7863         around' the crashing issue.
7864         * package_db.h: Include <string.h> - it's needed to parse this.
7865         * package_source.cc (site::site): Move here from the header file.
7866         * package_source.h (site): Stop the constructor being inlinable.
7868 2002-01-26  Robert Collins  <rbtcollins@hotmail.com>
7870         * filemanip.cc (find_tar_ext): Add a descriptive comment.
7872 2002-01-25  Michael A Chase <mchase@ix.netcom.com>
7874         * filemanip.cc (find_tar_ext): Clean up tests for .tar.gz and .tar.
7875         * fromcwd.cc (do_fromcwd): Expand FIXME comment in source file check.
7876         * install.cc (install_one_source): Add space between words in log()
7877         call.
7879 2002-01-22  Robert Collins  <rbtcollins@hotmail.com>
7881         * log.cc (exit_setup): When saving to the download dir, explicity
7882         specify the path.
7884 2002-01-22  Robert Collins  <rbtcollins@hotmail.com>
7886         * archive.cc (extract_file): Separate out the prefix and the URL
7887         scheme.
7888         * archive.h (archive::extract_file): Ditto.
7889         * install.cc (install_one_source): Ditto.  Use the new
7890         archive::extract_file syntax.
7891         (replace_one): Use the new syntax.
7892         (io_stream.cc): Add some log info for links.
7894 2002-01-22  Robert Collins  <rbtcollins@hotmail.com>
7896         * PickCategoryLine.cc (PickCategoryLine::actiontext): Remove.
7897         (PickCategoryLine::paint): Use the new action method.
7898         (PickCategoryLine::click): Set the action for all children.
7899         (PickCategoryLine::set_action): New method.
7900         * PickCategoryLine.h (PickCategoryLine::-actions): Remove.
7901         (PickCategoryLine::current_default): Use packagemeta _actions class.
7902         * PickLine.h (PickLine::set_action): New abstract method that requires
7903         including package_meta.h.
7904         * PickPackageLine.cc (PickPackageLine::set_action): New method.
7905         * PickPackageLine.h (PickPackageLine::set_action): Declare this.
7906         * list.h (getbykey): A const correctness fix.
7907         * package_meta.cc: Run indent.
7908         (packagemeta::Default_action): New const.
7909         (packagemeta::Install_action): Ditto.
7910         (packagemeta::Reinstall_action): Ditto.
7911         (packagemeta::Uninstall_action): Ditto.
7912         (packagemeta::_actions::caption): New method.
7913         (packagemeta::_actions::operator++): Ditto.
7914         (packagemeta::set_action): New overload.
7915         * package_meta.h (packagemeta::_actions): New class.
7916         (packagemeta::set_action): Declare this.
7918 2002-01-22  Robert Collins  <rbtcollins@hotmail.com>
7920         * Makefile.in (OBJS): Remove supp.o - it appears accidental.
7921         * choose.cc: Don't define alloca anymore, it's done in win32.h
7923 2002-01-22  Robert Collins  <rbtcollins@hotmail.com>
7925         * PickPackageLine.cc: New file.
7926         * PickPackageLine.h: New file.
7927         * PickLine.cc: New file.
7928         * PickLine.h: New file.
7929         * PickCategoryLine.cc: New file.
7930         * PickCategoryLine.h: New file.
7931         * PickView.cc: New file.
7932         * PickView.h: New file.
7933         * Makefile.in: Add new objects to setup.exe.
7934         Backout -fno-exceptions option.
7935         * choose.cc: Include PickView.h.
7936         Remove view related defines and static variables.
7937         (_pkg_headers): Moved to PickView.cc.
7938         (_cat_headers): Ditto.
7939         (view::views::Unknown): Ditto.
7940         (view::views::PackageFull):
7941         (view::views::Package):
7942         (view::views::Category):
7943         (pkgtrustp): Moved to package_meta.cc.
7944         (add_required): Moved to package_meta.cc.
7945         (pick_category_line::empty): Moved to PickCategoryLine.cc
7946         (paint): Adjust for moved static variables.
7947         (view::scroll): Moved to PickView.cc.
7948         (list_vscroll): Adjust for moved static variables.
7949         (list_hscroll): Ditto.
7950         (list_click): Ditto.
7951         (note_width): Moved to PickView.cc.
7952         (view::view): Ditto.
7953         (view::set_view_mode): Ditto.
7954         (view::mode_caption): Ditto.
7955         (view::views::caption): Ditto.
7956         (view::set_headers): Ditto.
7957         (DoInsertItem): Ditto.
7958         (view::init_headers): Ditto.
7959         (view::insert_pkg): Ditto.
7960         (view::insert_category): Ditto.
7961         (view::clear_view): Ditto.
7962         (view::views::operator++): Ditto.
7963         (view::click): Ditto.
7964         (default_trust): Adjust for moved statics.
7965         (pick_pkg_line::paint): Moved to PickPackageLine.cc.
7966         (pick_pkg_line::click): Ditto.
7967         (pick_category_line::actiontext): Moved to PickCategoryLine.cc
7968         (pick_category_line::paint): Ditto.
7969         (pick_category_line::click): Ditto.
7970         (set_view_mode): Adjust for moved statics.
7971         (create_listview): Ditto.
7972         * choose.h: Remove Category and packagemeta forward defines -
7973         not needed.
7974         Don't include unneeded headers list and package_meta.
7975         (_header): Move to PickView.h.
7976         (pick_line): Move to PickLine.h.
7977         (pick_pkg_line): Move to PickPackageLine.h.
7978         (pick_category_line): Move to PickCategoryLine.h.
7979         (view): Move to PickView.h.
7980         * ini.h (trusts): Move to package_meta.h.
7981         * package_meta.h (trusts): New enum.
7982         (packagemeta::set_requirements): New helper method.
7983         (packagemeta::trustp): Ditto.
7985 2002-01-21  Christopher Faylor  <cgf@redhat.com>
7987         * choose.h (view): Move forward declaration of views into public area
7988         or g++ v3 will complain.
7990 2002-01-21  Christopher Faylor  <cgf@redhat.com>
7992         * Makefile.in (CXXFLAGS): Add -fno-exceptions.
7993         * win32.h (alloca): Define as __builtin_alloca.
7994         * io_stream_memory.cc: Add include file.
7996 2002-01-21  Robert Collins  <rbtcollins@hotmail.com>
7998         * archive_tar.cc (archive_tar::~archive_tar): Mark the stream as
7999         destroyed.
8000         * archive_tar_file.cc (archive_tar_file::~archive_tar_file): Ditto.
8001         * compress.cc (compress::~compress): Be less verbose.
8002         * compress_bz.cc (compress_bz::~compress_bz): Ditto.
8003         Mark the stream as destroyed.
8004         * compress_gz.cc (compress_gz::~compress_gz): Mark the stream as
8005         destroyed.
8006         * io_stream.cc (io_stream::~io_stream): Only warn when the stream is not
8007         marked as destroyed.
8008         * io_stream_cygfile.cc (io_stream_cygfile::~io_stream_cygfile): Mark the
8009         stream as destroyed.
8010         * io_stream_file.cc (io_stream_file::~io_stream_file): Ditto.
8011         * io_stream_memory.cc (io_stream_memory::~io_stream_memory): Ditto.
8013 2002-01-21  Robert Collins  <rbtcollins@hotmail.com>
8015         * Makefile.in (CFLAGS): Allow customisable malloc debug flags.
8016         (OBJS): Link in malloc objects.
8017         * category.cc (category): Use new char, not strdup.
8018         * choose.cc (pick_pkg_line::paint): Allow for the regionsize to shrink.
8019         (do_choose): Use new char, not malloc.
8020         * concat.cc (vconcat): Ditto.
8021         * cygpackage.cc (cygpackage): Use new char, not strdup.
8022         (set_canonical_version): Ditto.
8023         (cygpackage::destroy): Use delete[], not free.
8024         * desktop.cc (uexists): Ditto.
8025         * dialog.cc (egest): Use new char, not strdup.
8026         * dlmalloc.c: New file - Doug Lea's malloc 2.7.0
8027         * hash.cc (hash::hash): Use delete instead of free.
8028         (hash::add): Use new char, not strdup.
8029         * ini.cc (do_remote_ini): Use delete[] not free.
8030         * inilex.l: Use new char, not strdup.
8031         (ini_init): Ditto.
8032         * iniparse.y: Ditto.
8033         Use a local package_db rather than a static one.
8034         * install.cc (struct mallinfo): Workaround an apparent dlmalloc bug.
8035         (do_install_thread): Call mallinfo to force a consistency check. Appears
8036         to fix a 'inuse' error in -DDEBUG builds.
8037         Use delete[] for strings.
8038         * io_stream_cygfile.cc (io_stream_cygfile::io_stream_cygfile): Use new
8039         char, not strdup.
8040         (io_stream_cygfile::~io_stream_cygfile): Use delete[], not free.
8041         (io_stream_cygfile::remove): Use new char, not strdup.
8042         * io_stream_file.cc (io_stream_file::io_stream_file): Use new char, not
8043         strdup.
8044         (io_stream_file::io_stream_file): Use delete[], not free.
8045         (io_stream_file::remove): Use new char, not strdup.
8046         * io_stream_memory.cc (memblock::~memblock): Use delete[], not free.
8047         * io_stream_memory.h (memblock): Use new char, not malloc.
8048         * localdir.cc (LocalDirPage::OnInit): Use new char, not strdup.
8049         * main.cc (WinMain): Use new char, not strdup.
8050         * mount.cc (find2): Use new char, not malloc.
8051         (read_mounts): Ditto.
8052         (cygpath): Use new char, not strdup.
8053         * netio.cc (NetIO::~NetIO): Use delete[], not free.
8054         (NetIO::set_url): Use new char, not strdup.
8055         (NetIO::get_ftp_auth): Use delete[], not free.
8056         * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Ditto.
8057         Use new char instead of strdup.
8058         * nio-http.cc (base64_encode): Use new char, not malloc.
8059         * package_meta.cc (hash::add_subdirs): Use new char instead of strdup.
8060         * package_source.h (~ packagesource): Use delete[] instead of delete.
8061         * port.h (strdup): Deprecate the use of strdup.
8062         * rfc1738.cc (rfc1738_do_escape): Use new char, not calloc.
8063         * script.cc (init_run_script): Us delete[], not free.
8064         (run_script): Ditto.
8065         * simpsock.cc (SimpleSocket::fill): Use new char, not malloc.
8066         (SimpleSocket::invalidate): Use delete[], not free.
8067         * site.cc (site_list_type::init): Use new char instead of strdup.
8068         * site.h (~site_list_type): Use delete[], not free.
8070 2002-01-20  Robert Collins  <rbtcollins@hotmail.com>
8072         * Makefile.in (OBJS): Add win32.o - win32 support functions.
8073         * README: Update todos.
8074         * archive.cc (extract_file): Support a suffix for appending to extracted
8075         files.
8076         * archive.h: Ditto.
8077         * choose.cc (set_view_mode): Use the new view::views class.
8078         (view::views::Unknown): New static for defaulting view::views variables.
8079         (view::views::PackageFull): New static for the current view.
8080         (view::views::Package): Ditto.
8081         (view::views::Category): Ditto.
8082         (topbucket::paint): Remove.
8083         (topbucket::empty): Rename to pick_category_line::empty.
8084         (topbucket::~topbucket): Remove.
8085         (paint): Use the new view::views class.
8086         Don't paint 'all' as a category when showing package categoies.
8087         (pick_category_line::actiontext): New method.
8088         (pick_category_line::paint): Make showing the category optional, and
8089         show the 'category action'.
8090         (pick_category_line::click): Make showing the category optional, and
8091         differentiate between the name being clicked, and the action
8092         description.
8093         (view::view): Use the new view::views class.
8094         (view::set_view_mode): Ditto.
8095         (view::mode_caption): Ditto.
8096         (view::views::caption): New method.
8097         (view::set_headers): Use the new view::views class.
8098         (view::clear_view): Ditto.
8099         (viewsplusplus): Replaced by
8100         (view::views::operator++): New operator.
8101         (set_view_mode): Use the new view::views class.
8102         (create_listview): Ditto.
8103         (dialog_cmd): Ditto.
8104         * choose.h (actions): Remove.
8105         (views): Remove.
8106         (pick_line): Add a new convenience constructor.
8107         (top_bucket): Remove.
8108         (pick_category_line): Reparent under pick_line, and adsorb top_bucket.
8109         (view::views): New class.
8110         * ini.h: Don't include choose.h
8111         (is_download_action): Remove.
8112         (is_upgrade_action): Remove.
8113         (is_uninstall_action): Remove.
8114         (is_full_action): Remove.
8115         * install.cc (num_replacements): New static.
8116         (rebootneeded): Ditto.
8117         (replace_one): Handle upgrades separate from removal or new installs.
8118         (install_one_source): Handle in use files.
8119         (install_one): Don't repeat upgrades.
8120         (do_install_thread): Initialize new statics.
8121         Order actions as uninstall, replace, install.
8122         Warn about rebooting if needed.
8123         * res.rc (IDS_REBOOT_REQUIRED): New string.
8124         * resource.h (IDS_REBOOT_REQUIRED): Give value.
8125         * win32.h: Declare class Win32, and update copyright and intent message.
8126         * win32.cc: New file.
8128 2002-01-15  Corinna Vinschen  <corinna@vinschen.de>
8130         * io_stream.cc (io_stream::gets): Eliminate trailing new line chars.
8131         * package_meta.cc (packagemeta::uninstall): Check for additional
8132         Windows shortcut.  Unset R/O file attribute before trying to delete
8133         file.
8135 2002-01-09  Robert Collins  <rbtcollins@hotmail.com>
8137         * choose.cc (pkgtrustp): Fall back to installed if a package is not
8138         present in the current trust level. For prev, fall back via curr.
8139         (set_existence): Allow sources with no sites, but cached files to be
8140         kept.
8141         (pick_category_line::paint): Start drawing clickable categories.
8142         * fromcwd.cc (found_file): Reinstate local file scanning.
8144 2002-01-07  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
8146         * fromcwd.cc: Run indent.
8147         (do_fromcwd): Reverse sense of comment.  Set next_dialog
8148         to IDD_CHOOSER instead of IDD_CHOOSE.
8149         * ini.cc (find_routine): Remove "/" from "/setup.ini".
8151 2001-01-07  Robert Collins  <rbtcollins@hotmail.com>
8153         * category.cc (Categorycmp): Add a const safe version.
8154         * category.h (Categorycmp): Add a const safe version.
8155         (Category): Add operator ==.
8156         * choose.cc (fill_missing_category): Add every package to "All".
8157         (pick_category_line::paint): Add support for hidden labels, and a tree
8158         depth.
8159         (pick_category_line::click): Ditto.
8160         (view::view): Pass in a top level category to use.
8161         (view::insert_pkg): Special case - skip category "All".
8162         (view::insert_category): Ditto.
8163         (view::clear_view): Set the contents label state.
8164         (create_listview): Pass in a top level category to view().
8165         * choose.h (topbucket): Make bucket available to derived classes.
8166         (pick_category_line):  Add support for hidden labels, and a tree depth.
8167         Remove our second copy of bucket.
8168         (view): Pass in a top level category to the constructor.
8169         Use pick_category_line to allow three level display.
8171 2001-01-06  Robert Collins  <rbtcollins@hotmail.com>
8173         * cygpackage.h (cygpackage): Make set_[s|l]desc virtual.
8174         * iniparse.y (add_correct_version): Copy descriptions across.
8175         * package_meta.cc (SDesc): Iterate through versions, return the first
8176         with a description.
8177         * package_version.h (packageversion): Add new virtuals set_[l|s]desc.
8179 2001-01-04  Robert Collins  <rbtcollins@hotmail.com>
8181         * script.cc (run_script): Change cygpath:// to cygfile://.
8182         * install.cc (do_install_thread): Fix off-by-one errors.
8184 2001-01-04  Robert Collins  <rbtcollins@hotmail.com>
8186         * package_db.cc (packagedb::flush): Fix an off-by-one error.
8188 2002-01-04  Jan Nieuwenhuizen  <janneke@gnu.org>
8190         * Makefile.in (realclean): more clean.
8191         (OBJS): Add script.o.
8192         * postinstall.cc (run_script_in_etc_postinstall): New function.
8193         (do_postinstall): Split off new funtion init_run_script ().
8194         (init_run_script):
8195         (run):
8196         (run_script): Move to script.cc.  Replace some deprecated remove
8197         and move calls.
8198         * script.h:
8199         * script.cc: New file.
8200         * Forward port cygwin-20010707.jcn3.patch.
8201         * package_meta.cc (uninstall): Run pre- and postremove scripts.
8202         * install.cc: Typo fix.
8203         (do_install): Run script initialisation.
8205 2001-01-04  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
8207         * cistring.cc: Run d2u.
8208         * cistring.h: Run d2u.
8210         * desktop.cc (etc_profile): Remove "test -f ./.bashrc && . ./.bashrc"
8211         from the generated /etc/profile.  Bash will source this file
8212         automatically, and having this here merely results in .bashrc being
8213         executed twice. Run d2u.
8214         * desktop.h: Run d2u.
8216         * propsheet.cc: Run d2u.
8217         (PropSheetProc): New function.  Add minimize box here instead of in
8218         PropertyPage::DialogProc.
8219         (PropSheet::Create): Change to use creation callback PropSheetProc.
8220         (DLGTEMPLATEEX): Add 'hidden' Windows struct definition.
8222         * propsheet.h: Run indent, d2u.
8223         * proppage.h: Run indent, d2u.
8225         * proppage.cc: Run d2u.
8226         (PropertyPage::DialogProc): Remove minimize-box-adding
8227         functionality.  Remove commented-out "PropSheet_SetWizButtons" calls.
8228         Add support for calling virtual OnMessageCmd.  Add setting of fonts in
8229         WM_INITDIALOG handler.
8230         (resource.h): New include for resource IDs.
8232         * res.rc: Resize and rearrange property page dialog templates
8233         to bring them in line with "Microsoft's Backward Compatible Wizard 97"
8234         specification.  Run d2u.
8235         (IDD_SITE): Add an edit control and an "Add" button in order to
8236         combine the IDD_SITE and IDD_OTHER_URL functionality onto one page.
8237         (IDD_OTHER_URL): Remove dialog template.
8238         (IDD_DLSTATUS): Remove dialog template.
8240         * site.cc: Run d2u.
8241         (SitePage::OnBack): Remove NEXT() macro invocation.
8242         (SitePage::OnActivate): New member function.
8243         (load_dialog): Remove.  Functionality subsumed into
8244         SitePage::OnActivate.
8245         (save_dialog): Change to support both list and user URLs.  Remove
8246         OTHER_IDX and mirror_idx logic.
8247         (SitePage::PopulateListBox): New member function.
8248         (SitePage::CheckControlsAndDisableAccordingly): New member function.
8249         (SitePage::OnMessageCmd): New override.
8250         (check_if_enable_next): Remove.
8251         (dialog_cmd): Remove.
8252         (do_download_site_info_thread): Remove calls to NEXT() macro.
8253         (SitePage::Create): Call the single-param PropertyPage::Create
8254         overload.
8255         (other_url): New static taken from other.cc.
8256         (SitePage::OnNext): Remove mirror_idx logic.
8257         (SitePage::OnInit): Remove "Other URL" entry from list box.  Remove
8258         list box populating code, now handled in SitePage::PopulateListBox.
8259         (mirror_idx, NO_IDX, OTHER_IDX): Remove.
8260         (save_site_url): Fix potential buffer overflow problem.  Switched to
8261         TCHAR in grossly premature preparation for multilingual support.
8262         * site.h: Run d2u.
8263         (SitePage::OnActivate): New member function.
8264         (SitePage::CheckControlsAndDisableAccordingly) New member.
8265         (SitePage::OnMessageCmd): New override.
8266         (do_download_site_info_thread): Add MessageBox call on failure to
8267         download site list.
8269         * splash.cc: Run d2u.
8270         (SplashPage::OnInit): Set the font for the title.
8271         * splash.h: Run d2u.
8273         * threebar.cc: Run d2u.
8274         * threebar.h: Run d2u.
8276         * window.h: Run d2u.
8277         (Window::IsButtonChecked): New member function declaration.
8278         (Window::OnMessageCmd): New member function.
8279         (Window::SetDlgItemFont): New member function declaration.
8280         (Window::MAXFONTS, Window::Fonts, Window::FontCounter): New data
8281         members.
8282         * window.cc: Run d2u.
8283         (Window::IsButtonChecked): New member function definition.
8284         (Window::SetDlgItemFont): New member function definition.
8285         (Window::Window): Add initialization for FontCounter.
8286         (Window::~Window): Delete any fonts we created.
8288         * geturl.cc: Run d2u.
8289         (progress): Remove the "3" field width from the "%3d"
8290         percent-complete format indicator.  Causes line to not start at
8291         beginning of text box, and does little to help with "jumping", since
8292         the "bytes downloaded so far" field is variable-width anyway.  Change
8293         kb/s format field to "%03.1" to 0-pad the kb/s number in the event of
8294         painfully slow connections, or temporary slowdowns in faster
8295         connections should such more-instantaneous functionality become
8296         available.
8298         * net.h: Run d2u.
8299         (NetPage::OnMessageCmd): New member function declaration.
8300         (NetPage::CheckIfEnableNext): New member function declaration.
8301         * net.cc: Run d2u.
8302         (NetPage::OnMessageCmd): New member function definition.
8303         (dialog_cmd): Remove, subsumed into NetPage::OnMessageCmd.
8304         (check_if_enable_next): Remove.
8305         (NetPage::CheckIfEnableNext): New member function, subsumes
8306         check_if_enable_next.
8307         (propsheet.h): Add include.
8308         (NetPage::Init): Add call to CheckIfEnableNext.
8309         (load_dialog): Remove call to check_if_enable_next.
8310         (NetPage::Create): Call single-template-ID-parameter overload of
8311         PropertyPage::Create instead of three-parameter one.
8313         * Makefile.in (OBJS): Remove other.o.
8314         * other.cc: Remove file.
8316 2002-01-01  Robert Collins  <rbtcollins@hotmail.com>
8318         * README: Update TODO's.
8319         * choose.cc (set_existence): Delete non installed packages with no
8320         mirrors.
8321         (fill_missing_category): Fix an off-by-one error.
8322         (default_trust): Ditto. Also delete any unused categories.
8323         (view::init_headers): Fix an off-by-one error.
8324         (set_view_mode): Ditto.
8325         (set_view_mode): Ditto.
8326         (create_listview): Ditto.
8327         (dialog_cmd): Ditto.
8328         (do_choose): Ditto.
8329         * io_stream.cc: Indent.
8330         * io_stream.h: Ditto.
8331         * package_db.cc: Ditto.
8332         * package_meta.h: Const correctness for SDesc ();
8333         * proppage.cc: Run d2u and indent.
8334         * propsheet.cc: Run d2u and indent.
8335         * window.cc: Run d2u and indent.
8336         * window.h: Run d2u and indent.
8338 2001-12-28  Christopher Faylor  <cgf@redhat.com>
8340         * Makefile.in (iniparse.o): Accommodate newer bisons.
8342 2001-12-23  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
8344         * window.h (Window): New file, new class.
8345         * window.cc (Window): New file, new class.
8347         * threebar.h (ThreeBarProgressPage): New file, new class.
8348         * threebar.cc (ThreeBarProgressPage): New file, new class.
8350         * splash.h (SplashPage): New file, new class.
8351         * splash.cc (SplashPage): Replace file with implementation of new
8352         class.
8354         * source.h (SourcePage): New file, new class.
8355         * source.cc: Run indent.
8356         (SourcePage): Add class implementation to this file.
8357         (do_source): Remove, functionality subsumed by SourcePage::Create()
8358         and SourcePage::OnDeactivate().
8359         (dialog_proc): Remove, functionality subsumed by
8360         SourcePage::OnActivate().
8362         * site.h: Run indent.
8363         (SitePage): Add class declaration.
8364         * site.cc: Run indent.
8365         (SitePage): Add class implementation.
8366         (do_download_site_info_thread): New function.
8367         (context): New var.  Context info for do_download_site_info_thread().
8368         (do_download_site_info): New function.
8369         (SitePage::Create, SitePage::OnInit SitePage::OnNext)
8370         (SitePage::OnBack): SitePage class implementation..
8371         (dialog_cmd): Remove IDOK, ID_BACK, and IDCANCEL handlers, now handled
8372         by SitePage members.
8373         (dialog_proc): Remove, now handled by SitePage::OnInit and base class
8374         functionality.
8375         (do_site): Remove, now handled by do_download_site_info_thread() and
8376         SitePage::OnNext functionality.
8377         (get_site_list): Remove dismiss_url_status_dialog() call.
8379         * root.h (RootPage): New file, new class.
8380         * root.cc: Run indent.
8381         (dialog_cmd): Pass parent HWND parameter to note(), yesno().
8382         (dialog_proc): Remove.
8383         (do_root): Remove
8384         (dialog_cmd): Remove IDOK, ID_BACK, and IDCANCEL clauses from switch.
8385         (RootPage::OnInit): New member function.  Move get_root_dir() logic to
8386         here from do_root().
8387         (RootPage::Create): New member function.
8388         (RootPage::OnNext): New member function.  Move IDOK logic from
8389         dialog_cmd() to here.
8390         (RootPage::OnBack): New member function.
8392         * propsheet.h (PropSheet): New file, new class.
8393         * propsheet.cc (PropSheet): New file, new class.
8395         * proppage.h (PropertyPage): New file, new class.
8396         * proppage.cc (PropertyPage): New file, new class.
8398         * postinstall.cc (do_postinstall): Add owner parameter.
8400         * other.cc (do_other): Add owner parameter.
8402         * nio-file.cc (NetIO::Purl): Pass NULL parent param to note().
8403         * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Pass NULL parent param to
8404         get_ftp_auth().
8405         * nio-http.cc (retry_get): Pass NULL parent param to get_auth(),
8406         get_proxy_auth(),
8407         and get_ftp_auth().
8408         * nio-ie5.cc (NetIO::_url): Pass NULL parent param to note(),
8409         get_auth(), get_proxy_auth().
8411         * netio.h (get_auth, get_proxy_auth, get_ftp_auth): Add owner param.
8412         * netio.cc (auth_common, NetIO::get_auth, NetIO::get_proxy_auth,
8413         NetIO::get_ftp_auth)
8414         (auth_common): Add owner param.  Pass owner param to DialogBox.
8415         (NetIO::get_auth, NetIO::get_proxy_auth, NetIO::get_ftp_auth): Pass
8416         owner param to auth_common().
8418         * net.h (NetPage): New file, new class.
8419         * net.cc: Run indent.
8420         (net.h, threebar.h): Add includes.
8421         (Progress): Add extern.
8422         (dialog_cmd): Remove IDOK, IDC_BACK, and IDCANCEL cases, now handled by
8423         property sheet logic.  Saved temporarily for reference.
8424         (NetPage::Create, NetPage::OnInit, NetPage::OnDeactivate,
8425         NetPage::OnNext, NetPage::OnBack):
8426         New implementation of NetPage class members.
8427         (do_net): Remove.
8428         (dialog_proc): Remove.
8430         * msg.h (fatal, note, yesno): Add owner param.
8431         * msg.c (fatal, note, yesno, mbox): Add owner param.
8432         (mbox): Remove MB_TOPMOST from MessageBox call.  Unnecessary and wrong
8433         now that we have a parent.
8435         * main.cc: Run indent.
8436         (commctrl.h, proppage.h, propsheet.h, splash.h, source.h)
8437         (localdir.h, net.h, site.h, choose.h, threebar.h, desktop.h): Include
8438         headers.
8439         (root_dialog_proc): extern into this file.
8440         (Progress): Progress dialog defined here, used in several other files.
8441         (WinMain): Instantiate and create Splash, Source, Root, LocalDir, Net,
8442         Site, Chooser, Desktop pages and MainWindow sheet.  Call
8443         InitCommonControls() to make sure Windows is set up for our use of
8444         property sheets. Add pages to sheet.
8445         Call MainWindow.Create() to "DoModal".  Remove main loop, that logic is
8446         now handled by the PropSheet class.
8447         (root.h): Add include.
8449         * log.cc (log_save): Pass NULL parent to fatal().
8450         (exit_setup): Pass NULL parent to note().
8452         * localdir.h (LocalDirPage): New file, new class.
8453         * localdir.cc:  Run indent.
8454         (localdir.h): New include.
8455         (threebar.h): New include.
8456         (Progress): extern into this file.
8457         (LocalDirPage::Create, LocalDirPage::OnInit, LocalDirPage::OnActivate)
8458         (LocalDirPage::OnNext, LocalDirPage::OnBack): Implementation of
8459         LocalDirPage.
8460         (LocalDirPage::OnNext): Move log() call from do_local_dir() to here.
8461         (dialog_cmd): Remove IDOK, ID_BACK, and IDCANCEL handlers.
8462         (do_local_dir): Remove.
8463         (dialog_proc): Remove.
8464         (cwd): Remove, not used by anything.
8466         * install.cc: Run indent.
8467         (process.h, threebar.h): New includes.
8468         (Progress): extern into this file.
8469         (ins_dialog, ins_action, ins_pkgname, ins_filename, ins_pprogress)
8470         (ins_iprogress, ins_diskfull, init_event): Remove, now handled by
8471         ThreeBarProgressPage.
8472         (dialog_cmd, dialog_proc, dialog): Removed, handled in
8473         ThreeBarProgressPage.
8474         (init_dialog): Remove all mention of the above ins_* handles.  Now
8475         handled in ThreeBarProgressPage.  Altered SetWindowText()s to call
8476         ThreeBarProgressPage instance Progress directly.
8477         (progress): Alter bar update logic to call ThreeBarProgressPage
8478         instance Progress directly.
8479         (uninstall_one): Alter SetWindowText()s to call ThreeBarProgressPage
8480         instance Progress directly.
8481         (install_one_source): Alter SetWindowText()s to call
8482         ThreeBarProgressPage
8483         instance Progress directly. Pass NULL parent to note().
8484         (do_install_thread): Rename from do_install(), added owner param.
8485         Alter SetWindowText()s to call ThreeBarProgressPage instance Progress
8486         directly.
8487         Remove dismiss_url_status_dialog() call, no longer necessary.  Remove
8488         ShowWindow(<hide>) call, also unnecessary now.  Pass owner handle to
8489         fatal().
8490         (do_install_reflector): New function.
8491         (do_install): New function.
8493         * ini.cc (process.h, threebar.h): New includes.
8494         (Progress): externed into this file.
8495         (find_routine): Pass NULL parent to note().
8496         (do_local_ini): Add owner param.
8497         (do_remote_ini): Add owner param.  Pass owner to get_url_to_membuf()
8498         and note().  Remove call to dismiss_url_status_dialog().
8499         (do_ini_thread): Rename from do_ini().  Add owner param.  Pass owner to
8500         do_local_ini(), do_remote_ini(), yesno(), and note().  Set next_dialog
8501         to IDD_CHOOSER on exit.
8502         (do_ini_thread_reflector): New function.
8503         (context): New var.  Context for do_ini_thread.
8504         (do_ini): New function.
8506         * geturl.h (get_url_to_membuf, get_url_to_string, get_url_to_file): Add
8507         owner param.
8508         * geturl.cc (gw_dialog, gw_url, gw_rate, gw_progress, gw_pprogress,
8509         gw_iprogress)
8510         (gw_progress_text, gw_pprogress_text, gw_iprogress_text, init_event):
8511         Removed.
8512         (threebar.h): New include.
8513         (Progress): externed into this file.
8514         (dialog_cmd, dialog_proc, dialog): Removed, handled by
8515         ThreeBarProgressPage now.
8516         (init_dialog): Remove "if (gw_dialog == 0)" clause.  Alter
8517         SetWindowText()s
8518         and bar setting SendMessage()s to call ThreeBarProgressPage instance
8519         Progress directly.  Remove "one bar only" logic, this is now handled
8520         explicitly in the ThreeBarProgressPage class.
8521         (progress): Altered bar and text update logic to call
8522         ThreeBarProgressPage instance Progress directly.  Changed kbps
8523         calculation to floating point and now print out a single decimal
8524         place.
8525         (get_url_to_membuf): Add owner param.  Pass it to init_dialog.
8526         (get_url_to_string): Add owner param.  Pass it to get_url_to_membuf.
8527         (get_url_to_file): Add owner param.  Pass it to init_dialog. Alter bar
8528         update logic to call ThreeBarProgressPage instance Progress directly.
8529         (dismiss_url_status_dialog):  Remove.
8531         * fromcwd.cc (do_fromcwd): Add owner param.  Initialize found_ini to
8532         false, was true.
8534         * download.cc: Run indent.
8535         (process.h, threebar.h): New includes.
8536         (Progress): externed into this file.
8537         (download_one): Add owner param.  Pass it to get_url_to_file().
8538         (do_download_thread): Renamed from do_download.  Add owner param. When
8539         calculating total_download_bytes, take binpicked and srcpicked into
8540         account.  Remove call to dismiss_url_status_dialog(), no longer needed.
8541         Pass owner handle to download_one() and yesno().
8542         (do_download_reflector, do_download): New functions.
8543         (context): New var.  Context for do_download_thread().
8545         * dialog.h (D(x)): Add owner param.
8547         * desktop.h (DesktopSetupPage): New file, new class.
8548         * desktop.cc: Run indent.
8549         (desktop.h): Add include.
8550         (dialog_proc, do_desktop): Remove, now handled in
8551         DesktopSetupPage::OnInit().
8552         (dialog_cmd): Remove IDOK, IDC_BACK, and IDCANCEL cases, handled in
8553         DesktopSetupPage::OnFinish(), DesktopSetupPage::OnBack(), and PropSheet
8554         resp.
8555         (DesktopSetupPage::Create, DesktopSetupPage::OnInit)
8556         (DesktopSetupPage::OnBack, DesktopSetupPage::OnFinish): Implementation
8557         of DesktopSetupPage.
8559         * cistring.h: New file, new class.
8560         * cistring.cc: New file, new class.
8562         * choose.h: Run indent.
8563         (Chooser): New class declaration.
8564         * choose.cc: Run indent.
8565         (do_choose): Add owner param.  Pass it to DialogBox() and
8566         fatal().
8567         (Chooser): New class implementation.
8569         * res.rc (IDS_VERSION_INFO): New string.
8570         (IDD_SOURCE, IDD_LOCAL_DIR, IDD_ROOT, IDD_SITE, IDD_OTHER_URL)
8571         (IDD_DLSTATUS, IDD_INSTATUS, IDD_SPLASH, IDD_CHOOSE, IDD_DESKTOP):
8572         Change WS_POPUP to WS_CHILD.  Numerous positioning/size changes
8573         throughout.
8574         (IDD_CHOOSE): Give template the WS_EX_CONTROLPARENT style to enable
8575         TAB control navigation etc.  Give the controls a reasonable tab order.
8576         Grouped radio buttons.  Something's still not right, can't tab away
8577         from back/next/cancel group reliably.
8578         * resource.h (IDD_CHOOSER): New dialog ID.
8580         * Makefile.in (OBJS): Add cistring.o, proppage.o, propsheet.o,
8581         threebar.o, and window.o.
8583 2001-12-21  Robert Collins  <rbtcollins@hotmail.com>
8585         * choose.cc (listview_proc): Update the scrollbar when the headers are
8586         dragged.
8587         (pick_pkg_line::paint): Clip columns to prevent overlap.
8589 2001-12-20  Robert Collins  <rbtcollins@hotmail.com>
8591         * Makefile.in: Add libcomctl32.a for setup.exe.
8592         * archive.h (archive): Prevent non-child direct creation of the class.
8593         * archive_tar.h (archive_tar): Prevent inaccurate synthetic copy and
8594         assignment.
8595         * choose.cc: Include commctrl for the choose header.
8596         (NEW_COL_SIZE_SLOP): Define without magic numbers.
8597         (pkgtrustp): Convert to function.
8598         (set_action): Remove.
8599         (add_required, fill_missing_category,default_trust): Use list syntax for
8600         package list.
8601         Use new set_action.
8602         (choose_caption): Remove.
8603         (topbucket::paint): New method.
8604         (topbucket::empty): Ditto.
8605         (topbucket::click): Ditto.
8606         (topbucket::~topbucket): Ditto.
8607         (paint): Remove i,ii and p as they are obsolete.
8608         Remove header drawing code.
8609         Use new chooser method to paint the chooser.
8610         Use new chooser itemcount method.
8611         (scroll_common): Rename to view::scroll.
8612         Scroll the header window separately.
8613         (list_vscroll, list_hscroll, list_click): Update for new chooser
8614         methods.
8615         (listview_proc): Look for header messages.
8616         (note_width): Accept stringless calls.
8617         (pick_line::set_line): Remove.
8618         (pick_line::paint): Remove.
8619         (pick_pkg_line::paint): Paint this one line, using the header column
8620         widths.
8621         (pick_category_line::paint): Paint this category, and anything in the
8622         bucket.
8623         (pick_line::click): Remove.
8624         (pick_pkg_line::click): Handle a click.
8625         (pick_category_line::click): Handle a click.
8626         (_view): Rename all to view.
8627         (view::view): Initialise the control contents.
8628         (view::set_headers): Work with the header control.
8629         (view::init_headers): Use list syntax for package list.
8630         Rearrange the width logic a little.
8631         (view::insert_pkg): Update to use the hierarchy.
8632         (view::insert_category): Ditto.
8633         (view::insert_at, view::insert_under): Remove.
8634         (view::clear_view): Update to use the hierarchy.
8635         (view::click): Update to use the hierarchy.
8636         (set_view_mode): Use list syntax for package list.
8637         Update for new chooser methods.
8638         (DoInsertItem): New helper function. (Needs a home somewhere).
8639         (create_listview): Remove choose control code and use the constructor
8640         instead.
8641         (dialog_cmd,scan2,do_choose): Use list syntax for package list.
8642         * choose.h: Include newly required headers list and package_meta.
8643         (_voew): Rename to view.
8644         (pick_line): Convert to an ABC.
8645         (pick_pkg_line): New class.
8646         (pick_catgory_line): New class.
8647         (topbucket): New class.
8648         (view::scroll): New method created from listview_scroll function.
8649         * desktop.cc (make_passwd_group): Use list syntax for package list.
8650         * download.cc (do_download): Use list syntax for package list.
8651         * fromcwd.cc (found_file): Use list syntax for package list.
8652         * iniparse.y (pacakges): Use list syntax for package list.
8653         * install.cc (uninstall_one): Use list syntax for package list.
8654         (do_install): Use list syntax for package list.
8655         * io_stream.h (io_stream): Prevent non-child direct creation of the
8656         class.
8657         Prevent inaccurate synthetic copy and assignment.
8658         * list.h: Include required header stdlib.
8659         Work on const correctness.
8660         * package_db.cc (packagedb::getpackagebyname): Remove.
8661         (packagedb::packagedb): Remove custom list code, and make db a local.
8662         (packagedb::getfirstpackage): Remove.
8663         (packagedb::getnextpackage): Remove.
8664         (packagedb::addpackage): Remove.
8665         (flush): Remove custom list code.
8666         (packagedb::registerpackage): Remove.
8667         (packagedb::packages): New static member.
8668         (packagedb::task): New static member.
8669         * package_db.h (PackageDBActions): New enum.
8670         (packagedb): Remove getfirstpackage, getnextpackage, getpackagebyname,
8671         addpackage, registerpackage, packages, packagecount, curr_package, db.
8672         Add packages, task.
8673         * pacakge_meta.cc: Include package_db.h.
8674         (packagemeta::action_caption): New method.
8675         (packagemeta::set_action): New method.
8676         * package_meta.h (CategoryPackage): Initialise key.
8677         (packagemeta): Initialise key.
8678         Add set_action and action_caption methods.
8679         Prevent inaccurate synthetic copy and assignment.
8680         * resource.h (IDC_CHOOSE_LISTHEADER): New ID.
8681         * source.cc: Include package_db for db manipulation.
8682         (save_dialog): Set the db task.
8683         * win32.h: Tell the w32 include headers what IE version to
8684         expect/require.
8686 2001-12-06  Robert Collins  <rbtcollins@hotmail.com>
8688         * README: Wishlist updates.
8690 2001-12-04  Robert Collins  <rbtcollins@hotmail.com>
8692         * package_db.cc (getnextpackage): Don't overrun the array.
8694 2001-12-04  Robert Collins  <rbtcollins@hotmail.com>
8696         * Makefile.in (OBJS): Add setup_version.o.
8697         (version.c): Rename to setup_version.
8698         * choose.cc (set_action): Prevent NULL pointer dereference.
8699         (package_sort): Remove.
8700         * fromcwd.cc (canonicalize_version): Moved to version.cc.
8701         (check_ini): New function for use with find to see if there is a cached
8702         setup.ini.
8703         (do_fromcwd): Check for a cached setup.ini from any mirror site.
8704         * ini.cc (find_routine): New function, for finding cached setup.ini's.
8705         (do_local_ini): New function, drives parsing of local ini's.
8706         (do_remote_ini): New function, drives parsing and caching of remote
8707         ini's.
8708         (do_ini): Move guts to do_remote_ini and do_local_ini.
8709         * list.h (removebyindex): New method.
8710         * other.cc (save_dialog): Use new site_list and all_site_list to add the
8711         new site to the site picklist.
8712         (dialog_cmd): Only save the dialog when exiting the dialog.
8713         * res.rc (IDD_SITE): Make IDC_URL_LIST a multiple-selection control.
8714         * site.cc (site_list_type): Move to site.h
8715         (site_list): New global, sites chosen by the user.
8716         (all_site_list): New global, all potential sites.
8717         (site_list_type::init): New method, parses a mirror.lst URL string into
8718         a site_list_type object.
8719         (site_list_type::site_list_type): New method.
8720         (check_if_enable_next): Examine the control, not a local variable.
8721         (load_dialog): Select all the user chosen sites by default.
8722         (save_dialog): Adjust for multiple selection semantics.
8723         (save_site_url): Save all user chosen sites.
8724         (dialog_cmd): Don't save the dialog when the listbox recieves a message
8725         - thats not needed.
8726         Remove obsolete other_url reference.
8727         (dialog_proc): Use all_site_list instead of site_list.
8728         (site_sort): Remove.
8729         (get_site_list): Remove malloc use - use list template instead.
8730         Move site_list_type initialisation to site_list_type::init().
8731         (get_initial_list_idx): Renamed to ...
8732         (get_saved_sites): this. Also read in multiple sites to the site_list.
8733         (do_site): Use all_site_list not site_list.
8734         Log all chosen sites.
8735         * site.h: New file, defines site related class, functions and variables.
8736         * state.h: Add comment about use of state.h
8737         (mirror_site): Remove.
8738         (other_url): Remove.
8739         (MIRROR_SITE): Remove.
8740         * version.cc: New file, for version-handling and related functions.
8742 2001-12-02  Robert Collins  <rbtcollins@hotmail.com>
8744         * Makefile.in: Add filemanip.o to setup.
8745         * archive.cc (archive::extract_file): Use new io_stream method 'copy'.
8746         * archive_tar.h (archive_tar_file): Implement get_size virtual.
8747         (archive_tar): Ditto.
8748         * choose.cc (set_action): Use [] operator instead of getnth - its more
8749         readable.
8750         (paint): Ditto.
8751         (_view::init_headers): Ditto.
8752         (_view::insert_pkg): Ditto.
8753         (set_view_mode): Ditto.
8754         (scan2): Ditto.
8755         (do_choose): Ditto.
8756         (base): Moved to filemanip.cc.
8757         (find_tar_ext): Ditto.
8758         (parse_filename): Ditto.
8759         (_Info::_Info): Remove.
8760         * compress_bz.h (compress_bz): Implement get_size virtual.
8761         * compress_gz.h (compress_gz): Implement get_size virtual.
8762         * cygpackage.cc (cygpackage::destroy): Use array delete for char *
8763         objects.
8764         * download.cc (get_file_size): Move to filemanip.cc.
8765         (check_for_cached): Use [] operator instead of getnth - its more
8766         readable.
8767         (download_one): Ditto.
8768         * filemanip.cc: New file.
8769         * geturl.cc (init_dialog): Make url a pointer to const as it is not
8770         modified.
8771         (get_url_to_membuf): New function - contains get_url_to_string worker
8772         code.
8773         (get_url_to_string): Becomes a trivial wrapper to get_url_to_membuf.
8774         * geturl.h: Declare new prototype.
8775         * ini.cc (do_ini): Use get_url_to_membuf and pass ini_init an io_stream.
8776         Tidy up the error code a little.
8777         * ini.h: Remove __cplusplus protection for ini_init.
8778         (_Info): Remove.
8779         * inilex.l: Remove old globals.
8780         (ini_init): Use an io_stream for getting the characters.
8781         (ini_getchar): Ditto.
8782         * iniparse.y: Declare yylex as a C++ function.
8783         (add_correct_version): Use [] operator instead of getnth - its more
8784         readable.
8785         * io_stream.cc (io_stream::move_copy): Use the copy method.
8786         (io_stream::copy): New method to simply copy from one stream to another.
8787         * io_stream.h (io_stream): New static method copy, and virtual method
8788         get_size.
8789         * io_stream_cygfile.cc (io_stream_cygfile::get_size): Implement this.
8790         * io_stream_cygfile.h (io_stream_cygfile::get_size): Declare this.
8791         * io_stream_file.cc (io_stream_file::get_size): Implement this.
8792         * io_stream_file.h (io_stream_file::get_size): Declare this.
8793         * io_stream_memory.h: Include errno as it's neded to parse the header.
8794         (io_stream_memory::get_size): Implement this.
8795         (io_stream_memory::st_size): Delete this.
8796         * list.h: Change getnth into the [] operator.
8797         * netio.cc (NetIO::NetIO): Change prototype to reflect Purl not being
8798         modified.
8799         (NetIO::set_url): Ditto.
8800         (NetIO::open): Ditto.
8801         * netio.h: As for netio.cc.
8802         * nio-file.cc (NetIO_File::NetIO_File): Change prototype to reflect
8803         Purl not being modified.
8804         * nio-file.h: Ditto.
8805         * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Ditto.
8806         * nio-ftp.h (NetIO_FTP::NetIO_FTP): Ditto.
8807         * nio-http.cc (NetIO_HTTP::NetIO_HTTP): Ditto.
8808         * nio-http.h (NetIO_HTTP::NetIO_HTTP): Ditto.
8809         * nio-i5.cc (NetIO_IE5::NetIO_IE5): Ditto.
8810         * nio-i5.h (NetIO_IE5::NetIO_IE5): Ditto.
8811         * package_meta.cc (packagemeta::~packagemeta): Bugfix: use array delete.
8812         * package_source.cc (packagesource::set_canonical): Ditto.
8813         (packagesource::set_cached): Ditto.
8814         * package_source.h (site::~site): Ditto.
8815         * site.cc: Change site_list_type to a class, and search and replace
8816         sort_key to key globally.
8818 2001-12-01  Robert Collins  <rbtcollins@hotmail.com>
8820         * package_source.cc (packagesource::set_canonical): Filename was out by
8821         one.
8823 2001-11-30  Robert Collins  <rbtcollins@hotmail.com>
8825         * Makefile.in (OBJS): Remove category_list - it's not needed.
8826         * README: More wishlist updates.
8827         * category.cc (Category::Category): Initialise new members.
8828         (Categorycmp): New function.
8829         * category.h (Category): New member key for template use.
8830         * category_list.cc: Remove.
8831         * category_list.h: Remove.
8832         (Categorycmp): New function prototype.
8833         * choose.cc: Remove category_list - not needed.
8834         (set_action): Only show the 'source' option when the source is actually
8835         available.
8836         (add_required): Fix recursion limiter to 5.
8837         (fill_missing_category): Use list access.
8838         (default_trust): Ditto.
8839         (pick_line::paint): Ditto.
8840         (_view::init_headers): Ditto.
8841         (_view::insert_pkg): Ditto.
8842         (_view::insert_category): Ditto.
8843         (_view::click): Ditto.
8844         (set_view_mode): Ditto.
8845         (do_choose): Ditto.
8846         * cygpackage.h: Remove category_list - not needed.
8847         * geturl.cc (get_url_to_string): Fix null byte insertion.
8848         * inipatse.y: Remove category_list - not needed.
8849         (categories): Use list access.
8850         * package_db.cc: Ditto.
8851         * package_db.h: Remove category_list - not needed.
8852         (packagedb): Use the list template for categories.
8853         * package_meta.cc (add_category): Ditto.
8854         * package_meta.h (CategoryPackage): Link to the category as well.
8855         (packagemeta): Use a list of CategoryPackages instead of Categories
8856         for more memory efficient cross-referencing.
8858 2001-11-30  Robert Collins  <rbtcollins@hotmail.com>
8860         * package_db.cc (packagedb::flush): Write a canonical version for all
8861         packages irrespective of the media they were installed from.
8863 2001-11-29  Robert Collins  <rbtcollins@hotmail.com>
8865         * Makefile.in (OBJS): Add package_source and rfc1738.
8866         * README: Wishlist update.
8867         * category_list.cc (register_category): Use references.
8868         * category_list.h (CategoryList): Ditto.
8869         * choose.cc (isinstalled): Remove.
8870         (pkgtrustp): New macro.
8871         (set_action): Use packagemeta.
8872         (add_required): Ditto.
8873         (choose_caption): Example package to choose caption, rather than state
8874         flags.
8875         (check_existence): Remove.
8876         (set_existence): Remove old code.
8877         (fill_missing_category): Use packagemeta.
8878         (keep_or_skip): Remove.
8879         (default_trust): Use packagemeta and set trust values directly.
8880         (pick_line::set_line): Use packagemeta.
8881         (_view::insert_pkg): Ditto.
8882         (_view::insert_category): Ditto.
8883         (_view::click): Ditto.
8884         (set_view_mode): Ditto. Also remove "exclude" code.
8885         (create_listview): Use packagemeta.
8886         (dialog_cmd): Ditto.
8887         (getpkgbyname): Remove
8888         (scan2): Use packagemeta. Temporarily comment out the holefinding code.
8889         (read_installed_db): Remove.
8890         (package_sort): Use packagemeta.
8891         (do_choose): Use packagemeta. Don't sort the packages - the db does
8892         that.
8893         * choose.h: Use packagemeta.
8894         * cygpackage.cc (cygpackage::cygpackage): Initialise all variables.
8895         (cygpackage::cygpackage): Ditto.
8896         (cygpackage::set_canonical_version): Copy the passed string.
8897         (cygpackage::~cygpackage): Move cleanup code to destroy().
8898         (cygpackage::destroy): New function.
8899         (cygpackage::getfirstfile): Use a separate buffer.
8900         (cygpackage::getnextfile): Ditto.
8901         (cygpackage::Canonical_version): New function.
8902         (cygpackage::set_sdesc): Ditto.
8903         (cygpackage::set_ldesc): Ditto.
8904         * cygpackage.h (cygpackage::Canonical_version): New method.
8905         (cygpackage::set_sdesc): New method.
8906         (cygpackage::set_ldesc): New method.
8907         (cygpackage::SDesc): New method.
8908         (cygpackage::LDesc): New method.
8909         (cygpackage::set_canonical_version): New method.
8910         * desktop.cc: Include packagedb headers.
8911         (make_password_group): Use packagemeta.
8912         * download.cc: Include packagedb headers.
8913         (check_for_cached): New method to find any cached file and fill out the
8914         database info.
8915         (download_one): Take a packagesource, support multiple mirrors.
8916         (do_download): Use packagemeta.
8917         * from cwd.cc: Include packagedb headers.
8918         (found_file): Use packagemeta.
8919         * ini.cc (do_ini): Beginning of multiple-mirror support.
8920         * ini.h (CategoryPackage): Remove.
8921         (Dependency): Remove.
8922         (Package): Remove.
8923         (new_package,getpkgbyname,getpackagecategorybyname,add_category):
8924         Remove.
8925         * inilex.l: Support multiple mirrors.
8926         * iniparse.y: Include packagedb headers.
8927         (parser): Use packagemeta.
8928         (new_package): Remove.
8929         (add_correct_version): New function.
8930         (new_requirement): Remove.
8931         (add_category): Remove.
8932         * install.cc (uninstall_one): Use packagemeta.
8933         (install_one_source): New function.
8934         (install_one): Use packagemeta.
8935         (do_install): Use packagemeta.
8936         * io_stream.cc (io_stream::move): Bugfix on move/copy case.
8937         * io_stream_cygfile.cc (io-stream_cygfile::set_mtime): Do not reopen the
8938         file after setting the mtime, it makes no sense, and results in 0 length
8939         files.
8940         * io_stream_file.cc (io-stream_file::set_mtime): Ditto.
8941         * list.h: New file, template class for a form of list.
8942         * package_db.cc (packagedb::registerpackage): New function.
8943         * package_db.h (packagedb::npackages ()): New method.
8944         * package_meta.cc (packagemeta::add_version): Use list template.
8945         (packagemeta::set_installed): Ditto.
8946         (packagemeta::add_category): New method.
8947         * package_meta.h: Include necessary headers to parse the class.
8948         (CategoryPackage): New class.
8949         (packagemeta): Initialise all members.
8950         (packagemeta::SDesc): New method.
8951         (packagemeta::Categories): New method.
8952         (packagemeta::add_category): Ditto.
8953         (packagemeta::versions): Change to be a list instance.
8954         * package_source.cc (packagesource::set_canonical): New method.
8955         (packagesource::set_cached): New method.
8956         * package_source.h: Include necessary headers to parse the class.
8957         (site): New class.
8958         (packagesource::packagesource): Initialize all members.
8959         (packagesource): Make this class non-abstract.
8960         * package_version.cc (packageversion::packageversion): New method.
8961         * package_version.h (Dependency): New class.
8962         (packageversion::Canonical_vesion): New method.
8963         (packageversion::SDesc): New method.
8964         (packageversion::LDesc): New method.
8965         (packageversion::new_requirement): Ditto.
8966         (packageversion::srcpicked, binpicked): What to install.
8967         (packageversion::src, bin): Installation source data.
8968         * rfc1738.cc: New file. Escapes special characters in URL's.
8969         * rfc1738.h: Ditto.
8971 2001-11-26  Gary R. Van Sickle  <g.r.vansickle@worldnet.att.net>
8973         * nio-http.cc (NetIO_HTTP::NetIO_HTTP): Stop header parsing when
8974         SimpleSocket::gets() returns a zero-length string, so that we
8975         don't end up eating the entire stream thinking it's all header info.
8977 2001-11-23  Robert Collins  <rbtcollins@hotmail.com>
8979         * install.cc (badrename): Remove.
8980         (do_install): Use packagedb flush method to write
8981         /etc/setup/installed.db.
8982         * io_stream.cc (io_stream::move_copy): New method.
8983         (io_stream::move): New method.
8984         * io_stream.h (io_stream): New methods move and move_copy.
8985         * io_stream_cygfile.cc (io_stream_cygfile::move): New method.
8986         * io_stream_cygfile.h (io_stream_cygfile): New method move.
8987         * io_stream_file.cc (io_stream_file::move): New method.
8988         * io_stream_file.h (io_stream_file): New method move.
8989         * package_db.cc (packagedb::flush): New method.
8990         * package_db.h (packagedb): New method flush.
8992 2001-11-23  Robert Collins  <rbtcollins@hotmail.com>
8994         * Makefile.in (OBJS): Add package_version.
8995         * ategory.cc (Category::Category): Update constructors.
8996         * category_list.cc (CategoryList::register_category): Insert correctly.
8997         * choose.cc: Include package_version.h, not package.h.
8998         * cygpackage.cc: Ditto.
8999         (cygpackage::uninstall): New method.
9000         * cygpackage.h (cygpackage): Rename genericpackage to packageversion.
9001         New method uninstall.
9002         * hash.cc (add, has, enumerate): Change prototype to be accurate.
9003         * hash.h (hash): Change prototypes to be accurate.
9004         * ini.h (_Info): New parameterless constructor.
9005         (CategoryPackage): New constructor.
9006         (Package): Ditto.
9007         * install.cc: Don't include unneeded headers.
9008         Include package database headers.
9009         (hash::add_subdirs): Remove.
9010         (uninstall_one): Use packagemeta->uninstall to perform the
9011         uninstallation. Don't uninstall source packages.
9012         (do_install): Just can uninstall_one once as we ignore source packages
9013         now.  Don't copy the installed.old database accross, instead iterate
9014         through the packagedb packages list and write the installed packages
9015         out.
9016         * package_db.cc: Include package_version.h, not package.h.
9017         (packagedb::packagedb): Never let db be undefined.
9018         Record the installation filename, so we can reconstruct installed.db.
9019         (packagedb::addpackage): Insert packages in alpha sorted order.
9020         (packagedb::categories): Initialise correctly.
9021         * package_meta.cc: Include win32 and mount headers as a workaround to
9022         current io_stream limitations. Include a TODO about that.
9023         (standard_dirs): New, from install.cc.
9024         (hash::add_subdirs): New, from install.cc.
9025         (packagemeta::set_installed): Rename genericpackage to packageversion.
9026         (packagemeta::uninstall): New method.
9027         * package_meta.h: Rename genericpackage to packageversion.
9028         (packagemeta): Update constructor.
9029         (add_version, set_installed): Rename genericpackage to packageversion.
9030         (uninstall): New method.
9031         (installed_from): New member.
9032         * package_source.cc: New file.
9033         * package_source.h: New file.
9034         * package_version.cc: New file.
9035         * package_version.h: New file.
9036         * package.cc: Removed.
9037         * package.h: Removed.
9039 2001-11-21  Robert Collins  <rbtcollins@hotmail.com>
9041         * Makefile.in (OBJS): Add category.o and category_list.o.
9042         * category.h: New file.
9043         * category.cc: New file.
9044         * category_list.h: New file.
9045         * category_list.cc: New file.
9046         * choose.cc: Include category headers.
9047         (fill_missing_category): Use package_db to access global categories.
9048         (_view::insert_pkg): Ditto.
9049         (_view::insert_category): Ditto.
9050         (set_view_mode): Ditto.
9051         (getcategorybyname): Remove.
9052         * cygpackage.h: Include category_list.h to parse this correctly.
9053         (cygpackage): New virtual &Categories.
9054         * ini.h (_CategoryPackage): More C to C++ conversion.
9055         (Category): Remove.
9056         (getcategorybyname): Remove.
9057         (register_category): Remove.
9058         * iniparse.y: Include package db and category headers.
9059         (categories): Use package_db to access global categories.
9060         (category): Remove.
9061         (ncategories): Remove.
9062         (register_category): Remove.
9063         * package.h: New virtual &Categories.
9064         * package_db.cc (packagedb::packagedb): Don't read the installed db
9065         twice.
9066         (packagedb::categories): Declare.
9067         * package_db.h (packagedb): New member categories for global categories
9068         list.
9070 2001-11-21  Robert Collins  <rbtcollins@hotmail.com>
9072         * choose.h: Don't include ini.h
9073         * ini.h: Allow pure c++ in the header file.
9075 2001-11-21  Robert Collins  <rbtcollins@hotmail.com>
9077         * install.cc (do_install): Write a version 2 installed.db file.
9078         * package_db.cc (packagedb::packagedb): Read version 1 and 2
9079         installed.db files.
9081 2001-11-21  Robert Collins  <rbtcollins@hotmail.com>
9083         * Makefile.in (OBJS): Add package abstraction objects.
9084         * choose.cc: Include package abstraction headers.
9085         (read_installed_db): Use packagedb class and ignore installed sources.
9086         * cygpackage.cc: New file.
9087         * cygpackage.h: New file.
9088         * filemanip.h (get_file_size): Use unixy types.
9089         * package.h: New file.
9090         * package.cc: New file.
9091         * package_db.cc: New file.
9092         * package_db.h: New file.
9093         * package_meta.cc: New file.
9094         * package_meta.h: New file.
9096 2001-11-21  Robert Collins  <rbtcollins@hotmail.com>
9098         * REAME: Updates to wishlist.
9100 2001-11-16  Robert Collins  <rbtcollins@hotmail.com>
9102         * README: Updated and added my list of wishlist and todo items.
9104 2001-11-14  Robert Collins  <rbtcollins@hotmail.com>
9106         * Makefile.in (OBJS): Include io_stream_memory in setup.exe.
9107         * archive_tar.cc (archive_tar::write): New prototype.
9108         (archive_tar::seek): New method.
9109         * archive.h (archive_tar_file): Update write() and add seek().
9110         (archive_tar): Ditto.
9111         * archive_tar_file.cc (archive_tar_file::write): New prototype.
9112         (archive_tar_file::seek): New method.
9113         * compress_bz.cc (compress_bz::write): New prototype.
9114         (compress_bz::seek): New function.
9115         * compress_bz.h (compress_bz): Update write() and add seek().
9116         * compress_gz.cc (compress_gz::write): New prototype.
9117         (compress_gz::seek): New function.
9118         * compress_gz.h (compress_gz): Update write() and add seek().
9119         * geturl.cc: Include io_stream headers.
9120         (GUBuf): Remove.
9121         (get_url_to_string): Use a io_stream_memory buffer instead of GUBuf.
9122         * io_stream.h (io_stream_seek_t): New enum.
9123         (io_stream): Update write() and add seek().
9124         * io_stream_cygfile.cc (io_stream_cygfile::write): New prototype.
9125         (io_stream_cygfile::seek): New function.
9126         * io_stream_cygfile.h (io_stream_cygfile): Update write() and add
9127         seek().
9128         * io_stream_file.cc (io_stream_file::write): New prototype.
9129         (io_stream_file::seek): New function.
9130         * io_stream_file.h (io_stream_file): Update write() and add seek().
9132 2001-11-13  Brian Keener  <bkeener@thesoftwaresource.com>
9134         * localdir.cc: Add headers unistd.h and port.h.
9135         (save_local_dir): Expand search logic to include local directory for
9136         location of file last-cache.
9137         (dialog_cmd): Skip IDD_ROOT when downloading and use Back button.
9138         (do_local_dir): Expand search logic to include local directory for file
9139         last-cache.
9140         * res.rc (IDD_CHOOSE_DIALOG): Add hotkey to View button.
9141         * Source.cc (dialog_cmd): Skip IDD_ROOT if select Download from
9142         Internet.
9143         (do_source): Default to Install from Internet on first entry or
9144         previous selection if backing up from IDD_ROOT or IDD_LOCAL_DIR.
9146 2001-11-13  Robert Collins  <rbtcollins@hotmail.com>
9148         * choose.cc (find_tar_ext): Only match at the end of the string.
9149         (getpkgbyname): Prevent NULL pointer dereference.
9151 2001-11-13  Robert Collins  <rbtcollins@hotmail.com>
9153         * Makefile.in (CFLAGS): Add warnings and -Werr.
9154         (WARNONLY_FLAGS): For sources that produce (harmless) errors no matter
9155         what.
9156         (OBJS): Add io_stream class' objects.
9157         (autoload.o): Use WARNONLY_FLAGS.
9158         (inilex.o): Ditto.
9159         (iniparse.o): Ditto.
9160         * archive.cc: New file.
9161         * archive.h: New file.
9162         * archive_tar.cc: New file.
9163         * archive_tar.h: New file.
9164         * archive_tar_file.cc: New file.
9165         * autoload.c: Fix compiler warnings (unused, deprecated conversion).
9166         * choose.cc: Use io_stream.h, not mount.h.
9167         Run indent.
9168         (find_tar_ext): Rewritten to use strstr, and to accept .tar as an
9169         extension.
9170         (read_installed_db): Use io_streams.
9171         * choose.h: Run indent.
9172         * compress.cc: New file.
9173         * compress.h: New file.
9174         * compress_bz.cc: New file.
9175         * compress_bz.h: New file.
9176         * compress_gz.cc: New file.
9177         * compress_gz.h: New file.
9178         * concat.cc: Run indent.
9179         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9180         * concat.h: Run indent.
9181         * desktop.cc: Run indent.
9182         Include mklink2.h rather than redefining by hand.
9183         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9184         (etc_profile): Fix compiler warning (deprecated conversion).
9185         (make_link): Fix compiler warning (deprecated conversion).
9186         Tidy up use of args variable - consolidate into argbuf.
9187         (start_menu): Fix compiler warning (deprecated conversion).
9188         (desktop_icon): Fix compiler warning (deprecated conversion).
9189         (make_etc_profile): Fix compiler warning (deprecated conversion).
9190         (uexists): Fix compiler warning (deprecated conversion).
9191         (check_desktop): Fix compiler warning (deprecated conversion).
9192         (check_startmenu): Fix compiler warning (deprecated conversion).
9193         * dialog.cc: Run indent.
9194         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9195         (fatal): Fix compiler warning (deprecated conversion).
9196         * dialog.h: Run indent.
9197         * diskfull.cc: Run indent.
9198         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9199         * download.cc: Run indent.
9200         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9201         (download_one): Fix compiler warning (signed vs unsigned comparison).
9202         * filemanip.h: Run indent.
9203         * find.cc: Run indent.
9204         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9205         (find): Fix compiler warning (deprecated conversion).
9206         * find.h: Run indent.
9207         * fromcwd.cc: Run indent.
9208         * geturl.cc: Run indent.
9209         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9210         (dialog_cmd): Return a value.
9211         (dialog_proc): Remove unused variables.
9212         Return a value.
9213         (get_url_to_file): Fix compiler warning (deprecated conversion).
9214         * geturl.h: Run indent.
9215         * hash.cc: Run indent.
9216         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9217         * hash.h: Run indent.
9218         * ini.cc: Run indent.
9219         Use io_streams.
9220         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9221         (do_ini): Use io_streams for local io.
9222         * ini.h: Run indent.
9223         * inilex.l (ignore_line): Fix compiler warning (is not a prototype).
9224         Fix compiler warning (brackets for truth assignment).
9225         * install.cc: Run indent.
9226         Fix compiler warning (/* in comment).
9227         Use io_streams.
9228         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9229         (dialog_cmd): Return a value.
9230         (dialog_proc): Return a value.
9231         (start_tics): Deleted - was unused.
9232         (badrename): Fix compiler warnings (unused, deprecated conversion).
9233         (standard_dirs): Fix compiler warning (deprecated conversion).
9234         (exists): Remove.
9235         (uninstall_one): Convert to io_streams.
9236         (install_one): Convert to io_streams.
9237         (do_install): Convert to io_streans.
9238         Fix compiler warning (deprecated conversion).
9239         * io_stream.cc: New file.
9240         * io_stream.h: New file.
9241         * io_stream_cygfile.cc: New file.
9242         * io_stream_cygfile.h: New file.
9243         * io_stream_file.cc: New file.
9244         * io_stream_file.h: New file.
9245         * localdir.cc: Run indent.
9246         Use io_streams.
9247         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9248         (get_root_dir_now): Remove.
9249         (save_local_dir): Convert to io_streams.
9250         (dialog_cmd): Return a value.
9251         (do_local_dir): Convert to io_streams.
9252         (log.cc): Run indent.
9253         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9254         (log): Fix compiler warning (deprecated conversion).
9255         (log_save): Fix compiler warning (deprecated conversion).
9256         * log.h: Run indent.
9257         (log): Fix compiler warning (deprecated conversion).
9258         (log_save): Fix compiler warning (deprecated conversion).
9259         * main.cc: Run indent.
9260         Don't include "netio.h".
9261         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9262         (netio_test): Remove.
9263         (sid_auth): Fix compiler warning (partially bracketed initialiser).
9264         (WinMain): Return a value.
9265         * mkdir.cc: Run indent.
9266         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9267         * mklink2.c: Run indent.
9268         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9269         (mkcygsymlink): New function.
9270         * mklink2.h: New file.
9271         * mount.cc: Run indent.
9272         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9273         (create_mount): Remove unused variables.
9274         (cygpath): Fix compiler warning (signed vs unsigned comparison).
9275         * mount.h: Run indent.
9276         * msg.cc: Run indent.
9277         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9278         (msg): Fix compiler warning (deprecated conversion).
9279         (mbox): Fix compiler warning (deprecated conversion).
9280         * msg.h: Run indent.
9281         (msg): Fix compiler warning (deprecated conversion).
9282         * net.cc: Run indent.
9283         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9284         (dialog_cmd): Return a value.
9285         * netio.cc: Run indent.
9286         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9287         (auth_cmd): Return a value.
9288         * netio.h: Run indent.
9289         * nio-file.cc: Run indent.
9290         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9291         (NetIO_File::NetIO_File): Fix compiler warning (deprecated conversion).
9292         * nio-file.h: Run indent.
9293         * nio-ftp.cc: Run indent.
9294         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9295         * nio-ftp.h: Run indent.
9296         * nio-http.cc: Run indent.
9297         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9298         * nio-http.h: Run indent.
9299         * nio-ie5.cc: Run indent.
9300         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9301         * nio-ie5.h: Run indent.
9302         * other.cc: Run indent.
9303         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9304         (dialog_cmd): Return a value.
9305         * port.h: Run indent.
9306         * postinstall.cc: Run indent.
9307         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9308         (cmd): Fix compiler warning (deprecated conversion).
9309         (eun): Fix compiler warning (deprecated conversion).
9310         * root.cc: Run indent.
9311         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9312         * simpsock.cc: Run indent.
9313         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9314         * simpsock.h: Run indent.
9315         * site.cc: Run indent.
9316         Use io_streams.
9317         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9318         (get_root_dir_now): Remove.
9319         (save_site_url): Convert to io_streams.
9320         (dialog_cmd): Return 0.
9321         (get_initial_list_idx): Convert to io_streans.
9322         * source.cc: Run indent.
9323         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9324         (check_if_enable_next): Remove.
9325         (load_dialog): Remove unused variables.
9326         (save_dialog): Ditto.
9327         (dialog_cmd): Return a value.
9328         * splash.cc: Return a value.
9329         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9330         (dialog_cmd): Return a value.
9331         * state.cc: Run indent.
9332         (cvsid): Fix compiler warnings (unused, deprecated conversion).
9333         * state.h: Run indent.
9334         * tar.h: Remove.
9335         * tar.cc: Remove.
9337 2001-11-12  Christopher Faylor  <cgf@redhat.com>
9339         * desktop.cc (start_menu): Change start menu name to "Cygwin".
9340         (check_startmenu): Ditto.
9342 2001-11-11  Christopher Faylor  <cgf@redhat.com>
9344         * choose.cc (parse_filename): Finish reorganization by correctly
9345         decrementing p in memmove.
9347 2001-11-11  Christopher Faylor  <cgf@redhat.com>
9349         * choose.cc (parse_filename): Reorganize code to work around gcc
9350         optimization problem.
9352 2001-11-09  Gareth Pearce  <tilps@hotmail.com>
9354         * choose.cc (set_action): Allow skip as an option for installed
9355         packages that have version number not listed in setup.ini.
9357 2001-11-10  Robert Collins  <rbtcollins@hotmail.com>
9359         * choose.cc (set_cation): Backout last change.
9360         (choose_caption): Ditto.
9362 2001-11-10  Robert Collins  <rbtcollins@hotmail.com>
9364         * ini.h (actions): Remove - transferred to choose.h.
9365         (views): Ditto.
9366         * choose.h: Protect class's from "C" compilers.
9367          (actions): New enum, from ini.h. This may not be the 'right' place
9368         but that place doesn't exist yet.
9369         (_views): New enum, from ini.h.
9370         * choose.cc (set_action): Handle installed packages with a version not
9371         in setup.ini.
9372         (choose_caption): Ditto.
9373         * iniparse.y: Rearrange header order to handle new ini.h.
9375 2001-11-10  Robert Collins  <rbtcollins@hotmail.com>
9377         * ini.h (_Info): Fix compiler warnings (signed vs unsigned comparison).
9378         (registry_category): Fix compiler warning (deprecated conversion).
9379         * iniparse.y (registry_category): Ditto.
9380         * choose.cc (cvsid): Fix compiler warnings (unused, deprecated
9381         conversion).
9382         (add_requried): Remove unused variable.
9383         (choose_caption): Handle all enumeration values via a default.
9384         (paint): Fix compiler warnings (unused, deprecated conversion).
9385         (scroll_common): Fix compiler warnings (unused, signed vs unsigned
9386         comparison).
9387         (list_clicK): Fix compiler warnings (signed vs unsigned comparison).
9388         (note_width): Fix compiler warnings (deprecated conversion).
9389         (keep_or_skip): Fix compiler warnings (unused).
9390         (_view::mode_caption): Fix compiler warnings (deprecated conversion).
9391         (set_view_mode): Fix compiler warnings (unused).
9392         (create_listview): Fix compiler warnings (unused, incorrect format,
9393         reaches end of function).
9394         (dialog_proc): Fix compiler warnings (unused).
9395         (read_installed_db): Fix compiler warnings (unused, deprecated
9396         conversion).
9397         * choose.h (_header): Fix compiler warnings (deprecated conversion).
9398         (_view): Ditto.
9400 2001-11-08  Pavel Tsekov  <ptsekov@syntrex.com>
9402         * simpsock.h (SimpleSocket::invalidate): Declare new method.
9403         * simpsock.cc (SimpleSocket::invalidate): Implement new method.
9404         (SimpleSocket::SimpleSocket): Initialize buf to zero. Do not allocate
9405         memory for buf in the constructor.
9406         (SimpleSocket::~SimpleSocket): Use SimpleSocket::invalidate().
9407         (SimpleSocket::printf): Use SimpleSocket::write() instead of send().
9408         (SimpleSocket::write): Check object consistency - return -1 on error.
9409         invalidate() the object on socket write error.
9410         (SimpleSocket::fill): Check object consistency - return -1 on error.
9411         invalidate() the object if socket read error is encountered and there
9412         is no more data available in the internal read buffer.
9413         Allocate memory for the internal read buffer.
9414         (SimpleSocket::gets): Return zero (NULL pointer) if error is encountered
9415         during fill() and no more data is available in the internal read buffer.
9416         (SimpleSocket::read): Check object consistency - return -1 on error.
9417         invalidate() the object if socket read error is encountered.
9418         * nio-ftp.cc (NetIO_FTP:NetIO_FTP): Allow 125 as valid response code to
9419         the RETR command (fix for MS IIS ftp server 5 - possibly others too).
9420         (NetIO_FTP::ok): Check if the SimpleSocket object is ok().
9421         (NetIO_FTP::read): Use NetIO_FTP::ok().
9422         * nio-http.cc: Check for valid return value of SimpleSocket::gets().
9423         (NetIO_HTTP::ok): Check if the SimpleSocket object is ok().
9425 2001-11-09  Robert Collins  <rbtcollins@hotmail.com>
9427         * simpsock.cc (cvsid): Avoid compiler warnings (not used, deprecated
9428         conversion).
9429         (SimpleSocket::SimpleSocket): Avoid compiler warnings (deprecated
9430         conversion).
9431         (SimpleSocket::printf): Ditto.
9432         (SimpleSocket::write): Ditto.
9433         * simpsock.h (SimpleSocket): Avoid compiler warnings for constructor,
9434         printf and write.
9435         * nio-ftp.cc (cvsid): Avoid compiler warnings (not used, deprecated
9436         conversion).
9437         (NetIO_FTP::NetIO_FTP): Remove unused variable done.
9438         * nio-http.cc (cvsid): Avoid compiler warnings (not used, deprecated
9439         conversion).
9441 2001-11-07  Charles Wilson  <cwilson@ece.gatech.edu>
9443         * geturl.cc (get_url_to_string): clean up memory leak
9444         (get_url_to_file): ditto
9446 2001-11-06  Robert Collins  <rbtcollins@hotmail.com>
9448         * localdir.cc (dialog_cmd): Go back to IDD_ROOT in every case.
9449         * source.cc (dialog_cmd): Go forward to IDD_ROOT in every case.
9451 2001-11-06  Pavel Tsekov  <ptsekov@syntrex.com>
9453         * fromcwd.cc (found_file): Free() memory containing the version and
9454         filepath information for a given package, before replacing the pointers
9455         which reference this memory.
9457 2001-11-06  Robert Collins  <rbtcollins@hotmail.com>
9459         * fromcwd: Fix compiler warnings for cvsid.
9460         (canonicalize_version): Fix compilter warnings.
9461         (do_fromcwd): Ditto.
9462         * version.h: Fix compiler warnings for canonicalize_version.
9464 2001-11-03  Robert Collins  <rbtcollins@hotmail.com>
9466         * res.rc (IDD_CHOOSE): Move the view caption to the right hand side.
9468 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
9470         * res.rc (IDD_CHOOSE): Tweak for use on a 640x480 screen.
9472 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
9474         * choose.cc (set_action): Correctly allow skip for any uninstalled
9475         package.
9477 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
9479         * choose.cc (default_trust): Change the "Required" forced install
9480         category to "Base".
9482 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
9484         * choose.cc: Ran indent.
9485         (set_action): When the requested trust level is missing and the level
9486         was not user requested, set the action to ACTION_SAME_CURR.
9488 2001-11-01  Christopher Faylor  <cgf@redhat.com>
9490         * Makefile.in (mingw_getopt.o): Fix typo in non-verbose compilation.
9492 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
9494         * choose.cc (_view::init_headers): Resync with the paint logic.
9496 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
9498         * choose.cc (add_required): Allow SKIP and SRC_ONLY for currently
9499         installed packages.
9501 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
9503         * choose.cc (default_trust): Autoset currently installed packages per
9504         the user's selection of prev/curr/exp.
9506 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
9508         * splash.cc (dialog_proc): Return TRUE as specified in the WIN32 API.
9510 2001-11-02  Pavel Tsekov  <ptsekov@syntrex.com>
9512         * geturl.cc (is_showing): Remove.
9513         (is_local_install): New static variable. Controls whether the
9514         progress dialog and the supporting thread will be created.
9515         (dialog_proc): Return TRUE to WM_INITDIALOG as specified by the WIN32
9516         API.
9517         (init_dialog): Remove usage of SetForegroundWindow and is_showing.
9518         This prevents the progress dialog to gain control over the
9519         application and fixes the "setup.exe going to background" problem.
9520         (progress): Use is_local_install.
9521         (get_url_to_string): Set is_local_install.
9522         (dismiss_url_status_dialog): Use is_local_install.
9523         * install.cc (dialog_proc): Return TRUE as specified in WIN32 API.
9524         (init_dialog): Remove usage of SetForegroundWindow.
9525         This prevents the progress dialog to gain control over the
9526         application and fixes the "setup.exe going to background" problem.
9528 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
9530         * choose.cc (list_click): Change r to row for clarity.
9531         When we shrink the list below 1 page, scroll to the top of the list.
9532         (_view::click): Return the actual change for contractions.
9533         (dialog_proc): Return TRUE to WM_INITDIALOG as specified by the Win32
9534         API.
9536 2001-11-02  Robert Collins  <rbtcollins@hotmail.com>
9538         * choose.cc (dialog_cmd): Swap cygwin root selection and local dir
9539         selection order.
9540         * localdir.cc: Ran indent.
9541         (get_root_dir_now): New function.
9542         (save_local_dir): New function.
9543         (dialog_cmd): Use it and swap cygwin root selection and local dir
9544         selection order.
9545         (do_local_dir): If there is a saved local dir, read it in.
9546         * net.cc (dialog_cmd): Swap cygwin root selection and local dir
9547         selection order.
9548         * root.cc (dialog_cmd): Ditto.
9549         * source.cc (dialog_cmd): Ditto.
9551 2001-11-01  Robert Collins  <rbtcollins@hotmail.com>
9553         * choose.cc(list_vscroll): Return 0 as required by win32.
9554         (list_hscroll): Ditto.
9555         (list_click): Ditto.
9557 2001-11-01  Robert Collins  <rbtcollins@hotmail.com>
9559         * argv.cc: Remove.
9560         * argv.h: Remove.
9561         * main.cc(WinMain): Use __argv to retrieve command line parameters.
9562         * Makefile,in: Remove argv.o.
9564 2001-11-01  Matt Hargett  <matt@use.net>
9566         * geturl.cc (progress): Change int to unsigned int to eliminate
9567         lint warnings.
9568         * (get_url_to_string): Check for NULL pointer.
9569         * mount.cc (find2): Use free instead of delete for malloc'd
9570         memory.
9571         * nio-http.cc (NetIO_HTTP::NetIO_HTTP): Fix memory leak.
9573 2001-10-31  Robert Collins  <rbtcollins@hotmail.com>
9575         * choose.cc(_view::insert_under): Handle linen > nlines and lines[linen]
9576         with neither a package nor a category. The lines[linen] bug was reported
9577         by Matt (matt@usa.net).
9578         (read_installed_db): Bugfix for testing whether a package has a source
9579         tarball.  Reported by Matt (matt@usa.net).
9580         * geturl.cc(dialog): Rename gw_dialog to local_gw_dialog to avoid
9581         programmer confusion and lint errors. Reported by Matt (matt@usa.net).
9583 2001-10-31  Robert Collins  <rbtcollins@hotmail.com>
9585         * argv.cc: New file, converts arguments for -mwindows
9586         programs. (Simplified derivation from dcrt0.cc.)
9587         * argv.h: New file.
9588         * Makefile,in: Add argv.o and mingw_getopt.o to setup.exe object list.
9589         Add mingw_getopt.o build rule.
9590         * main.cc(WinMain): Initialise argv and argc for use by getopt.
9592 2001-10-27  Christopher Faylor  <cgf@redhat.com>
9594         * res.rc: Rearrange info on top line slightly.
9596 2001-10-27  Christopher Faylor  <cgf@redhat.com>
9598         * desktop.cc (make_passwd_group): Move file creation earlier in the
9599         process to ensure that passwd-grp.bat reflects desired operation.
9601 2001-27-10  Trevor Forbes  <t4bs@hotmail.com>
9603         * postinstall.cc (each): Remove "*.done" file else rename will fail.
9605 2001-10-16  Christopher Faylor  <cgf@redhat.com>
9607         * res.rc: Oops.  Take 640x480 screen size into account.
9609 2001-10-16  Christopher Faylor  <cgf@redhat.com>
9611         * res.rc: Enlarge chooser screen.
9613 2001-10-12  Christopher Faylor  <cgf@redhat.com>
9615         * Makefile.in: Accomodate changes to w32api_include macro.
9617 2001-10-12  Christopher Faylor  <cgf@redhat.com>
9619         * Makefile.in: Use correct flags for windres.
9621 2001-10-12  Christopher Faylor  <cgf@redhat.com>
9623         * Makefile.in (CFLAGS): Remove -nostdinc from CFLAGS.
9625 2001-10-12  Christopher Faylor  <cgf@redhat.com>
9627         * choose.cc (pick_line::paint): Reorganize after botched patch.
9629 2001-10-12  Christopher Faylor  <cgf@redhat.com>
9631         * choose.cc (pick_line::paint): Add missing declaration.
9633 2001-10-10  Ralf Habacker <Ralf.Habacker@freenet.de>
9635         * choose.cc (pick_line::paint): Add package name to sdesc for display.
9637 Wed Sep 26 21:39:00  Robert Collins rbtcollins@hotmail.com
9639         * choose.cc (_view::insert_pkg): Correctly exit loop.
9640         * iniparse.y (register_category): Always insert new categories.
9642 Fri Sep 21 13:56:32 2001  Christopher Faylor <cgf@cygnus.com>
9644         * inilex.l (yylex): For comments, eat all characters up to, but not
9645         including newline.
9647 Sun Aug 26 12:50:01 2001  John Marshall  <jmarshall@acm.org>
9649         * fromcwd.cc (found_file): Use correct package name when adding an
9650         unknown package rather than random stack garbage.
9652 Sun Aug 12 14:25:21 2001  Christopher Faylor <cgf@cygnus.com>
9654         * desktop.cc (make_passwd_group): .bat files need \r\n endings.
9656 Wed Aug  8 13:53:47 2001  Christopher Faylor <cgf@cygnus.com>
9658         * desktop.cc (etc_profile): Leave environment variables untouched.
9660 2001-08-07  Corinna Vinschen  <corinna@vinschen.de>
9662         * autoload.c: Add dynamic load statements for NT/W2K
9663         advapi32 functions not available in 9x/ME.
9664         * main.cc (set_default_dacl): New function.
9665         (WinMain): Call `set_default_dacl' if running on NT/W2K.
9667 Sat Aug  4 21:35:53 2001  Christopher Faylor <cgf@cygnus.com>
9669         * ini.h (_CategoryPackage): Change pkg field to pkgname for
9670         consistency.
9671         * choose.cc: Use pkgname field when referencing _CategoryPackage
9672         throughout.
9673         (fill_missing_category): Don't add excluded packages.
9674         (default_trust): Ditto.
9675         (_view::insert_pkg): Ditto.
9676         * iniparse.y (register_category): Use consistent variable name.
9678 2001-07-09  Egor Duda <deo@logos-m.ru>
9680         * choose.cc: Use system foreground color for text output.
9682 Sat Jul  7 00:40:28 2001  Christopher Faylor <cgf@cygnus.com>
9684         * choose.cc (set_action): Use default trust for determining reinstall
9685         and source only.
9686         (default_trust): Set default trust.
9687         (pick_line::paint): Allow source selection when reinstalling or
9688         retrieving.
9690 Fri Jul  6 18:08:49 2001  Christopher Faylor <cgf@cygnus.com>
9692         * choose.cc (isinstalled): Modify to properly accomodate special case
9693         of "download only".
9694         (set_action): Check downloaded components, not installed components if
9695         "download only".
9696         (set_existence): Always include full list of files when "download
9697         only".
9699 Fri Jul  6 00:37:05 2001  Christopher Faylor <cgf@cygnus.com>
9701         * choose.cc (pick_line::paint): Properly display "na" field when no
9702         source exists.
9704 Thu Jul  5 00:34:23 2001  Christopher Faylor <cgf@cygnus.com>
9706         * choose.cc (scan2): Ensure that older versions do not show up in
9707         "Test" slot.
9709 Mon Jul  2 15:47:59 2001  Christopher Faylor <cgf@cygnus.com>
9711         * choose.cc (set_action): Allow "Skip" action if trust != installed.
9712         * res.rc: Fix copyright.
9714 Sat Jun 30 14:05:21  2001  Michael A Chase <mchase@ix.netcom.com>
9716         * res.rc (IDD_LOCAL_DIR): Change caption to match the other dialog
9717         boxes.
9718         (IDD_CHOOSE): Adjust horizontal size so package names are visible.
9720         * choose.cc: Restore some more changes from 2001-06-25, throughout.
9721         (paint): Wrap some excessively long lines.
9722         (pick_line::paint): Ditto.  Move the arrow in the "Current" column
9723         right to where it belongs.  Move the source checkbox slightly to the
9724         right.
9725         (do_choose): List categories and required packages in setup.log.full.
9727 Sat Jun 30 23:04:59 2001  Christopher Faylor <cgf@cygnus.com>
9729         * choose.cc (scan2): Restore source scanning eliminated by previous
9730         checkin.
9732 Sat Jun 30 15:18:33 2001  Christopher Faylor <cgf@cygnus.com>
9734         * ini.h (struct _Info): Add "derived" element.
9735         * choose.cc (scan2): Try to place unknown tar files into proper slot
9736         when package exists in setup.ini but tar file does not.
9738 Sat Jun 30 13:39:00 2001 Robert Collins <rbtcollins@hotmail.com>
9740         * choose.cc (create_listview): Call set_view_mode with VIEW_CATEGORY.
9741         (do_choose): Log the first category name.
9743 Fri Jun 29 23:07:44 2001  Christopher Faylor <cgf@cygnus.com>
9745         *ini.h: Reapply 2001-06-25 changes.
9746         * choose.cc (add_required): Ditto.  Default to "Keep" state if
9747         UNINSTALL and product is installed.  Default to curr state if SKIP,
9748         etc.
9749         (keep_or_skip): New function.  Returns skip or keep state depending on
9750         installed state of package.
9751         (default_trust): Use keep_or_skip to set state.
9752         (_view::insert_pkg): Use calloc to allocate lines.
9753         (set_view_mode): Adapt 2001-06-25 change to set_full_list here.
9755 Sat Jun 30 11:01:00 2001 Robert Collins <rbtcollins@hotmail.com>
9757         * choose.cc: Remove globals full_list, headers, package_indexes and
9758         nindexes.
9759         Add globals cat_headers, pkg_headers and chooser.
9760         (add_required): New function.
9761         (paint): Use the chooser for header details.
9762         Call into the chooser to paint each line.
9763         (list_click): Use new global variables.
9764         Call into the chooser to handle the click.
9765         Repaint the entire view if packages have been added or removed.
9766         (note_width): Get passed a headers struct rather than using a global
9767         variable.
9768         (fill_missing_category): New function.
9769         (default_trust): Skip non-"Required" or "Misc" packages.
9770         (pick_line::set_line (Package *)): New function.
9771         (pick_line::set_line (Category *)): New function.
9772         (pick_line::paint): New function.
9773         (pick_line::click): New function.
9774         (_view::_view): New function.
9775         (_view::set_view_mode): New function.
9776         (_view::mode_caption): New function.
9777         (_view::set_headers): New function.
9778         (_view::init_header): New function.
9779         (_view::insert_pkg): New function.
9780         (_view::insert_category): New function.
9781         (_view::insert_at): New function.
9782         (_view::insert_under): New function.
9783         (_view::clear_view): New function.
9784         (viewsplusplus): New function.
9785         (_view::client): New function.
9786         (set_view_mode): Use new chooser functionality.
9787         (set_full_list): Use new global variables.
9788         (create_listview): Instantiate chooser.
9789         Remove all hardcoded headers[] code.
9790         (dialog_cmd): On trust changes, check dependencies.
9791         (getcategorybyname): New function.
9792         (getpackagecategorybyname): New function.
9793         (scan2): Use case-insensitive package comparison.
9794         (do_choose): Use fill_missing_category ().
9795         Show some category data.
9796         * ini.h: Protect against multiple inclusion.
9797         (views) New enum.
9798         (_CategoryPackage): New struct.
9799         (_Category): New struct.
9800         (_Package): Change category to Category * from char *.
9801         (extern Category category): New global variable.
9802         (extern in ncategories): Ditto.
9803         (getcategorybyname): New prototype.
9804         (catpackagecategorybyname): New prototype.
9805         (register_category): New prototype.
9806         (add_category): New prototype.
9807         * iniparse.y: Parse multiple categories per package.
9808         (category): New global variable.
9809         (ncategories): New global variable.
9810         (new_package): Compare package against NULL, not 0.
9811         (new_requirement): Source formatting fix.
9812         (register_category): New function.
9813         (add_category): New function.
9814         * res.rc: Change IDC_CHOOSE_FULLPART to IDC_CHOOSE_VIEW.
9815         IDC_CHOOSE_VIEWCAPTION: New control.
9816         * resource.h: Change IDC_CHOOSE_FULLPART to IDC_CHOOSE_VIEW.
9817         IDC_CHOOSE_VIEWCAPTION: New control.
9818         Increment _APS_NEXT_CONTROL_VALUE.
9820 Mon Jun 25 00:56:37 2001  Michael A Chase <mchase@ix.netcom.com>
9822         * choose.cc (paint): Wrap excessively long lines.
9823         (list_click): Ditto.
9824         (create_listview): Ditto.
9825         (do_choose): Ditto.  Replace TABs and remove CRs in lines written to
9826         setup.log.full.  Allow "Yes" for source exists in setup.log.full when
9827         installing from local directories.
9829 Mon Jun 25 00:56:37 2001  Christopher Faylor <cgf@cygnus.com>
9831         * choose.cc (set_action): Only clear srcpicked when moving to next
9832         state.  Allow source installation if it exists in the current "trust"
9833         state.  Don't move to skip state when package is installed.
9834         (list_click): Don't allow source clicking when no source is available.
9835         (set_full_list): Display package when not is_full_action.
9836         * ini.h (is_full_action): Define.
9838 Sun Jun 17 12:06:14 2001  Christopher Faylor <cgf@cygnus.com>
9840         * install.cc (check_for_old_cygwin): New function.  First stab at
9841         checking for old cygwin versions.
9842         (do_install): Call check_for_old_cygwin if there were no errors during
9843         the install.
9845 Sat Jun 16 11:33:51  2001  Michael A Chase <mchase@ix.netcom.com>
9847         * choose.cc (_Info::_Info): Test _source paramenter for non-NULL rather
9848         than zeroed "source" element.
9850 Fri Jun 15 20:54:43 2001  Christopher Faylor <cgf@cygnus.com>
9852         * choose.cc (scan2): Insert unknown tar archives, found on disk, into
9853         the highest available "hole" in the trust array.
9855 Fri Jun 15 00:20:48 2001  Christopher Faylor <cgf@cygnus.com>
9857         * choose.cc (set_existence): Use pointer method for indexing in trust
9858         array.
9859         (create_listview): Ditto.
9860         (scan2): Ditto.  Also, use consistent variable name for indexing into
9861         trust array.
9862         * ini.h (Package): Reorganize info array for easier scanning.
9864 Fri Jun 15 00:01:51 2001  Christopher Faylor <cgf@cygnus.com>
9866         * choose.cc (isinstalled): Eliminate special download only test.
9867         (set_action): Don't move to next state if in ACTION_SAME range and not
9868         incrementing.
9869         (choose_caption): Display "Retrieve" rather than "Reinstall" when just
9870         downloading.
9871         (do_choose): Sort packages after all packages have been read.
9872         Accomodate the fact that first element in trust array is empty so that
9873         log files don't report the wrong trust value.
9874         * iniparse.y (new_package): Malloc space for package name or suffer
9875         memory corruption.
9877 Thu Jun 14 22:43:59 2001   Robert Collins <rbtcollins@hotmail.com>
9879         * ini.h (Dependency): New structure.  Declare new function.
9880         * inilex.l (yylex): Detect new setup.ini options - category and
9881         requires.
9882         * iniparse.y: Declare new setup.ini token values.
9883         (yyparse): Parse new token values.
9884         (new_requirement): New function.
9886 Thu Jun 14 22:43:26 2001  Christopher Faylor <cgf@cygnus.com>
9888         * choose.cc (read_installed_db): Eliminate obsolete code.
9890 Thu Jun 14 22:11:53 2001  Christopher Faylor <cgf@cygnus.com>
9892         * choose.cc (set_action): Set trust on "redo".
9893         (_Info::_Info): New constructor.
9894         (read_installed_db): Use new constructor.  Use trusts type for
9895         iterator.
9896         * ini.h (struct _Info): Label struct, add constructor.
9897         (Package): Make installed_ix a type 'trusts.'
9898         * install.cc (uninstall_one): Unset any installed info for current
9899         package.
9900         (install_one): Allocate new Info struct for installed reflecting new
9901         installed info.
9902         (do_install): Don't output line to installed.db if package is being
9903         uninstalled.
9905 Thu Jun 14 20:33:01 2001  Robert Collins <rbtcollins@hotmail.com>
9907         * choose.cc (getpkgbyname): Use consistent method for scanning package
9908         array.
9910 Wed Jun 13 23:33:08 2001  Christopher Faylor <cgf@cygnus.com>
9912         * choose.cc:  Add some comments.
9913         (getpkgbyname): Use strcasecmp for comparisons.
9915 Wed Jun 13 16:07:00 2001  Christopher Faylor <cgf@cygnus.com>
9917         * install.cc (do_install): Avoid checking for download action if
9918         package wasn't currently retrieved.
9920 Wed Jun 13 11:27:22 2001  Christopher Faylor <cgf@cygnus.com>
9922         * choose.cc: Eliminate extra array throughout.  Use element in package
9923         structure instead.  Use pointers rather than array indexes where
9924         appropriate.
9925         (set_action): New function to set next action based on current.
9926         (choose_caption): New function.  Returns display caption.
9927         (check_existence): Change arguments.  Use pointer to 'info' structure.
9928         (set_existence): Use pointer rather than array index.
9929         (default_trust): Use trusts enum for second argument.
9930         (set_full_list): Honor exclude element in package structure.
9931         (build_labels): Eliminate.
9932         (base): Make global.  Use const char * argument.
9933         (get_package_version): Eliminate.
9934         (getpkgbyname): New function.
9935         (read_installed_db): Use parse_filename to get version info.
9936         * desktop.cc (make_passwd_group): Use getpkgbyname function.
9937         * download.cc (get_file_size): const argument.
9938         (do_download): Use is_download_action to determine when something
9939         should be downloaded.
9940         * filemanip.h: Add some functions.
9941         * ini.cc (do_ini): Use NULL rather than 0 for pointer assignment.
9942         * ini.h: Use enums for actions and trusts.
9943         (is_download_action): New macro.
9944         (is_upgrade_action): Ditto.
9945         (is_uninstall_action): Ditto.
9946         (struct Package): Add new fields.
9947         * inilex.l (yylex): Detect new setup.ini options.
9948         * iniparse.y: Declare new tokens.
9949         (yyparse): Detect exclude keyword.  Fill out version field even if
9950         version == 0.
9951         (new_package): Use greater granularity when allocating package array to
9952         avoid repeated calls to realloc.
9953         * install.cc (exists): const argument.
9954         (uninstall_one): Take pkg argument.
9955         (install_one): Ditto.  Eliminate unneeded arguments which can be
9956         derived from package info.
9957         (do_install): Iterate over package array using a pointer.  Use
9958         is_download_action to control when package should be downloaded.
9959         * tar.cc (tar_open): const argument.
9960         * tar.h: Refloect const argument.
9962 2001-05-31  Michael Chase mchase@ix.netcom.com
9964         * main.cc (WinMain): Add setup version to starting setup.log entry
9966 Tue May 29 21:37:58 2001  Yukihiko Sohda <sohda@is.titech.ac.jp>
9968         * inilex.l: Add + to list of valid string characters.
9970 Mon May 28 20:54:50 2001  Christopher Faylor <cgf@cygnus.com>
9972         * Makefile.in: Remove more stuff in the clean target.
9974 Mon May 28 18:24:59 2001  Christopher Faylor <cgf@cygnus.com>
9976         * Makefile.in: Correctly generate iniparse.h.
9978 Tue Mar  6 19:14:00 2001  Corinna Vinschen <corinna@vinschen.de>
9980         * geturl.cc (get_url_to_file): Add parameter `allow_ftp_auth'.
9981         * geturl.h: Change declaration of `get_url_to_file' accordingly.
9982         * netio.cc (NetIO::NetIO): Add parameter `allow_ftp_auth'.
9983         Set member `ftp_auth'.
9984         (NetIO::open): Add parameter `allow_ftp_auth'. Use it in calls
9985         to constructors of derived classes.
9986         (NetIO::get_ftp_auth): New method.
9987         * netio.h: Change class definition accordingly.
9988         * nio-ftp.cc (NetIO_FTP::NetIO_FTP): Add parameter `allow_ftp_auth'.
9989         Take global variables `net_ftp_user' and `net_ftp_passwd' into account.
9990         Add code for ftp authentication retry.
9991         * nio-ftp.h: Change class definition accordingly.
9992         * nio-http.cc (NetIO_HTTP::NetIO_HTTP): Add parameter `allow_ftp_auth'.
9993         Add code for ftp authentication retry in case of proxy connection.
9994         * nio-http.h: Change class definition accordingly.
9995         * res.rc: Add FTP authentication dialog.
9996         * resource.h: Add new constants used in res.rc.
9997         * state.h: Add variables `net_ftp_user' and `net_ftp_passwd'.
9999 Sun May 27 17:12:23 2001  Christopher Faylor <cgf@cygnus.com>
10001         * res.rc (IDD_SPLASH): Add a copyright year.
10003 Sun May 27 15:42:18 2001  Christopher Faylor <cgf@cygnus.com>
10005         * Makefile.in: Make iniparse.y produce a c++ file.
10006         * choose.cc (set_existence): Revert 2001-05-27 change.
10007         * ini.cc: Remove "C" from declaration of yyparse.
10008         * iniparse.y (yyparse): Fill out version field by default when a binary
10009         install is detected and no version has been set yet.
10010         * install.cc (do_install): Mount things earlier so that we can use
10011         proper mount table settings.  Don't remove mounts since they are now
10012         honored.
10013         * mount.cc (create_mount): Reread the mount table after establishing a
10014         new mount.
10015         (read_mounts): Explicitly clear root_here to allow multiple uses of
10016         this function.  Ensure that there is no garbage in the table when we've
10017         exhausted all of the mounts in the registry.
10018         (cygpath): Accomodate ./ in path.
10020 Sun May 27 02:59:07 2001  Christopher Faylor <cgf@cygnus.com>
10022         Use parse_filename method to parse filenames throughout.  Use
10023         get_root_dir to retrieve the current root directory throughout.  Set
10024         const in argument list, where appropriate, throughout.
10025         * choose.cc (set_existence): Detect case of uninstalled package with no
10026         version.
10027         (parse_filename): New function.
10028         * filemanip.h (fileparse): New structure.
10029         * mount.cc (read_mounts): Remember where we found the root mount.
10030         (set_root_dir): New function.
10031         (get_root_dir): Ditto.
10032         * mount.h: Declare new functions.
10033         * site.cc (get_root_dir_now): Renamed from get_root_dir.
10034         (save_site_url): Use new function name.
10035         (get_initial_list_idx): Ditto.
10037 Sat May 26 21:23:59 2001  Christopher Faylor <cgf@cygnus.com>
10039         * choose.cc: Use a constant throughout to deal with chooser icon
10040         length.
10041         * res.rc (IDD_CHOOSE): Increase size of chooser box.
10043 2001-05-07  Brian Keener <bkeener@thesoftwaresource.com>
10045         * choose.cc (do_choose): Fix incorrect assignment of trust setting to
10046         use when Redownload or Sources Only selected.
10048 Thu May 10 22:35:59 2001  Christopher Faylor <cgf@cygnus.com>
10050         Reformat file after botched patch formatting.
10051         * choose.cc (which_trust): Eliminate variable.
10052         (default_trust): Don't set which_trust.
10053         (do_choose): Use selected trust when reinstalling or installing source.
10055 Thu May 10 21:04:18 2001  Christopher Faylor <cgf@cygnus.com>
10057         Change concat to cygpath throughout.
10058         Change map_filename to cygpath throughout.
10059         * concat.cc (vconcat): New function.
10060         (concat): Use vconcat.
10061         * concat.h: Reflect above.
10062         * install.cc (map_filename): Eliminate.
10063         (install_one): Free dest_file.
10064         * mount.cc (find2): Expect input key to be pointing to mount record.
10065         (in_table): New function.
10066         (is_admin): Move from root.cc.
10067         (read_mounts): New function.
10068         (path_prefix_p): New function.
10069         (cygpath): New function.
10070         * mount.h: Define new functions and structure.
10071         * root.cc (in_table): Move to mount.cc.
10072         (do_root): Call read_mounts to initialize root stuff and mount table.
10073         * site.cc (get_root_dir): Ditto.
10075 2001-05-09  Matt Hargett <matt@use.net>
10077         * Makefile.in: Remove *.rc from clean.
10079 Tue May  8 23:33:38 2001  Christopher Faylor <cgf@cygnus.com>
10081         * choose.cc (scan2): Fix incorrect setting of TRUST_CURR rather than
10082         TRUST_PREV which produced "0" versions.
10084 2001-05-07  Brian Keener <bkeener@thesoftwaresource.com>
10086         * resource.h: Add new field IDC_CHOOSE_INST_TEXT.  Modify
10087         _APS_NEXT_CONTROL_VALUE to account for addition of
10088         IDC_CHOOSE_INST_TEXT.
10089         * res.rc (IDD_CHOOSE): Modify choose dialog to use new field
10090         IDC_CHOOSE_INST_TEXT for screen text.  Modify choose Dialog to allow
10091         hot keys to select Prev, Curr, Exp.
10092         * ini.h: Add new actions for ACTION_REDO and ACTION_SRC_ONLY.  Modify
10093         define for LOOP_PACKAGES to include new actions ACTION_REDO and
10094         ACTION_SRC_ONLY.
10095         * choose.cc: Add new Trusts for TRUST_REDO and TRUST_SRC_ONLY.
10096         (paint): Modify to check TRUST_SRC_ONLY when determining Bitmap for
10097         source Checkbox to use.
10098         (build_labels): Add logic to allow for selection of Source only
10099         Download/ReDownload/Install/Reinstall and also to Redownload/Reinstall
10100         current version binary.
10101         (dialog_proc): Add conditional display for file selection prompt based
10102         on download vs install using IDC_CHOOSE_INST_TEXT.
10103         (do_choose): Add new logic for TRUST_REDO and TRUST_SRC_ONLY selection
10104         and modify logic for TRUST_UNINSTALL, TRUST_KEEP, and TRUST_NONE to
10105         handle the instance where Source Download/Install was selected.  Modify
10106         log file to store appropriate information regarding Action selected and
10107         the new actions that were added (I.E.: ACTION_REDO and
10108         ACTION_SRC_ONLY).
10109         * download.cc: Add include for <unistd.h> and "port.h".
10110         (download_one): Modify parameter list to include the selected action
10111         for the file to be downloaded.  Modify size check against expected size
10112         to include check for ACTION_REDO and ACTION_SRC_ONLY.  Modify rename of
10113         .tmp file to also remove the destination file if exists due to ability
10114         to redownload source and binary now.
10115         (do_download): Modify to also use ACTION_REDO and ACTION_SRC_ONLY in
10116         calculation of Download Bytes.  Modify to also use ACTION_REDO and
10117         ACTION_SRC_ONLY in determining files selected for download.
10118         * install.cc (uninstall_one): Add check to treat a Reinstall like an
10119         upgrade so current version will be uninstalled prior to reinstall.
10120         (do_install): Add logic to handle ACTION_REDO and ACTION_SRC_ONLY for
10121         uninstalling and installing binary and source packages.
10122         * desktop.cc (make_passwd_group): Modify logic to account for a Source
10123         only cygwin install when checking for cygwin to determine need for
10124         mkpasswd and mkgroup.
10126 Mon May  7 23:33:30 2001  Matt Hargett <matt@use.net>
10128         * winsup/cinstall/res.rc: Added accelerators and improved focus order.
10129         Removed WS_DISABLED from "OK" buttons to accomodate default focus
10130         changes in net.cc and source.cc.
10131         * winsup/cinstall/net.cc (dialog_proc): If no radio button is selected,
10132         a default is selected.
10133         * winsup/cinstall/source.cc (dialog_proc): Ditto.
10134         (check_if_enable_next): Removed.  No longer needed since a radio button
10135         will always be selected.
10136         (load_dialog): Removed call to check_if_enable_next.
10137         (dialog_cmd): Ditto.  Also added default to switch.
10139 Tue Apr 24 23:42:02 2001  Christopher Faylor <cgf@cygnus.com>
10141         * res.rc: Resize affected text.
10143 Tue Apr 24 23:35:31 2001  Christopher Faylor <cgf@cygnus.com>
10145         * net.cc (do_net): Default to direct download.
10146         * res.rc: Move default selections to the top.
10148 2001-04-18  Earnie Boyd  <earnie@users.sourceforge.net>
10150         * win32.h: Remove the definitions for _UNION_NAME and _STRUCT_NAME.
10151         Must now include <windows.h> and not the pieces.
10152         * choose.cc (create_listview): Clean up type mismatch problems.
10153         * dialog.h (NEXT(id)): Ditto.
10154         * geturl.cc (dialog): Ditto.
10155         * install.cc (dialog): Ditto.
10156         * splash.cc (load_dialog): Ditto.
10158 Wed Apr 18 18:59:21 2001  Christopher Faylor <cgf@cygnus.com>
10160         * tar.cc (class gzbz): Define dummy virtual functions.
10162 Wed Apr 18 16:01:21 2001  Christopher Faylor <cgf@cygnus.com>
10164         * Makefile.in: Add bz2 include/library support.
10165         * filemanip.h: New file.
10166         * choose.cc (find_tar_ext): New function.  Returns TRUE if .tar.gz or
10167         .tar.bz2 found.
10168         (scan2): Reorganize to use find_tar_ext, accomodating .bz2 extension.
10169         (read_installed_db): Ditto.
10170         (do_choose): Ditto.
10171         * fromcwd.cc (found_file): Ditto.
10172         (do_fromcwd): Ditto.
10173         * tar.cc (class gzbz): New super class for uncompression support.
10174         (gz): New class for gzip support.
10175         (bz): New class for bzip2 support.
10176         (tar_open): Use gzbz class to control file opening.
10177         (tar_ftell): Ditto for returning position in file.
10178         (skip_file): Ditto for reading file.
10179         (tar_next_file): Ditto.
10180         (tar_read_file): Ditto.
10181         (tar_close): Ditto for close.
10183         * zlib/configure.in: Force NM substitution.
10185         * source.cc (do_source): Default to "Install from Internet".
10187 2001-03-16  Brian Keener <bkeener@thesoftwaresource.com>
10189         * nio-file.cc (NetIO_File::NetIO_File): Use `get_file_size' instead of
10190         `stat'.
10191         * choose.cc (list_click): Correct inability to select source code for
10192         download.
10193         (scan2): Modify to skip source tarballs when scanning disk for
10194         installable packages.
10196 2001-03-10  Chris Abbey  <chris_abbey@yahoo.com>
10198         * install.cc: install sources into /usr/src instead
10199         of /, also include the sizes of source tarballs
10200         in total_bytes.
10201         * download.cc: include sizes of source tarballs in
10202         total_download_bytes.
10204 Tue Mar  6 19:31:00 2000  Corinna Vinschen <corinna@vinschen.com>
10206         * download.cc (get_file_size): Remove `static'.
10208 Tue Mar  6 19:11:00 2000  Corinna Vinschen <corinna@vinschen.com>
10210         * tar.cc (tar_open): Use `get_file_size' instead of `stat'.
10212 2001-03-06  Brian Keener <bkeener@thesoftwaresource.com>
10214         * choose.cc (paint): Modify message for nothing to download vs
10215         nothing to install/update based on installation method.
10216         (list_click): Modify to skip versions in selection process if
10217         installing from local directory and installation file does not exist.
10218         Also leaves Source Action set to N/A if the source file does not exist
10219         and installing from local directory.
10220         (check_existence): New method to check current existence of installation
10221         files based on selected installation method.
10222         (set_existence): New method to set the current existence of installation
10223         files based on selected installation method.
10224         (best_trust): Modify decision process for best trust to base decision on
10225         current trust selected (IE: Prev, Curr, or Test), existence of file and
10226         installation method selected.
10227         (default_trust): Add logic to capture the current trust level and the
10228         trust selected for the given package.
10229         (set_full_list): Expand decision criteria for displaying a package in
10230         the selection list to include file existence/non-existence and selected
10231         installation method.
10232         (build_labels): Modify criteria for label addition to include
10233         installation method and file existence/non-existence.
10234         (create_listview): Modify to establish package trust level for each
10235         package before setting up the display list.  Also modification to set
10236         current trust button as the default.
10237         (dialog_cmd): Set response for Prev, Curr, Test button push to perform
10238         a reset of the selection list in addition to setting the default trust.
10239         (get_package_version): New method to provide reusable code for
10240         determining the package version from the file name for a specified
10241         trust.
10242         (scan2): Modify to use new method get_package_version and
10243         also enhance handling of the build for the structures package and
10244         extra.
10245         (read_installed_db): Modify to use the new method
10246         get_package_version and also enhance handling of the build for the
10247         structures package and extra.
10248         (do_choose): Add additional initialization of package and extra
10249         structures.  Modify to use read_installed_db all the time despite
10250         install method.  Modify output to setup.log.full log file to increase
10251         readability by adding additional spacing, expanded code and available
10252         versions.
10253         * ini.h: Add new fields install_exists, source_exists and
10254         partial_list_display to the structure definition for package.
10255         * res.rc (IDD_CHOOSE): Modify choose dialog Prev, Curr, and Test
10256         pushbuttons by replacing with Radio Buttons thus allowing the
10257         operator to better determine which is selected.
10259 2001-02-20  Brian Keener <bkeener@thesoftwaresource.com>
10261         * download.cc (do_download): Add new variables total_download_bytes and
10262         total_download_bytes_sofar for download progress meter.  Add loop
10263         to accumulate the total bytes to download from the selected packages.
10264         * geturl.cc: Add state.h and diskfull.h to include list.  Add new
10265         variables gw_iprogress, gw_pprogress, gw_progress_text,
10266         gw_pprogress_text, and gw_iprogress_text to allow for addition of
10267         total packages download progress meter and disk full percent
10268         progress meter.  Add variables total_download_bytes and
10269         total_download_bytes_sofar for use by progress meters.
10270         (dialog_proc): Add new variables gw_iprogress, gw_pprogress,
10271         gw_progress_text, gw_pprogress_text, and gw_iprogress_text to
10272         allow for addition of total packages download progress meter and disk
10273         full percent progress meter.
10274         (init_dialog): Ditto.
10275         (progress): Ditto.
10276         (get_url_to_file): Ditto.
10277         * geturl.h: Add external definition for total_download_bytes and
10278         total_download_bytes_sofar.
10279         * res.rc: Add two additional progress meters (IDC_DLS_IPROGRESS)
10280         and (IDC_DLS_PPROGRESS) and three text objects (IDC_DLS_PROGRESS_TEXT)
10281         and (IDC_DLS_IPROGRESS_TEXT, IDC_DLS_PPROGRESS_TEXT) for use in the
10282         download meters.
10283         * resource.h: Add new fields for progress meters and text and update
10284         _APS_NEXT_CONTROL_VALUE.
10286 Wed Feb 21 13:05:00 2000  Corinna Vinschen <vinschen@redhat.com>
10288         * download.cc (get_file_size): Check for INVALID_HANDLE_VALUE instead
10289         for NULL.
10291 Wed Feb 21 11:21:00 2000  Corinna Vinschen <vinschen@redhat.com>
10293         * download.cc (download_one): Add missing parenthesis.
10295 Mon Feb 19 18:59:00 2000  Corinna Vinschen <vinschen@redhat.com>
10297         * download.cc (get_file_size): New function. Eliminates the need
10298         to call `stat'.
10299         (download_one): Call `get_file_size' instead of `stat'. This
10300         workarounds a problem with mingw's `stat' call.
10302 2001-02-07  Earnie Boyd  <earnie@users.sourceforge.net>
10304         * Makefile.in: (%.o: %.rc): Specify --include-dir $(w32api_include).
10305         This is to allow cinstall to build with 2.95.2-7 and to make the
10306         use of headers consistent.
10308 2000-12-26  Earnie Boyd  <earnie_boyd@yahoo.com>
10310         * Makefile.in (autoload.o): Add target to specify -fno-inline-functions
10312 Tue Dec 26 03:46:00 2000  Matt Hargett  <matt@use.net>
10314         * winsup/cinstall/res.rc: Added accelerators and improved focus
10315         order.
10317 2000-12-10  Egor Duda <deo@logos-m.ru>
10319         * choose.cc (paint): Use system background color for text output.
10321 Sun Dec 10 19:05:25 2000  Christopher Faylor <cgf@cygnus.com>
10323         * Makefile.in: Use CXX for linking and for compiling .cc files.
10324         * configure.in: Find correct c++ compiler.
10325         * configure: Regenerate.
10327 2000-11-17  DJ Delorie  <dj@redhat.com>
10329         * splash.cc (load_dialog): Make message more obvious.
10330         * res.rc: Ditto.
10332 Fri Nov 17 17:15:21 2000  Christopher Faylor <cgf@cygnus.com>
10334         * Makefile.in: Use g++ to link so that libstdc++.a gets used.  This is
10335         necessary for newer compilers.
10337 Wed Nov 9  2:19:00 2000  Corinna Vinschen <vinschen@redhat.com>
10339         * desktop.cc: Include "ini.h" and "version.h".
10340         (make_passwd_group): Skip the function on 9x/ME boxes when an
10341         older version of Cygwin has been installed which doesn't
10342         support mkpasswd/mkgroup on 9x/ME.
10343         * install.cc: Move the `LOOP_PACKAGES' and `pi' macros to...
10344         * ini.h: ...here.
10346 Wed Nov 8 17:10:00 2000  Corinna Vinschen <vinschen@redhat.com>
10348         * desktop.cc (make_passwd_group): Don't exit when started
10349         on 9x/ME since mkpasswd/mkgroup are usable on 9x/ME now.
10351 Sun Nov 5 12:51:42 2000  Jason Tishler  <jt@dothill.com>
10353         * install.cc (do_install): Add call to set_cygdrive_flags to sync
10354         the mount modes.
10355         * mount.cc (set_cygdrive_flags): New function.
10356         (get_cygdrive_flags): Ditto.
10357         (default_cygdrive): Ditto.
10358         (set_cygdrive_flags): Ditto.
10359         * mount.h: Add prototype for set_cygdrive_flags.
10361 2000-10-23  DJ Delorie  <dj@redhat.com>
10363         * ini.h: add source actions
10364         * fromcwd.cc: check for available sources
10365         * res.rc: add checkbox bitmaps
10366         * resource.h: ditto
10367         * check-*.bmp: new
10368         * choose.cc: add source column
10369         * download.cc: download sources if called for
10370         * install.cc: [un]install sources too
10372 2000-10-22  DJ Delorie  <dj@redhat.com>
10374         * choose.cc (build_labels): Don't skip TRUST_PREV completely; only
10375         ignore it wrt full_list if there's already a version installed.
10376         (do_choose): Sort the list.
10377         (package_sort): New.
10379 2000-10-12  DJ Delorie  <dj@redhat.com>
10381         * res.rc: Add more error strings.
10382         * resource.h: Ditto.
10383         * iniparse.y (new_package): re-initialize if needed.
10384         * download.cc (do_download): Keep track of errors; notify and
10385         allow retry.
10386         * install.cc (do_install): Ditto.
10388 2000-10-05  DJ Delorie  <dj@redhat.com>
10390         * Makefile.in: fix %.cc rule
10392 2000-10-04  DJ Delorie  <dj@redhat.com>
10394         * desktop.cc: quote HOME and USER, don't . ./.profile
10396         * choose.cc (build_labels): don't include in partial list just
10397         because there's a *previous* version available.
10399         * install.cc (do_install): if installing from local directory with
10400         setup.ini and the file isn't found, look in "." also.  Note errors.
10402 2000-10-02  DJ Delorie  <dj@redhat.com>
10404         * ini.cc (do_ini): save setup.ini locally
10406 2000-10-02  Chris Abbey  <cabbey@bresnanlink.net>
10408         * desktop.cc: quote escapes in prompt
10410 2000-10-02  Jason Tishler  <jt@dothill.com>
10412         * root.cc (is_admin): New function.
10413         (read_mount_table): Check for administrative priviledges and set
10414         installation scope as appropriate.
10416 2000-09-28  DJ Delorie  <dj@redhat.com>
10418         * nio-ftp.cc (ftp_line): handle continuations more robustly
10420 2000-09-14  Brian Keener  <bkeener@thesoftwaresource.com>
10422         * res.rc: increased the size of the site dialog (IDD_SITE) & the
10423         corresponding list box to provide for more URL's to be listed.
10424         Modified the position of the Back, Next and Cancel buttons to
10425         correspond to the new size of the dialog.
10427 2000-09-13  DJ Delorie  <dj@redhat.com>
10429         * install.cc (do_install): update disk fullness once per package
10430         to improve performance
10432         * choose.cc (create_listview): call ReleaseDC
10434 Mon Sep 11 22:40 2000  Harold L Hunt II <harold@compasstechnologies.com>
10436         * mkdir.cc: Create directories when ERROR_FILE_NOT_FOUND is
10437         returned, as it seems Samba 2.0.6+ returns this instead of
10438         ERROR_PATH_NOT_FOUND
10440 Mon Sep 11 19:35:24 2000  Christopher Faylor <cgf@cygnus.com>
10442         * site.cc (get_initial_list_idx): Don't default to saved URL if it
10443         refers to sources.
10445 2000-09-07  DJ Delorie  <dj@redhat.com>
10447         * splash.cc: use version.h, not local decl
10448         * res.rc: add "old version" message
10449         * resource.h: ditto
10450         * version.h: new
10451         * fromcwd.cc (canonicalize_version): make global
10452         * iniparse.y: add setup-version support, fix bug in blank line
10453         handling
10455         * inilex.l: add [exp] as alias for [test], add setup-version
10456         * Makefile.in (version.c): add setup-version tag
10458         * desktop.cc (do_desktop): remove 1.1 version number
10459         (do_desktop_setup): ditto
10461         * ini.cc (do_ini): zero out package list just in case we redo it.
10463 2000-09-07  Jeffrey Juliano  <juliano@cs.unc.edu>
10465         * choose.cc (list_click): Check for nindexes==0; if so, return.
10467 2000-09-06  Andrej Borsenkow  <Andrej.Borsenkow@mow.siemens.ru>
10469         * localdir.cc: new, local package directory selection dialog; cd
10470         into selected directory
10471         * Makefile.in (OBJS): add localdir.o
10472         * dialog.h: add prototype for do_local_dir
10473         * main.cc (WinMain): initialize local_dir to cwd; add call to
10474         do_local_dir
10475         * net.cc (dialog_cmd): make DO_LOCAL_DIR next dialog
10476         * source.cc (dialog_cmd): ditto
10477         * res.rc: add DO_LOCAL_DIR dialog; remove "current directory" from
10478         presented choices in IDD_SOURCE; add IDS_ERR_CHDIR error string
10479         * resource.h: defines for DO_LOCAL_DIR dialog; define IDS_ERR_CHDIR
10480         * root.cc (dialog_cmd): make DO_LOCAL_DIR previous dialog
10481         * state.h: add local_dir variable
10483 2000-09-06  Brian Keener  <bkeener@thesoftwaresource.com>
10485         * desktop.cc: added logic to handle to the new dialog and to
10486         default the setting for the new checkboxes based on whether the
10487         desktop icon or start menu link already exist.
10488         (desktop_icon): correction to desktop directories for desktop icon
10489         creation.  Additional logic added for Win95 which does not appear
10490         to have Common Directories so if Common selected and null uses
10491         normal directory.
10492         (start_menu): Additional logic added for Win95 which does not
10493         appear to have Common Directories so if Common selected and null
10494         uses normal directory.
10495         (do_desktop_setup): moved the saving of the icon, creation of the
10496         bat file, profile, passwd, Start Menu link and desktop shortcut to
10497         this method from do_desktop.  Made the creation of the desktop
10498         icon and start menu link conditional on settings of new dialog
10499         created for desktop.
10500         * install.cc (do_install): changed next from IDD_S_DESKTOP to
10501         IDD_DESKTOP.
10502         * main.cc (WinMain): changed case IDD_S_DESKTOP to IDD_DESKTOP.
10503         * res.rc: added new resource to create a desktop dialog with 2
10504         checkboxes for creating the desktop icon and start menu link.
10505         * resource.h: changed IDD_S_DESKTOP to IDD_DESKTOP and added two
10506         new controls: IDC_ROOT_MENU and IDC_ROOT_DESKTOP for new dialog.
10507         * state.h: added root_menu and root_desktop for use in dialog.
10509 2000-08-29  DJ Delorie  <dj@redhat.com>
10511         * choose.cc (scan_downloaded_files): scan for existing files, so
10512         that the user only sees new downloads.
10514         * nio-ie5.cc (NetIO_IE5): pre-check for wininet.dll, enable dial-up
10515         * site.cc (do_site): if we can't download the mirror list, go back
10516         to the net setup box to choose another transport.
10517         * autoload.c: add more functions
10518         * Makefile.in (ALL_DEP_LDLIBS): remove wininet.a
10519         * resource.h: add WININET message
10521         * net.cc (do_net): no longer default to IE5
10522         * simpsock.h (class SimpleSocket): new, simplify socket operations
10523         * simpsock.cc: ditto
10524         * nio-http.h: new, for direct http protocol
10525         * nio-http.cc: ditto
10526         * nio-ftp.h: new, for direct http protocol
10527         * nio-ftp.cc: ditto
10528         * netio.cc (set_url): move initialization here to handle redirections
10529         (open): add direct http/ftp
10530         * netio.h (NetIO::set_url): new
10532         * log.cc (log_save): create directory for log if needed
10534         * hash.cc, hash.h: new
10535         * Makefile: add hash.o
10536         * choose.cc: enable "uninstall" option
10537         * download.cc: invert action test to accomodate uninstalling
10538         * ini.h: add ACTION_UNINSTALL
10539         * install.cc: add uninstall functionality
10540         * res.rc: make install tag changeable
10541         * resource.h: add uninstall resources
10543         * res.rc: update mirror list URL
10545 2000-08-24  DJ Delorie  <dj@redhat.com>
10547         * log.cc, log.h: new files
10548         * Makefile.in (OBJS): add log.o
10549         * tar.cc: use exit_setup instead of exit
10550         * dialog.cc (fatal): use exit_setup instead of ExitProcess
10551         * msg.cc (fatal): ditto
10552         * install.cc (dialog_cmd): ditto
10553         * ini.cc (do_ini): ditto
10554         * main.cc (main): add logging
10555         * source.cc (do_source): ditto
10556         * root.cc (do_source): ditto
10557         * site.cc (do_site): ditto
10558         * other.cc (do_other): ditto
10559         * net.cc (do_net): ditto
10560         * choose.cc (do_choose): ditto
10561         * download.cc (do_download): ditto
10562         * install.cc (do_install): ditto
10563         * msg.cc (fatal): ditto
10565         * res.rc: mark password boxes as *being* password boxes.
10567         * fromcwd.cc (canonicalize_version): use multiple buffers so that
10568         multiple calls won't use the same buffer.
10569         * choose.cc (create_listview): don't default to full list if no changes
10570         (base): return computed value, not temporary :-(
10571         (do_choose): don't use installed.db if we're only downloading.
10573 2000-08-23  DJ Delorie  <dj@redhat.com>
10575         * nio-ie5.cc (NetIO_IE5): Fix authentication logic
10576         * nio-ie5.h (flush_io): new
10577         * netio.cc (load_dialog): note when we're initializing the dialog
10578         box, and ignore changes to the edit fields then.
10580 2000-08-21  DJ Delorie  <dj@redhat.com>
10582         * README: Update
10584         * fromcwd.cc (found_file): don't remember the canonicalized version
10586         * choose.cc (paint): print "nothing to do" message when list is empty.
10587         (build_labels): Use version "0.0" if no version is available.
10588         (create_listview): default to full list if nothing to install/update.
10589         (base): new, returns basename of file
10590         (read_installed_db): compare base names, not full paths
10592 2000-08-11  DJ Delorie  <dj@redhat.com>
10594         * choose.cc: add new chooser dialog
10595         * fromcwd.cc: use IDD_CHOOSE
10596         * ini.cc: use IDD_CHOOSE
10597         * main.cc: use IDD_CHOOSE
10598         * ini.h: cosmetic changes
10599         * res.rc: add choose dialog, bitmaps
10600         * choose-spin.bmp: new
10601         * choose-rtarrow.bmp: new
10602         * resource.h: add choose dialog controls
10604         * mount.cc: remove debug statement
10606 2000-08-08  DJ Delorie  <dj@redhat.com>
10608         * Makefile.in (version.c): make version checking more robust
10609         * splash.cc (load_dialog): handle case where there's no version
10611 2000-08-07  DJ Delorie  <dj@redhat.com>
10613         * (all): add cvsid tags
10614         * Makefile.in: generate version.c from ChangeLog, add splash.o
10615         * splash.o: new
10616         * res.rc: add splash screen
10618 2000-08-02  DJ Delorie  <dj@redhat.com>
10620         * net.cc: remove proxy password code
10621         * res.rc: remove proxy user/pass from net, add auth dialogs
10622         * netio.cc,h: add sys/proxy auth methods
10623         * nio-ie5: use them, check for http status codes
10624         * state.h: add system authorization
10626         * concat.cc (concat): canonicalize x:// to x:/ (exception to ://
10627         meaning an url)
10629 2000-08-02  Norman Vine <nhv@yahoo,com>
10631         * msg.cc (mbox): added MB_TOPMOST to MessageBox type flags
10633 2000-08-01  DJ Delorie  <dj@redhat.com>
10635         * postinstall.cc (each): don't rename files we ignore
10636         (do_postinstall): set CYGWINROOT to root_dir, chdir there
10638         * desktop.cc: have /etc/profile call ~/.profile and ~/.bashrc
10640 2000-07-31  DJ Delorie  <dj@redhat.com>
10642         * desktop.cc: reverse PATH so /usr/bin precedes /bin
10644 2000-07-18  DJ Delorie  <dj@redhat.com>
10646         * autoload.c: new, autoload dlls that might not be available.
10647         * Makefile.in (OBJS): add autoload.o
10649         * res.rc: rewrite root options (text/binary, system/user) to be
10650         more obvious.
10652         * site.cc (get_site_list): trim displayed URL, sort by domain
10654         * net.cc (do_net): make IE5 default to checked, for now
10656         * choose.cc (do_choose): sort packages correctly
10657         * ini.cc (do_ini): handle parse errors more gracefully
10658         (yyerror): ditto
10659         (fprintf): line buffer output
10660         (do_ini): if we can't load setup.ini, go back to the site list.
10661         * ini.h: add "unknown" trust level
10662         * inilex.l: absorb unknown trust levels and key/value pairs,
10663         add line number logic
10664         * iniparse.y: handle parse errors more gracefully.
10665         * install.cc: skip packages with no valid install entry
10667 2000-07-17  DJ Delorie  <dj@cygnus.com>
10669         * coding standards fixups, many files
10670         * mkdir.cc: warn about deletions *before* deleting them
10672 2000-07-17  Jeff Juliano  <juliano@cs.unc.edu>
10674         * res.rc (IDD_OTHER_URL): reorder to give default focus to entry
10676         * other.cc (dialog_cmd): save download site URL
10677         * site.cc (get_root_dir): new
10678         (save_mirror_site): new
10679         (dialog_cmd): save download site URL
10680         (get_site_list): make list big enough to add prev site
10681         (get_initial_list_idx): new, read last-used URL from file and
10682         append it to site_list
10683         (do_site): call get_initial_list_idx
10685         * concat.cc (concat): avoid segfault when first parm is null
10687 2000-07-13  DJ Delorie  <dj@cygnus.com>
10689         * postinstall.cc: new
10690         * Makefile.in: add postinstall.o
10691         * concat.h: add backslash ()
10692         * concat.cc: ditto
10693         * desktop.cc (etc_profile): don't do postinstall
10694         (backslash): moved to concat.cc
10695         (uexists): new
10696         (make_postinstall_script): run directly
10697         (do_desktop): chain to do_postinstall
10698         * dialog.h: add exit_msg, do_postinstall
10699         * download.cc: use exit_msg
10700         * install.cc: ditto
10701         * main.cc: add postinstall, exit_msg
10702         * resource.h: add postinstall
10703         * README: add more to-do items
10705 2000-07-12  DJ Delorie  <dj@cygnus.com>
10707         * desktop.cc: add /etc/postinstall/ support
10708         * install.cc: add more "standard" directories
10710 2000-07-11  DJ Delorie  <dj@cygnus.com>
10712         * desktop.cc: create /etc/profile
10713         * desktop.cc: fix include syntax
10714         * Makefile.in: add auto-dependencies
10715         * root.cc: support system vs user
10716         * desktop.cc: ditto
10717         * mount.h: ditto
10718         * mount.cc: ditto
10719         * install.cc: ditto
10720         * res.rc: ditto
10721         * resource.h: ditto
10722         * state.h: ditto
10723         * desktop.cc: make sure we use backslashes, not slashes.
10724         * desktop.cc: don't set PATH in cygwin.bat, create /etc/passwd
10725         * geturl.cc: change math for percentage to avoid overflow
10726         * install.cc: ditto
10727         * download.cc: post "download complete" message.
10728         * root.cc: pre-fill in defaults if needed, don't start
10729         browse at root_dir unless it's set.
10730         * desktop.cc: quote $PATH in case it has spaces in it
10732 2000-07-10  DJ Delorie  <dj@cygnus.com>
10734         * Makefile.in: add desktop.o and mklink2.o
10735         * dialog.h: add do_desktop
10736         * install.cc: create standard directories, call do_desktop
10737         * res.rc: add cygwin.ico as a file also
10738         * desktop.cc: new, do shortcuts, batch files, and icons
10739         * mklink2.c: new, for COM
10740         * README: update to-do list
10742 2000-07-10  DJ Delorie  <dj@cygnus.com>
10744         * ini.cc (do_ini): don't worry about timestamps if we're not
10745         actually installing.
10747 2000-07-09  DJ Delorie  <dj@cygnus.com>
10749         * Makefile.in: add -I$(srcdir) for ini.h
10751 2000-07-06  DJ Delorie  <dj@cygnus.com>
10753         * Replace everything with a new GUI version
10754         * zlib/gzio.c: add gzctell() for progress displays
10756 2000-06-22  DJ Delorie  <dj@cygnus.com>
10758         * setup.c (tarx): re-add call to write_pkg()
10760 2000-06-07  DJ Delorie  <dj@cygnus.com>
10762         * cygcalls.c: new, call cygwin1.dll functions directly
10763         * cygcalls.h: header for same
10764         * Makefile.in: add cygcalls.[ch], remove mount/cygpath/umount
10765         exes, fix cinstall.rc dependencies.
10766         * path.c: remove unneeded code
10767         * setup.c: use cygcalls instead of xcreate_process.
10768         uncompress embedded files with zlib
10769         add "-d" for "download only"
10770         add "-h" for help
10771         postpone mount changes until very end
10772         add download progress indicators
10773         pack multi-column listings more
10774         auto-delete temp files
10775         customize banner message according to options
10776         prompt user for text/binary mounts
10777         add warnings about empty setup directory, root installs, etc
10779 2000-05-24  DJ Delorie  <dj@cygnus.com>
10781         * tar.c: New file; built-in tar using zlib.
10782         * tar.h: New file; header for same.
10783         * ctar.c: New file; test program for same.
10784         * Makefile.in: add built-in tar, remove tar.exe and gzip.exe
10785         * path.c (pathcat): convert slashes and canonicalize, instead of
10786         aborting
10787         * setup.c (tarx): add support for built-in tar
10788         (main): accept unix-style slashes, check root dir for drive letters,
10789         warn about installing in /, make sure cwd is empty for internet
10790         installs, defer mounts to end of install, support built-in tar.
10792 Fri May 19 23:44:37 2000  Christopher Faylor <cgf@cygnus.com>
10794         Fix compiler warnings throughout.
10795         * pkg.c (init_pkgs): Make static 'stuff' global_pkgstuff for use in
10796         get_pkg_stuff.
10797         * setup.c: Make 'root' global.
10798         (istargz): Return pointer to "stem" of matched .tar.gz file.
10799         (tarx): Special case cygwin-20000301 to == cygwin-1.1.0.tar.gz.  Remove
10800         bogus check_for_installed check.
10801         (recurse_dirs): Add preliminary support for .bat file execution.
10802         (create_uninstall): Eliminate unneeded parameter.
10803         (do_start_menu): Ditto.
10804         (mkmount): Ditto.
10805         (get_pkg_stuff): Ditto.  Check for currently installed cygwin by
10806         scanning for the version number.  Eliminate unneeded argument to
10807         create_uninstall.
10808         (getdownloadsource): Add 'name' to list of names rather than url.
10809         (main): Eliminate unneeded argument in get_pkg_stuff.  Eliminate
10810         unneeded argument in mkmount and do_start_menu.
10812 2000-05-18  DJ Delorie  <dj@cygnus.com>
10814         * setup.c (optionprompt): allow multi-column, clean up message
10815         about more options, be more robust about user input.
10816         (getdownloadsource): make the mirror URL a macro.
10817         (main): do mounts after done prompting user.
10819 Tue May  2 00:56:41 2000  Christopher Faylor <cgf@cygnus.com>
10821         * setup.c (cleanup): Inverse order of deletion stands a better chance
10822         of deleting cygpath.exe.  Still seems to suffer from occasional races,
10823         though.
10824         (cleanup_on_signal): Perform convoluted dance to accomodate win95 and
10825         w2k.
10826         (output_file): Defend against an unlikely handle leak.
10827         (main): Don't set up signal handling until we have something special to
10828         do.
10830 Mon May  1 17:56:32 2000  Christopher Faylor <cgf@cygnus.com>
10832         * path.c (kill_cygpath): Delete function.
10833         (exit_cygpath): Make more defensive so that it can be called at any
10834         time.
10835         (cygpath_pipe): Don't set up signal here.  Do it in main().
10836         * setup.c (istargz): New function.
10837         (recurse_dirs): Look for *.gz pattern rather than *tar.gz since *tar.gz
10838         inexplicably fails on samba mounted partitions.  Use istargz to match
10839         tar.gz tail.
10840         (processdirlisting) Use istargz to match tar.gz tail.
10841         (cleanup): Renamed from filedel.
10842         (cleanup_on_signal): New function.  Called on CTRL-C.
10843         (main): Record handle of main thread so that it can be suspended when
10844         CTRL-C occurs.  Set up cleanup_on_signal signal handler.
10846 Mon May  1 11:05:07 2000  Christopher Faylor <cgf@cygnus.com>
10848         * setup.c (do_start_menu): Don't concatenate paths to already built
10849         paths.
10851 Sun Apr 30 22:37:34 2000  Christopher Faylor <cgf@cygnus.com>
10853         * path.c (exit_cygpath): Wait for subprocess to exit before returning.
10854         (cygpath_pipe): Don't call exit_cygpath.  Let main atexit routine do
10855         that.
10856         * pkg.c (init_pkgs): Accept root argument.  Make registry key "cygwin
10857         root"-specific.
10858         * setup.c (filedel): Call exit_cygpath here so that we can be assured
10859         that cygpath subprocess has died.  This allows us to delete cygpath.exe
10860         and cygwin1.dll.
10861         (optionprompt): Initialize response to -1 so that second screen of
10862         mirrors will appear.
10863         (get_pkg_stuff): Don't attempt to use HKCLU.  Pass root to init_pkgs.
10864         * setup.h: Reflect init_pkgs prototype change.
10866 Sat Apr 29 23:53:30 2000  Christopher Faylor <cgf@cygnus.com>
10868         * pkg.c (init_pkgs): Accept an argument to control what root registry
10869         key should be used.
10870         * setup.c (get_pkg_stuff): Use HKCLU registry key if default fails.
10871         * setup.h: Reflect init_pkgs prototype change.
10873 Sat Apr 29 23:27:14 2000  Christopher Faylor <cgf@cygnus.com>
10875         * error.c (winerror): Respond to gcc warning.
10876         * path.c (cygpath_pipe): Ditto.
10877         * setup.c (filedel): Call sa_cleanup on deleteme.
10878         (create_shortcut): Coerce argument to eliminate compiler warning.
10879         (tarx): Use installed version of cygwin1.dll, overriding tar file name.
10880         (refmatches): New function.  Tests if ref is contained in a list of
10881         packages to install.
10882         (filematches): New function.  Tests if filename matches one of a list
10883         of packages to install.
10884         (recurse_dirs): Accept list of packages to install.  Generalize tar.gz
10885         test to accomodate _tar.gz.
10886         (prompt): Ensure that stdout is flushed prior to asking for input.
10887         (findhref): Initialize variables to quiet a compiler warning.
10888         (processdirlisting): Accept list of packages to install.  Special case
10889         cygwin tar file version number.
10890         (downloaddir): Accept list of packages to install.
10891         (downloadfrom): Ditto.
10892         (create_uninstall): Eliminate unneeded variables.  Quote arguments to
10893         regtool.
10894         (do_start_menu): Don't create uninstall bat file if updating or user
10895         specified a list of packages.
10896         (mkmount): Eliminate unneeded variables.
10897         (get_pkg_stuff): New function.  Checks for previous unversioned
10898         installation.
10899         (main): Accept -u and -f options and package names on the command line.
10900         Use get_pkg_stuff to initialize package information.  Umount /etc.
10901         Call recurse_dirs and downloadfrom with list of package to install.
10902         Ensure that all /usr/local directories are created.  Output
10903         installation time to setup.log.
10904         * setup.h: Add some prototypes.
10905         * xsystem.c (xcreate_process): Eliminate unneeded variable.
10907 Sat Apr 29 12:43:08 2000  Christopher Faylor <cgf@cygnus.com>
10909         * setup.c (optionprompt): Don't overlap display of already seen options
10910         on next page.
10911         (geturl): Print name of site which we're connecting to rather than "ftp
10912         site".
10913         (processdirlisting): Avoid URLs that contain a /.  or ./ .  Is this
10914         test too simplistic?
10915         (do_start_menu): Use pathcat to build path to <root>\bin to avoid
10916         problems when user chooses x:\ as their root.
10917         (main): For now, default to "non-update" mode.  Allow -u option to
10918         signify an update.
10920 Sat Apr 29 00:26:06 2000  Christopher Faylor <cgf@cygnus.com>
10922         * pkg.c: New file.
10923         * setup.c (tarx): Skip already installed or older packages.  Report
10924         when a package has been updated.
10925         (processdirlisting): Skip already installed or older packages.
10926         (main): Detect -f option for forced installation.  Initialize pkg stuff
10927         if appropriate.
10928         * setup.h: Add pkg definitions.
10930 Thu Apr 27 14:21:30 2000  Christopher Faylor <cgf@cygnus.com>
10932         * setup.c (findhref): Return NULL on empty string.  Eat any trailing
10933         ";something".
10934         (processdirlisting): Attempt to limit recursively processing the same
10935         directory.
10937 Thu Apr 27 11:42:23 2000  Christopher Faylor <cgf@cygnus.com>
10939         * setup.c (filedel): New function.
10940         (output_file): Keep track of files extracted from setup.exe for
10941         subsequent deletion.
10942         (tarx): Close process handle of child tar process or suffer handle
10943         leak.
10944         (getdownloadsource): Close mirror file so that it can be unlinked.
10945         (processdirlisting): Return total number of files extracted.
10946         (main): Initialize array of files to delete.  Ensure that files are
10947         closed on exit.  Make the directory that setup.exe is started from ==
10948         the directory where temporary files are placed.  Issue an error if no
10949         files were found to download.
10950         * xsystem.c (xcreate_process): Close the thread handle.  Close the
10951         process handle if we waited for it to exit.
10953 Thu Apr 27 09:54:19 2000  Christopher Faylor <cgf@cygnus.com>
10955         * setup.c (main): Change version number output.
10957 Thu Apr 27 09:23:17 2000  Christopher Faylor <cgf@cygnus.com>
10959         * setup.c (tarx): Use full path name to tar executable.
10960         (main): Build full pathname to tar executable.  Create /usr/local/etc
10961         by default.
10963 Wed Apr 26 22:16:57 2000  Christopher Faylor <cgf@cygnus.com>
10965         * setup.c (findhref): Change method for scanning for href= to choose
10966         the last one on the line.  This is still not foolproof and probably
10967         will need to be changed eventually.  Don't abort if no "size" field is
10968         evident.
10969         (processdirlisting): Fix boolean algebra.
10971 Wed Apr 26 01:10:39 2000  Christopher Faylor <cgf@cygnus.com>
10973         * main.c (tarx): Add some code for future task of unmounting
10974         directories encountered in tar file.
10976 Sat Apr 22 16:37:03 2000  Christopher Faylor <cgf@cygnus.com>
10978         * setup.c (findhref): Decode file size, when appropriate.
10979         (needfile): New function.  Returns 1 when file should be
10980         downloaded.
10981         (processdirlisting): Always download if file size does not
10982         match.  Prompt when download fails for some reason.
10983         (getdownloadsource): Accomodate findhref argument changes.
10985 Sat Apr 22 15:13:42 2000  Christopher Faylor <cgf@cygnus.com>
10987         Throughout, use global session handle rather than reinitializing for
10988         each connect.  Don't pass session as an argument to setup.c functions.
10989         * setup.c (geturl): Only issue "Connecting to.." message when using
10990         http or first time for ftp since subsequent connections will be fast.
10991         (processdirlisting): Allocate space for "N" when user has specified
10992         "N"ever option so that it can be subsequently freed.
10993         (main): Abort if we can't get the list of mirrors.
10995 Thu Apr 20 16:41:42 2000  Christopher Faylor <cgf@cygnus.com>
10997         * setup.c (main): Umount /bin and /lib.
10999 Wed Apr 19 13:34:44 2000  Christopher Faylor <cgf@cygnus.com>
11001         * setup.c (main): Create an empty /var/run/utmp.
11003 Tue Apr 18 19:16:56 2000  Christopher Faylor <cgf@cygnus.com>
11005         * Makefile.in: Add umount to list of files to include in setup.exe.
11006         * setup.c (xumount): New function for unmounting directories.
11007         (main): Unmount /usr.
11008         (mkmount): Unmount "unix directory" before trying to figure out where
11009         to create the directory.
11011 Tue Apr 18 17:28:55 2000  Christopher Faylor <cgf@cygnus.com>
11013         * setup.c (mkmount): Use xcreate_process to start mount process,
11014         avoiding the shell.
11015         (main): Don't do buffering on stdout or prompts won't be displayed
11016         correctly if running in a cygwin shell with CYGWIN=tty.
11018 Tue Apr 18 15:35:19 2000  Christopher Faylor <cgf@cygnus.com>
11020         * setup.c (main): Remove the CYGWIN environment variable before
11021         starting any cygwin programs.
11023 Mon Apr 17 19:20:52 2000  Vadim Egorov <egorovv@mailandnews.com>
11025         * setup.c (geturl): Use alternative method for finding filename part of
11026         a URL.
11027         (processdirlisting): Accomodate strange output from non-MS ftp proxy.
11028         (downloaddir): Unlink file containing dir listing.
11029         (downloadfrom): Ditto.
11031 Mon Apr 17 00:00:49 2000  Christopher Faylor <cgf@cygnus.com>
11033         * setup.c (main): Disallow running setup.exe from the "root".
11035 Sun Apr 16 18:50:58 2000  Christopher Faylor <cgf@cygnus.com>
11037         Use "warning" function, where appropriate, to output warnings.
11038         * setup.c (warning): New function -- outputs warning to console and log
11039         file.
11040         (tarx): Fix index used to reset file protection.
11041         (main): Open the log file earlier so that more stuff can be sent to it.
11043 Sat Apr 15 20:05:33 2000  Christopher Faylor <cgf@cygnus.com>
11045         * setup.c (processdirlisting): Make "N" option a little less aggressive.
11047 Fri Apr 14 11:11:29 2000  Christopher Faylor <cgf@cygnus.com>
11049         * setup.c (tarx): Wait to after tar has completed to reset protections
11050         or suffer races with tar process.
11052 Thu Apr 13 12:51:19 2000  Christopher Faylor <cgf@cygnus.com>
11054         * Makefile.in: Eliminate duplicate -nostdinc from CFLAGS.
11055         * setup.c (create_uninstall): Create the uninstall .bat file in the
11056         "root" so that we can remove the /bin directory.  Add bin\cygwin.bat to
11057         list of files to be deleted.  Fix directory detection for determining
11058         when to use 'rmdir'.
11059         (do_start_menu): Add /usr/local/bin to the path.
11060         (main): Add slop to files.array allocation so that we don't have to
11061         worry about reallocating the array when it grows too large when doing
11062         some trivial "pushes".  Add /tmp and /usr/local/{bin,lib} to list of
11063         files.
11065 Thu Apr 13 01:59:44 2000  Christopher Faylor <cgf@cygnus.com>
11067         * setup.c (processdirlisting): Fix handling of "A" for "A"lways
11068         download.
11070 Thu Apr 13 01:11:45 2000  Christopher Faylor <cgf@cygnus.com>
11072         * path.c (kill_cygpath): New cleanup function.
11073         (exit_cygpath): New cleanup function.
11074         (cygpath_pipe): New function.  Sets up cygpath in the background for
11075         translating filenames.
11076         (pathcvt): Use background cygpath for file translation.
11077         * setup.c (tarx): New function.  Called to extract tar files, capture
11078         logging output, and translate it to Windows format.
11079         (recurse_dirs): Use 'tarx' function to extract files.
11080         (create_uninstall): Use file list built up by tarx rather than reading
11081         the log file.
11082         (mkmount): Add ability to mount root.
11083         (main): Track elapsed install time.  Mount root.
11084         * starry.h: Add index field to strarry for tracking of tarx's usage of
11085         this structure.
11086         * xsystem.c (xcreate_process): Return proces handle when not waiting.
11088 Mon Apr 10 22:44:56 2000  Christopher Faylor <cgf@cygnus.com>
11090         * path.c: New file.
11091         (pathfp): New function.  Preliminary work for new -f cygpath
11092         functionality.
11093         * Makefile.in: Add new file.
11094         (pathcvt): Move to new file.
11095         (dtoupath): Ditto.
11096         (utodpath): Ditto.
11097         (pathcat): Ditto.
11098         * setup.c (processdirlisting): Always open file in text mode.
11099         (create_uninstall): Ditto.
11100         (getdownloadsource): Ditto.
11101         (main): Ditto.
11103 Mon Apr 10 20:33:40 2000  Christopher Faylor <cgf@cygnus.com>
11105         * xsystem.c: New file.
11106         * Makefile.in: Accomodate new file.
11107         * setup.c (xsystem): Move to new file.
11108         (recurse_dirs): Accept handle to output log file.  Don't use ">"
11109         redirection to trap tar output.  Use supplied handle instead.
11110         (create_uninstall): Accept FILE pointer to opened log file.  Don't
11111         unlink log file here.
11112         (do_start_menu): Accept FILE pointer to pass to create_uninstall.
11113         (main): Open log file here and pass it to various functions.  Unlink
11114         when done.
11116 Mon Apr 10 17:15:52 2000  Christopher Faylor <cgf@cygnus.com>
11118         Change occurrences of .usr.bin to .bin throughout.
11119         * setup.c (geturl): Increase number of retries to 20.  Let user know
11120         what's going on during long connects.
11121         (processdirlisting): Accept "A"lways and "N"ever as update options.
11122         (create_uninstall): Load cygwin1.dll from the current directory rather
11123         than \bin.
11124         (main): Add some expository text.
11126 Sun Apr  9 20:59:15 2000  Christopher Faylor <cgf@cygnus.com>
11128         * Makefile.in: Change method for compressing cygwin1.dll to avoid
11129         creating a cygwin1.dll in the current directory.  Ensure the addition
11130         of -nostdinc to MINGW_CFLAGS.
11132 Sun Apr  9 02:15:47 2000  Christopher Faylor <cgf@cygnus.com>
11134         * Makefile.in: Augment clean target.
11136 Fri Apr  7 17:04:02  Ron Parker <rdparker@sourceware.cygnus.com>
11138         * README: Added info about non-working mingw implementation
11139         * gzip.exe.gz: Replace with a version from the same build as the other
11140         tools.
11141         * tar.exe.gz: Replace with a version from the same build as the other
11142         tools.
11143         * mount.exe.gz: Add to repository until, mingw can build setup.
11144         * cygpath.exe.gz: ditto
11145         * cygwin1.dll.gz: ditto
11146         * setup.c: Overwrite /bin and /lib mounts.  Generate working shortcut
11147         for Win9x.  Display only a screenfull of options at a time.  Call all
11148         tools with an absolute path.
11149         * setup.dsp: Restore the carriage returns, MS Developer Studio needs
11150         them.
11151         * setup.dsw: ditto
11152         * zlib.dsw: ditto
11154 Thu Apr  6 19:15:27 2000  Christopher Faylor <cgf@cygnus.com>
11156         * Makefile.in: Add "-nostdinc" to regular CFLAGS.  Add target to grab
11157         cygwin1.dll from ../cygwin subdirectory.
11158         * gzip.exe.gz: Update.
11159         * tar.exe.gz: Update.
11161 Wed Apr  5 10:52:08 2000  Christopher Faylor <cgf@cygnus.com>
11163         * Makefile.in: Use ZLIB variable as a target.
11165 Sat Apr  1 22:49:09 2000  Christopher Faylor <cgf@cygnus.com>
11167         * Makefile.in: Eliminate traces of cygwinisms.  Don't link with
11168         libmsvcrt.a.  It's unneeded.  Build .rc file on the fly from various
11169         sources.
11170         * configure.in: Locate correct objcopy.
11171         * configure: Regenerate.
11173 Sat Apr  1 20:48:09 2000  Christopher Faylor <cgf@cygnus.com>
11175         * Makefile.in: New file.
11176         * configure.in: New file.
11177         * configure: New file.
11178         * zlib/Makefile.am: New file.
11179         * zlib/configure.in: New file.
11180         * zlib/aclocal.m4: New file.
11181         * zlib/acinclude.m4: New file.
11182         * zlib/configure: Regenerate from configure.in.
11183         * zlib/Makefile.in: Regenerate from Makefile.am
11185 %%% $Id$
11186 $Revision$