aboutsummaryrefslogtreecommitdiffstats
path: root/admin/notes/multi-tty
diff options
context:
space:
mode:
authorKen Raeburn2015-11-01 01:42:21 -0400
committerKen Raeburn2015-11-01 01:42:21 -0400
commit39372e1a1032521be74575bb06f95a3898fbae30 (patch)
tree754bd242a23d2358ea116126fcb0a629947bd9ec /admin/notes/multi-tty
parent6a3121904d76e3b2f63007341d48c5c1af55de80 (diff)
parente11aaee266da52937a3a031cb108fe13f68958c3 (diff)
downloademacs-39372e1a1032521be74575bb06f95a3898fbae30.tar.gz
emacs-39372e1a1032521be74575bb06f95a3898fbae30.zip
merge from trunk
Diffstat (limited to 'admin/notes/multi-tty')
-rw-r--r--admin/notes/multi-tty225
1 files changed, 82 insertions, 143 deletions
diff --git a/admin/notes/multi-tty b/admin/notes/multi-tty
index c4edd3abc93..868d45138d8 100644
--- a/admin/notes/multi-tty
+++ b/admin/notes/multi-tty
@@ -1,6 +1,6 @@
1-*- coding: utf-8; mode: text; -*- 1-*- coding: utf-8; mode: text; -*-
2 2
3Copyright (C) 2007-2013 Free Software Foundation, Inc. 3Copyright (C) 2007-2015 Free Software Foundation, Inc.
4See the end of the file for license conditions. 4See the end of the file for license conditions.
5 5
6From README.multi-tty in the multi-tty branch. 6From README.multi-tty in the multi-tty branch.
@@ -82,7 +82,7 @@ Known problems:
82 minibuffer prompt (which is a kind of recursive editing) on 82 minibuffer prompt (which is a kind of recursive editing) on
83 another display. To unfreeze your session, switch to that 83 another display. To unfreeze your session, switch to that
84 display and complete the recursive edit, for example by 84 display and complete the recursive edit, for example by
85 pressing C-] (`abort-recursive-edit'). 85 pressing C-] ('abort-recursive-edit').
86 86
87 I am sorry to say that currently there is no way to break 87 I am sorry to say that currently there is no way to break
88 out of this "single-kboard mode" from a frozen display. If 88 out of this "single-kboard mode" from a frozen display. If
@@ -101,16 +101,6 @@ Known problems:
101 I plan to implement better user notification and support for 101 I plan to implement better user notification and support for
102 breaking out of single-kboard mode from locked displays. 102 breaking out of single-kboard mode from locked displays.
103 103
104 * Mac and DOS support is broken, doesn't even
105 compile. Multiple display support will probably not provide
106 new Emacs features on these systems, but the multi-tty
107 branch changed a few low-level interfaces, and the
108 system-dependent source files need to be adapted
109 accordingly. The changes are mostly trivial, so almost
110 anyone can help, if only by compiling the branch and
111 reporting the compiler errors.
112
113
114TESTING 104TESTING
115------- 105-------
116 106
@@ -219,11 +209,11 @@ following:
219THINGS TO DO 209THINGS TO DO
220------------ 210------------
221 211
222** See if `tty-defined-color-alist' needs to be terminal-local. 212** See if 'tty-defined-color-alist' needs to be terminal-local.
223 Update: Dan says it should be, so convert it. 213 Update: Dan says it should be, so convert it.
224 214
225** Mikhail Gusarov suggest to add a hook akin to 215** Mikhail Gusarov suggest to add a hook akin to
226 `after-make-frame-functions' that is called whenever Emacs connects 216 'after-make-frame-functions' that is called whenever Emacs connects
227 to a new terminal. Good idea! 217 to a new terminal. Good idea!
228 218
229** emacsclient -t on the console does not work after su. You have to 219** emacsclient -t on the console does not work after su. You have to
@@ -247,16 +237,16 @@ THINGS TO DO
247 proxy idea. 237 proxy idea.
248 238
249** lisp/vc.el depends on the terminal type during load time. 239** lisp/vc.el depends on the terminal type during load time.
250 `vc-annotate-color-map' is one example that needs to be fixed. 240 'vc-annotate-color-map' is one example that needs to be fixed.
251 241
252** Understand how `quit_throw_to_read_char' works, and fix any bugs 242** Understand how 'quit_throw_to_read_char' works, and fix any bugs
253 that come to light. 243 that come to light.
254 244
255** See if getcjmp can be eliminated somehow. Why does Emacs allow 245** See if getcjmp can be eliminated somehow. Why does Emacs allow
256 asynchronous input processing while it's reading input anyway? 246 asynchronous input processing while it's reading input anyway?
257 247
258** `delete-frame' events are handled by `special-event-map' 248** 'delete-frame' events are handled by 'special-event-map'
259 immediately when read by `read_char'. This is fine but it prevents 249 immediately when read by 'read_char'. This is fine but it prevents
260 higher-level keymaps from binding that event to get notified of the 250 higher-level keymaps from binding that event to get notified of the
261 deleted frame. 251 deleted frame.
262 252
@@ -264,26 +254,26 @@ THINGS TO DO
264 deletions after they have happened, usually because they want to 254 deletions after they have happened, usually because they want to
265 clean up after the deleted frame. Not all frame-local states can 255 clean up after the deleted frame. Not all frame-local states can
266 be stored as a frame parameter. For example, 256 be stored as a frame parameter. For example,
267 `display-splash-screen' uses `recursive-edit' with a special keymap 257 'display-splash-screen' uses 'recursive-edit' with a special keymap
268 override to create its buffer---and it leads to all kinds of 258 override to create its buffer---and it leads to all kinds of
269 nastiness if Emacs stays in this recursive edit mode after the 259 nastiness if Emacs stays in this recursive edit mode after the
270 frame containing the splash screen is deleted. Basically, the 260 frame containing the splash screen is deleted. Basically, the
271 splash-screen implementation wants to throw out of the recursive 261 splash-screen implementation wants to throw out of the recursive
272 edit when the frame is deleted; however, it is not legal to throw 262 edit when the frame is deleted; however, it is not legal to throw
273 from `delete-frame-functions' because `delete-frame' must not fail. 263 from 'delete-frame-functions' because 'delete-frame' must not fail.
274 (Introducing `delete-frame-after-functions' would not help either 264 (Introducing 'delete-frame-after-functions' would not help either
275 because `delete-frame' may not fail at that time either.) 265 because 'delete-frame' may not fail at that time either.)
276 266
277 Currently `fancy-splash-screens' installs a 267 Currently 'fancy-splash-screens' installs a
278 `delete-frame-functions' hook that sets up a timer to exit the 268 'delete-frame-functions' hook that sets up a timer to exit the
279 recursive edit. This is an adequate solution, but it would perhaps 269 recursive edit. This is an adequate solution, but it would perhaps
280 be better to have something like a `frame-deleted' event that could 270 be better to have something like a 'frame-deleted' event that could
281 be bound in the normal way. 271 be bound in the normal way.
282 272
283** Trouble: `setenv' doesn't actually set environment variables in the 273** Trouble: 'setenv' doesn't actually set environment variables in the
284 Emacs process. This defeats the purpose of the elaborate 274 Emacs process. This defeats the purpose of the elaborate
285 `server-with-environment' magic around the `tgetent' call in 275 'server-with-environment' magic around the 'tgetent' call in
286 `init_tty'. D'oh. 276 'init_tty'. D'oh.
287 277
288** (Possibly) create hooks in struct device for creating frames on a 278** (Possibly) create hooks in struct device for creating frames on a
289 specific terminal, and eliminate the hackish terminal-related frame 279 specific terminal, and eliminate the hackish terminal-related frame
@@ -300,9 +290,9 @@ THINGS TO DO
300 as static, removing it from dispextern.h. 290 as static, removing it from dispextern.h.
301 Move fatal to emacs.c and declare it somewhere. 291 Move fatal to emacs.c and declare it somewhere.
302 292
303** Search for `suspend-emacs' references and replace them with 293** Search for 'suspend-emacs' references and replace them with
304 `suspend-frame', if necessary. Ditto for `save-buffers-kill-emacs' 294 'suspend-frame', if necessary. Ditto for 'save-buffers-kill-emacs'
305 vs. `save-buffers-kill-display'. 295 vs. 'save-buffers-kill-display'.
306 296
307** Emacs crashes when a tty frame is resized so that there is no space 297** Emacs crashes when a tty frame is resized so that there is no space
308 for all its windows. (Tom Schutzer-Weissmann) 298 for all its windows. (Tom Schutzer-Weissmann)
@@ -325,7 +315,7 @@ THINGS TO DO
325 impression that the various multidisplay fixes will only get 315 impression that the various multidisplay fixes will only get
326 released in GTK+ 2.10. 316 released in GTK+ 2.10.
327 317
328** Audit `face-valid-attribute-values' usage in customize and 318** Audit 'face-valid-attribute-values' usage in customize and
329 elsewhere. Its return value depends on the current window system. 319 elsewhere. Its return value depends on the current window system.
330 Replace static initializers using it with runtime functions. For 320 Replace static initializers using it with runtime functions. For
331 example, custom's buttons are broken on non-initial device types. 321 example, custom's buttons are broken on non-initial device types.
@@ -335,9 +325,9 @@ THINGS TO DO
335 325
336** frames-on-display-list should also accept frames. 326** frames-on-display-list should also accept frames.
337 327
338** Consider the `tty-type' frame parameter and the `display-tty-type' 328** Consider the 'tty-type' frame parameter and the 'display-tty-type'
339 function. They serve the exact same purpose. I think it may be 329 function. They serve the exact same purpose. I think it may be
340 a good idea to eliminate one of them, preferably `tty-type'. 330 a good idea to eliminate one of them, preferably 'tty-type'.
341 331
342** The handling of lisp/term/*.el, and frame creation in general, is a 332** The handling of lisp/term/*.el, and frame creation in general, is a
343 big, big mess. How come the terminal-specific file is loaded by 333 big, big mess. How come the terminal-specific file is loaded by
@@ -350,27 +340,23 @@ THINGS TO DO
350 changed in CVS, and frame.el in multi-tty has not yet been adapted 340 changed in CVS, and frame.el in multi-tty has not yet been adapted
351 for the changes. (It needs to look at 341 for the changes. (It needs to look at
352 default-frame-background-mode.) (Update: maybe it is fixed now; 342 default-frame-background-mode.) (Update: maybe it is fixed now;
353 needs testing.) (Note that the byte compiler has this to say about 343 needs testing.)
354 term/rxvt.el:)
355
356 term/rxvt.el:309:17:Warning: assignment to free variable
357 `default-frame-background-mode'
358 344
359** I think `(set-)terminal-local-value' and the terminal parameter 345** I think '(set-)terminal-local-value' and the terminal parameter
360 mechanism should be integrated into a single framework. 346 mechanism should be integrated into a single framework.
361 347
362 (Update: `(set-)terminal-local-value' is now eliminated, but the 348 (Update: '(set-)terminal-local-value' is now eliminated, but the
363 terminal-local variables should still be accessible as terminal 349 terminal-local variables should still be accessible as terminal
364 parameters. This also applies to `display-name' and similar 350 parameters. This also applies to 'display-name' and similar
365 functions.) 351 functions.)
366 352
367** Add the following hooks: after-delete-frame-hook (for server.el, 353** Add the following hooks: after-delete-frame-hook (for server.el,
368 instead of delete-frame-functions), 354 instead of delete-frame-functions),
369 after-delete-terminal-functions, after-create-terminal-functions. 355 after-delete-terminal-functions, after-create-terminal-functions.
370 356
371** BULK RENAME: The `display-' prefix of new Lisp-level functions 357** BULK RENAME: The 'display-' prefix of new Lisp-level functions
372 conflicts with stuff like `display-time-mode'. Use `device-' 358 conflicts with stuff like 'display-time-mode'. Use 'device-'
373 or `terminal-' instead. I think I prefer `terminal-'. 359 or 'terminal-' instead. I think I prefer 'terminal-'.
374 360
375 It turns out that most of the offending Lisp functions were defined 361 It turns out that most of the offending Lisp functions were defined
376 in the trunk. Therefore, compatibility aliases should be defined 362 in the trunk. Therefore, compatibility aliases should be defined
@@ -476,7 +462,7 @@ THINGS TO DO
476 462
477** With iswitchb-default-method set to 'always-frame, only frames on 463** With iswitchb-default-method set to 'always-frame, only frames on
478 the current display should be considered. This might involve 464 the current display should be considered. This might involve
479 extending `get-buffer-window'. 465 extending 'get-buffer-window'.
480 466
481** Have a look at Vlocale_coding_system. Seems like it would be a 467** Have a look at Vlocale_coding_system. Seems like it would be a
482 tedious job to localize it, although most references use it for 468 tedious job to localize it, although most references use it for
@@ -504,17 +490,6 @@ THINGS TO DO
504 490
505 (This is likely an error in the CVS trunk.) 491 (This is likely an error in the CVS trunk.)
506 492
507** Dan Nicolaescu suggests that -nw should be added as an alias for -t
508 in emacsclient. Good idea. (Alas, implementing this is not
509 trivial, getopt_long does not seem to support two-letter ``short''
510 options. Patches are welcome.)
511
512** Mark Plaksin suggests that emacsclient should accept the same
513 X-related command-line arguments as Emacs. Most of the X-related
514 argument-handling is done in Lisp, so this should be quite easy to
515 implement. (For example, Samium Gromoff wants emacsclient to
516 support --geometry; implementing this would add that support.)
517
518** Gergely Nagy suggests that C-x # should only kill the current 493** Gergely Nagy suggests that C-x # should only kill the current
519 frame, not any other emacsclient frame that may have the same file 494 frame, not any other emacsclient frame that may have the same file
520 opened for editing. I think I agree with him. 495 opened for editing. I think I agree with him.
@@ -532,21 +507,9 @@ THINGS TO DO
532 an initial frame. (The user would connect to it and open frames 507 an initial frame. (The user would connect to it and open frames
533 later, with emacsclient.) 508 later, with emacsclient.)
534 509
535** Fix Mac support (I can't do this entirely myself). Note that the 510** Implement Mac/Windows/DOS support. Many XXX comments mark things
536 current state of Mac-specific source files in the multi-tty tree 511 that probably need updating, ChangeLogs will help in spotting
537 are not useful; before starting work on Mac support, revert to 512 changes to X specific files that may need porting.
538 pristine, pre-multi-tty versions.
539
540** Fix DOS support (I can't do this entirely myself). Note that the
541 current state of DOS-specific source files in the multi-tty tree
542 are not useful; before starting work on DOS support, revert to
543 pristine, pre-multi-tty versions.
544
545** Fix Windows support. Currently bootstrapping works on w32, but Emacs
546 crashes on startup and none of the multi-tty features are
547 implemented. Many XXX comments mark things that probably need
548 updating, ChangeLogs will help in spotting changes to X specific
549 files that may need porting.
550 513
551** Do a grep on XXX and ?? for more issues. 514** Do a grep on XXX and ?? for more issues.
552 515
@@ -570,7 +533,7 @@ DIARY OF CHANGES
570 533
571-- Change make-terminal-frame to support specifying another tty. 534-- Change make-terminal-frame to support specifying another tty.
572 535
573 (Done, new frame parameters: `tty' and `tty-type'.) 536 (Done, new frame parameters: 'tty' and 'tty-type'.)
574 537
575-- Implement support for reading from multiple terminals. 538-- Implement support for reading from multiple terminals.
576 539
@@ -582,7 +545,7 @@ DIARY OF CHANGES
582 545
583 (Update2: After enabling X, they don't.) 546 (Update2: After enabling X, they don't.)
584 547
585-- other-frame should cycle through the frames on the `current' 548-- other-frame should cycle through the frames on the 'current'
586 terminal only. 549 terminal only.
587 550
588 (Done, by trivially modifying next_frame and prev_frame.) 551 (Done, by trivially modifying next_frame and prev_frame.)
@@ -639,7 +602,7 @@ DIARY OF CHANGES
639 602
640 (Update^3: Not any more.) 603 (Update^3: Not any more.)
641 604
642-- Make make-terminal-frame look up the `tty' and `tty-type' frame 605-- Make make-terminal-frame look up the 'tty' and 'tty-type' frame
643 parameters from the currently selected terminal before the global 606 parameters from the currently selected terminal before the global
644 default. 607 default.
645 608
@@ -857,7 +820,7 @@ DIARY OF CHANGES
857 820
858 (Done, breaking interactive temacs.) 821 (Done, breaking interactive temacs.)
859 822
860-- The command `emacsclient -t -e '(delete-frame)'' fails to exit. 823-- The command "emacsclient -t -e '(delete-frame)'" fails to exit.
861 824
862 (Fixed.) 825 (Fixed.)
863 826
@@ -967,7 +930,7 @@ DIARY OF CHANGES
967 frame sets single_kboard). Update: the face problems are caused by 930 frame sets single_kboard). Update: the face problems are caused by
968 bugs in term.el, not in multi-tty. The lockup is caused by 931 bugs in term.el, not in multi-tty. The lockup is caused by
969 single_kboard mode, and is not easily resolvable. The best thing to 932 single_kboard mode, and is not easily resolvable. The best thing to
970 do is to simply refuse to create a tty frame of type `eterm'. 933 do is to simply refuse to create a tty frame of type 'eterm'.
971 934
972 (Fixed, changed emacsclient to check for TERM=eterm. The face 935 (Fixed, changed emacsclient to check for TERM=eterm. The face
973 complaints seem to be caused by bugs in term.el; they are not 936 complaints seem to be caused by bugs in term.el; they are not
@@ -976,14 +939,14 @@ DIARY OF CHANGES
976-- Find out the best way to support suspending Emacs with multiple 939-- Find out the best way to support suspending Emacs with multiple
977 ttys. My guess: disable it on the controlling tty, but from other 940 ttys. My guess: disable it on the controlling tty, but from other
978 ttys pass it on to emacsclient somehow. (It is (I hope) trivial to 941 ttys pass it on to emacsclient somehow. (It is (I hope) trivial to
979 extend emacsclient to handle suspend/resume. A `kill -STOP' almost 942 extend emacsclient to handle suspend/resume. A 'kill -STOP' almost
980 works right now.) 943 works right now.)
981 944
982 (Done. I needed to play with signal handling and the server 945 (Done. I needed to play with signal handling and the server
983 protocol a bit to make emacsclient behave as a normal UNIX program 946 protocol a bit to make emacsclient behave as a normal UNIX program
984 wrt foreground/background process groups.) 947 wrt foreground/background process groups.)
985 948
986-- There is a flicker during the startup of `emacs -nw'; it's as if 949-- There is a flicker during the startup of 'emacs -nw'; it's as if
987 the terminal is initialized, reset and then initialized again. 950 the terminal is initialized, reset and then initialized again.
988 Debug this. (Hint: narrow_foreground_group is called twice during 951 Debug this. (Hint: narrow_foreground_group is called twice during
989 startup.) 952 startup.)
@@ -1006,7 +969,7 @@ DIARY OF CHANGES
1006 969
1007 (It was an internal interface that may be changed when necessary.) 970 (It was an internal interface that may be changed when necessary.)
1008 971
1009-- Change Lisp code not to (getenv "TERM"); use the `tty-type' frame 972-- Change Lisp code not to (getenv "TERM"); use the 'tty-type' frame
1010 parameter or the frame-tty-type function instead. (M-x tags-search 973 parameter or the frame-tty-type function instead. (M-x tags-search
1011 "TERM" helps with this.) Update: Actually, all getenv invocations 974 "TERM" helps with this.) Update: Actually, all getenv invocations
1012 should be checked for multi-tty compatibility, and an interface 975 should be checked for multi-tty compatibility, and an interface
@@ -1016,7 +979,7 @@ DIARY OF CHANGES
1016 calls should be mostly left as they are.) 979 calls should be mostly left as they are.)
1017 980
1018-- Add an elaborate mechanism for display-local variables. (There are 981-- Add an elaborate mechanism for display-local variables. (There are
1019 already a few of these; search for `terminal-local' in the Elisp 982 already a few of these; search for 'terminal-local' in the Elisp
1020 manual.) 983 manual.)
1021 984
1022 (Not needed. Display-local variables could be emulated by 985 (Not needed. Display-local variables could be emulated by
@@ -1035,7 +998,7 @@ DIARY OF CHANGES
1035 emacsclient process for server tty frames.) 998 emacsclient process for server tty frames.)
1036 (Update: Not really; Vlocale_coding_system is still global.) 999 (Update: Not really; Vlocale_coding_system is still global.)
1037 1000
1038-- Make `struct display' accessible to Lisp programs. Accessor functions: 1001-- Make 'struct display' accessible to Lisp programs. Accessor functions:
1039 1002
1040 (displayp OBJECT): Returns t if OBJECT is a display. 1003 (displayp OBJECT): Returns t if OBJECT is a display.
1041 => Implemented as display-live-p. 1004 => Implemented as display-live-p.
@@ -1053,7 +1016,7 @@ DIARY OF CHANGES
1053 => Already implemented, see frames-on-display-list. 1016 => Already implemented, see frames-on-display-list.
1054 1017
1055 (display-type DISPLAY): Returns the type of DISPLAY, as a 1018 (display-type DISPLAY): Returns the type of DISPLAY, as a
1056 symbol. (See `framep'.) 1019 symbol. (See 'framep'.)
1057 => Implemented as display-live-p. 1020 => Implemented as display-live-p.
1058 1021
1059 (display-device DISPLAY): Returns the name of the device that 1022 (display-device DISPLAY): Returns the name of the device that
@@ -1085,20 +1048,8 @@ DIARY OF CHANGES
1085 1048
1086 (Done.) 1049 (Done.)
1087 1050
1088-- Miles Bader suggests that C-x C-c on an emacsclient frame should
1089 only close the frame, not exit the entire Emacs session. Update:
1090 see above for a function that does this. Maybe this should be the
1091 new default?
1092
1093 (Done. This is the new default. No complaints so far.)
1094
1095-- Clean up the frame-local variable system. I think it's ugly and
1096 error-prone. But maybe I just haven't yet fully understood it.
1097
1098 (Nothing to do. It doesn't seem ugly any more. It's rather clever.)
1099
1100-- Support multiple character locales. A version of 1051-- Support multiple character locales. A version of
1101 `set-locale-environment' needs to be written for setting up 1052 'set-locale-environment' needs to be written for setting up
1102 display-local settings on ttys. I think calling 1053 display-local settings on ttys. I think calling
1103 set-display-table-and-terminal-coding-system and 1054 set-display-table-and-terminal-coding-system and
1104 set-keyboard-coding-system would be enough. The language 1055 set-keyboard-coding-system would be enough. The language
@@ -1111,21 +1062,9 @@ DIARY OF CHANGES
1111 them to tweak only frame-local settings, if possible. (They tend 1062 them to tweak only frame-local settings, if possible. (They tend
1112 to call define-key to set function key sequences a lot.) 1063 to call define-key to set function key sequences a lot.)
1113 1064
1114 (Done, by making `function-key-map' terminal-local (i.e., part of 1065 (Done, by making 'function-key-map' terminal-local (i.e., part of
1115 struct kboard). This has probably covered all the remaining problems.) 1066 struct kboard). This has probably covered all the remaining problems.)
1116 1067
1117-- Make `function-key-map' and `key-translation-map' terminal-local.
1118
1119 (Done.)
1120
1121-- Implement `terminal-local-value' and `set-terminal-local-value' to
1122 allow deterministic access to terminal local bindings. The
1123 encode-kb package can not set up `key-translation-map' without
1124 these. The terminal-local bindings seem to be independent of what
1125 frame is selected.
1126
1127 (Done.)
1128
1129-- xt-mouse.el needs to be adapted for multi-tty. It currently 1068-- xt-mouse.el needs to be adapted for multi-tty. It currently
1130 signals an error on kill-emacs under X, which prevents the user 1069 signals an error on kill-emacs under X, which prevents the user
1131 from exiting Emacs. (Reported by Mnemonikk on freenode.) 1070 from exiting Emacs. (Reported by Mnemonikk on freenode.)
@@ -1140,8 +1079,8 @@ DIARY OF CHANGES
1140 1079
1141 This only seems to affect displays that are of the same terminfo 1080 This only seems to affect displays that are of the same terminfo
1142 type as the selected one. Interestingly, in screen Emacs normally 1081 type as the selected one. Interestingly, in screen Emacs normally
1143 reports the up arrow key as `M-o A', but after the above SNAFU, it 1082 reports the up arrow key as 'M-o A', but after the above SNAFU, it
1144 complains about `M-[ a'. UNIX ttys are a complete mystery to me, 1083 complains about 'M-[ a'. UNIX ttys are a complete mystery to me,
1145 but it seems the reset-reinitialize cycle somehow leaves the 1084 but it seems the reset-reinitialize cycle somehow leaves the
1146 non-selected terminals in a different state than usual. I have no 1085 non-selected terminals in a different state than usual. I have no
1147 idea how this could happen. 1086 idea how this could happen.
@@ -1189,15 +1128,15 @@ DIARY OF CHANGES
1189 clear what binding is in effect in any given time. See if 1128 clear what binding is in effect in any given time. See if
1190 current_kboard (or at least the terminal-local bindings exported to 1129 current_kboard (or at least the terminal-local bindings exported to
1191 Lisp) might be changed to be tied to the selected frame instead. 1130 Lisp) might be changed to be tied to the selected frame instead.
1192 Currently, `function-key-map' and `key-translation-map' may be 1131 Currently, 'function-key-map' and 'key-translation-map' may be
1193 accessed reliably only using the hackish 1132 accessed reliably only using the hackish
1194 `(set-)terminal-local-value' functions. 1133 '(set-)terminal-local-value' functions.
1195 1134
1196 Perhaps there should be a difference between `last-command' &co. 1135 Perhaps there should be a difference between 'last-command' &co.
1197 and these more conventional configuration variables. 1136 and these more conventional configuration variables.
1198 (E.g. `symbol-value' would use current_kboard to access 1137 (E.g. 'symbol-value' would use current_kboard to access
1199 `last-command', but SELECTED_FRAME()->display->kboard to get the 1138 'last-command', but SELECTED_FRAME()->display->kboard to get the
1200 value of `function-key-map'. 1139 value of 'function-key-map'.
1201 1140
1202 (Fixed in patch-434.) 1141 (Fixed in patch-434.)
1203 1142
@@ -1208,7 +1147,7 @@ DIARY OF CHANGES
1208 below" was the set-input-mode madness.) 1147 below" was the set-input-mode madness.)
1209 1148
1210 (Update: this bug was fixed for good in patch-449. It was tracked 1149 (Update: this bug was fixed for good in patch-449. It was tracked
1211 down to a bug in `read_key_sequence': it failed to reinitialize its 1150 down to a bug in 'read_key_sequence': it failed to reinitialize its
1212 local function-key-map/key-translation-map references when it 1151 local function-key-map/key-translation-map references when it
1213 switched keyboards. I don't understand why did this bug only 1152 switched keyboards. I don't understand why did this bug only
1214 appear on brand new frames, though!) 1153 appear on brand new frames, though!)
@@ -1220,35 +1159,35 @@ DIARY OF CHANGES
1220-- Implement automatic forwarding of client environment variables to 1159-- Implement automatic forwarding of client environment variables to
1221 forked processes, as discussed on the multi-tty list. Terminal 1160 forked processes, as discussed on the multi-tty list. Terminal
1222 parameters are now accessible in C code, so the biggest obstacle is 1161 parameters are now accessible in C code, so the biggest obstacle is
1223 gone. The `getenv_internal' and `child_setup' functions in 1162 gone. The 'getenv_internal' and 'child_setup' functions in
1224 callproc.c must be changed to support the following variable: 1163 callproc.c must be changed to support the following variable:
1225 1164
1226 terminal-local-environment-variables is a variable defined in ... 1165 terminal-local-environment-variables is a variable defined in ...
1227 1166
1228 Enable or disable terminal-local environment variables. 1167 Enable or disable terminal-local environment variables.
1229 1168
1230 If set to t, `getenv', `setenv' and subprocess creation 1169 If set to t, 'getenv', 'setenv' and subprocess creation
1231 functions use the environment variables of the emacsclient 1170 functions use the environment variables of the emacsclient
1232 process that created the selected frame, ignoring 1171 process that created the selected frame, ignoring
1233 `process-environment'. 1172 'process-environment'.
1234 1173
1235 If set to nil, Emacs uses `process-environment' and ignores 1174 If set to nil, Emacs uses 'process-environment' and ignores
1236 the client environment. 1175 the client environment.
1237 1176
1238 Otherwise, `terminal-local-environment-variables' should be a 1177 Otherwise, 'terminal-local-environment-variables' should be a
1239 list of variable names (represented by Lisp strings) to look 1178 list of variable names (represented by Lisp strings) to look
1240 up in the client environment. The rest will come from 1179 up in the client environment. The rest will come from
1241 `process-environment'. 1180 'process-environment'.
1242 1181
1243 (Implemented in patch-461; `terminal-getenv', `terminal-setenv' and 1182 (Implemented in patch-461; 'terminal-getenv', 'terminal-setenv' and
1244 `with-terminal-environment' are now replaced by extensions to 1183 'with-terminal-environment' are now replaced by extensions to
1245 `getenv' and `setenv', and the new `local-environment-variables' 1184 'getenv' and 'setenv', and the new 'local-environment-variables'
1246 facility. Yay!) 1185 facility. Yay!)
1247 1186
1248 (Updated in patch-465 to fix the semantics of let-binding 1187 (Updated in patch-465 to fix the semantics of let-binding
1249 `process-environment'. `process-environment' was changed to 1188 'process-environment'. 'process-environment' was changed to
1250 override all local/global environment variables, and a new variable 1189 override all local/global environment variables, and a new variable
1251 `global-environment' was introduced to have `process-environment's 1190 'global-environment' was introduced to have 'process-environment's
1252 old meaning.) 1191 old meaning.)
1253 1192
1254 (Updated in patch-466 to fix the case when two emacsclient sessions 1193 (Updated in patch-466 to fix the case when two emacsclient sessions
@@ -1256,27 +1195,27 @@ DIARY OF CHANGES
1256 environment lists are now stored as frame parameters, so the 1195 environment lists are now stored as frame parameters, so the
1257 C-level terminal parameters are not strictly necessary any more.) 1196 C-level terminal parameters are not strictly necessary any more.)
1258 1197
1259-- `Fdelete_frame' is called from various critical places where it is 1198-- 'Fdelete_frame' is called from various critical places where it is
1260 not acceptable for the frame deletion to fail, e.g. from 1199 not acceptable for the frame deletion to fail, e.g. from
1261 x_connection_closed after an X error. `Fdelete_frame' now protects 1200 x_connection_closed after an X error. 'Fdelete_frame' now protects
1262 against `delete-frame-functions' throwing an error and preventing a 1201 against 'delete-frame-functions' throwing an error and preventing a
1263 frame delete. (patch-475) 1202 frame delete. (patch-475)
1264 1203
1265-- Fix set-input-mode for multi-tty. It's a truly horrible interface; 1204-- Fix set-input-mode for multi-tty. It's a truly horrible interface;
1266 what if we'd blow it up into several separate functions (with a 1205 what if we'd blow it up into several separate functions (with a
1267 compatibility definition)? 1206 compatibility definition)?
1268 1207
1269 (Done. See `set-input-interrupt-mode', `set-output-flow-control', 1208 (Done. See 'set-input-interrupt-mode', 'set-output-flow-control',
1270 `set-input-meta-mode' and `set-quit-char'.) (patch-457) 1209 'set-input-meta-mode' and 'set-quit-char'.) (patch-457)
1271 1210
1272-- Let-binding `overriding-terminal-local-map' on a brand new frame 1211-- Let-binding 'overriding-terminal-local-map' on a brand new frame
1273 does not seem to work correctly. (See `fancy-splash-screens'.) 1212 does not seem to work correctly. (See 'fancy-splash-screens'.)
1274 The keymap seems to be set up right, but events go to another 1213 The keymap seems to be set up right, but events go to another
1275 terminal. Or is it `unread-command-events' that gets Emacs 1214 terminal. Or is it 'unread-command-events' that gets Emacs
1276 confused? Investigate. 1215 confused? Investigate.
1277 1216
1278 (Emacs was confused because a process filter entered 1217 (Emacs was confused because a process filter entered
1279 `recursive-edit' while Emacs was reading input. I added support 1218 'recursive-edit' while Emacs was reading input. I added support
1280 for this in the input system.) (patch-489) 1219 for this in the input system.) (patch-489)
1281 1220
1282-- I smell something funny around pop_kboard's "deleted kboard" case. 1221-- I smell something funny around pop_kboard's "deleted kboard" case.
@@ -1301,7 +1240,7 @@ DIARY OF CHANGES
1301 synchronously (with wait_reading_process_input), or asynchronously 1240 synchronously (with wait_reading_process_input), or asynchronously
1302 by SIGIO or polling (SIGALRM). C-g either sets the Vquit_flag, 1241 by SIGIO or polling (SIGALRM). C-g either sets the Vquit_flag,
1303 signals a 'quit condition (when immediate_quit), or throws to 1242 signals a 'quit condition (when immediate_quit), or throws to
1304 `getcjmp' when Emacs was waiting for input when the C-g event 1243 'getcjmp' when Emacs was waiting for input when the C-g event
1305 arrived.) 1244 arrived.)
1306 1245
1307-- Replace wrong_kboard_jmpbuf with a special return value of 1246-- Replace wrong_kboard_jmpbuf with a special return value of
@@ -1310,7 +1249,7 @@ DIARY OF CHANGES
1310 1249
1311 (Done in patch-500.) 1250 (Done in patch-500.)
1312 1251
1313-- `tool-bar-mode', `scroll-bar-mode', `menu-bar-mode' and 1252-- 'tool-bar-mode', 'scroll-bar-mode', 'menu-bar-mode' and
1314 'fringe-mode' are modes global to the entire Emacs session, not 1253 'fringe-mode' are modes global to the entire Emacs session, not
1315 just a single frame or a single terminal. This means that their 1254 just a single frame or a single terminal. This means that their
1316 status sometimes differs from what's actually displayed on the 1255 status sometimes differs from what's actually displayed on the
@@ -1323,7 +1262,7 @@ DIARY OF CHANGES
1323 1262
1324 (Done in patch-537.) 1263 (Done in patch-537.)
1325 1264
1326-- The `default-directory' variable should somehow be set to the 1265-- The 'default-directory' variable should somehow be set to the
1327 cwd of the emacsclient process when the user runs emacsclient 1266 cwd of the emacsclient process when the user runs emacsclient
1328 without file arguments. Perhaps it is OK to just override the 1267 without file arguments. Perhaps it is OK to just override the
1329 directory of the *scratch* buffer. 1268 directory of the *scratch* buffer.
@@ -1335,9 +1274,9 @@ DIARY OF CHANGES
1335 frame parameter) is not filled with the correct background color. 1274 frame parameter) is not filled with the correct background color.
1336 1275
1337 It seems the border contents are drawn onto by the 1276 It seems the border contents are drawn onto by the
1338 update_single_window call in `x-show-tip'. After some debugging, I 1277 update_single_window call in 'x-show-tip'. After some debugging, I
1339 think the window's background color is not set up 1278 think the window's background color is not set up
1340 correctly---calling `x_clear_area' fills the specified area with 1279 correctly---calling 'x_clear_area' fills the specified area with
1341 black, not light yellow. 1280 black, not light yellow.
1342 1281
1343 (Done in patch-544. A background_pixel field was defined both in 1282 (Done in patch-544. A background_pixel field was defined both in