aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1995-05-13 00:13:02 +0000
committerKarl Heuer1995-05-13 00:13:02 +0000
commit59e755be76dfa0e5c66f8e49cfd0d0644f899f37 (patch)
tree2e827594d36ef43b911e36a0e460a686043288fa
parentb9df9faab45baa583b2dd388de708b0986bfbe30 (diff)
downloademacs-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.
-rw-r--r--src/xterm.c16
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. */
212extern int extra_keyboard_modifiers; 212extern int extra_keyboard_modifiers;
213 213
214static Lisp_Object Qvendor_specific_keysyms;
215
214extern XrmDatabase x_load_resources (); 216extern XrmDatabase x_load_resources ();
215 217
216void x_delete_display (); 218void 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) */