aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoakim Verona2011-10-26 13:50:37 +0200
committerJoakim Verona2011-10-26 13:50:37 +0200
commitfa25a460d09ba56885d47ddd46d168eba6afdc6e (patch)
treec4e260dfdc215bb8a88a9b8d1b08540392ce681c /src
parentc591741609839575d7e0353a180b8eeb3e422fe1 (diff)
parent3d0788a9a28c10b49217107b71d4ece9eee0f28d (diff)
downloademacs-fa25a460d09ba56885d47ddd46d168eba6afdc6e.tar.gz
emacs-fa25a460d09ba56885d47ddd46d168eba6afdc6e.zip
upstream
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog14
-rw-r--r--src/dispextern.h1
-rw-r--r--src/intervals.c2
-rw-r--r--src/keyboard.c16
-rw-r--r--src/sysdep.c5
5 files changed, 33 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 3f9b5beeab6..854c4987be5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,17 @@
12011-10-25 Paul Eggert <eggert@cs.ucla.edu>
2
3 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
4
52011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
6
7 * keyboard.c (test_undefined): New function (bug#9751).
8 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
9
102011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
11
12 * sysdep.c (init_sys_modes): Fix the check for the controlling
13 terminal (Bug#6649).
14
12011-10-20 Eli Zaretskii <eliz@gnu.org> 152011-10-20 Eli Zaretskii <eliz@gnu.org>
2 16
3 * dispextern.h (struct bidi_it): New member next_en_type. 17 * dispextern.h (struct bidi_it): New member next_en_type.
diff --git a/src/dispextern.h b/src/dispextern.h
index 40e41923554..006ceb31a5a 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -3374,6 +3374,7 @@ extern int tty_capable_p (struct tty_display_info *, unsigned, unsigned long, un
3374extern void set_tty_color_mode (struct tty_display_info *, struct frame *); 3374extern void set_tty_color_mode (struct tty_display_info *, struct frame *);
3375extern struct terminal *get_named_tty (const char *); 3375extern struct terminal *get_named_tty (const char *);
3376EXFUN (Ftty_type, 1); 3376EXFUN (Ftty_type, 1);
3377EXFUN (Fcontrolling_tty_p, 1);
3377extern void create_tty_output (struct frame *); 3378extern void create_tty_output (struct frame *);
3378extern struct terminal *init_tty (const char *, const char *, int); 3379extern struct terminal *init_tty (const char *, const char *, int);
3379extern void tty_append_glyph (struct it *); 3380extern void tty_append_glyph (struct it *);
diff --git a/src/intervals.c b/src/intervals.c
index 2063655cdb9..1f3f8cf793e 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -1723,8 +1723,6 @@ graft_intervals_into_buffer (INTERVAL source, EMACS_INT position,
1723 BUF_INTERVALS (buffer)->position = BEG; 1723 BUF_INTERVALS (buffer)->position = BEG;
1724 BUF_INTERVALS (buffer)->up_obj = 1; 1724 BUF_INTERVALS (buffer)->up_obj = 1;
1725 1725
1726 /* Explicitly free the old tree here? */
1727
1728 return; 1726 return;
1729 } 1727 }
1730 1728
diff --git a/src/keyboard.c b/src/keyboard.c
index a21008b9502..f06c8794a54 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -8918,6 +8918,14 @@ keyremap_step (Lisp_Object *keybuf, int bufsize, volatile keyremap *fkey,
8918 return 0; 8918 return 0;
8919} 8919}
8920 8920
8921static int
8922test_undefined (Lisp_Object binding)
8923{
8924 return (EQ (binding, Qundefined)
8925 || (!NILP (binding) && SYMBOLP (binding)
8926 && EQ (Fcommand_remapping (binding, Qnil, Qnil), Qundefined)));
8927}
8928
8921/* Read a sequence of keys that ends with a non prefix character, 8929/* Read a sequence of keys that ends with a non prefix character,
8922 storing it in KEYBUF, a buffer of size BUFSIZE. 8930 storing it in KEYBUF, a buffer of size BUFSIZE.
8923 Prompt with PROMPT. 8931 Prompt with PROMPT.
@@ -9868,7 +9876,9 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9868 } 9876 }
9869 } 9877 }
9870 9878
9871 if (first_binding < nmaps && NILP (submaps[first_binding]) 9879 if (first_binding < nmaps
9880 && NILP (submaps[first_binding])
9881 && !test_undefined (defs[first_binding])
9872 && indec.start >= t) 9882 && indec.start >= t)
9873 /* There is a binding and it's not a prefix. 9883 /* There is a binding and it's not a prefix.
9874 (and it doesn't have any input-decode-map translation pending). 9884 (and it doesn't have any input-decode-map translation pending).
@@ -9895,7 +9905,9 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9895 /* If there's a binding (i.e. 9905 /* If there's a binding (i.e.
9896 first_binding >= nmaps) we don't want 9906 first_binding >= nmaps) we don't want
9897 to apply this function-key-mapping. */ 9907 to apply this function-key-mapping. */
9898 fkey.end + 1 == t && first_binding >= nmaps, 9908 fkey.end + 1 == t
9909 && (first_binding >= nmaps
9910 || test_undefined (defs[first_binding])),
9899 &diff, prompt); 9911 &diff, prompt);
9900 UNGCPRO; 9912 UNGCPRO;
9901 if (done) 9913 if (done)
diff --git a/src/sysdep.c b/src/sysdep.c
index b0d5a1abbe3..d666f8dbb79 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -854,6 +854,7 @@ void
854init_sys_modes (struct tty_display_info *tty_out) 854init_sys_modes (struct tty_display_info *tty_out)
855{ 855{
856 struct emacs_tty tty; 856 struct emacs_tty tty;
857 Lisp_Object terminal;
857 858
858 Vtty_erase_char = Qnil; 859 Vtty_erase_char = Qnil;
859 860
@@ -907,7 +908,9 @@ init_sys_modes (struct tty_display_info *tty_out)
907 tty.main.c_cflag &= ~PARENB;/* Don't check parity */ 908 tty.main.c_cflag &= ~PARENB;/* Don't check parity */
908 } 909 }
909#endif 910#endif
910 if (tty_out->input == stdin) 911
912 XSETTERMINAL(terminal, tty_out->terminal);
913 if (!NILP (Fcontrolling_tty_p (terminal)))
911 { 914 {
912 tty.main.c_cc[VINTR] = quit_char; /* C-g (usually) gives SIGINT */ 915 tty.main.c_cc[VINTR] = quit_char; /* C-g (usually) gives SIGINT */
913 /* Set up C-g for both SIGQUIT and SIGINT. 916 /* Set up C-g for both SIGQUIT and SIGINT.