Mercurial > hg > xemacs-beta
annotate src/conslots.h @ 5891:a0e751d6c3ad
Import the #'clear-string API from GNU, use it in tls.c
src/ChangeLog addition:
2015-04-18 Aidan Kehoe <kehoea@parhasard.net>
* sequence.c (Fclear_string): New, API from GNU. Zero a string's
contents, making sure the text is not kept around even when the
string's data is reallocated because of a changed character
length.
* sequence.c (syms_of_sequence): Make it available to Lisp.
* lisp.h: Make it available to C code.
* tls.c (nss_pk11_password): Use it.
* tls.c (gnutls_pk11_password): Use it.
* tls.c (openssl_password): Use it.
tests/ChangeLog addition:
2015-04-18 Aidan Kehoe <kehoea@parhasard.net>
* automated/lisp-tests.el:
Test #'clear-string, just added. Unfortunately there's no way to
be certain from Lisp that the old password data has been erased
after realloc; it may be worth adding a test to tests.c, but
*we'll be reading memory we shouldn't be*, so that gives me pause.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sat, 18 Apr 2015 23:00:14 +0100 |
parents | 308d34e9f07d |
children |
rev | line source |
---|---|
428 | 1 /* Definitions of marked slots in consoles |
2 Copyright (C) 1990, 1992, 1993 Free Software Foundation, Inc. | |
1204 | 3 Copyright (C) 2002 Ben Wing. |
428 | 4 |
5 This file is part of XEmacs. | |
6 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1204
diff
changeset
|
7 XEmacs is free software: you can redistribute it and/or modify it |
428 | 8 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:
1204
diff
changeset
|
9 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:
1204
diff
changeset
|
10 option) any later version. |
428 | 11 |
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 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:
1204
diff
changeset
|
18 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
428 | 19 |
20 /* Synched up with: Mule 2.0, FSF 19.30. (see FSF keyboard.h.) */ | |
21 | |
617 | 22 /* We define the Lisp_Objects in the console structure in a separate file |
23 because there are numerous places we want to iterate over them, such | |
24 as when defining them in the structure, initializing them, or marking | |
25 them. | |
26 | |
27 To use, define MARKED_SLOT before including this file. No need to | |
28 undefine; that happens automatically. */ | |
428 | 29 |
30 #ifndef CONSOLE_SLOTS_FIRST_NAME | |
31 #define CONSOLE_SLOTS_FIRST_NAME name | |
32 #endif | |
33 | |
34 /* Name of this console, for resourcing and printing purposes. | |
35 If not explicitly given, it's initialized in a console-specific | |
36 manner. */ | |
1204 | 37 MARKED_SLOT (name) |
428 | 38 |
39 /* What this console is connected to */ | |
1204 | 40 MARKED_SLOT (connection) |
428 | 41 |
42 /* A canonical name for the connection that is used to determine | |
43 whether create_console() is being called on an existing console. */ | |
1204 | 44 MARKED_SLOT (canon_connection) |
428 | 45 |
46 /* List of devices on this console. */ | |
1204 | 47 MARKED_SLOT (device_list) |
428 | 48 |
49 /* Currently selected device. */ | |
1204 | 50 MARKED_SLOT (selected_device) |
428 | 51 |
52 /* Most-recently-selected non-minibuffer-only frame. Always | |
53 the same as the selected frame, unless that's a minibuffer-only | |
54 frame. */ | |
1204 | 55 MARKED_SLOT (last_nonminibuf_frame) |
428 | 56 |
57 /* If non-nil, a keymap that overrides all others but applies only to | |
58 this console. Lisp code that uses this instead of calling next-event | |
59 can effectively wait for input in the any-console state, and hence | |
60 avoid blocking out the other consoles. See universal-argument in | |
61 lisp/simple.el for an example. | |
62 | |
63 #### This comes from FSF Emacs; but there's probably a better | |
64 solution that involves making next-event itself work over all | |
65 consoles. */ | |
1204 | 66 MARKED_SLOT (overriding_terminal_local_map) |
428 | 67 |
68 /* Last command executed by the editor command loop, not counting | |
69 commands that set the prefix argument. */ | |
1204 | 70 MARKED_SLOT (last_command) |
428 | 71 |
72 /* The prefix argument for the next command, in raw form. */ | |
1204 | 73 MARKED_SLOT (prefix_arg) |
428 | 74 |
75 /* Where information about a partially completed key sequence | |
76 is kept. */ | |
1204 | 77 MARKED_SLOT (command_builder) |
428 | 78 |
79 /* Non-nil while a kbd macro is being defined. */ | |
1204 | 80 MARKED_SLOT (defining_kbd_macro) |
428 | 81 |
82 /* This is a lisp vector, which contains the events of the keyboard macro | |
83 currently being read. It is reallocated when the macro gets too large. | |
84 */ | |
1204 | 85 MARKED_SLOT (kbd_macro_builder) |
428 | 86 |
87 /* Last anonymous kbd macro defined. */ | |
1204 | 88 MARKED_SLOT (last_kbd_macro) |
428 | 89 |
90 #ifdef HAVE_TTY | |
91 /* ERASE character from stty settings. */ | |
1204 | 92 MARKED_SLOT (tty_erase_char) |
428 | 93 #endif |
94 | |
1204 | 95 /* Key that invokes QUIT. */ |
96 MARKED_SLOT (quit_char) | |
97 | |
98 /* Event version of quit-char. */ | |
99 MARKED_SLOT (quit_event) | |
100 | |
101 /* Event version of critical QUIT (upshifted quit-char). */ | |
102 MARKED_SLOT (critical_quit_event) | |
103 | |
428 | 104 /* Minibufferless frames on this console use this frame's minibuffer. */ |
1204 | 105 MARKED_SLOT (default_minibuffer_frame) |
428 | 106 |
107 /* Keymap mapping ASCII function key sequences onto their preferred forms. | |
108 Initialized by the terminal-specific lisp files. */ | |
1204 | 109 MARKED_SLOT (function_key_map) |
428 | 110 |
111 #ifndef CONSOLE_SLOTS_LAST_NAME | |
112 #define CONSOLE_SLOTS_LAST_NAME function_key_map | |
113 #endif | |
114 | |
617 | 115 #undef MARKED_SLOT |