448
|
1 /*
|
|
2 * Copyright (c) 2000, Red Hat, Inc.
|
|
3 *
|
|
4 * This program is free software; you can redistribute it and/or modify
|
|
5 * it under the terms of the GNU General Public License as published by
|
|
6 * the Free Software Foundation; either version 2 of the License, or
|
|
7 * (at your option) any later version.
|
|
8 *
|
|
9 * A copy of the GNU General Public License can be found at
|
|
10 * http://www.gnu.org/
|
|
11 *
|
|
12 * Written by DJ Delorie <dj@cygnus.com>
|
|
13 *
|
|
14 */
|
|
15
|
|
16 /* OK, here's how this works. Each of the steps needed for install -
|
|
17 dialogs, downloads, installs - are in their own files and have some
|
|
18 "do_*" function (prototype in dialog.h) and a resource id (IDD_* or
|
|
19 IDD_S_* in resource.h) for that step. Each step is responsible for
|
|
20 selecting the next step! See the NEXT macro in dialog.h. Note
|
|
21 that the IDD_S_* ids are fake; those are for steps that don't
|
|
22 really have a controlling dialog (some have progress dialogs, but
|
|
23 those don't count, although they could). Replace the IDD_S_* with
|
|
24 IDD_* if you create a real dialog for those steps. */
|
|
25
|
|
26 #include "win32.h"
|
|
27
|
|
28 #include <stdio.h>
|
|
29 #include <stdlib.h>
|
|
30 #include "resource.h"
|
|
31 #include "dialog.h"
|
|
32 #include "state.h"
|
|
33 #include "msg.h"
|
|
34 #include "netio.h"
|
|
35 #include "find.h"
|
|
36 #include "log.h"
|
|
37
|
|
38 #include "port.h"
|
|
39
|
|
40 void netio_test (char *);
|
|
41
|
|
42 int next_dialog;
|
|
43 int exit_msg = 0;
|
|
44
|
|
45 HINSTANCE hinstance;
|
|
46
|
|
47 int WINAPI
|
|
48 WinMain (HINSTANCE h,
|
|
49 HINSTANCE hPrevInstance,
|
|
50 LPSTR command_line,
|
|
51 int cmd_show)
|
|
52 {
|
|
53 hinstance = h;
|
657
|
54 int pos = -1;
|
|
55 if ((pos = strcspn(command_line, "-")) >= 0
|
|
56 &&
|
|
57 command_line[pos+1] == 'u')
|
|
58 {
|
|
59 next_dialog = IDD_UNINSTALL;
|
|
60 log (LOG_TIMESTAMP, "Starting XEmacs uninstall");
|
|
61 uninstall = 1;
|
|
62 }
|
|
63 else
|
|
64 {
|
|
65 next_dialog = IDD_SPLASH;
|
|
66 log (LOG_TIMESTAMP, "Starting XEmacs install");
|
|
67 }
|
448
|
68
|
657
|
69 do_init(h);
|
448
|
70
|
|
71 while (next_dialog)
|
|
72 {
|
|
73 switch (next_dialog)
|
|
74 {
|
|
75 case IDD_SPLASH: do_splash (h); break;
|
657
|
76 case IDD_UNINSTALL: do_uninstall (h); break;
|
448
|
77 case IDD_SOURCE: do_source (h); break;
|
|
78 case IDD_LOCAL_DIR: do_local_dir (h); break;
|
|
79 case IDD_ROOT: do_root (h); break;
|
|
80 case IDD_NET: do_net (h); break;
|
|
81 case IDD_SITE: do_site (h); break;
|
|
82 case IDD_OTHER_URL: do_other (h); break;
|
|
83 case IDD_S_LOAD_INI: do_ini (h); break;
|
|
84 case IDD_S_FROM_CWD: do_fromcwd (h); break;
|
|
85 case IDD_CHOOSE: do_choose (h); break;
|
|
86 case IDD_S_DOWNLOAD: do_download (h); break;
|
|
87 case IDD_S_INSTALL: do_install (h); break;
|
|
88 case IDD_DESKTOP: do_desktop (h); break;
|
|
89 case IDD_S_POSTINSTALL: do_postinstall (h); break;
|
|
90
|
|
91 default:
|
|
92 next_dialog = 0;
|
|
93 break;
|
|
94 }
|
|
95 }
|
|
96
|
|
97 exit_setup (0);
|
|
98
|
|
99 return EXIT_SUCCESS;
|
|
100 }
|