annotate netinstall/nio-ie5.cc @ 5050:6f2158fa75ed

Fix quick-build, use asserts() in place of ABORT() -------------------- ChangeLog entries follow: -------------------- ChangeLog addition: 2010-02-20 Ben Wing <ben@xemacs.org> * configure.ac (XE_COMPLEX_ARG): Correct doc of --quick-build: It also doesn't check for Lisp shadows. src/ChangeLog addition: 2010-02-20 Ben Wing <ben@xemacs.org> * EmacsFrame.c: * EmacsFrame.c (EmacsFrameRecomputeCellSize): * alloca.c (i00afunc): * buffer.c: * buffer.c (MARKED_SLOT): * buffer.c (complex_vars_of_buffer): * cm.c: * cm.c (cmcheckmagic): * console.c: * console.c (MARKED_SLOT): * device-x.c: * device-x.c (x_get_visual_depth): * emacs.c (sort_args): * eval.c (throw_or_bomb_out): * event-stream.c: * event-stream.c (Fadd_timeout): * event-stream.c (Fadd_async_timeout): * event-stream.c (Frecent_keys): * events.c: * events.c (Fdeallocate_event): * events.c (event_pixel_translation): * extents.c: * extents.c (process_extents_for_insertion_mapper): * fns.c (Fbase64_encode_region): * fns.c (Fbase64_encode_string): * fns.c (Fbase64_decode_region): * fns.c (Fbase64_decode_string): * font-lock.c: * font-lock.c (find_context): * frame-x.c: * frame-x.c (x_wm_mark_shell_size_user_specified): * frame-x.c (x_wm_mark_shell_position_user_specified): * frame-x.c (x_wm_set_shell_iconic_p): * frame-x.c (x_wm_set_cell_size): * frame-x.c (x_wm_set_variable_size): * frame-x.c (x_wm_store_class_hints): * frame-x.c (x_wm_maybe_store_wm_command): * frame-x.c (x_initialize_frame_size): * frame.c (delete_frame_internal): * frame.c (change_frame_size_1): * free-hook.c (check_free): * free-hook.c (note_block_input): * free-hook.c (log_gcpro): * gccache-gtk.c (gc_cache_lookup): * gccache-x.c: * gccache-x.c (gc_cache_lookup): * glyphs-gtk.c: * glyphs-gtk.c (init_image_instance_from_gdk_pixmap): * glyphs-x.c: * glyphs-x.c (extract_xpm_color_names): * insdel.c: * insdel.c (move_gap): * keymap.c: * keymap.c (keymap_lookup_directly): * keymap.c (keymap_delete_inverse_internal): * keymap.c (accessible_keymaps_mapper_1): * keymap.c (where_is_recursive_mapper): * lisp.h: * lstream.c (make_lisp_buffer_stream_1): * macros.c: * macros.c (pop_kbd_macro_event): * mc-alloc.c (remove_page_from_used_list): * menubar-x.c: * menubar-x.c (set_frame_menubar): * ralloc.c: * ralloc.c (obtain): * ralloc.c (relinquish): * ralloc.c (relocate_blocs): * ralloc.c (resize_bloc): * ralloc.c (r_alloc_free): * ralloc.c (r_re_alloc): * ralloc.c (r_alloc_thaw): * ralloc.c (init_ralloc): * ralloc.c (Free_Addr_Block): * scrollbar-x.c: * scrollbar-x.c (x_update_scrollbar_instance_status): * sunplay.c (init_device): * unexnt.c: * unexnt.c (read_in_bss): * unexnt.c (map_in_heap): * window.c: * window.c (real_window): * window.c (window_display_lines): * window.c (window_display_buffer): * window.c (set_window_display_buffer): * window.c (unshow_buffer): * window.c (Fget_lru_window): if (...) ABORT(); ---> assert(); More specifically: if (x == y) ABORT (); --> assert (x != y); if (x != y) ABORT (); --> assert (x == y); if (x > y) ABORT (); --> assert (x <= y); etc. if (!x) ABORT (); --> assert (x); if (x) ABORT (); --> assert (!x); DeMorgan's Law's applied and manually simplified: if (x && !y) ABORT (); --> assert (!x || y); if (!x || y >= z) ABORT (); --> assert (x && y < z); Checked to make sure that assert() of an expression with side effects ensures that the side effects get executed even when asserts are disabled, and add a comment about this being a requirement of any "disabled assert" expression. * depend: * make-src-depend: * make-src-depend (PrintDeps): Fix broken code in make-src-depend so it does what it was always supposed to do, which was separate out config.h and lisp.h and all the files they include into separate variables in the depend part of Makefile so that quick-build can turn off the lisp.h/config.h/text.h/etc. dependencies of the source files, to speed up recompilation.
author Ben Wing <ben@xemacs.org>
date Sat, 20 Feb 2010 05:05:54 -0600
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 /* The purpose of this file is to manage internet downloads using the
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
17 Internet Explorer version 5 DLLs. To use this method, the user
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
18 must already have installed and configured IE5. This module is
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
19 called from netio.cc, which is called from geturl.cc */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
20
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
21 #include "win32.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
22
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
23 #include "resource.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
24 #include "state.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
25 #include "dialog.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
26 #include "msg.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
27 #include "netio.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
28 #include "nio-ie5.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
29
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
30 static HINTERNET internet = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
31
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
32 NetIO_IE5::NetIO_IE5 (char *_url)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
33 : NetIO (_url)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
34 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
35 int resend = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
36
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
37 if (internet == 0)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
38 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
39 HINSTANCE h = LoadLibrary ("wininet.dll");
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
40 if (!h)
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 note (IDS_WININET);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
43 connection = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
44 return;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
45 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
46 InternetAttemptConnect (0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
47 internet = InternetOpen ("Cygwin Setup", INTERNET_OPEN_TYPE_PRECONFIG,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
48 NULL, NULL, 0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
49 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
50
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
51 DWORD flags =
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
52 INTERNET_FLAG_DONT_CACHE |
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
53 INTERNET_FLAG_KEEP_CONNECTION |
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
54 INTERNET_FLAG_PRAGMA_NOCACHE |
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
55 INTERNET_FLAG_RELOAD |
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
56 INTERNET_FLAG_EXISTING_CONNECT |
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
57 INTERNET_FLAG_PASSIVE;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
58
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
59 connection = InternetOpenUrl (internet, url, NULL, 0, flags, 0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
60
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
61 try_again:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
62
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
63 if (net_user && net_passwd)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
64 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
65 InternetSetOption (connection, INTERNET_OPTION_USERNAME,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
66 net_user, strlen (net_user));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
67 InternetSetOption (connection, INTERNET_OPTION_PASSWORD,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
68 net_passwd, strlen (net_passwd));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
69 }
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 if (net_proxy_user && net_proxy_passwd)
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 InternetSetOption (connection, INTERNET_OPTION_PROXY_USERNAME,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
74 net_proxy_user, strlen (net_proxy_user));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
75 InternetSetOption (connection, INTERNET_OPTION_PROXY_PASSWORD,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
76 net_proxy_passwd, strlen (net_proxy_passwd));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
77 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
78
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
79 if (resend)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
80 if (!HttpSendRequest (connection, 0, 0, 0, 0))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
81 connection = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
82
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
83 if (!connection)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
84 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
85 if (GetLastError () == ERROR_INTERNET_EXTENDED_ERROR)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
86 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
87 char buf[2000];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
88 DWORD e, l=sizeof (buf);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
89 InternetGetLastResponseInfo (&e, buf, &l);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
90 MessageBox (0, buf, "Internet Error", 0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
91 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
92 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
93
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
94 DWORD type, type_s;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
95 type_s = sizeof (type);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
96 InternetQueryOption (connection, INTERNET_OPTION_HANDLE_TYPE,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
97 &type, &type_s);
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 switch (type)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
100 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
101 case INTERNET_HANDLE_TYPE_HTTP_REQUEST:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
102 case INTERNET_HANDLE_TYPE_CONNECT_HTTP:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
103 type_s = sizeof (DWORD);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
104 if (HttpQueryInfo (connection,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
105 HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
106 &type, &type_s, NULL))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
107 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
108 if (type == 401) /* authorization required */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
109 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
110 flush_io();
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
111 get_auth ();
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
112 resend = 1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
113 goto try_again;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
114 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
115 else if (type == 407) /* proxy authorization required */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
116 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
117 flush_io();
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
118 get_proxy_auth ();
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
119 resend = 1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
120 goto try_again;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
121 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
122 else if (type >= 300)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
123 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
124 connection = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
125 return;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
126 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
127 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
128 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
129 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
130
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
131 void
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
132 NetIO_IE5::flush_io ()
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
133 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
134 DWORD actual = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
135 char buf[1024];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
136 do {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
137 InternetReadFile (connection, buf, 1024, &actual);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
138 } while (actual > 0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
139 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
140
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
141 NetIO_IE5::~NetIO_IE5 ()
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
142 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
143 if (connection)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
144 InternetCloseHandle (connection);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
145 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
146
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
147 int
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
148 NetIO_IE5::ok ()
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
149 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
150 return (connection == NULL) ? 0 : 1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
151 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
152
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
153 int
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
154 NetIO_IE5::read (char *buf, int nbytes)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
155 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
156 DWORD actual;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
157 if (InternetReadFile (connection, buf, nbytes, &actual))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
158 return actual;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
159 return -1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
160 }