1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
|
0000-00-00 Juri Linkov <[email protected]>
* loadup.el: Add "button" loading after "faces" and move "startup"
to load after "button".
0000-00-00 Dan Nicolaescu <[email protected]>
* loadup.el: Load term/mac-win on a Mac using Carbon.
* term/mac-win.el: Provide mac-win.
(mac-initialized): New variable.
(mac-initialize-window-system): New function. Move global setup
here.
(handle-args-function-alist, frame-creation-function-alist):
(window-system-initialization-alist): Add mac entries.
(x-setup-function-keys): New function containing all the
top level function key definitions.
* term/x-win.el (x-menu-bar-open): Use accelerate-menu.
* env.el (read-envvar-name): Don't consider the environment frame
param.
(setenv): Set display-environment-variable and
term-environment-variable.
* frame.el (frame-initialize, make-frame): Likewise.
* faces.el (tty-set-up-initial-frame-faces): Likewise.
* server.el (server-process-filter): Likewise. Also set COLORFGBG and
COLORTERM.
0000-00-00 Jason Rumney <[email protected]>
* loadup.el: Only load term/x-win when X is compiled in.
Load term/w32-win and dependencies on windows-nt.
* term/w32-win.el: Reorder to match x-win.el more closely.
Provide w32-win. Don't throw error when global window-system not
w32.
(internal-face-interactive): Remove obsolete function.
(x-setup-function-keys): Use local-function-key-map.
(w32-initialized): New variable.
(w32-initialize-window-system): Set it.
Move more global setup here.
(x-setup-function-keys): New function.
(w32-initialize-window-system): Move non function key global setup
here.
(x-cut-buffer-max): Remove.
(w32-initialize-window-system): New function.
(handle-args-function-alist, frame-creation-function-alist):
(window-system-initialization-alist): Add w32 entries.
0000-00-00 David Kastrup <[email protected]>
* env.el (getenv): Pass frame to getenv-internal.
0000-00-00 Karoly Lorentey <[email protected]>
* loadup.el: Delay loading env; mule-conf gets confused by cl
during bootstrap. Also load termdev and term/x-win.
* bindings.el (mode-line-client): New variable.
(help-echo): Add it to the default mode-line format.
* cus-start.el: Remove bogus window-system reference from GTK test.
* double.el (double-setup): Add note.
* ebrowse.el (ebrowse-electric-list-mode-map)
(ebrowse-electric-position-mode-map):
* ebuff-menu.el (electric-buffer-menu-mode-map):
* echistory.el (electric-history-map): Bind C-z to
`suspend-frame', not `suspend-emacs'.
* ediff-wind.el (ediff-setup-windows-automatic): New function.
(ediff-window-setup-function): Use it as default.
* files.el (save-buffers-kill-terminal): New function.
(ctl-x-map): Change binding of C-x C-c to save-buffers-kill-terminal.
* font-lock.el (lisp-font-lock-keywords-2): Add `let-environment'
and `with-selected-frame'.
* help-fns.el (describe-variable): Describe frame-local variables
correctly.
* simple.el (normal-erase-is-backspace-mode): Rewrite for multiple
display support.
(normal-erase-is-backspace-setup-frame): New function.
* subr.el (with-selected-frame): New function.
(read-quoted-char): Use terminal-local binding of
local-function-key-map instead of function-key-map.
* talk.el (talk): New function.
(talk-handle-delete-frame): New function.
(talk-add-display): Open a new frame only if FRAME was not a
frame.
* termdev.el: New file.
* menu-bar.el (menu-bar-open): New function. Bind it to f10.
* term/x-win.el: Don't bind f10.
* tmm.el: Remove autoload binding for f10.
* international/encoded-kb.el (encoded-kbd-setup-display): Use
`set-input-meta-mode'. Fix broken condition before set-input-mode.
Store the saved input method as a terminal parameter. Add keymap
parameter. Use it instead of changing key-translation-map
directly.
(saved-key-translation-map, encoded-kbd-mode, saved-input-mode):
Remove.
(encoded-kbd-setup-display): New function.
* international/mule-cmds.el (set-locale-environment): Fix getenv
call. Use save-buffers-kill-terminal. Ignore window-system; always
set the keyboard coding system. Add DISPLAY parameter.
(set-display-table-and-terminal-coding-system): Add DISPLAY
parameter. Pass it to set-terminal-coding-system.
* international/mule.el (keyboard-coding-system): Test for
encoded-kbd-setup-display, not encoded-kbd-mode.
(set-terminal-coding-system, set-keyboard-coding-system): Add
DISPLAY parameter.
(set-keyboard-coding-system): Use encoded-kbd-setup-display.
* term/README: Update.
* term/linux.el (terminal-init-linux): Use `set-input-meta-mode'.
* term/x-win.el (x-setup-function-keys): New function. Move
function-key-map tweaks here. Protect against multiple calls on
the same terminal. Use terminal-local binding of
local-function-key-map instead of function-key-map.
(x-initialize-window-system): Make a copy of pure list. Pass a
frame getenv.
* term/vt200.el, term/vt201.el, term/vt220.el, term/vt240.el:
* term/vt300.el, term/vt320.el, term/vt400.el, term/vt420.el:
* term/AT386.el, term/internal.el, term/iris-ansi.el, term/lk201.el:
* term/mac-win.el, term/news.el, term/rxvt.el, term/sun.el:
* term/tvi970.el, term/wyse50.el: Use terminal-local binding of
local-function-key-map instead of function-key-map.
* term/rxvt.el, term/xterm.el: Speed up load time by protecting
`substitute-key-definition' and `define-key' calls against
multiple execution. Use terminal-local binding of
local-function-key-map instead of function-key-map. Pass a frame
to getenv.
* edmacro.el (edmacro-format-keys): Use terminal-local binding of
local-function-key-map instead of function-key-map.
* emulation/cua-base.el (cua--pre-command-handler): Ditto.
* isearch.el (isearch-other-meta-char): Ditto.
* xt-mouse.el: Ditto.
* fringe.el (set-fringe-mode): Simplify and fix using
`modify-all-frames-parameters'.
* scroll-bar.el (set-scroll-bar-mode): Ditto.
* tool-bar.el (tool-bar-mode): Ditto. Remove 'tool-bar-map length
check before calling `tool-bar-setup'.
(tool-bar-setup): New variable.
(tool-bar-setup): Use it to guard against multiple calls. Add
optional frame parameter, and select that frame before adding
items.
(toggle-tool-bar-mode-from-frame): New function.
* menu-bar.el (toggle-menu-bar-mode-from-frame): New function.
(menu-bar-showhide-menu): Use toggle-menu-bar-mode-from-frame and
toggle-tool-bar-mode-from-frame to change "Menu-bar" and
"Tool-bar" toggles to reflect the state of the current frame.
(menu-bar-mode): Simplify and fix using `modify-all-frames-parameters'.
* env.el Require cl for byte compilation (for `block' and `return').
(environment, setenv-internal): New functions.
(let-environment): New macro.
(setenv, getenv): Add optional terminal parameter. Update docs.
(setenv): Use setenv-internal. Always set process-environment.
Handle `local-environment-variables'.
(read-envvar-name, setenv, getenv): Use frame parameters
to store the local environment, not terminal parameters. Include
`process-environment' as well.
* faces.el (tty-run-terminal-initialization): New function.
(tty-create-frame-with-faces): Use it. Set up faces and
background mode only after the terminal has been initialized.
Call terminal-init-*. Don't load the initialization file more
than once. Call set-locale-environment.
(frame-set-background-mode): Handle the 'background-mode terminal
parameter.
(tty-find-type): New function.
(x-create-frame-with-faces): Remove bogus check for
first frame. Call `tool-bar-setup'. Don't make frame visible
until we are done setting up all its parameters. Call
x-setup-function-keys.
* frame.el (make-frame): Always inherit 'environment and 'client
parameters. Set up the 'environment frame parameter, when needed.
Also inherit 'client parameter. Don't override explicitly
specified values with inherited ones. Add 'terminal frame
parameter. Append window-system-default-frame-alist to parameters
before calling frame-creation-function.
(frame-initialize): Copy the environment from the initial frame.
(window-system-default-frame-alist): Enhance doc string.
(frame-notice-user-settings): Don't put 'tool-bar-lines in
`default-frame-alist' when initial frame is on a tty.
(modify-all-frames-parameters): Simplify using `assq-delete-all'.
Remove specified parameters from
`window-system-default-frame-alist'.
(make-frame-on-tty, framep-on-display, suspend-frame):
Extend doc string, update parameter names.
(frames-on-display-list): Use terminal-id to get the
display id.
(frame-notice-user-settings): Extend to apply
settings in `window-system-default-frame-alist' as well.
(terminal-id, terminal-parameters, terminal-parameter)
(set-terminal-parameter, terminal-handle-delete-frame): New functions.
(delete-frame-functions): Add to `delete-frame-functions' hook.
(blink-cursor-mode): Adapt blink-cursor-mode default
value from startup.el.
(make-frame-on-display): Protect condition on x-initialized when
x-win.el is not loaded. Update doc.
(suspend-frame): Use display-controlling-tty-p to decide between
suspend-emacs and suspend-tty.
(frames-on-display-list): Update for display ids.
(framep-on-display): Ditto.
(suspend-frame): Use display-name, not frame-tty-name.
(selected-terminal): New function.
* server.el: Use `device' instead of `display' or `display-id' in
variable and client parameter names.
(server-select-display): Remove (unused).
(server-tty-live-p, server-handle-delete-tty): Remove.
(server-unquote-arg, server-quote-arg, server-buffer-clients):
Update docs.
(server-getenv-from, server-with-environment, server-send-string)
(server-save-buffers-kill-terminal): New functions.
(server-delete-client): Handle quits in kill-buffer. Don't kill
modified buffers. Add extra logging. Delete frames after
deleting the tty. Clear 'client parameter before deleting a frame.
Use delete-display, not delete-tty.
(server-visit-files): Don't set `server-existing-buffer' if the
buffer already has other clients. Return list of buffers
created. Update doc. Don't set client-record when nowait.
(server-handle-delete-frame): Delete the client if this was its
last frame. Check that the frame is alive. Remove bogus comment.
Add note on possible race condition. Delete tty clients, if
needed.
(server-handle-suspend-tty): Use server-send-string. Kill the
client in case of errors from process-send-string. Use the display
parameter.
(server-unload-hook): Remove obsolete delete-tty
hook.
(server-start): Ask before restarting if the old server still has
clients. Add feedback messages. Remove obsolete delete-tty
hook.
(server-process-filter): Use server-send-string. Accept `-dir'
command. Switch to *scratch* immediately after creating the frame,
before evaluating any -evals. Protect `display-splash-screen'
call in a condition-case. Explain why. Call
`display-startup-echo-area-message' before
`display-splash-screen'. Don't display the splash screen when no
frame was created. Show the Emacs splash screen and startup echo
area message. Display the *scratch* buffer by default. Store the
local environment in a frame (not terminal) parameter. Do not try
to decode environment strings. Fix reference to the 'display
frame parameter. Change syntax of environment variables. Put
environment into terminal parameters, not client parameters. Use
a dummy client with --no-wait's X frames. In `-position LINE'
handler, don't ruin the request string until the line number is
extracted. Log opened files. Handle -current-frame command.
Don't create frames when it is given. Don't bind X frames to the
client when we are in -no-wait mode. Set locale environment
variables from client while creating tty frames. Disable call to
configure-display-for-locale. When processing -position command,
don't change the request string until the parameters are
extracted. Don't try to create an X frame when Emacs does not
support it. Improve logging. Temporarily set ncurses-related
environment variables to those of the client while creating a new
tty frame. Select buffers opened by nowait clients, don't leave
them buried under others. Set the display parameter, and use it
when appropriate.
* startup.el (display-startup-echo-area-message): Handle
`inhibit-startup-echo-area-message' here.
(command-line-1): Moved from here.
(fancy-splash-screens): Use `overriding-local-map' instead of
`overriding-terminal-local-map' for now; the latter doesn't work
right, it looses keypresses to another terminal. Use
`overriding-terminal-local-map' to set up keymap. Install a
`delete-frame-functions' hook to catch `delete-frame' events.
Ignore `select-window' events to cope better with
`focus-follows-mouse'. Don't switch back to the original buffer
if the splash frame has been killed. Restore previous buffer, even
if it's *scratch*.
(normal-splash-screen): Don't let-bind `mode-line-format'; it
changes the global binding - setq it instead. Use
`save-buffers-kill-terminal'.
(display-splash-screen): Don't do anything if the splash screen is
already displayed elsewhere.
(fancy-splash-exit, fancy-splash-delete-frame): New functions.
(command-line): Replace duplicated code with a call to
tty-run-terminal-initialization. Don't load the terminal
initialization file more than once. Remove call to nonexistent
function `set-locale-translation-file-name'.
* xt-mouse.el (xterm-mouse-x, xterm-mouse-y): Convert to terminal
parameters.
(xterm-mouse-position-function, xterm-mouse-event): Update.
(xterm-mouse-mode): Don't depend on current value of
window-system.
(turn-on-xterm-mouse-tracking, turn-off-xterm-mouse-tracking):
Update for multi-tty.
(turn-on-xterm-mouse-tracking-on-terminal)
(turn-off-xterm-mouse-tracking-on-terminal)
(xterm-mouse-handle-delete-frame): New functions.
(delete-frame-functions, after-make-frame-functions)
(suspend-tty-functions, resume-tty-functions): Install extra hooks
for multi-tty.
;; Local Variables:
;; coding: iso-2022-7bit
;; add-log-time-zone-rule: t
;; End:
Copyright (C) 2007 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
;;; arch-tag: 58312fd6-033a-11dc-a0fb-00114368b55b
|