Mercurial > hg > xemacs-beta
annotate src/EmacsShell.c @ 5887:6eca500211f4
Prototype for X509_check_host() has changed, detect this in configure.ac
ChangeLog addition:
2015-04-09 Aidan Kehoe <kehoea@parhasard.net>
* configure.ac:
If X509_check_host() is available, check the number of arguments
it takes. Don't use it if it takes any number of arguments other
than five. Also don't use it if <openssl/x509v3.h> does not
declare it, since if that is so there is no portable way to tell
how many arguments it should take, and so we would end up smashing
the stack.
* configure: Regenerate.
src/ChangeLog addition:
2015-04-09 Aidan Kehoe <kehoea@parhasard.net>
* tls.c:
#include <openssl/x509v3.h> for its prototype for
X509_check_host().
* tls.c (tls_open):
Pass the new fifth argument to X509_check_host().
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Thu, 09 Apr 2015 14:27:02 +0100 |
parents | 308d34e9f07d |
children |
rev | line source |
---|---|
428 | 1 /* Emacs shell widget -- glue. |
2 Copyright (C) 1994, 1995 Sun Microsystems, Inc. | |
3 | |
4 This file is part of XEmacs. | |
5 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
2500
diff
changeset
|
6 XEmacs is free software: you can redistribute it and/or modify it |
428 | 7 under the terms of the GNU General Public License as published by the |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
2500
diff
changeset
|
8 Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
2500
diff
changeset
|
9 option) any later version. |
428 | 10 |
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
14 for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
2500
diff
changeset
|
17 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
428 | 18 |
19 /* Synched up with: Not in FSF. */ | |
20 | |
21 /* Written by Ben Wing, May, 1994. */ | |
22 | |
23 #include <config.h> | |
24 | |
25 #include <stdio.h> | |
26 #include <assert.h> | |
27 #include <stdlib.h> | |
28 #include <X11/StringDefs.h> | |
29 #include "xintrinsicp.h" | |
30 #include <X11/Shell.h> | |
31 #include <X11/ShellP.h> | |
32 #include "EmacsShell.h" | |
33 #include "ExternalShell.h" | |
34 | |
2500 | 35 #define ABORT abort |
36 | |
428 | 37 #if 0 /* Not currently used */ |
38 | |
39 /* The root_geometry_manager() method in Shell.c is fucked up with regard | |
40 to the user-specified-position vs. program-specified-position and | |
41 user-specified-size vs. program-specified-size flag. (It always | |
42 sets program-specified whenever the program requests a change | |
43 in its size or position, even when this came from direct user | |
44 request.) So we provide external entry points to fix this after | |
45 the program requested a size or position change. If it turns | |
46 out that the user-specified-position flag needs to be set at the | |
47 *same* time that the geometry change request is made, then we | |
48 will have to duplicate the entire root_geometry_manager() method; | |
49 but I don't think there are any WM's that require this. */ | |
50 | |
51 /* junk stolen from IntrinsicI.h */ | |
52 | |
53 extern void _XtAllocError( String /* alloc_type */); | |
54 | |
55 /* junk ungraciously copied from Shell.c */ | |
56 | |
57 static void ComputeWMSizeHints(w, hints) | |
58 WMShellWidget w; | |
59 XSizeHints *hints; | |
60 { | |
61 long flags; | |
62 hints->flags = flags = w->wm.size_hints.flags; | |
63 #define copy(field) hints->field = w->wm.size_hints.field | |
64 if (flags & (USPosition | PPosition)) { | |
65 copy(x); | |
66 copy(y); | |
67 } | |
68 if (flags & (USSize | PSize)) { | |
69 copy(width); | |
70 copy(height); | |
71 } | |
72 if (flags & PMinSize) { | |
73 copy(min_width); | |
74 copy(min_height); | |
75 } | |
76 if (flags & PMaxSize) { | |
77 copy(max_width); | |
78 copy(max_height); | |
79 } | |
80 if (flags & PResizeInc) { | |
81 copy(width_inc); | |
82 copy(height_inc); | |
83 } | |
84 if (flags & PAspect) { | |
85 copy(min_aspect.x); | |
86 copy(min_aspect.y); | |
87 copy(max_aspect.x); | |
88 copy(max_aspect.y); | |
89 } | |
90 #undef copy | |
91 #define copy(field) hints->field = w->wm.field | |
92 if (flags & PBaseSize) { | |
93 copy(base_width); | |
94 copy(base_height); | |
95 } | |
96 if (flags & PWinGravity) | |
97 copy(win_gravity); | |
98 #undef copy | |
99 } | |
100 | |
101 static void _SetWMSizeHints(w) | |
102 WMShellWidget w; | |
103 { | |
104 XSizeHints *size_hints = XAllocSizeHints(); | |
105 | |
106 if (size_hints == NULL) _XtAllocError("XAllocSizeHints"); | |
107 ComputeWMSizeHints(w, size_hints); | |
108 XSetWMNormalHints(XtDisplay((Widget)w), XtWindow((Widget)w), size_hints); | |
109 XFree((char*)size_hints); | |
110 } | |
111 | |
112 /* end of junk ungraciously copied from Shell.c */ | |
113 | |
114 #endif /* 0 */ | |
115 #if 0 /* Not currently used */ | |
116 | |
117 void | |
118 EmacsShellSetSizeUserSpecified (Widget gw) | |
119 { | |
120 WMShellWidget w = (WMShellWidget) gw; | |
121 w->wm.size_hints.flags |= USSize; | |
122 w->wm.size_hints.flags &= ~PSize; | |
123 if (!w->shell.override_redirect && XtIsRealized (gw)) | |
124 _SetWMSizeHints (w); | |
125 } | |
126 | |
127 void | |
128 EmacsShellSetPositionUserSpecified (Widget gw) | |
129 { | |
130 WMShellWidget w = (WMShellWidget) gw; | |
131 w->wm.size_hints.flags |= USPosition; | |
132 w->wm.size_hints.flags &= ~PPosition; | |
133 if (!w->shell.override_redirect && XtIsRealized (gw)) | |
134 _SetWMSizeHints (w); | |
135 } | |
136 | |
137 #endif /* 0 */ | |
138 | |
139 void | |
140 EmacsShellSmashIconicHint (Widget shell, int iconic_p) | |
141 { | |
142 /* See comment in frame-x.c about this */ | |
143 WMShellWidget wmshell = (WMShellWidget) shell; | |
144 assert (XtIsSubclass (shell, wmShellWidgetClass)); | |
145 /* old_state = (wmshell->wm.wm_hints.flags & StateHint | |
146 ? wmshell->wm.wm_hints.initial_state | |
147 : NormalState); */ | |
148 wmshell->wm.wm_hints.flags |= StateHint; | |
149 wmshell->wm.wm_hints.initial_state = iconic_p ? IconicState : NormalState; | |
150 } | |
151 | |
152 void | |
153 EmacsShellUpdateSizeHints (Widget gw) | |
154 { | |
155 if (XtIsSubclass (gw, topLevelEmacsShellWidgetClass)) | |
156 TopLevelEmacsShellUpdateSizeHints (gw); | |
157 #ifdef EXTERNAL_WIDGET | |
158 else if (XtIsSubclass (gw, externalShellWidgetClass)) | |
159 /* do what ??? Don't abort! */; | |
160 #endif | |
161 else if (XtIsSubclass (gw, transientEmacsShellWidgetClass)) | |
162 TransientEmacsShellUpdateSizeHints (gw); | |
163 else | |
2500 | 164 ABORT (); |
428 | 165 } |