diff options
| author | Karl Heuer | 1995-05-13 00:13:02 +0000 |
|---|---|---|
| committer | Karl Heuer | 1995-05-13 00:13:02 +0000 |
| commit | 59e755be76dfa0e5c66f8e49cfd0d0644f899f37 (patch) | |
| tree | 2e827594d36ef43b911e36a0e460a686043288fa /src | |
| parent | b9df9faab45baa583b2dd388de708b0986bfbe30 (diff) | |
| download | emacs-59e755be76dfa0e5c66f8e49cfd0d0644f899f37.tar.gz emacs-59e755be76dfa0e5c66f8e49cfd0d0644f899f37.zip | |
(Qvendor_specific_keysyms): New var.
(syms_of_xterm): Initialize and staticpro it.
(x_term_init): Initialize Vsystem_key_alist according to vendor.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xterm.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/xterm.c b/src/xterm.c index 2f714486057..7e2679b2f4e 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -211,6 +211,8 @@ extern int errno; | |||
| 211 | /* A mask of extra modifier bits to put into every keyboard char. */ | 211 | /* A mask of extra modifier bits to put into every keyboard char. */ |
| 212 | extern int extra_keyboard_modifiers; | 212 | extern int extra_keyboard_modifiers; |
| 213 | 213 | ||
| 214 | static Lisp_Object Qvendor_specific_keysyms; | ||
| 215 | |||
| 214 | extern XrmDatabase x_load_resources (); | 216 | extern XrmDatabase x_load_resources (); |
| 215 | 217 | ||
| 216 | void x_delete_display (); | 218 | void x_delete_display (); |
| @@ -5624,9 +5626,14 @@ x_term_init (display_name, xrm_option, resource_name) | |||
| 5624 | { | 5626 | { |
| 5625 | dpyinfo->kboard = (KBOARD *) xmalloc (sizeof (KBOARD)); | 5627 | dpyinfo->kboard = (KBOARD *) xmalloc (sizeof (KBOARD)); |
| 5626 | init_kboard (dpyinfo->kboard); | 5628 | init_kboard (dpyinfo->kboard); |
| 5627 | /* Change this after lisp/term/x-win.el is prepared to initialize | 5629 | if (!EQ (XSYMBOL (Qvendor_specific_keysyms)->function, Qunbound)) |
| 5628 | this var in a server-dependent manner. */ | 5630 | { |
| 5629 | dpyinfo->kboard->Vsystem_key_alist = initial_kboard->Vsystem_key_alist; | 5631 | char *vendor = ServerVendor (dpy); |
| 5632 | dpyinfo->kboard->Vsystem_key_alist | ||
| 5633 | = call1 (Qvendor_specific_keysyms, | ||
| 5634 | build_string (vendor ? vendor : "")); | ||
| 5635 | } | ||
| 5636 | |||
| 5630 | dpyinfo->kboard->next_kboard = all_kboards; | 5637 | dpyinfo->kboard->next_kboard = all_kboards; |
| 5631 | all_kboards = dpyinfo->kboard; | 5638 | all_kboards = dpyinfo->kboard; |
| 5632 | /* Don't let the initial kboard remain current longer than necessary. | 5639 | /* Don't let the initial kboard remain current longer than necessary. |
| @@ -5896,5 +5903,8 @@ syms_of_xterm () | |||
| 5896 | 5903 | ||
| 5897 | staticpro (&last_mouse_scroll_bar); | 5904 | staticpro (&last_mouse_scroll_bar); |
| 5898 | last_mouse_scroll_bar = Qnil; | 5905 | last_mouse_scroll_bar = Qnil; |
| 5906 | |||
| 5907 | staticpro (&Qvendor_specific_keysyms); | ||
| 5908 | Qvendor_specific_keysyms = intern ("vendor-specific-keysyms"); | ||
| 5899 | } | 5909 | } |
| 5900 | #endif /* ! defined (HAVE_X_WINDOWS) */ | 5910 | #endif /* ! defined (HAVE_X_WINDOWS) */ |