aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rwxr-xr-xautogen/configure3
-rw-r--r--configure.in9
-rw-r--r--doc/emacs/ChangeLog11
-rw-r--r--doc/emacs/abbrevs.texi2
-rw-r--r--doc/emacs/display.texi175
-rw-r--r--doc/emacs/emacs.texi1
-rw-r--r--doc/emacs/kmacro.texi2
-rw-r--r--doc/emacs/macos.texi2
-rw-r--r--doc/emacs/programs.texi2
-rw-r--r--doc/emacs/rmail.texi11
-rw-r--r--doc/emacs/search.texi4
-rw-r--r--etc/NEWS2
-rw-r--r--lisp/ChangeLog55
-rw-r--r--lisp/comint.el6
-rw-r--r--lisp/emacs-lisp/easy-mmode.el5
-rw-r--r--lisp/facemenu.el2
-rw-r--r--lisp/info.el2
-rw-r--r--lisp/isearch.el2
-rw-r--r--lisp/net/tramp-sh.el17
-rw-r--r--lisp/notifications.el3
-rw-r--r--lisp/progmodes/octave-inf.el2
-rw-r--r--lisp/progmodes/octave-mod.el8
-rw-r--r--lisp/subr.el2
-rw-r--r--nt/ChangeLog9
-rw-r--r--nt/INSTALL2
-rw-r--r--nt/makefile.w32-in1
-rw-r--r--src/ChangeLog16
-rw-r--r--src/dispextern.h1
-rw-r--r--src/keyboard.c16
-rw-r--r--src/sysdep.c5
31 files changed, 250 insertions, 139 deletions
diff --git a/ChangeLog b/ChangeLog
index 9b9a7176b05..2cd3f8eef85 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
12011-10-25 Nali Toja <nalitoja@gmail.com> (tiny change)
2
3 * configure.in (HAVE_GNU_MAKE): Respect MAKE env-var. (Bug#9868)
4
52011-10-24 Paul Eggert <eggert@cs.ucla.edu>
6
7 * configure.in (LIB_PTHREAD): Prepend -lpthread to LIBS (Bug#9852)
8 if the library is found. Otherwise, later configure-time tests,
9 such as the test for pthread_sigmask, generate the wrong results
10 on some platforms. Problem reported for FreeBSD by Nali Toja.
11
12011-10-20 Paul Eggert <eggert@cs.ucla.edu> 122011-10-20 Paul Eggert <eggert@cs.ucla.edu>
2 13
3 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794) 14 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
diff --git a/autogen/configure b/autogen/configure
index fc906db6fea..fceca6c0bec 100755
--- a/autogen/configure
+++ b/autogen/configure
@@ -10380,7 +10380,8 @@ fi
10380if test "$HAVE_PTHREAD" = yes; then 10380if test "$HAVE_PTHREAD" = yes; then
10381 case "${canonical}" in 10381 case "${canonical}" in
10382 *-hpux*) ;; 10382 *-hpux*) ;;
10383 *) LIB_PTHREAD="-lpthread" ;; 10383 *) LIB_PTHREAD="-lpthread"
10384 LIBS="$LIB_PTHREAD $LIBS" ;;
10384 esac 10385 esac
10385 10386
10386$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h 10387$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h
diff --git a/configure.in b/configure.in
index 5b32e10853f..ee52bc9e976 100644
--- a/configure.in
+++ b/configure.in
@@ -1374,7 +1374,7 @@ dnl check for GNU Make if we have GCC and autodepend is on.
1374if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then 1374if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
1375 AC_MSG_CHECKING([whether we are using GNU Make]) 1375 AC_MSG_CHECKING([whether we are using GNU Make])
1376 HAVE_GNU_MAKE=no 1376 HAVE_GNU_MAKE=no
1377 testval=`make --version 2>/dev/null | grep 'GNU Make'` 1377 testval=`${MAKE-make} --version 2>/dev/null | grep 'GNU Make'`
1378 if test "x$testval" != x; then 1378 if test "x$testval" != x; then
1379 HAVE_GNU_MAKE=yes 1379 HAVE_GNU_MAKE=yes
1380 else 1380 else
@@ -1723,7 +1723,8 @@ fi
1723if test "$HAVE_PTHREAD" = yes; then 1723if test "$HAVE_PTHREAD" = yes; then
1724 case "${canonical}" in 1724 case "${canonical}" in
1725 *-hpux*) ;; 1725 *-hpux*) ;;
1726 *) LIB_PTHREAD="-lpthread" ;; 1726 *) LIB_PTHREAD="-lpthread"
1727 LIBS="$LIB_PTHREAD $LIBS" ;;
1727 esac 1728 esac
1728 AC_DEFINE(HAVE_PTHREAD, 1, [Define to 1 if you have pthread (-lpthread).]) 1729 AC_DEFINE(HAVE_PTHREAD, 1, [Define to 1 if you have pthread (-lpthread).])
1729fi 1730fi
@@ -3739,14 +3740,14 @@ echo
3739 3740
3740if test "$HAVE_NS" = "yes"; then 3741if test "$HAVE_NS" = "yes"; then
3741 echo 3742 echo
3742 echo "You must run \"make install\" in order to test the built application. 3743 echo "You must run \"${MAKE-make} install\" in order to test the built application.
3743The installed application will go to nextstep/Emacs.app and can be 3744The installed application will go to nextstep/Emacs.app and can be
3744run or moved from there." 3745run or moved from there."
3745 if test "$EN_NS_SELF_CONTAINED" = "yes"; then 3746 if test "$EN_NS_SELF_CONTAINED" = "yes"; then
3746 echo "The application will be fully self-contained." 3747 echo "The application will be fully self-contained."
3747 else 3748 else
3748 echo "The lisp resources for the application will be installed under ${prefix}. 3749 echo "The lisp resources for the application will be installed under ${prefix}.
3749You may need to run \"make install\" with sudo. The application will fail 3750You may need to run \"${MAKE-make} install\" with sudo. The application will fail
3750to run if these resources are not installed." 3751to run if these resources are not installed."
3751 fi 3752 fi
3752 echo 3753 echo
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 28c61e23b8c..4b51486069c 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,14 @@
12011-10-25 Glenn Morris <rgm@gnu.org>
2
3 * abbrevs.texi (Saving Abbrevs):
4 quietly-read-abbrev-file is not a command. (Bug#9866)
5
62011-10-24 Chong Yidong <cyd@gnu.org>
7
8 * display.texi (Scrolling): Document scroll-up-line and
9 scroll-down-line. Document scroll-command property.
10 (Recentering): New node, split off from Scrolling.
11
12011-10-23 Chong Yidong <cyd@gnu.org> 122011-10-23 Chong Yidong <cyd@gnu.org>
2 13
3 * frames.texi (Scroll Bars): GTK uses right scroll bars now. 14 * frames.texi (Scroll Bars): GTK uses right scroll bars now.
diff --git a/doc/emacs/abbrevs.texi b/doc/emacs/abbrevs.texi
index d0833ea0854..2eafadf4841 100644
--- a/doc/emacs/abbrevs.texi
+++ b/doc/emacs/abbrevs.texi
@@ -286,8 +286,6 @@ sessions.
286Write a file @var{file} describing all defined abbrevs. 286Write a file @var{file} describing all defined abbrevs.
287@item M-x read-abbrev-file @key{RET} @var{file} @key{RET} 287@item M-x read-abbrev-file @key{RET} @var{file} @key{RET}
288Read the file @var{file} and define abbrevs as specified therein. 288Read the file @var{file} and define abbrevs as specified therein.
289@item M-x quietly-read-abbrev-file @key{RET} @var{file} @key{RET}
290Similar but do not display a message about what is going on.
291@item M-x define-abbrevs 289@item M-x define-abbrevs
292Define abbrevs from definitions in current buffer. 290Define abbrevs from definitions in current buffer.
293@item M-x insert-abbrevs 291@item M-x insert-abbrevs
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index b72e24bf243..8995b1242b1 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -13,6 +13,7 @@ the text is displayed.
13 13
14@menu 14@menu
15* Scrolling:: Commands to move text up and down in a window. 15* Scrolling:: Commands to move text up and down in a window.
16* Recentering:: A scroll command that centers the current line.
16* Auto Scrolling:: Redisplay scrolls text automatically when needed. 17* Auto Scrolling:: Redisplay scrolls text automatically when needed.
17* Horizontal Scrolling:: Moving text left and right in a window. 18* Horizontal Scrolling:: Moving text left and right in a window.
18* Narrowing:: Restricting display and editing to a portion 19* Narrowing:: Restricting display and editing to a portion
@@ -48,15 +49,15 @@ portion of the buffer is displayed.
48 Scrolling ``forward'' or ``up'' advances the portion of the buffer 49 Scrolling ``forward'' or ``up'' advances the portion of the buffer
49displayed in the window; equivalently, it moves the buffer text 50displayed in the window; equivalently, it moves the buffer text
50upwards relative to the window. Scrolling ``backward'' or ``down'' 51upwards relative to the window. Scrolling ``backward'' or ``down''
51moves the displayed portion backwards, and moves the text downwards 52displays an earlier portion of the buffer, and moves the text
52relative to the window. In Emacs, scrolling ``up'' or ``down'' refers 53downwards relative to the window.
53to the direction that the text moves in the window, @emph{not} the 54
54direction that the window moves relative to the text; this terminology 55 In Emacs, scrolling ``up'' or ``down'' refers to the direction that
55was taken up by Emacs before the modern meaning of ``scrolling up'' 56the text moves in the window, @emph{not} the direction that the window
56and ``scrolling down'' became widely adopted. Hence the strange 57moves relative to the text. This terminology was adopted by Emacs
57result that @key{PageDown} scrolls ``up'' in the Emacs sense. In this 58before the modern meaning of ``scrolling up'' and ``scrolling down''
58manual, we refer to scrolling ``forward'' and ``backward'' where 59became widespread. Hence, the strange result that @key{PageDown}
59possible, in order to minimize confusion. 60scrolls ``up'' in the Emacs sense.
60 61
61 The portion of a buffer displayed in a window always contains point. 62 The portion of a buffer displayed in a window always contains point.
62If you move point past the bottom or top of the window, scrolling 63If you move point past the bottom or top of the window, scrolling
@@ -64,11 +65,6 @@ occurs automatically to bring it back onscreen (@pxref{Auto
64Scrolling}). You can also scroll explicitly with these commands: 65Scrolling}). You can also scroll explicitly with these commands:
65 66
66@table @kbd 67@table @kbd
67@item C-l
68Scroll the selected window so that the current line is the center-most
69text line; on subsequent consecutive invocations, make the current
70line the top-most line, the bottom-most line, and so on in cyclic
71order; also, maybe redisplay the screen (@code{recenter-top-bottom}).
72@item C-v 68@item C-v
73@itemx @key{next} 69@itemx @key{next}
74@itemx @key{PageDown} 70@itemx @key{PageDown}
@@ -77,6 +73,86 @@ Scroll forward by nearly a full window (@code{scroll-up-command}).
77@itemx @key{prior} 73@itemx @key{prior}
78@itemx @key{PageUp} 74@itemx @key{PageUp}
79Scroll backward (@code{scroll-down-command}). 75Scroll backward (@code{scroll-down-command}).
76@end table
77
78@kindex C-v
79@kindex M-v
80@kindex next
81@kindex prior
82@kindex PageDown
83@kindex PageUp
84@findex scroll-up-command
85@findex scroll-down-command
86 @kbd{C-v} (@code{scroll-up-command}) scrolls forward by nearly the
87whole window height. The effect is to take the two lines at the
88bottom of the window and put them at the top, followed by lines that
89were not previously visible. If point was in the text that scrolled
90off the top, it ends up on the window's new topmost line. The
91@key{next} (or @key{PageDown}) key is equivalent to @kbd{C-v}.
92
93 @kbd{M-v} (@code{scroll-down-command}) scrolls backward in a similar
94way. The @key{prior} (or @key{PageUp}) key is equivalent to
95@kbd{M-v}.
96
97@vindex next-screen-context-lines
98 The number of lines of overlap left by these scroll commands is
99controlled by the variable @code{next-screen-context-lines}, whose
100default value is 2. You can supply the commands with a numeric prefix
101argument, @var{n}, to scroll by @var{n} lines; Emacs attempts to leave
102point unchanged, so that the text and point move up or down together.
103@kbd{C-v} with a negative argument is like @kbd{M-v} and vice versa.
104
105@vindex scroll-error-top-bottom
106 By default, these commands signal an error (by beeping or flashing
107the screen) if no more scrolling is possible, because the window has
108reached the beginning or end of the buffer. If you change the
109variable @code{scroll-error-top-bottom} to @code{t}, the command moves
110point to the farthest possible position. If point is already there,
111the command signals an error.
112
113@vindex scroll-preserve-screen-position
114@cindex @code{scroll-command} property
115 Some users like scroll commands to keep point at the same screen
116position, so that scrolling back to the same screen conveniently
117returns point to its original position. You can enable this behavior
118via the variable @code{scroll-preserve-screen-position}. If the value
119is @code{t}, Emacs adjusts point to keep the cursor at the same screen
120position whenever a scroll command moves it off-window, rather than
121moving it to the topmost or bottommost line. With any other
122non-@code{nil} value, Emacs adjusts point this way even if the scroll
123command leaves point in the window. This variable affects all the
124scroll commands documented in this section, as well as scrolling with
125the mouse wheel (@pxref{Wheeled Mice}); in general, it affects any
126command that has a non-@code{nil} @code{scroll-command} property.
127@xref{Property Lists,,, elisp, The Emacs Lisp Reference Manual}.
128
129@vindex scroll-up
130@vindex scroll-down
131@findex scroll-up-line
132@findex scroll-down-line
133 The commands @kbd{M-x scroll-up} and @kbd{M-x scroll-down} behave
134similarly to @code{scroll-up-command} and @code{scroll-down-command},
135except they do not obey @code{scroll-error-top-bottom}. Prior to
136Emacs 24, these were the default commands for scrolling up and down.
137The commands @kbd{M-x scroll-up-line} and @kbd{M-x scroll-down-line}
138scroll the current window by one line at a time. If you intend to use
139any of these commands, you might want to give them key bindings
140(@pxref{Init Rebinding}).
141
142@node Recentering
143@section Recentering
144
145@table @kbd
146@item C-l
147Scroll the selected window so the current line is the center-most text
148line; on subsequent consecutive invocations, make the current line the
149top line, the bottom line, and so on in cyclic order. Possibly
150redisplay the screen too (@code{recenter-top-bottom}).
151
152@item M-x recenter
153Scroll the selected window so the current line is the center-most text
154line. Possibly redisplay the screen too.
155
80@item C-M-l 156@item C-M-l
81Scroll heuristically to bring useful information onto the screen 157Scroll heuristically to bring useful information onto the screen
82(@code{reposition-window}). 158(@code{reposition-window}).
@@ -107,14 +183,13 @@ non-zero value @var{n}, @kbd{C-l} always leaves at least @var{n}
107screen lines between point and the top or bottom of the window 183screen lines between point and the top or bottom of the window
108(@pxref{Auto Scrolling}). 184(@pxref{Auto Scrolling}).
109 185
110 You can also supply @kbd{C-l} with a prefix argument. With a plain 186 You can also give @kbd{C-l} a prefix argument. A plain prefix
111prefix argument, @kbd{C-u C-l}, Emacs simply recenters point. With a 187argument, @kbd{C-u C-l}, simply recenters point. A positive argument
112positive argument @var{n}, it scrolls to place point @var{n} lines 188@var{n} puts point @var{n} lines down from the top of the window. An
113down from the top of the window. An argument of zero puts point on 189argument of zero puts point on the topmost line. A negative argument
114the topmost line. A negative argument @var{-n} puts point @var{n} 190@var{-n} puts point @var{n} lines from the bottom of the window. When
115lines from the bottom of the window. When given an argument, 191given an argument, @kbd{C-l} does not clear the screen or cycle
116@kbd{C-l} does not clear the screen or cycle through different screen 192through different screen positions.
117positions.
118 193
119@vindex recenter-redisplay 194@vindex recenter-redisplay
120 If the variable @code{recenter-redisplay} has a non-@code{nil} 195 If the variable @code{recenter-redisplay} has a non-@code{nil}
@@ -127,62 +202,6 @@ becomes garbled for any reason (@pxref{Screen Garbled}).
127 The more primitive command @kbd{M-x recenter} behaves like 202 The more primitive command @kbd{M-x recenter} behaves like
128@code{recenter-top-bottom}, but does not cycle among screen positions. 203@code{recenter-top-bottom}, but does not cycle among screen positions.
129 204
130@kindex C-v
131@kindex M-v
132@kindex next
133@kindex prior
134@kindex PageDown
135@kindex PageUp
136@findex scroll-up-command
137@findex scroll-down-command
138 @kbd{C-v} (@code{scroll-up-command}) scrolls forward by nearly the
139whole window height. The effect is to take the two lines at the
140bottom of the window and put them at the top, followed by lines that
141were not previously visible. If point was in the text that scrolled
142off the top, it ends up on the window's new topmost line.
143
144 Similarly, @kbd{M-v} (@code{scroll-down-command}) scrolls backward.
145
146 We refer to @kbd{C-v} and @kbd{M-v} as @dfn{full-screen scroll
147commands}. The function key @key{next}, or @key{PageDown}, is
148equivalent to @kbd{C-v}; the function key @key{prior}, or
149@key{PageUp}, is equivalent to @kbd{M-v}.
150
151@vindex next-screen-context-lines
152 The variable @code{next-screen-context-lines} controls the number of
153lines of overlap left by the full-screen scroll commands; by default,
154it is 2. You can supply these commands with a numeric prefix argument
155@var{n}. This scrolls the window by @var{n} lines, while attempting
156to leave point unchanged (so that the text and point move up or down
157together). @kbd{C-v} with a negative argument is like @kbd{M-v} and
158vice versa.
159
160@vindex scroll-error-top-bottom
161 By default, the full-screen scroll commands signal an error (by
162beeping or flashing the screen) if no more scrolling is possible,
163because the window has reached the beginning or end of the buffer. If
164you change the variable @code{scroll-error-top-bottom} to @code{t},
165Emacs instead moves point to the farthest possible position. If point
166is already there, the command signals an error.
167
168@vindex scroll-preserve-screen-position
169 Some users like scroll commands to keep point at the same screen
170position. Then, scrolling back to the same screen also conveniently
171returns point to its original position. You can enable this via the
172variable @code{scroll-preserve-screen-position}. If the value is
173@code{t}, Emacs adjusts point to keep it at the same vertical position
174within the window, rather than the window edge, whenever a scroll
175command moves it off the window. With any other non-@code{nil} value,
176Emacs adjusts point this way even if the scroll command leaves point
177in the window.
178
179@vindex scroll-up
180@vindex scroll-down
181 The commands @code{scroll-up} and @code{scroll-down} behave
182similarly to @code{scroll-up-command} and @code{scroll-down-command},
183except they do not obey @code{scroll-error-top-bottom}. Prior to
184Emacs 24, these were the default commands for scrolling up and down.
185
186@kindex C-M-l 205@kindex C-M-l
187@findex reposition-window 206@findex reposition-window
188 @kbd{C-M-l} (@code{reposition-window}) scrolls the current window 207 @kbd{C-M-l} (@code{reposition-window}) scrolls the current window
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index cad0e4db3c0..b25c09aa29d 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -342,6 +342,7 @@ Registers
342Controlling the Display 342Controlling the Display
343 343
344* Scrolling:: Commands to move text up and down in a window. 344* Scrolling:: Commands to move text up and down in a window.
345* Recentering:: A scrolling command that centers the current line.
345* Auto Scrolling:: Redisplay scrolls text automatically when needed. 346* Auto Scrolling:: Redisplay scrolls text automatically when needed.
346* Horizontal Scrolling:: Moving text left and right in a window. 347* Horizontal Scrolling:: Moving text left and right in a window.
347* Narrowing:: Restricting display and editing to a portion 348* Narrowing:: Restricting display and editing to a portion
diff --git a/doc/emacs/kmacro.texi b/doc/emacs/kmacro.texi
index ac81377aec9..4676983fc67 100644
--- a/doc/emacs/kmacro.texi
+++ b/doc/emacs/kmacro.texi
@@ -147,7 +147,7 @@ beginning of the line and then executing the macro.
147@findex kmacro-start-macro 147@findex kmacro-start-macro
148@findex kmacro-end-macro 148@findex kmacro-end-macro
149 In addition to the @key{F3} and @key{F4} commands described above, 149 In addition to the @key{F3} and @key{F4} commands described above,
150Emacs also supports an older set of keybindings for defining and 150Emacs also supports an older set of key bindings for defining and
151executing keyboard macros. To begin a macro definition, type @kbd{C-x 151executing keyboard macros. To begin a macro definition, type @kbd{C-x
152(} (@code{kmacro-start-macro}); as with @key{F3}, a prefix argument 152(} (@code{kmacro-start-macro}); as with @key{F3}, a prefix argument
153appends this definition to the last keyboard macro. To end a macro 153appends this definition to the last keyboard macro. To end a macro
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi
index f4a5a2858cf..5a97fa8460b 100644
--- a/doc/emacs/macos.texi
+++ b/doc/emacs/macos.texi
@@ -36,7 +36,7 @@ Support}), but we hope to improve it in the future.
36 36
37 By default, the @key{alt} and @key{option} keys are the same as 37 By default, the @key{alt} and @key{option} keys are the same as
38@key{Meta}. The Mac @key{Cmd} key is the same as @key{Super}, and 38@key{Meta}. The Mac @key{Cmd} key is the same as @key{Super}, and
39Emacs provides a set of keybindings using this modifier key that mimic 39Emacs provides a set of key bindings using this modifier key that mimic
40other Mac / GNUstep applications (@pxref{Mac / GNUstep Events}). You 40other Mac / GNUstep applications (@pxref{Mac / GNUstep Events}). You
41can change these bindings in the usual way (@pxref{Key Bindings}). 41can change these bindings in the usual way (@pxref{Key Bindings}).
42 42
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 5745dd7c66c..2357902341e 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -1441,7 +1441,7 @@ parsed, and move point there (@code{semantic-complete-jump}).
1441@kindex C-c , @key{SPC} 1441@kindex C-c , @key{SPC}
1442Display a list of possible completions for the symbol at point 1442Display a list of possible completions for the symbol at point
1443(@code{semantic-complete-analyze-inline}). This also activates a set 1443(@code{semantic-complete-analyze-inline}). This also activates a set
1444of special keybindings for choosing a completion: @key{RET} accepts 1444of special key bindings for choosing a completion: @key{RET} accepts
1445the current completion, @kbd{M-n} and @kbd{M-p} cycle through possible 1445the current completion, @kbd{M-n} and @kbd{M-p} cycle through possible
1446completions, @key{TAB} completes as far as possible and then cycles, 1446completions, @key{TAB} completes as far as possible and then cycles,
1447and @kbd{C-g} or any other key aborts completion. 1447and @kbd{C-g} or any other key aborts completion.
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index 9e30b657284..71c23655608 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -1242,11 +1242,12 @@ coding system, the result should be readable.
1242@node Rmail Editing 1242@node Rmail Editing
1243@section Editing Within a Message 1243@section Editing Within a Message
1244 1244
1245 Most of the usual Emacs keybindings are available in Rmail mode, though a 1245 Most of the usual Emacs key bindings are available in Rmail mode,
1246few, such as @kbd{C-M-n} and @kbd{C-M-h}, are redefined by Rmail for 1246though a few, such as @kbd{C-M-n} and @kbd{C-M-h}, are redefined by
1247other purposes. However, the Rmail buffer is normally read only, and 1247Rmail for other purposes. However, the Rmail buffer is normally read
1248most of the letters are redefined as Rmail commands. If you want to 1248only, and most of the letters are redefined as Rmail commands. If you
1249edit the text of a message, you must use the Rmail command @kbd{e}. 1249want to edit the text of a message, you must use the Rmail command
1250@kbd{e}.
1250 1251
1251@table @kbd 1252@table @kbd
1252@item e 1253@item e
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 31b5aa37f83..a8bd1cdf18d 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -268,8 +268,8 @@ use it (@pxref{Rebinding}).
268 268
269@vindex isearch-mode-map 269@vindex isearch-mode-map
270 When incremental search is active, you can type @kbd{C-h C-h} to 270 When incremental search is active, you can type @kbd{C-h C-h} to
271access interactive help options, including a list of special 271access interactive help options, including a list of special key
272keybindings. These keybindings are part of the keymap 272bindings. These key bindings are part of the keymap
273@code{isearch-mode-map} (@pxref{Keymaps}). 273@code{isearch-mode-map} (@pxref{Keymaps}).
274 274
275@node Isearch Yank 275@node Isearch Yank
diff --git a/etc/NEWS b/etc/NEWS
index 24aea694902..d6b0bdb484c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -293,7 +293,7 @@ of buffer at first key-press (instead move to top/bottom of buffer)
293when `scroll-error-top-bottom' is non-nil. 293when `scroll-error-top-bottom' is non-nil.
294+++ 294+++
295*** New variable `scroll-error-top-bottom' (see above). 295*** New variable `scroll-error-top-bottom' (see above).
296 296+++
297*** New scrolling commands `scroll-up-line' and `scroll-down-line' 297*** New scrolling commands `scroll-up-line' and `scroll-down-line'
298scroll a line instead of full screen. 298scroll a line instead of full screen.
299+++ 299+++
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8ceb3617176..95113007f27 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,38 @@
12011-10-25 Michael Albinus <michael.albinus@gmx.de>
2
3 * net/tramp-sh.el (tramp-sh-handle-file-directory-p): Return t for
4 filenames "/method:foo:".
5
62011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
7
8 * comint.el (comint-get-old-input-default): Fix use-prompt-regexp case
9 (bug#9865).
10
112011-10-24 Glenn Morris <rgm@gnu.org>
12
13 * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix. (Bug#9819)
14
152011-10-24 Michael Albinus <michael.albinus@gmx.de>
16
17 * notifications.el: Add the requirement of a running D-Bus session
18 bus to the Commentary.
19
202011-10-24 Juri Linkov <juri@jurta.org>
21
22 * isearch.el (isearch-occur): Let-bind `search-spaces-regexp' to
23 `search-whitespace-regexp' only when `isearch-regexp' is non-nil.
24 (Bug#9364)
25
262011-10-24 Juri Linkov <juri@jurta.org>
27
28 * info.el (Info-following-node-name-re): Add newline to the list
29 of allowed characters for leading space. (Bug#9824)
30
312011-10-24 Stefan Monnier <monnier@iro.umontreal.ca>
32
33 * progmodes/octave-inf.el (inferior-octave-mode-map): Fix C-c C-h binding.
34 * progmodes/octave-mod.el (octave-help): Remove.
35
12011-10-23 Michael Albinus <michael.albinus@gmx.de> 362011-10-23 Michael Albinus <michael.albinus@gmx.de>
2 37
3 Sync with Tramp 2.2.3. 38 Sync with Tramp 2.2.3.
@@ -16,16 +51,16 @@
16 for toggle-read-only. Note that this hasn't called vc-next-action 51 for toggle-read-only. Note that this hasn't called vc-next-action
17 since 2008-05-02, though it wasn't documented at the time. 52 since 2008-05-02, though it wasn't documented at the time.
18 53
19 * vc/ediff-init.el (ediff-toggle-read-only-function): Use 54 * vc/ediff-init.el (ediff-toggle-read-only-function):
20 toggle-read-only. 55 Use toggle-read-only.
21 56
222011-10-22 Alan Mackenzie <bug-cc-mode@gnu.org> 572011-10-22 Alan Mackenzie <bug-cc-mode@gnu.org>
23 58
24 Fix bug #9560, sporadic wrong indentation; improve instrumentation 59 Fix bug #9560, sporadic wrong indentation; improve instrumentation
25 of c-parse-state. 60 of c-parse-state.
26 61
27 * cc-engine.el (c-append-lower-brace-pair-to-state-cache): correct 62 * cc-engine.el (c-append-lower-brace-pair-to-state-cache):
28 faulty logical expression. 63 correct faulty logical expression.
29 (c-parse-state-state, c-record-parse-state-state): 64 (c-parse-state-state, c-record-parse-state-state):
30 (c-replay-parse-state-state): New defvar/defuns. 65 (c-replay-parse-state-state): New defvar/defuns.
31 (c-debug-parse-state): Use new functions. 66 (c-debug-parse-state): Use new functions.
@@ -39,8 +74,8 @@
39 74
40 * progmodes/idlwave.el (idlwave-mode): 75 * progmodes/idlwave.el (idlwave-mode):
41 * progmodes/vera-mode.el (vera-mode): No need to set 76 * progmodes/vera-mode.el (vera-mode): No need to set
42 require-final-newline; that's done in prog-mode. Suggested by 77 require-final-newline; that's done in prog-mode.
43 Stefan Monnier. 78 Suggested by Stefan Monnier.
44 79
452011-10-21 Martin Rudalics <rudalics@gmx.at> 802011-10-21 Martin Rudalics <rudalics@gmx.at>
46 81
@@ -61,8 +96,8 @@
612011-10-21 Chong Yidong <cyd@gnu.org> 962011-10-21 Chong Yidong <cyd@gnu.org>
62 97
63 * progmodes/idlwave.el (idlwave-mode): 98 * progmodes/idlwave.el (idlwave-mode):
64 * progmodes/vera-mode.el (vera-mode): Use 99 * progmodes/vera-mode.el (vera-mode):
65 mode-require-final-newline. 100 Use mode-require-final-newline.
66 101
672011-10-20 Glenn Morris <rgm@gnu.org> 1022011-10-20 Glenn Morris <rgm@gnu.org>
68 103
@@ -198,8 +233,8 @@
198 (global-whitespace-mode, global-whitespace-newline-mode): 233 (global-whitespace-mode, global-whitespace-newline-mode):
199 * xt-mouse.el (xterm-mouse-mode): Doc fix. 234 * xt-mouse.el (xterm-mouse-mode): Doc fix.
200 235
201 * emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Fix 236 * emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
202 autogenerated docstring. 237 Fix autogenerated docstring.
203 238
2042011-10-19 Juri Linkov <juri@jurta.org> 2392011-10-19 Juri Linkov <juri@jurta.org>
205 240
diff --git a/lisp/comint.el b/lisp/comint.el
index 591be5e2d9d..b91b82adb21 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -2151,8 +2151,10 @@ current line, if point is on an output field.
2151If `comint-use-prompt-regexp' is non-nil, then return 2151If `comint-use-prompt-regexp' is non-nil, then return
2152the current line with any initial string matching the regexp 2152the current line with any initial string matching the regexp
2153`comint-prompt-regexp' removed." 2153`comint-prompt-regexp' removed."
2154 (let ((bof (field-beginning))) 2154 (let (bof)
2155 (if (null (get-char-property bof 'field)) ;Not `output'. 2155 (if (and (not comint-use-prompt-regexp)
2156 ;; Make sure we're in an input rather than output field.
2157 (null (get-char-property (setq bof (field-beginning)) 'field)))
2156 (field-string-no-properties bof) 2158 (field-string-no-properties bof)
2157 (comint-bol) 2159 (comint-bol)
2158 (buffer-substring-no-properties (point) (line-end-position))))) 2160 (buffer-substring-no-properties (point) (line-end-position)))))
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index b1cb0615e43..4b6f4d634ca 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -94,8 +94,9 @@ Optional LIGHTER is displayed in the modeline when the mode is on.
94Optional KEYMAP is the default keymap bound to the mode keymap. 94Optional KEYMAP is the default keymap bound to the mode keymap.
95 If non-nil, it should be a variable name (whose value is a keymap), 95 If non-nil, it should be a variable name (whose value is a keymap),
96 or an expression that returns either a keymap or a list of 96 or an expression that returns either a keymap or a list of
97 arguments for `easy-mmode-define-keymap'. If KEYMAP is not a symbol, 97 arguments for `easy-mmode-define-keymap'. If you supply a KEYMAP
98 this also defines the variable MODE-map. 98 argument that is not a symbol, this macro defines the variable
99 MODE-map and gives it the value that KEYMAP specifies.
99 100
100BODY contains code to execute each time the mode is enabled or disabled. 101BODY contains code to execute each time the mode is enabled or disabled.
101 It is executed after toggling the mode, and before running MODE-hook. 102 It is executed after toggling the mode, and before running MODE-hook.
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index 54b17d58f33..4f9db02b5e1 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -645,6 +645,8 @@ a list of colors that the current display can handle."
645 ;; text in menu entries) and `SystemWindowText' (the default 645 ;; text in menu entries) and `SystemWindowText' (the default
646 ;; color w32 uses for the text in windows and dialogs) may 646 ;; color w32 uses for the text in windows and dialogs) may
647 ;; be the same display color and be adjacent in the list. 647 ;; be the same display color and be adjacent in the list.
648 ;; These system colors all have names prefixed with "System",
649 ;; which is hardcoded in w32fns.c (SYSTEM_COLOR_PREFIX).
648 ;; This makes them different to any other color. Bug#9722 650 ;; This makes them different to any other color. Bug#9722
649 (not (and (eq system-type 'windows-nt) 651 (not (and (eq system-type 'windows-nt)
650 (string-match-p "^System" (car (car l)))))) 652 (string-match-p "^System" (car (car l))))))
diff --git a/lisp/info.el b/lisp/info.el
index 4ccbeba2a47..b8deb3c9c7f 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -2015,7 +2015,7 @@ Submatch 1 is the complete node name.
2015Submatch 2 if non-nil is the parenthesized file name part of the node name. 2015Submatch 2 if non-nil is the parenthesized file name part of the node name.
2016Submatch 3 is the local part of the node name. 2016Submatch 3 is the local part of the node name.
2017End of submatch 0, 1, and 3 are the same, so you can safely concat." 2017End of submatch 0, 1, and 3 are the same, so you can safely concat."
2018 (concat "[ \t]*" ;Skip leading space. 2018 (concat "[ \t\n]*" ;Skip leading space.
2019 "\\(\\(([^)]+)\\)?" ;Node name can start with a file name. 2019 "\\(\\(([^)]+)\\)?" ;Node name can start with a file name.
2020 "\\([" (or allowedchars "^,\t\n") "]*" ;Any number of allowed chars. 2020 "\\([" (or allowedchars "^,\t\n") "]*" ;Any number of allowed chars.
2021 "[" (or allowedchars "^,\t\n") " ]" ;The last char can't be a space. 2021 "[" (or allowedchars "^,\t\n") " ]" ;The last char can't be a space.
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 6cfcce59672..6bb23916da3 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1452,7 +1452,7 @@ string. NLINES has the same meaning as in `occur'."
1452 ;; Set `search-upper-case' to nil to not call 1452 ;; Set `search-upper-case' to nil to not call
1453 ;; `isearch-no-upper-case-p' in `occur-1'. 1453 ;; `isearch-no-upper-case-p' in `occur-1'.
1454 (search-upper-case nil) 1454 (search-upper-case nil)
1455 (search-spaces-regexp search-whitespace-regexp)) 1455 (search-spaces-regexp (if isearch-regexp search-whitespace-regexp)))
1456 (occur regexp nlines))) 1456 (occur regexp nlines)))
1457 1457
1458(declare-function hi-lock-read-face-name "hi-lock" ()) 1458(declare-function hi-lock-read-face-name "hi-lock" ())
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 56424f79476..55732194bc8 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -1594,17 +1594,14 @@ and gid of the corresponding user is taken. Both parameters must be integers."
1594 1594
1595(defun tramp-sh-handle-file-directory-p (filename) 1595(defun tramp-sh-handle-file-directory-p (filename)
1596 "Like `file-directory-p' for Tramp files." 1596 "Like `file-directory-p' for Tramp files."
1597 ;; Care must be taken that this function returns `t' for symlinks
1598 ;; pointing to directories. Surely the most obvious implementation
1599 ;; would be `test -d', but that returns false for such symlinks.
1600 ;; CCC: Stefan Monnier says that `test -d' follows symlinks. And
1601 ;; I now think he's right. So we could be using `test -d', couldn't
1602 ;; we?
1603 ;;
1604 ;; Alternatives: `cd %s', `test -d %s'
1605 (with-parsed-tramp-file-name filename nil 1597 (with-parsed-tramp-file-name filename nil
1606 (with-file-property v localname "file-directory-p" 1598 ;; `file-directory-p' is used as predicate for filename completion.
1607 (tramp-run-test "-d" filename)))) 1599 ;; Sometimes, when a connection is not established yet, it is
1600 ;; desirable to return t immediately for "/method:foo:". It can
1601 ;; be expected that this is always a directory.
1602 (or (zerop (length localname))
1603 (with-file-property v localname "file-directory-p"
1604 (tramp-run-test "-d" filename)))))
1608 1605
1609(defun tramp-sh-handle-file-writable-p (filename) 1606(defun tramp-sh-handle-file-writable-p (filename)
1610 "Like `file-writable-p' for Tramp files." 1607 "Like `file-writable-p' for Tramp files."
diff --git a/lisp/notifications.el b/lisp/notifications.el
index 42cd40df36b..a4e7fdd5425 100644
--- a/lisp/notifications.el
+++ b/lisp/notifications.el
@@ -30,6 +30,9 @@
30;; 30;;
31;; (require 'notifications) 31;; (require 'notifications)
32 32
33;; For proper usage, Emacs must be started in an environment with an
34;; active D-Bus session bus.
35
33;;; Code: 36;;; Code:
34(eval-when-compile 37(eval-when-compile
35 (require 'cl)) 38 (require 'cl))
diff --git a/lisp/progmodes/octave-inf.el b/lisp/progmodes/octave-inf.el
index cb64b2436c6..e9d890c3f26 100644
--- a/lisp/progmodes/octave-inf.el
+++ b/lisp/progmodes/octave-inf.el
@@ -68,7 +68,7 @@ mode, set this to (\"-q\" \"--traditional\")."
68 (define-key map "\C-c\C-l" 'inferior-octave-dynamic-list-input-ring) 68 (define-key map "\C-c\C-l" 'inferior-octave-dynamic-list-input-ring)
69 (define-key map [menu-bar inout list-history] 69 (define-key map [menu-bar inout list-history]
70 '("List Input History" . inferior-octave-dynamic-list-input-ring)) 70 '("List Input History" . inferior-octave-dynamic-list-input-ring))
71 (define-key map "\C-c\C-h" 'octave-help) 71 (define-key map "\C-c\C-h" 'info-lookup-symbol)
72 map) 72 map)
73 "Keymap used in Inferior Octave mode.") 73 "Keymap used in Inferior Octave mode.")
74 74
diff --git a/lisp/progmodes/octave-mod.el b/lisp/progmodes/octave-mod.el
index 183347cdeca..5e13b8533e7 100644
--- a/lisp/progmodes/octave-mod.el
+++ b/lisp/progmodes/octave-mod.el
@@ -655,14 +655,6 @@ including a reproducible test case and send the message."
655 655
656 (easy-menu-add octave-mode-menu) 656 (easy-menu-add octave-mode-menu)
657 (octave-initialize-completions)) 657 (octave-initialize-completions))
658
659(defvar info-lookup-mode)
660
661(defun octave-help ()
662 "Get help on Octave symbols from the Octave info files.
663Look up symbol in the function, operator and variable indices of the info files."
664 (let ((info-lookup-mode 'octave-mode))
665 (call-interactively 'info-lookup-symbol)))
666 658
667;;; Miscellaneous useful functions 659;;; Miscellaneous useful functions
668 660
diff --git a/lisp/subr.el b/lisp/subr.el
index 05ac198dd13..c88cef0ba0f 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -116,8 +116,6 @@ BODY should be a list of Lisp expressions.
116 ;; depend on backquote.el. 116 ;; depend on backquote.el.
117 (list 'function (cons 'lambda cdr))) 117 (list 'function (cons 'lambda cdr)))
118 118
119;; Partial application of functions (similar to "currying").
120;; This function is here rather than in subr.el because it uses CL.
121(defun apply-partially (fun &rest args) 119(defun apply-partially (fun &rest args)
122 "Return a function that is a partial application of FUN to ARGS. 120 "Return a function that is a partial application of FUN to ARGS.
123ARGS is a list of the first N arguments to pass to FUN. 121ARGS is a list of the first N arguments to pass to FUN.
diff --git a/nt/ChangeLog b/nt/ChangeLog
index fb3a168ebfe..08fd7677077 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,12 @@
12011-10-25 Eli Zaretskii <eliz@gnu.org>
2
3 * makefile.w32-in (dist): Don't put the top-level INSTALL into the
4 distribution. (Bug#9861)
5
62011-10-25 Christoph Scholtes <cschol2112@googlemail.com>
7
8 * INSTALL: Update URL for GTK download page.
9
12011-10-19 Eli Zaretskii <eliz@gnu.org> 102011-10-19 Eli Zaretskii <eliz@gnu.org>
2 11
3 * config.nt (HAVE_TZNAME, HAVE_DECL_TZNAME): Define. 12 * config.nt (HAVE_TZNAME, HAVE_DECL_TZNAME): Define.
diff --git a/nt/INSTALL b/nt/INSTALL
index b4a97011922..613610890ae 100644
--- a/nt/INSTALL
+++ b/nt/INSTALL
@@ -323,7 +323,7 @@
323 For PNG images, we recommend to use versions 1.4.x and later of 323 For PNG images, we recommend to use versions 1.4.x and later of
324 libpng, because previous versions had security issues. You can find 324 libpng, because previous versions had security issues. You can find
325 precompiled libraries and headers on the GTK download page for 325 precompiled libraries and headers on the GTK download page for
326 Windows (http://www.gtk.org/download-windows.html). 326 Windows (http://www.gtk.org/download/win32.php).
327 327
328 Versions 1.4.0 and later of libpng are binary incompatible with 328 Versions 1.4.0 and later of libpng are binary incompatible with
329 earlier versions, so Emacs will only look for libpng libraries which 329 earlier versions, so Emacs will only look for libpng libraries which
diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in
index 4e4e6eccbb7..07d9be2c117 100644
--- a/nt/makefile.w32-in
+++ b/nt/makefile.w32-in
@@ -263,7 +263,6 @@ dist: install-bin
263 $(CP) "$(INSTALL_DIR)/COPYING" $(TMP_DIST_DIR) 263 $(CP) "$(INSTALL_DIR)/COPYING" $(TMP_DIST_DIR)
264 $(CP) "$(INSTALL_DIR)/README" $(TMP_DIST_DIR) 264 $(CP) "$(INSTALL_DIR)/README" $(TMP_DIST_DIR)
265 $(CP) "$(INSTALL_DIR)/README.W32" $(TMP_DIST_DIR) 265 $(CP) "$(INSTALL_DIR)/README.W32" $(TMP_DIST_DIR)
266 $(CP) "$(INSTALL_DIR)/INSTALL" $(TMP_DIST_DIR)
267 $(CP_DIR) "$(INSTALL_DIR)/bin" $(TMP_DIST_DIR) 266 $(CP_DIR) "$(INSTALL_DIR)/bin" $(TMP_DIST_DIR)
268 $(CP_DIR) "$(INSTALL_DIR)/etc" $(TMP_DIST_DIR) 267 $(CP_DIR) "$(INSTALL_DIR)/etc" $(TMP_DIST_DIR)
269 $(CP_DIR) "$(INSTALL_DIR)/info" $(TMP_DIST_DIR) 268 $(CP_DIR) "$(INSTALL_DIR)/info" $(TMP_DIST_DIR)
diff --git a/src/ChangeLog b/src/ChangeLog
index 46c22caeea9..fb0057770e6 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,4 +1,4 @@
12011-10-24 Paul Eggert <eggert@cs.ucla.edu> 12011-10-25 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Fix integer width and related bugs. 3 Fix integer width and related bugs.
4 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp): 4 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
@@ -788,6 +788,20 @@
788 rather than rolling our own approximation. 788 rather than rolling our own approximation.
789 (SCROLL_BAR_VEC_SIZE): Remove; not used. 789 (SCROLL_BAR_VEC_SIZE): Remove; not used.
790 790
7912011-10-25 Paul Eggert <eggert@cs.ucla.edu>
792
793 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
794
7952011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
796
797 * keyboard.c (test_undefined): New function (bug#9751).
798 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
799
8002011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
801
802 * sysdep.c (init_sys_modes): Fix the check for the controlling
803 terminal (Bug#6649).
804
7912011-10-20 Eli Zaretskii <eliz@gnu.org> 8052011-10-20 Eli Zaretskii <eliz@gnu.org>
792 806
793 * dispextern.h (struct bidi_it): New member next_en_type. 807 * dispextern.h (struct bidi_it): New member next_en_type.
diff --git a/src/dispextern.h b/src/dispextern.h
index 5f2c844b58d..b1c3d6237c9 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -3346,6 +3346,7 @@ extern int tty_capable_p (struct tty_display_info *, unsigned, unsigned long, un
3346extern void set_tty_color_mode (struct tty_display_info *, struct frame *); 3346extern void set_tty_color_mode (struct tty_display_info *, struct frame *);
3347extern struct terminal *get_named_tty (const char *); 3347extern struct terminal *get_named_tty (const char *);
3348EXFUN (Ftty_type, 1); 3348EXFUN (Ftty_type, 1);
3349EXFUN (Fcontrolling_tty_p, 1);
3349extern void create_tty_output (struct frame *); 3350extern void create_tty_output (struct frame *);
3350extern struct terminal *init_tty (const char *, const char *, int); 3351extern struct terminal *init_tty (const char *, const char *, int);
3351extern void tty_append_glyph (struct it *); 3352extern void tty_append_glyph (struct it *);
diff --git a/src/keyboard.c b/src/keyboard.c
index 3ff0e82440b..f5a3ef07829 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -8907,6 +8907,14 @@ keyremap_step (Lisp_Object *keybuf, int bufsize, volatile keyremap *fkey,
8907 return 0; 8907 return 0;
8908} 8908}
8909 8909
8910static int
8911test_undefined (Lisp_Object binding)
8912{
8913 return (EQ (binding, Qundefined)
8914 || (!NILP (binding) && SYMBOLP (binding)
8915 && EQ (Fcommand_remapping (binding, Qnil, Qnil), Qundefined)));
8916}
8917
8910/* Read a sequence of keys that ends with a non prefix character, 8918/* Read a sequence of keys that ends with a non prefix character,
8911 storing it in KEYBUF, a buffer of size BUFSIZE. 8919 storing it in KEYBUF, a buffer of size BUFSIZE.
8912 Prompt with PROMPT. 8920 Prompt with PROMPT.
@@ -9857,7 +9865,9 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9857 } 9865 }
9858 } 9866 }
9859 9867
9860 if (first_binding < nmaps && NILP (submaps[first_binding]) 9868 if (first_binding < nmaps
9869 && NILP (submaps[first_binding])
9870 && !test_undefined (defs[first_binding])
9861 && indec.start >= t) 9871 && indec.start >= t)
9862 /* There is a binding and it's not a prefix. 9872 /* There is a binding and it's not a prefix.
9863 (and it doesn't have any input-decode-map translation pending). 9873 (and it doesn't have any input-decode-map translation pending).
@@ -9884,7 +9894,9 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9884 /* If there's a binding (i.e. 9894 /* If there's a binding (i.e.
9885 first_binding >= nmaps) we don't want 9895 first_binding >= nmaps) we don't want
9886 to apply this function-key-mapping. */ 9896 to apply this function-key-mapping. */
9887 fkey.end + 1 == t && first_binding >= nmaps, 9897 fkey.end + 1 == t
9898 && (first_binding >= nmaps
9899 || test_undefined (defs[first_binding])),
9888 &diff, prompt); 9900 &diff, prompt);
9889 UNGCPRO; 9901 UNGCPRO;
9890 if (done) 9902 if (done)
diff --git a/src/sysdep.c b/src/sysdep.c
index d2ce5a8cc1b..efc627e80b7 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.