annotate netinstall/main.cc @ 1365:02909207294a

[xemacs-hg @ 2003-03-20 13:19:56 by youngs] 2003-03-20 Steve Youngs <youngs@xemacs.org> * menubar-items.el (default-menubar): Add a "Pre-Release Download Sites" submenu to "Tools -> Packages" menu. Filter the package download sites menus through `menu-split-long-menu'. * obsolete.el (pui-add-install-directory): New. (package-get-download-menu): New. * package-admin.el: (package-admin-add-single-file-package): Removed. (package-admin-get-install-dir): Don't rely on an installed xemacs-base package to guess where a package needs to be installed to. (package-admin-get-manifest-file): Whitespace clean up. (package-admin-check-manifest): Use `directory-sep-char' to compute regexp. Only search 'lisp' and 'man' directories to determine package name. Don't error is xemacs-base package isn't installed, just don't sort the MANIFEST file and issue a warning. (package-admin-add-binary-package): Whitespace clean up. (package-admin-get-lispdir): Ditto. (package-admin-delete-binary-package): Use `with-temp-buffer' instead of creating a temporary buffer manually. * package-get.el: (package-get-remote): Change custom type so that only either a single directory or remote host:directory can be selected. (package-get-download-sites): Put the sites into alphabetical order of country. Make the description element be "Country (site)" instead of the other way around. (package-get-pre-release-download-sites): New. (package-get-require-signed-base-updates): Default to t. (package-get-download-menu): Removed. (package-get-locate-file): Change to reflect new format of 'package-get-remote'. (package-get-update-base-from-buffer): Whitespace clean up and remove an unneccessary 'when'. (package-get-interactive-package-query): Whitespace clean up. (package-get-update-all): Ditto. (package-get-all): Ditto. (package-get-init-package): Ditto. (package-get-info): New. (package-get): Bring into line with new format of 'package-get-remote'. Error if non-Mule XEmacsen try to install Mule packages. Don't rely on a Mule package having 'mule-base' in its "REQUIRES" to determine if it is a Mule package or not, instead we test "CATEGORY". Better handling of the situation where a partial package tarball exists on the local hard drive from a previous interupted download. Clean up after a failed package install. (package-get-set-version-prop): Removed. (package-get-installedp): Whitespace clean up. * package-ui.el: Whitespace clean up. (pui-info-buffer): Make it a defcustom. (pui-directory-exists): Removed. (pui-package-dir-list): Removed. (pui-add-install-directory): Removed. (package-ui-download-menu): New. (package-ui-pre-release-download-menu): New. (pui-set-local-package-get-directory): New. (pui-package-symbol-char): Whitespace clean up. (pui-update-package-display): Ditto. (pui-toggle-package): Ditto. (pui-toggle-package-key): Ditto. (pui-toggle-package-delete): Ditto. (pui-toggle-package-delete-key): Ditto. (pui-toggle-package-event): Ditto. (pui-toggle-verbosity-redisplay): Ditto. (pui-install-selected-packages): Ditto. (pui-help-echo): Ditto. (pui-display-info): Ditto. (pui-list-packages): Ditto. * packages.el: Whitespace clean up.
author youngs
date Thu, 20 Mar 2003 13:19:59 +0000
parents ce0b3f2eff35
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
1 /*
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
2 * Copyright (c) 2000, Red Hat, Inc.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
3 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
4 * This program is free software; you can redistribute it and/or modify
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
7 * (at your option) any later version.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
8 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
9 * A copy of the GNU General Public License can be found at
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
10 * http://www.gnu.org/
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
11 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
12 * Written by DJ Delorie <dj@cygnus.com>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
13 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
14 */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
15
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
16 /* OK, here's how this works. Each of the steps needed for install -
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
17 dialogs, downloads, installs - are in their own files and have some
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
18 "do_*" function (prototype in dialog.h) and a resource id (IDD_* or
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
19 IDD_S_* in resource.h) for that step. Each step is responsible for
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
20 selecting the next step! See the NEXT macro in dialog.h. Note
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
21 that the IDD_S_* ids are fake; those are for steps that don't
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
22 really have a controlling dialog (some have progress dialogs, but
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
23 those don't count, although they could). Replace the IDD_S_* with
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
24 IDD_* if you create a real dialog for those steps. */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
25
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
26 #include "win32.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
27
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
28 #include <stdio.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
29 #include <stdlib.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
30 #include "resource.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
31 #include "dialog.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
32 #include "state.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
33 #include "msg.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
34 #include "netio.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
35 #include "find.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
36 #include "log.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
37
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
38 #include "port.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
39
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
40 void netio_test (char *);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
41
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
42 int next_dialog;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
43 int exit_msg = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
44
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
45 HINSTANCE hinstance;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
46
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
47 int WINAPI
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
48 WinMain (HINSTANCE h,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
49 HINSTANCE hPrevInstance,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
50 LPSTR command_line,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
51 int cmd_show)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
52 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
53 hinstance = h;
657
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
54 int pos = -1;
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
55 if ((pos = strcspn(command_line, "-")) >= 0
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
56 &&
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
57 command_line[pos+1] == 'u')
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
58 {
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
59 next_dialog = IDD_UNINSTALL;
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
60 log (LOG_TIMESTAMP, "Starting XEmacs uninstall");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
61 uninstall = 1;
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
62 }
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
63 else
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
64 {
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
65 next_dialog = IDD_SPLASH;
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
66 log (LOG_TIMESTAMP, "Starting XEmacs install");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
67 }
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
68
657
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
69 do_init(h);
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
70
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
71 while (next_dialog)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
72 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
73 switch (next_dialog)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
74 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
75 case IDD_SPLASH: do_splash (h); break;
657
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 448
diff changeset
76 case IDD_UNINSTALL: do_uninstall (h); break;
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
77 case IDD_SOURCE: do_source (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
78 case IDD_LOCAL_DIR: do_local_dir (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
79 case IDD_ROOT: do_root (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
80 case IDD_NET: do_net (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
81 case IDD_SITE: do_site (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
82 case IDD_OTHER_URL: do_other (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
83 case IDD_S_LOAD_INI: do_ini (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
84 case IDD_S_FROM_CWD: do_fromcwd (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
85 case IDD_CHOOSE: do_choose (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
86 case IDD_S_DOWNLOAD: do_download (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
87 case IDD_S_INSTALL: do_install (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
88 case IDD_DESKTOP: do_desktop (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
89 case IDD_S_POSTINSTALL: do_postinstall (h); break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
90
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
91 default:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
92 next_dialog = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
93 break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
94 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
95 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
96
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
97 exit_setup (0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
98
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
99 return EXIT_SUCCESS;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
100 }