aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2013-12-11 19:06:29 +0200
committerEli Zaretskii2013-12-11 19:06:29 +0200
commita34a8cd1e46594c5776f187dd98583bcb82f9bc0 (patch)
tree92503ed7f7d3fb3c73c38d4689611b8202682970
parent8b55eeeb70be4b4ff3dd4694013bdb1a9f668bc6 (diff)
parent1421be8445803bdb9c3fece8c658836b5f0f9c34 (diff)
downloademacs-a34a8cd1e46594c5776f187dd98583bcb82f9bc0.tar.gz
emacs-a34a8cd1e46594c5776f187dd98583bcb82f9bc0.zip
Merge from trunk.
-rw-r--r--ChangeLog18
-rw-r--r--admin/ChangeLog5
-rwxr-xr-xadmin/merge-gnulib3
-rw-r--r--configure.ac12
-rw-r--r--doc/misc/Makefile.in14
-rw-r--r--doc/misc/octave-mode.texi477
-rw-r--r--etc/NEWS19
-rw-r--r--lib/gl_openssl.h116
-rw-r--r--lisp/ChangeLog82
-rw-r--r--lisp/Makefile.in2
-rw-r--r--lisp/bindings.el64
-rw-r--r--lisp/comint.el4
-rw-r--r--lisp/delsel.el33
-rw-r--r--lisp/dired-aux.el10
-rw-r--r--lisp/dired.el2
-rw-r--r--lisp/emacs-lisp/smie.el2
-rw-r--r--lisp/emacs-lisp/trace.el1
-rw-r--r--lisp/emulation/cua-base.el68
-rw-r--r--lisp/emulation/cua-rect.el6
-rw-r--r--lisp/misearch.el24
-rw-r--r--lisp/net/eww.el5
-rw-r--r--lisp/progmodes/octave.el18
-rw-r--r--lisp/simple.el2
-rw-r--r--m4/gl-openssl.m451
-rw-r--r--src/ChangeLog43
-rw-r--r--src/Makefile.in2
-rw-r--r--src/dispextern.h2
-rw-r--r--src/editfns.c3
-rw-r--r--src/keyboard.h2
-rw-r--r--src/nsterm.m4
-rw-r--r--src/term.c21
-rw-r--r--src/w32term.c6
-rw-r--r--src/window.c2
-rw-r--r--src/xfns.c9
-rw-r--r--src/xterm.c28
35 files changed, 796 insertions, 364 deletions
diff --git a/ChangeLog b/ChangeLog
index 0e5f084210f..6ccd80ae323 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
12013-12-06 RĂ¼diger Sonderfeld <ruediger@c-plusplus.de>
2
3 * doc/misc/octave-mode.texi: Imported from GNU Octave
4 (doc/interpreter/emacs.txi).
5 * doc/misc/Makefile.in: Add octave-mode.texi.
6
72013-12-11 Paul Eggert <eggert@cs.ucla.edu>
8
9 Remove the option of using libcrypto.
10 This scorches the earth and waits for spring;
11 see Ted Zlatanov and Stefan Monnier in
12 <http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00323.html>.
13 * configure.ac (with_openssl_default, HAVE_LIB_CRYPTO): Remove.
14 Do not say whether Emacs is configured to use a crypto library,
15 since it's no longer an option.
16 (gl_CRYPTO_CHECK): Define a dummy.
17 * lib/gl_openssl.h, m4/gl-openssl.m4: Remove.
18
12013-12-10 Paul Eggert <eggert@cs.ucla.edu> 192013-12-10 Paul Eggert <eggert@cs.ucla.edu>
2 20
3 * configure.ac: Disable libcrypto by default. 21 * configure.ac: Disable libcrypto by default.
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 730253e616f..22824995dfc 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,8 @@
12013-12-11 Paul Eggert <eggert@cs.ucla.edu>
2
3 Remove the option of using libcrypto.
4 * merge-gnulib: Remove lib/gl_openssh.h and m4/gl-openssl.m4.
5
12013-12-04 Eli Zaretskii <eliz@gnu.org> 62013-12-04 Eli Zaretskii <eliz@gnu.org>
2 7
3 * unidata/unidata-gen.el (unidata-prop-alist): Update bidi-class 8 * unidata/unidata-gen.el (unidata-prop-alist): Update bidi-class
diff --git a/admin/merge-gnulib b/admin/merge-gnulib
index a5bd622f4c0..af9300edbec 100755
--- a/admin/merge-gnulib
+++ b/admin/merge-gnulib
@@ -91,7 +91,8 @@ test -x "$gnulib_srcdir"/gnulib-tool || {
91} 91}
92 92
93"$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES && 93"$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES &&
94rm -- "$src"m4/fcntl-o.m4 "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 && 94rm -- "$src"lib/gl_openssl.h "$src"m4/fcntl-o.m4 "$src"m4/gl-openssl.m4 \
95 "$src"m4/gnulib-cache.m4"$src" m4/warn-on-use.m4 &&
95cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc && 96cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc &&
96cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux && 97cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux &&
97autoreconf -i -I m4 -- ${src:+"$src"} 98autoreconf -i -I m4 -- ${src:+"$src"}
diff --git a/configure.ac b/configure.ac
index 0a2e5c624e2..41258fcb7a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -94,8 +94,7 @@ AC_ARG_WITH(all,
94[AS_HELP_STRING([--without-all], 94[AS_HELP_STRING([--without-all],
95 [omit almost all features and build 95 [omit almost all features and build
96 small executable with minimal dependencies])], 96 small executable with minimal dependencies])],
97 [with_features=$withval 97 [with_features=$withval],
98 with_openssl_default=$withval],
99 [with_features=yes]) 98 [with_features=yes])
100 99
101dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING) 100dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING)
@@ -640,6 +639,8 @@ dnl alternative to lib/gnulib.mk, so as to avoid generating header files
640dnl that clash with MinGW. 639dnl that clash with MinGW.
641AM_CONDITIONAL([BUILDING_FOR_WINDOWSNT], [test "x$opsys" = "xmingw32"]) 640AM_CONDITIONAL([BUILDING_FOR_WINDOWSNT], [test "x$opsys" = "xmingw32"])
642 641
642# Avoid gnulib's tests for -lcrypto, so that there's no static dependency on it.
643AC_DEFUN([gl_CRYPTO_CHECK])
643# Avoid gnulib's tests for HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW, 644# Avoid gnulib's tests for HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW,
644# as we don't use them. 645# as we don't use them.
645AC_DEFUN([gl_FCNTL_O_FLAGS]) 646AC_DEFUN([gl_FCNTL_O_FLAGS])
@@ -4848,12 +4849,6 @@ else
4848 acl_summary=no 4849 acl_summary=no
4849fi 4850fi
4850 4851
4851if test -n "$LIB_CRYPTO"; then
4852 HAVE_LIB_CRYPTO=yes
4853else
4854 HAVE_LIB_CRYPTO=no
4855fi
4856
4857echo " 4852echo "
4858Configured for \`${canonical}'. 4853Configured for \`${canonical}'.
4859 4854
@@ -4893,7 +4888,6 @@ echo " Does Emacs use -lgconf? ${HAVE_GCONF}"
4893echo " Does Emacs use GSettings? ${HAVE_GSETTINGS}" 4888echo " Does Emacs use GSettings? ${HAVE_GSETTINGS}"
4894echo " Does Emacs use a file notification library? ${NOTIFY_SUMMARY}" 4889echo " Does Emacs use a file notification library? ${NOTIFY_SUMMARY}"
4895echo " Does Emacs use access control lists? ${acl_summary}" 4890echo " Does Emacs use access control lists? ${acl_summary}"
4896echo " Does Emacs use a crypto library? ${HAVE_LIB_CRYPTO} $LIB_CRYPTO"
4897echo " Does Emacs use -lselinux? ${HAVE_LIBSELINUX}" 4891echo " Does Emacs use -lselinux? ${HAVE_LIBSELINUX}"
4898echo " Does Emacs use -lgnutls? ${HAVE_GNUTLS}" 4892echo " Does Emacs use -lgnutls? ${HAVE_GNUTLS}"
4899echo " Does Emacs use -lxml2? ${HAVE_LIBXML2}" 4893echo " Does Emacs use -lxml2? ${HAVE_LIBXML2}"
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index 70fb05e23e3..4c72aaa18ff 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -67,7 +67,7 @@ INFO_COMMON = ada-mode auth autotype bovine calc ccmode cl \
67 dbus dired-x ebrowse ede ediff edt eieio \ 67 dbus dired-x ebrowse ede ediff edt eieio \
68 emacs-mime epa erc ert eshell eudc efaq \ 68 emacs-mime epa erc ert eshell eudc efaq \
69 flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info \ 69 flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info \
70 mairix-el message mh-e newsticker nxml-mode \ 70 mairix-el message mh-e newsticker nxml-mode octave-mode \
71 org pcl-cvs pgg rcirc remember reftex sasl \ 71 org pcl-cvs pgg rcirc remember reftex sasl \
72 sc semantic ses sieve smtpmail speedbar srecode todo-mode tramp \ 72 sc semantic ses sieve smtpmail speedbar srecode todo-mode tramp \
73 url vip viper widget wisent woman 73 url vip viper widget wisent woman
@@ -564,6 +564,18 @@ nxml-mode.pdf: $(nxml_mode_deps)
564nxml-mode.html: $(nxml_mode_deps) 564nxml-mode.html: $(nxml_mode_deps)
565 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/nxml-mode.texi 565 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/nxml-mode.texi
566 566
567octave_mode_deps = ${srcdir}/octave-mode.texi ${gfdl}
568octave-mode : $(buildinfodir)/octave-mode$(INFO_EXT)
569$(buildinfodir)/octave-mode$(INFO_EXT): $(octave_mode_deps)
570 $(mkinfodir)
571 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/octave-mode.texi
572octave-mode.dvi: $(octave_mode_deps)
573 $(ENVADD) $(TEXI2DVI) ${srcdir}/octave-mode.texi
574octave-mode.pdf: $(octave_mode_deps)
575 $(ENVADD) $(TEXI2PDF) ${srcdir}/octave-mode.texi
576octave-mode.html: $(octave_mode_deps)
577 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/octave-mode.texi
578
567org_deps = ${srcdir}/org.texi ${gfdl} 579org_deps = ${srcdir}/org.texi ${gfdl}
568org : $(buildinfodir)/org$(INFO_EXT) 580org : $(buildinfodir)/org$(INFO_EXT)
569$(buildinfodir)/org$(INFO_EXT): $(org_deps) 581$(buildinfodir)/org$(INFO_EXT): $(org_deps)
diff --git a/doc/misc/octave-mode.texi b/doc/misc/octave-mode.texi
new file mode 100644
index 00000000000..2efe9f9d1c4
--- /dev/null
+++ b/doc/misc/octave-mode.texi
@@ -0,0 +1,477 @@
1\input texinfo @c -*-texinfo-*-
2@c %**start of header
3@setfilename ../../info/octave-mode
4@settitle Octave Mode
5@c %**end of header
6
7@copying
8Copyright @copyright{} 1996--2013 Free Software Foundation, Inc.
9
10@quotation
11Permission is granted to copy, distribute and/or modify this document
12under the terms of the GNU Free Documentation License, Version 1.3 or
13any later version published by the Free Software Foundation; with no
14Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
15and with the Back-Cover Texts as in (a) below. A copy of the license
16is included in the section entitled ``GNU Free Documentation License.''
17
18(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
19modify this GNU manual.''
20@end quotation
21@end copying
22
23@dircategory Emacs editing modes
24@direntry
25* Octave mode: (octave-mode). Emacs mode for editing GNU Octave files.
26@end direntry
27
28@finalout
29
30@titlepage
31@title Octave Mode
32@subtitle An Emacs mode for programming in GNU Octave
33
34@page
35@vskip 0pt plus 1filll
36@insertcopying
37@end titlepage
38
39@contents
40
41@ifnottex
42@node Top
43@top Octave Mode
44
45@insertcopying
46@end ifnottex
47
48@menu
49* Overview::
50* Using Octave Mode::
51* Running Octave from Within Emacs::
52* GNU Free Documentation License::
53* Key Index::
54* Variable Index::
55* Lisp Function Index::
56* Concept Index::
57@end menu
58
59@node Overview
60@chapter Overview
61
62The development of Octave code can greatly be facilitated using Emacs
63with Octave mode, a major mode for editing Octave files which can
64e.g.@: automatically indent the code, do some of the typing (with
65Abbrev mode) and show keywords, comments, strings, etc.@: in different
66faces (with Font-lock mode on devices that support it).
67
68It is also possible to run Octave from within Emacs, either by
69directly entering commands at the prompt in a buffer in Inferior
70Octave mode, or by interacting with Octave from within a file with
71Octave code. This is useful in particular for debugging Octave code.
72
73@node Using Octave Mode
74@chapter Using Octave Mode
75@cindex Using Octave Mode
76
77In Octave mode, the following special Emacs commands can be used in
78addition to the standard Emacs commands.
79
80@table @kbd
81@item C-M-j
82@kindex C-M-j
83@findex octave-indent-new-comment-line
84@vindex octave-continuation-string
85Break Octave line at point, continuing comment if within one. Insert
86@code{octave-continuation-string} before breaking the line unless
87inside a list. Signal an error if within a single-quoted string.
88
89@item C-c ;
90@kindex C-c ;
91@findex octave-update-function-file-comment
92Query replace function names in function file comment.
93
94@item C-c C-p
95@kindex C-c C-p
96@findex octave-previous-code-line
97Move one line of Octave code backward, skipping empty and comment
98lines (@code{octave-previous-code-line}). With numeric prefix
99argument @var{n}, move that many code lines backward (forward if
100@var{n} is negative).
101
102@item C-c C-n
103@kindex C-c C-n
104@findex octave-next-code-line
105Move one line of Octave code forward, skipping empty and comment lines
106(@code{octave-next-code-line}). With numeric prefix argument @var{n},
107move that many code lines forward (backward if @var{n} is negative).
108
109@item C-c C-a
110@kindex C-c C-a
111@findex octave-beginning-of-line
112Move to the beginning of the physical line
113(@code{octave-beginning-of-line}). If point is in an empty or comment
114line, simply go to its beginning; otherwise, move backwards to the
115beginning of the first code line which is not inside a continuation
116statement, i.e., which does not follow a code line ending in
117@samp{...} or @samp{\}, or is inside an open parenthesis list.
118
119@item C-c C-e
120@kindex C-c C-e
121@findex octave-end-of-line
122Move to the end of the physical line (@code{octave-end-of-line}). If
123point is in a code line, move forward to the end of the first Octave
124code line which does not end in @samp{...} or @samp{\} or is inside an
125open parenthesis list. Otherwise, simply go to the end of the current
126line.
127
128@item C-c M-C-h
129@kindex C-c M-C-h
130@findex octave-mark-block
131Put point at the beginning of this block, mark at the end
132(@code{octave-mark-block}). The block marked is the one that contains
133point or follows point.
134
135@item C-c ]
136@kindex C-c ]
137Close the current block on a separate line (@code{smie-close-block}).
138An error is signaled if no block to close is found.
139
140@item C-c C-f
141@kindex C-c C-f
142@findex octave-insert-defun
143Insert a function skeleton, prompting for the function's name, arguments
144and return values which have to be entered without parentheses
145(@code{octave-insert-defun}).
146@noindent
147in one of your Emacs startup files.
148@end table
149
150A common problem is that the @key{RET} key does @emph{not} indent the
151line to where the new text should go after inserting the newline. This
152is because the standard Emacs convention is that @key{RET} (aka
153@kbd{C-m}) just adds a newline, whereas @key{LFD} (aka @kbd{C-j}) adds a
154newline and indents it. This is particularly inconvenient for users with
155keyboards which do not have a special @key{LFD} key at all; in such
156cases, it is typically more convenient to use @key{RET} as the @key{LFD}
157key (rather than typing @kbd{C-j}).
158
159You can make @key{RET} do this by adding
160@lisp
161(define-key octave-mode-map "\C-m"
162 'octave-reindent-then-newline-and-indent)
163@end lisp
164@noindent
165to one of your Emacs startup files. Another, more generally applicable
166solution is
167@lisp
168(defun RET-behaves-as-LFD ()
169 (let ((x (key-binding "\C-j")))
170 (local-set-key "\C-m" x)))
171(add-hook 'octave-mode-hook 'RET-behaves-as-LFD)
172@end lisp
173@noindent
174(this works for all modes by adding to the startup hooks, without
175having to know the particular binding of @key{RET} in that mode!).
176Similar considerations apply for using @key{M-RET} as @key{M-LFD}. As
177@email{bwarsaw@@cnri.reston.va.us, Barry A. Warsaw} says in the
178documentation for his @code{cc-mode}, ``This is a very common
179question. @code{:-)} If you want this to be the default behavior,
180don't lobby me, lobby RMS!''
181
182The following variables can be used to customize Octave mode.
183
184@vtable @code
185@item octave-blink-matching-block
186Non-@code{nil} means show matching begin of block when inserting a space,
187newline or @samp{;} after an else or end keyword. Default is @code{t}.
188This is an extremely useful feature for automatically verifying that the
189keywords match---if they don't, an error message is displayed.
190
191@item octave-block-offset
192Extra indentation applied to statements in block structures.
193Default is 2.
194
195@item octave-continuation-offset
196Extra indentation applied to Octave continuation lines.
197Default is 4.
198
199@item octave-font-lock-texinfo-comment
200Highlight texinfo comment blocks. The default value is @code{t}.
201@end vtable
202
203If Font Lock mode is enabled, Octave mode will display
204
205@itemize @bullet
206@item
207strings in @code{font-lock-string-face}
208
209@item
210comments in @code{font-lock-comment-face}
211
212@item
213the Octave reserved words (such as all block keywords) and the text
214functions (such as @samp{cd} or @samp{who}) which are also reserved
215using @code{font-lock-keyword-face}
216
217@item
218the built-in operators (@samp{&&}, @samp{==}, @dots{}) using
219@code{font-lock-reference-face}
220
221@item
222and the function names in function declarations in
223@code{font-lock-function-name-face}.
224
225@item
226Function comments blocks in @code{octave-function-comment-block}
227@end itemize
228
229@cindex Imenu Support
230There is also rudimentary support for Imenu (@pxref{Imenu,,, emacs,
231The GNU Emacs Manual}). Currently, function names can be indexed.
232
233@cindex ElDoc Mode Support
234@vindex octave-eldoc-message-style
235ElDoc mode (@pxref{Lisp Doc,,, emacs, The GNU Emacs Manual}) is
236supported. By customizing @code{octave-eldoc-message-style} it can be
237changed from displaying one or multi line hints.
238
239@c @cindex TAGS
240@c @cindex Emacs TAGS files
241@c @cindex @file{octave-tags}
242@c You can generate TAGS files for Emacs from Octave @file{.m} files using
243@c the shell script @file{octave-tags} that is installed alongside your copy of
244@c Octave.
245@c
246@vindex octave-mode-hook
247Customization of Octave mode can be performed by modification of the
248variable @code{octave-mode-hook}.
249
250@node Running Octave from Within Emacs
251@chapter Running Octave from Within Emacs
252@cindex Inferior Octave Mode
253
254Octave mode provides commands for running an inferior
255Octave process in a special Emacs buffer. Use
256@lisp
257M-x run-octave
258@end lisp
259@noindent
260to directly start an inferior Octave process.
261
262@vindex inferior-octave-buffer
263This will start Octave in a special buffer the name of which is
264specified by the variable @code{inferior-octave-buffer} and defaults
265to @file{*Inferior Octave*}. From within this buffer, you can
266interact with the inferior Octave process `as usual', i.e., by
267entering Octave commands at the prompt. The buffer is in Inferior
268Octave mode, which is derived from the standard Comint mode, a major
269mode for interacting with an inferior interpreter. See the
270documentation for @code{comint-mode} for more details, and use
271@kbd{C-h b} to find out about available special keybindings.
272
273You can also communicate with an inferior Octave process from within
274files with Octave code (i.e., buffers in Octave mode), using the
275following commands.
276
277@table @kbd
278@item C-c C-i l
279@kindex C-c C-i l
280@findex octave-send-line
281@vindex octave-send-line-auto-forward
282Send the current line to the inferior Octave process
283(@code{octave-send-line}). With positive prefix argument @var{n},
284send that many lines. If @code{octave-send-line-auto-forward} is
285non-@code{nil}, go to the next unsent code line.
286
287@item C-c C-i b
288@kindex C-c C-i b
289@findex octave-send-block
290Send the current block to the inferior Octave process
291(@code{octave-send-block}).
292
293@item C-c C-i f
294@kindex C-c C-i f
295@findex octave-send-defun
296Send the current function to the inferior Octave process
297(@code{octave-send-defun}).
298
299@item C-c C-i r
300@kindex C-c C-i r
301@findex octave-send-region
302Send the region to the inferior Octave process
303(@code{octave-send-region}).
304
305@item C-c C-i a
306@kindex C-c C-i a
307@findex octave-send-buffer
308Send the entire buffer to the inferior Octave process
309(@code{octave-send-buffer}). If the buffer is associated with a file
310then sourcing the buffer by using @kbd{C-c C-l}
311(@code{octave-source-file}) should be preferred.
312
313@item C-c C-i s
314@kindex C-c C-i s
315@findex octave-show-process-buffer
316Make sure that `inferior-octave-buffer' is displayed
317(@code{octave-show-process-buffer}).
318
319@item C-c C-i q
320@kindex C-c C-i q
321@findex octave-hide-process-buffer
322Delete all windows that display the inferior Octave buffer
323(@code{octave-hide-process-buffer}).
324
325@item C-c C-i k
326@kindex C-c C-i k
327@findex octave-kill-process
328Kill the inferior Octave process and its buffer
329(@code{octave-kill-process}).
330
331@item C-c C-l
332@kindex C-c C-l
333@findex octave-source-file
334Parse and execute the current file in the inferior Octave buffer
335(@code{octave-source-file}). This is done using Octave's
336@code{source} function.
337
338@item M-.
339@kindex M-.
340@findex octave-find-definition
341@vindex octave-source-directories
342Find the definition of a function or variable. Functions implemented
343in C++ can be found if variable @code{octave-source-directories} is
344set correctly (@code{octave-find-definition}).
345
346@item C-h d
347@kindex C-h d
348@findex octave-help
349@vindex octave-help-buffer
350Display the documentation for function (@code{octave-help}). The
351buffer name can be changed by customizing @code{octave-help-buffer}.
352
353@item C-h a
354@kindex C-h a
355@findex octave-lookfor
356Search for a given string in all the first sentence of function help
357strings (@code{octave-lookfor}). With a @code{universal-argument} the
358entire help string is searched.
359
360@end table
361
362The effect of the commands which send code to the Octave process can be
363customized by the following variables.
364
365@vtable @code
366@item octave-send-echo-input
367Non-@code{nil} means echo input sent to the inferior Octave process.
368Default is @code{t}.
369
370@item octave-send-show-buffer
371Non-@code{nil} means display the buffer running the Octave process after
372sending a command (but without selecting it).
373Default is @code{t}.
374@end vtable
375
376If you send code and there is no inferior Octave process yet, it will
377be started automatically.
378
379@vindex inferior-octave-startup-args
380The startup of the inferior Octave process is highly customizable.
381The variable @code{inferior-octave-startup-args} can be used for
382specifying command lines arguments to be passed to Octave on startup
383as a list of strings. For example, to suppress the startup message
384and use `traditional' mode, set this to @code{("-q" "--traditional")}.
385You can also specify a startup file of Octave commands to be loaded on
386startup; note that these commands will not produce any visible output
387in the process buffer. Which file to use is controlled by the
388variable @code{inferior-octave-startup-file}. The default is
389@file{~/.emacs-octave} or if this file is not found
390@file{~/.emacs.d/init_octave.m}.
391
392@vindex inferior-octave-prompt-read-only
393By customizing @code{inferior-octave-prompt-read-only} the prompt can
394be changed to be read only. The default value is the same as
395@code{comint-prompt-read-only}.
396
397@vindex inferior-octave-mode-hook
398And finally, @code{inferior-octave-mode-hook} is run after starting
399the process and putting its buffer into Inferior Octave mode. Hence,
400if you like the up and down arrow keys to behave in the interaction
401buffer as in the shell, and you want this buffer to use nice colors,
402add
403@lisp
404(add-hook 'inferior-octave-mode-hook
405 (lambda ()
406 (define-key inferior-octave-mode-map [up]
407 'comint-previous-input)
408 (define-key inferior-octave-mode-map [down]
409 'comint-next-input)))
410@end lisp
411@noindent
412to your @file{.emacs} or @file{init.el} file. You could also swap the
413roles of @kbd{C-a} (@code{beginning-of-line}) and @code{C-c C-a}
414(@code{comint-bol}) using this hook.
415
416@vindex inferior-octave-prompt
417@quotation
418@strong{Note} that if you set your Octave prompts to something different
419from the defaults, make sure that @code{inferior-octave-prompt} matches
420them. Otherwise, @emph{nothing} will work, because Emacs will not know
421when Octave is waiting for input, or done sending output.
422@end quotation
423
424@node GNU Free Documentation License
425@chapter GNU Free Documentation License
426@include doclicense.texi
427
428@node Key Index
429@unnumbered Key Index
430
431@printindex ky
432
433@node Variable Index
434@unnumbered Variable Index
435
436@printindex vr
437
438@node Lisp Function Index
439@unnumbered Function Index
440
441@printindex fn
442
443@node Concept Index
444@unnumbered Concept Index
445
446@printindex cp
447
448
449@bye
450
451@c TODO Update
452
453@c @node Using the Emacs Info Reader for Octave
454@c @chapter Using the Emacs Info Reader for Octave
455
456@c You may also use the Emacs Info reader with Octave's @code{doc} function.
457
458@c If @file{gnuserv} is installed, add the lines
459@c @lisp
460@c (autoload 'octave-help "octave-hlp" nil t)
461@c (require 'gnuserv)
462@c (gnuserv-start)
463@c @end lisp
464@c @noindent
465@c to your @file{.emacs} file.
466
467@c You can use either `plain' Emacs Info or the function @code{octave-help}
468@c as your Octave info reader (for @samp{help -i}). In the former case,
469@c use @code{info_program ("info-emacs-info")}.
470@c The latter is perhaps more attractive because it allows to look up keys
471@c in the indices of @emph{several} info files related to Octave (provided
472@c that the Emacs variable @code{octave-help-files} is set correctly). In
473@c this case, use @code{info_program ("info-emacs-octave-help")}.
474
475@c If you use Octave from within Emacs, it is best to add these settings to
476@c your @file{~/.emacs-octave} startup file (or the file pointed to by the
477@c Emacs variable @code{inferior-octave-startup-file}).
diff --git a/etc/NEWS b/etc/NEWS
index 7f9aeffa5c6..55a1ded7099 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -247,7 +247,14 @@ You can pick the name of the function and the variables with `C-x 4 a'.
247 247
248* Changes in Specialized Modes and Packages in Emacs 24.4 248* Changes in Specialized Modes and Packages in Emacs 24.4
249 249
250** The backtrace debugger can display local vars with `v'. 250** CUA-mode
251CUA-mode was changed to make use of delete-selection-mode and
252shift-select-mode. So you can now enable it independently from
253transient-mark-mode, delete-selection-mode, and shift-select-mode.
254As a result, cua-highlight-region-shift-only is obsolete
255(you can disable transient-mark-mode to get the same result).
256
257** `delete-selection-mode' can be used without transient-mark-mode.
251 258
252** prolog-use-smie has been removed, along with the non-SMIE indentation code. 259** prolog-use-smie has been removed, along with the non-SMIE indentation code.
253 260
@@ -257,10 +264,6 @@ file and letting SMIE learn from it.
257 264
258** sh-script now uses its SMIE indentation algorithm by default. 265** sh-script now uses its SMIE indentation algorithm by default.
259 266
260** The debugger's `e' command evaluates the code in the context at point.
261This includes using the lexical environment at point, which means that
262`e' now lets you access lexical variables as well.
263
264** `eshell' now supports visual subcommands and options 267** `eshell' now supports visual subcommands and options
265Eshell has been able to handle "visual" commands (interactive, 268Eshell has been able to handle "visual" commands (interactive,
266non-line oriented commands such as top that require display 269non-line oriented commands such as top that require display
@@ -318,6 +321,12 @@ Use `electric-indent-mode' instead.
318** completing-read-multiple's separator can now be a regexp. 321** completing-read-multiple's separator can now be a regexp.
319The default separator is changed to allow surrounding spaces around the comma. 322The default separator is changed to allow surrounding spaces around the comma.
320 323
324** The backtrace debugger and local variables:
325*** The debugger's `e' command evaluates the code in the context at point.
326This includes using the lexical environment at point, which means that
327`e' now lets you access lexical variables as well.
328*** The backtrace debugger can display local vars with `v'.
329
321** Battery 330** Battery
322 331
323*** Battery information via the BSD `apm' utility is now supported. 332*** Battery information via the BSD `apm' utility is now supported.
diff --git a/lib/gl_openssl.h b/lib/gl_openssl.h
deleted file mode 100644
index 1fb61066b11..00000000000
--- a/lib/gl_openssl.h
+++ /dev/null
@@ -1,116 +0,0 @@
1/* gl_openssl.h -- wrap openssl crypto hash routines in gnulib interface
2
3 Copyright (C) 2013 Free Software Foundation, Inc.
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
17
18/* Written by PĂ¡draig Brady */
19
20#ifndef GL_OPENSSL_NAME
21# error "Please define GL_OPENSSL_NAME to 1,5,256 etc."
22#endif
23
24#ifndef _GL_INLINE_HEADER_BEGIN
25# error "Please include config.h first."
26#endif
27_GL_INLINE_HEADER_BEGIN
28#ifndef GL_OPENSSL_INLINE
29# define GL_OPENSSL_INLINE _GL_INLINE
30#endif
31
32/* Concatenate two preprocessor tokens. */
33#define _GLCRYPTO_CONCAT_(prefix, suffix) prefix##suffix
34#define _GLCRYPTO_CONCAT(prefix, suffix) _GLCRYPTO_CONCAT_ (prefix, suffix)
35
36#if GL_OPENSSL_NAME == 5
37# define OPENSSL_ALG md5
38#else
39# define OPENSSL_ALG _GLCRYPTO_CONCAT (sha, GL_OPENSSL_NAME)
40#endif
41
42/* Context type mappings. */
43#if BASE_OPENSSL_TYPE != GL_OPENSSL_NAME
44# undef BASE_OPENSSL_TYPE
45# if GL_OPENSSL_NAME == 224
46# define BASE_OPENSSL_TYPE 256
47# elif GL_OPENSSL_NAME == 384
48# define BASE_OPENSSL_TYPE 512
49# endif
50# define md5_CTX MD5_CTX
51# define sha1_CTX SHA_CTX
52# define sha224_CTX SHA256_CTX
53# define sha224_ctx sha256_ctx
54# define sha256_CTX SHA256_CTX
55# define sha384_CTX SHA512_CTX
56# define sha384_ctx sha512_ctx
57# define sha512_CTX SHA512_CTX
58# undef _gl_CTX
59# undef _gl_ctx
60# define _gl_CTX _GLCRYPTO_CONCAT (OPENSSL_ALG, _CTX) /* openssl type. */
61# define _gl_ctx _GLCRYPTO_CONCAT (OPENSSL_ALG, _ctx) /* gnulib type. */
62
63struct _gl_ctx { _gl_CTX CTX; };
64#endif
65
66/* Function name mappings. */
67#define md5_prefix MD5
68#define sha1_prefix SHA1
69#define sha224_prefix SHA224
70#define sha256_prefix SHA256
71#define sha384_prefix SHA384
72#define sha512_prefix SHA512
73#define _GLCRYPTO_PREFIX _GLCRYPTO_CONCAT (OPENSSL_ALG, _prefix)
74#define OPENSSL_FN(suffix) _GLCRYPTO_CONCAT (_GLCRYPTO_PREFIX, suffix)
75#define GL_CRYPTO_FN(suffix) _GLCRYPTO_CONCAT (OPENSSL_ALG, suffix)
76
77GL_OPENSSL_INLINE void
78GL_CRYPTO_FN (_init_ctx) (struct _gl_ctx *ctx)
79{ (void) OPENSSL_FN (_Init) ((_gl_CTX *) ctx); }
80
81/* These were never exposed by gnulib. */
82#if ! (GL_OPENSSL_NAME == 224 || GL_OPENSSL_NAME == 384)
83GL_OPENSSL_INLINE void
84GL_CRYPTO_FN (_process_bytes) (const void *buf, size_t len, struct _gl_ctx *ctx)
85{ OPENSSL_FN (_Update) ((_gl_CTX *) ctx, buf, len); }
86
87GL_OPENSSL_INLINE void
88GL_CRYPTO_FN (_process_block) (const void *buf, size_t len, struct _gl_ctx *ctx)
89{ GL_CRYPTO_FN (_process_bytes) (buf, len, ctx); }
90#endif
91
92GL_OPENSSL_INLINE void *
93GL_CRYPTO_FN (_finish_ctx) (struct _gl_ctx *ctx, void *res)
94{ OPENSSL_FN (_Final) (res, (_gl_CTX *) ctx); return res; }
95
96GL_OPENSSL_INLINE void *
97GL_CRYPTO_FN (_buffer) (const char *buf, size_t len, void *res)
98{ return OPENSSL_FN () ((const unsigned char *) buf, len, res); }
99
100GL_OPENSSL_INLINE void *
101GL_CRYPTO_FN (_read_ctx) (const struct _gl_ctx *ctx, void *res)
102{
103 /* Assume any unprocessed bytes in ctx are not to be ignored. */
104 _gl_CTX tmp_ctx = *(_gl_CTX *) ctx;
105 OPENSSL_FN (_Final) (res, &tmp_ctx);
106 return res;
107}
108
109/* Undef so we can include multiple times. */
110#undef GL_CRYPTO_FN
111#undef OPENSSL_FN
112#undef _GLCRYPTO_PREFIX
113#undef OPENSSL_ALG
114#undef GL_OPENSSL_NAME
115
116_GL_INLINE_HEADER_END
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index f61812f7e1a..22ff12fe6b4 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,85 @@
12013-12-11 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * emacs-lisp/smie.el (smie-indent--hanging-p): Don't bother matching
4 comment-start-skip, since it fails when that uses submatch 1 (bug#16041).
5
6 * emulation/cua-base.el (cua-paste): Add `delete-selection' property
7 instead of deleting the selection "by hand" (bug#16098).
8 Rely on insert-for-yank to yank rectangles.
9 (cua-highlight-region-shift-only): Mark obsolete.
10 (cua-mode): Don't enable/disable transient-mark-mode,
11 shift-select-mode (cua-mode works both with and without them), and
12 pc-selection-mode (obsolete).
13 * emulation/cua-rect.el (cua--activate-rectangle): Activate the mark.
14 (cua--deactivate-rectangle): Deactivate it.
15
16 * delsel.el (delete-selection-mode): Don't enable transient-mark-mode.
17 (delete-selection-helper): Make sure yank starts at the top of the
18 deleted region.
19 (minibuffer-keyboard-quit): Use region-active-p.
20
21 * emacs-lisp/trace.el (trace-make-advice): Don't deactivate the mark.
22
23 * simple.el (normal-erase-is-backspace-mode): Map kp-delete identically
24 to `delete' (bug#16109).
25
262013-12-11 RĂ¼diger Sonderfeld <ruediger@c-plusplus.de>
27
28 * progmodes/octave.el (octave-mode, inferior-octave-mode): Link to
29 info manual and show keybindings and set `:group' keyword.
30
312013-12-11 Juri Linkov <juri@jurta.org>
32
33 * delsel.el (delete-active-region): Let-bind `this-command'
34 to prevent `kill-region' from changing its original value.
35 (delete-selection-helper): Handle `overwrite-mode' for the type
36 `kill' exactly the same way as for the type `t'.
37 (insert-char, quoted-insert, reindent-then-newline-and-indent):
38 Support more commands. (Bug#13312)
39
402013-12-11 Juri Linkov <juri@jurta.org>
41
42 * bindings.el: Map kp keys to non-kp keys systematically
43 with basic modifiers control, meta and shift. (Bug#14397)
44
452013-12-11 Kenjiro NAKAYAMA <nakayamakenjiro@gmail.com> (tiny change)
46
47 * net/eww.el (eww-mode-map): Instead of "Quit" show "Exit" and
48 "Close browser" menu items. Fix wrong function of "List
49 bookmarks".
50
512013-12-11 Juri Linkov <juri@jurta.org>
52
53 * misearch.el (multi-isearch-buffers): Set the value of
54 `multi-isearch-buffer-list' globally. Set NO-RECURSIVE-EDIT
55 arg of isearch-forward to t.
56 (multi-isearch-buffers-regexp): Set the value of
57 `multi-isearch-buffer-list' globally. Set NO-RECURSIVE-EDIT
58 arg of isearch-forward-regexp to t.
59 (multi-isearch-files): Set the value of
60 `multi-isearch-file-list' globally. Set NO-RECURSIVE-EDIT
61 arg of isearch-forward to t.
62 (multi-isearch-files-regexp): Set the value of
63 `multi-isearch-file-list globally. Set NO-RECURSIVE-EDIT
64 arg of isearch-forward-regexp to t. (Bug#16035)
65
66 * dired-aux.el (dired-isearch-filenames): Set NO-RECURSIVE-EDIT
67 arg of isearch-forward to t.
68 (dired-isearch-filenames-regexp): Set NO-RECURSIVE-EDIT
69 arg of isearch-forward-regexp to t.
70 (dired-isearch-filter-filenames): Remove unnecessary check for
71 `dired-isearch-filenames'.
72
73 * comint.el (comint-history-isearch-backward):
74 Set NO-RECURSIVE-EDIT arg of isearch-backward to t.
75 (comint-history-isearch-backward-regexp):
76 Set NO-RECURSIVE-EDIT arg of isearch-backward-regexp to t.
77
782013-12-10 Eli Zaretskii <eliz@gnu.org>
79
80 * Makefile.in (autoloads): Run $(srcdir)/loaddefs.el through
81 unmsys--file-name. (Bug#16099)
82
12013-12-10 Teodor Zlatanov <tzz@lifelogs.com> 832013-12-10 Teodor Zlatanov <tzz@lifelogs.com>
2 84
3 * emacs-lisp/package.el (package-keyword-button-action): Remove 85 * emacs-lisp/package.el (package-keyword-button-action): Remove
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 9c9eacfd386..3675cd90e46 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -183,7 +183,7 @@ autoloads: $(LOADDEFS) doit
183 echo Directories: $$wins; \ 183 echo Directories: $$wins; \
184 $(emacs) -l autoload \ 184 $(emacs) -l autoload \
185 --eval '(setq autoload-builtin-package-versions t)' \ 185 --eval '(setq autoload-builtin-package-versions t)' \
186 --eval '(setq generated-autoload-file (expand-file-name "$(srcdir)/loaddefs.el"))' \ 186 --eval '(setq generated-autoload-file (expand-file-name (unmsys--file-name "$(srcdir)/loaddefs.el")))' \
187 -f batch-update-autoloads $$wins 187 -f batch-update-autoloads $$wins
188 188
189# This is required by the bootstrap-emacs target in ../src/Makefile, so 189# This is required by the bootstrap-emacs target in ../src/Makefile, so
diff --git a/lisp/bindings.el b/lisp/bindings.el
index b3b4f76b555..c159f44eecd 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -1056,36 +1056,30 @@ if `inhibit-field-text-motion' is non-nil."
1056;; FIXME: rather than list such mappings for every modifier-combination, 1056;; FIXME: rather than list such mappings for every modifier-combination,
1057;; we should come up with a way to do it generically, something like 1057;; we should come up with a way to do it generically, something like
1058;; (define-key function-key-map [*-kp-home] [*-home]) 1058;; (define-key function-key-map [*-kp-home] [*-home])
1059(define-key function-key-map [kp-home] [home]) 1059;; Currently we add keypad key combinations with basic modifiers
1060(define-key function-key-map [kp-left] [left]) 1060;; (to complement plain bindings in "Keypad support" section in simple.el)
1061(define-key function-key-map [kp-up] [up]) 1061;; Until [*-kp-home] is implemented, for more modifiers we could also use:
1062(define-key function-key-map [kp-right] [right]) 1062;; (todo-powerset '(control meta shift hyper super alt)) (Bug#14397)
1063(define-key function-key-map [kp-down] [down]) 1063(let ((modifiers '(nil (control) (meta) (control meta) (shift)
1064(define-key function-key-map [kp-prior] [prior]) 1064 (control shift) (meta shift) (control meta shift)))
1065(define-key function-key-map [kp-next] [next]) 1065 (keys '((kp-delete delete) (kp-insert insert)
1066(define-key function-key-map [M-kp-next] [M-next]) 1066 (kp-end end) (kp-down down) (kp-next next)
1067(define-key function-key-map [kp-end] [end]) 1067 (kp-left left) (kp-begin begin) (kp-right right)
1068(define-key function-key-map [kp-begin] [begin]) 1068 (kp-home home) (kp-up up) (kp-prior prior)
1069(define-key function-key-map [kp-insert] [insert]) 1069 (kp-enter enter) (kp-decimal ?.)
1070 (kp-0 ?0) (kp-1 ?1) (kp-2 ?2) (kp-3 ?3) (kp-4 ?4)
1071 (kp-5 ?5) (kp-6 ?6) (kp-7 ?7) (kp-8 ?8) (kp-9 ?9)
1072 (kp-add +) (kp-subtract -) (kp-multiply *) (kp-divide /))))
1073 (dolist (pair keys)
1074 (dolist (mod modifiers)
1075 (define-key function-key-map
1076 (vector (append mod (list (nth 0 pair))))
1077 (vector (append mod (list (nth 1 pair))))))))
1078
1070(define-key function-key-map [backspace] [?\C-?]) 1079(define-key function-key-map [backspace] [?\C-?])
1071(define-key function-key-map [delete] [?\C-?]) 1080(define-key function-key-map [delete] [?\C-?])
1072(define-key function-key-map [kp-delete] [?\C-?]) 1081(define-key function-key-map [kp-delete] [?\C-?])
1073(define-key function-key-map [S-kp-end] [S-end]) 1082
1074(define-key function-key-map [S-kp-down] [S-down])
1075(define-key function-key-map [S-kp-next] [S-next])
1076(define-key function-key-map [S-kp-left] [S-left])
1077(define-key function-key-map [S-kp-right] [S-right])
1078(define-key function-key-map [S-kp-home] [S-home])
1079(define-key function-key-map [S-kp-up] [S-up])
1080(define-key function-key-map [S-kp-prior] [S-prior])
1081(define-key function-key-map [C-S-kp-end] [C-S-end])
1082(define-key function-key-map [C-S-kp-down] [C-S-down])
1083(define-key function-key-map [C-S-kp-next] [C-S-next])
1084(define-key function-key-map [C-S-kp-left] [C-S-left])
1085(define-key function-key-map [C-S-kp-right] [C-S-right])
1086(define-key function-key-map [C-S-kp-home] [C-S-home])
1087(define-key function-key-map [C-S-kp-up] [C-S-up])
1088(define-key function-key-map [C-S-kp-prior] [C-S-prior])
1089;; Don't bind shifted keypad numeric keys, they reportedly 1083;; Don't bind shifted keypad numeric keys, they reportedly
1090;; interfere with the feature of some keyboards to produce 1084;; interfere with the feature of some keyboards to produce
1091;; numbers when NumLock is off. 1085;; numbers when NumLock is off.
@@ -1097,14 +1091,14 @@ if `inhibit-field-text-motion' is non-nil."
1097;(define-key function-key-map [S-kp-7] [S-home]) 1091;(define-key function-key-map [S-kp-7] [S-home])
1098;(define-key function-key-map [S-kp-8] [S-up]) 1092;(define-key function-key-map [S-kp-8] [S-up])
1099;(define-key function-key-map [S-kp-9] [S-prior]) 1093;(define-key function-key-map [S-kp-9] [S-prior])
1100(define-key function-key-map [C-S-kp-1] [C-S-end]) 1094;(define-key function-key-map [C-S-kp-1] [C-S-end])
1101(define-key function-key-map [C-S-kp-2] [C-S-down]) 1095;(define-key function-key-map [C-S-kp-2] [C-S-down])
1102(define-key function-key-map [C-S-kp-3] [C-S-next]) 1096;(define-key function-key-map [C-S-kp-3] [C-S-next])
1103(define-key function-key-map [C-S-kp-4] [C-S-left]) 1097;(define-key function-key-map [C-S-kp-4] [C-S-left])
1104(define-key function-key-map [C-S-kp-6] [C-S-right]) 1098;(define-key function-key-map [C-S-kp-6] [C-S-right])
1105(define-key function-key-map [C-S-kp-7] [C-S-home]) 1099;(define-key function-key-map [C-S-kp-7] [C-S-home])
1106(define-key function-key-map [C-S-kp-8] [C-S-up]) 1100;(define-key function-key-map [C-S-kp-8] [C-S-up])
1107(define-key function-key-map [C-S-kp-9] [C-S-prior]) 1101;(define-key function-key-map [C-S-kp-9] [C-S-prior])
1108 1102
1109;; Hitting C-SPC on text terminals, usually sends the ascii code 0 (aka C-@), 1103;; Hitting C-SPC on text terminals, usually sends the ascii code 0 (aka C-@),
1110;; so we can't distinguish those two keys, but usually we consider C-SPC 1104;; so we can't distinguish those two keys, but usually we consider C-SPC
diff --git a/lisp/comint.el b/lisp/comint.el
index afd93fc6ff0..08e8b162771 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -1407,13 +1407,13 @@ If nil, Isearch operates on the whole comint buffer."
1407 "Search for a string backward in input history using Isearch." 1407 "Search for a string backward in input history using Isearch."
1408 (interactive) 1408 (interactive)
1409 (let ((comint-history-isearch t)) 1409 (let ((comint-history-isearch t))
1410 (isearch-backward))) 1410 (isearch-backward nil t)))
1411 1411
1412(defun comint-history-isearch-backward-regexp () 1412(defun comint-history-isearch-backward-regexp ()
1413 "Search for a regular expression backward in input history using Isearch." 1413 "Search for a regular expression backward in input history using Isearch."
1414 (interactive) 1414 (interactive)
1415 (let ((comint-history-isearch t)) 1415 (let ((comint-history-isearch t))
1416 (isearch-backward-regexp))) 1416 (isearch-backward-regexp nil t)))
1417 1417
1418(defvar-local comint-history-isearch-message-overlay nil) 1418(defvar-local comint-history-isearch-message-overlay nil)
1419 1419
diff --git a/lisp/delsel.el b/lisp/delsel.el
index 3c9a6561cde..87e84e59dee 100644
--- a/lisp/delsel.el
+++ b/lisp/delsel.el
@@ -71,14 +71,15 @@ any selection."
71 :global t :group 'editing-basics 71 :global t :group 'editing-basics
72 (if (not delete-selection-mode) 72 (if (not delete-selection-mode)
73 (remove-hook 'pre-command-hook 'delete-selection-pre-hook) 73 (remove-hook 'pre-command-hook 'delete-selection-pre-hook)
74 (add-hook 'pre-command-hook 'delete-selection-pre-hook) 74 (add-hook 'pre-command-hook 'delete-selection-pre-hook)))
75 (transient-mark-mode t)))
76 75
77(defun delete-active-region (&optional killp) 76(defun delete-active-region (&optional killp)
78 "Delete the active region. 77 "Delete the active region.
79If KILLP in not-nil, the active region is killed instead of deleted." 78If KILLP in not-nil, the active region is killed instead of deleted."
80 (if killp 79 (if killp
81 (kill-region (point) (mark) t) 80 ;; Don't allow `kill-region' to change the value of `this-command'.
81 (let (this-command)
82 (kill-region (point) (mark) t))
82 (funcall region-extract-function 'delete-only)) 83 (funcall region-extract-function 'delete-only))
83 t) 84 t)
84 85
@@ -102,7 +103,13 @@ If KILLP in not-nil, the active region is killed instead of deleted."
102 FUNCTION should take no argument and return one of the above values or nil." 103 FUNCTION should take no argument and return one of the above values or nil."
103 (condition-case data 104 (condition-case data
104 (cond ((eq type 'kill) 105 (cond ((eq type 'kill)
105 (delete-active-region t)) 106 (delete-active-region t)
107 (if (and overwrite-mode
108 (eq this-command 'self-insert-command))
109 (let ((overwrite-mode nil))
110 (self-insert-command
111 (prefix-numeric-value current-prefix-arg))
112 (setq this-command 'ignore))))
106 ((eq type 'yank) 113 ((eq type 'yank)
107 ;; Before a yank command, make sure we don't yank the 114 ;; Before a yank command, make sure we don't yank the
108 ;; head of the kill-ring that really comes from the 115 ;; head of the kill-ring that really comes from the
@@ -114,7 +121,11 @@ If KILLP in not-nil, the active region is killed instead of deleted."
114 (fboundp 'mouse-region-match) 121 (fboundp 'mouse-region-match)
115 (mouse-region-match)) 122 (mouse-region-match))
116 (current-kill 1)) 123 (current-kill 1))
117 (delete-active-region)) 124 (let ((pos (copy-marker (region-beginning))))
125 (delete-active-region)
126 ;; If the region was, say, rectangular, make sure we yank
127 ;; from the top, to "replace".
128 (goto-char pos)))
118 ((eq type 'supersede) 129 ((eq type 'supersede)
119 (let ((empty-region (= (point) (mark)))) 130 (let ((empty-region (= (point) (mark))))
120 (delete-active-region) 131 (delete-active-region)
@@ -165,10 +176,14 @@ See `delete-selection-helper'."
165 (not (run-hook-with-args-until-success 176 (not (run-hook-with-args-until-success
166 'self-insert-uses-region-functions)))) 177 'self-insert-uses-region-functions))))
167 178
179(put 'insert-char 'delete-selection t)
180(put 'quoted-insert 'delete-selection t)
181
168(put 'yank 'delete-selection 'yank) 182(put 'yank 'delete-selection 'yank)
169(put 'clipboard-yank 'delete-selection 'yank) 183(put 'clipboard-yank 'delete-selection 'yank)
170(put 'insert-register 'delete-selection t) 184(put 'insert-register 'delete-selection t)
171 185
186(put 'reindent-then-newline-and-indent 'delete-selection t)
172(put 'newline-and-indent 'delete-selection t) 187(put 'newline-and-indent 'delete-selection t)
173(put 'newline 'delete-selection t) 188(put 'newline 'delete-selection t)
174(put 'open-line 'delete-selection 'kill) 189(put 'open-line 'delete-selection 'kill)
@@ -180,7 +195,7 @@ See `delete-selection-helper'."
180In Delete Selection mode, if the mark is active, just deactivate it; 195In Delete Selection mode, if the mark is active, just deactivate it;
181then it takes a second \\[keyboard-quit] to abort the minibuffer." 196then it takes a second \\[keyboard-quit] to abort the minibuffer."
182 (interactive) 197 (interactive)
183 (if (and delete-selection-mode transient-mark-mode mark-active) 198 (if (and delete-selection-mode (region-active-p))
184 (setq deactivate-mark t) 199 (setq deactivate-mark t)
185 (abort-recursive-edit))) 200 (abort-recursive-edit)))
186 201
@@ -197,9 +212,9 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
197 (define-key minibuffer-local-completion-map "\C-g" 'abort-recursive-edit) 212 (define-key minibuffer-local-completion-map "\C-g" 'abort-recursive-edit)
198 (define-key minibuffer-local-must-match-map "\C-g" 'abort-recursive-edit) 213 (define-key minibuffer-local-must-match-map "\C-g" 'abort-recursive-edit)
199 (define-key minibuffer-local-isearch-map "\C-g" 'abort-recursive-edit) 214 (define-key minibuffer-local-isearch-map "\C-g" 'abort-recursive-edit)
200 (dolist (sym '(self-insert-command yank clipboard-yank 215 (dolist (sym '(self-insert-command insert-char quoted-insert yank
201 insert-register 216 clipboard-yank insert-register newline-and-indent
202 newline-and-indent newline open-line)) 217 reindent-then-newline-and-indent newline open-line))
203 (put sym 'delete-selection nil)) 218 (put sym 'delete-selection nil))
204 ;; continue standard unloading 219 ;; continue standard unloading
205 nil) 220 nil)
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 31d0495175a..28bfb283717 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -2526,24 +2526,22 @@ Intended to be added to `isearch-mode-hook'."
2526 "Test whether the current search hit is a file name. 2526 "Test whether the current search hit is a file name.
2527Return non-nil if the text from BEG to END is part of a file 2527Return non-nil if the text from BEG to END is part of a file
2528name (has the text property `dired-filename')." 2528name (has the text property `dired-filename')."
2529 (if dired-isearch-filenames 2529 (text-property-not-all (min beg end) (max beg end)
2530 (text-property-not-all (min beg end) (max beg end) 2530 'dired-filename nil))
2531 'dired-filename nil)
2532 t))
2533 2531
2534;;;###autoload 2532;;;###autoload
2535(defun dired-isearch-filenames () 2533(defun dired-isearch-filenames ()
2536 "Search for a string using Isearch only in file names in the Dired buffer." 2534 "Search for a string using Isearch only in file names in the Dired buffer."
2537 (interactive) 2535 (interactive)
2538 (let ((dired-isearch-filenames t)) 2536 (let ((dired-isearch-filenames t))
2539 (isearch-forward))) 2537 (isearch-forward nil t)))
2540 2538
2541;;;###autoload 2539;;;###autoload
2542(defun dired-isearch-filenames-regexp () 2540(defun dired-isearch-filenames-regexp ()
2543 "Search for a regexp using Isearch only in file names in the Dired buffer." 2541 "Search for a regexp using Isearch only in file names in the Dired buffer."
2544 (interactive) 2542 (interactive)
2545 (let ((dired-isearch-filenames t)) 2543 (let ((dired-isearch-filenames t))
2546 (isearch-forward-regexp))) 2544 (isearch-forward-regexp nil t)))
2547 2545
2548 2546
2549;; Functions for searching in tags style among marked files. 2547;; Functions for searching in tags style among marked files.
diff --git a/lisp/dired.el b/lisp/dired.el
index 27327352afb..afd9fbca5c2 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3849,7 +3849,7 @@ Ask means pop up a menu for the user to select one of copy, move or link."
3849 3849
3850;;; Start of automatically extracted autoloads. 3850;;; Start of automatically extracted autoloads.
3851 3851
3852;;;### (autoloads nil "dired-aux" "dired-aux.el" "04b4cb6bde3220f55574eb1d99ac0d29") 3852;;;### (autoloads nil "dired-aux" "dired-aux.el" "4cb9d594789dacdf2445f338b9189357")
3853;;; Generated autoloads from dired-aux.el 3853;;; Generated autoloads from dired-aux.el
3854 3854
3855(autoload 'dired-diff "dired-aux" "\ 3855(autoload 'dired-diff "dired-aux" "\
diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el
index f025a8b400b..1c468e013d6 100644
--- a/lisp/emacs-lisp/smie.el
+++ b/lisp/emacs-lisp/smie.el
@@ -1165,7 +1165,7 @@ the beginning of a line."
1165 (forward-char 1)) 1165 (forward-char 1))
1166 (skip-chars-forward " \t") 1166 (skip-chars-forward " \t")
1167 (or (eolp) 1167 (or (eolp)
1168 (and (looking-at comment-start-skip) 1168 (and ;; (looking-at comment-start-skip) ;(bug#16041).
1169 (forward-comment (point-max)))) 1169 (forward-comment (point-max))))
1170 (point)))))) 1170 (point))))))
1171 1171
diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el
index f605c2865c0..3a2c44a8da6 100644
--- a/lisp/emacs-lisp/trace.el
+++ b/lisp/emacs-lisp/trace.el
@@ -222,6 +222,7 @@ be printed along with the arguments in the trace."
222 (lambda (body &rest args) 222 (lambda (body &rest args)
223 (let ((trace-level (1+ trace-level)) 223 (let ((trace-level (1+ trace-level))
224 (trace-buffer (get-buffer-create buffer)) 224 (trace-buffer (get-buffer-create buffer))
225 (deactivate-mark nil) ;Protect deactivate-mark.
225 (ctx (funcall context))) 226 (ctx (funcall context)))
226 (unless inhibit-trace 227 (unless inhibit-trace
227 (with-current-buffer trace-buffer 228 (with-current-buffer trace-buffer
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index 6c891c10eed..24149a33c89 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -294,6 +294,8 @@ But when the mark was set using \\[cua-set-mark], Transient Mark mode
294is not turned on." 294is not turned on."
295 :type 'boolean 295 :type 'boolean
296 :group 'cua) 296 :group 'cua)
297(make-obsolete-variable 'cua-highlight-region-shift-only
298 'transient-mark-mode "24.4")
297 299
298(defcustom cua-prefix-override-inhibit-delay 0.2 300(defcustom cua-prefix-override-inhibit-delay 0.2
299 "If non-nil, time in seconds to delay before overriding prefix key. 301 "If non-nil, time in seconds to delay before overriding prefix key.
@@ -858,6 +860,7 @@ With numeric prefix arg, copy to register 0-9 instead."
858 860
859(declare-function x-clipboard-yank "../term/x-win" ()) 861(declare-function x-clipboard-yank "../term/x-win" ())
860 862
863(put 'cua-paste 'delete-selection 'yank)
861(defun cua-paste (arg) 864(defun cua-paste (arg)
862 "Paste last cut or copied region or rectangle. 865 "Paste last cut or copied region or rectangle.
863An active region is deleted before executing the command. 866An active region is deleted before executing the command.
@@ -866,8 +869,7 @@ If global mark is active, copy from register or one character."
866 (interactive "P") 869 (interactive "P")
867 (setq arg (cua--prefix-arg arg)) 870 (setq arg (cua--prefix-arg arg))
868 (let ((regtxt (and cua--register (get-register cua--register))) 871 (let ((regtxt (and cua--register (get-register cua--register)))
869 (count (prefix-numeric-value arg)) 872 (count (prefix-numeric-value arg)))
870 paste-column paste-lines)
871 (cond 873 (cond
872 ((and cua--register (not regtxt)) 874 ((and cua--register (not regtxt))
873 (message "Nothing in register %c" cua--register)) 875 (message "Nothing in register %c" cua--register))
@@ -875,30 +877,12 @@ If global mark is active, copy from register or one character."
875 (if regtxt 877 (if regtxt
876 (cua--insert-at-global-mark regtxt) 878 (cua--insert-at-global-mark regtxt)
877 (when (not (eobp)) 879 (when (not (eobp))
878 (cua--insert-at-global-mark (filter-buffer-substring (point) (+ (point) count))) 880 (cua--insert-at-global-mark
881 (filter-buffer-substring (point) (+ (point) count)))
879 (forward-char count)))) 882 (forward-char count))))
880 (buffer-read-only 883 (buffer-read-only
881 (error "Cannot paste into a read-only buffer")) 884 (error "Cannot paste into a read-only buffer"))
882 (t 885 (t
883 ;; Must save register here, since delete may override reg 0.
884 (if mark-active
885 (if cua--rectangle
886 (progn
887 (goto-char (min (mark) (point)))
888 (setq paste-column (cua--rectangle-left))
889 (setq paste-lines (cua--delete-rectangle))
890 (if (= paste-lines 1)
891 (setq paste-lines nil))) ;; paste all
892 ;; Before a yank command, make sure we don't yank the
893 ;; head of the kill-ring that really comes from the
894 ;; currently active region we are going to delete.
895 ;; That would make yank a no-op.
896 (if (and (string= (filter-buffer-substring (point) (mark))
897 (car kill-ring))
898 (fboundp 'mouse-region-match)
899 (mouse-region-match))
900 (current-kill 1))
901 (cua-delete-region)))
902 (cond 886 (cond
903 (regtxt 887 (regtxt
904 (cond 888 (cond
@@ -906,16 +890,6 @@ If global mark is active, copy from register or one character."
906 ((consp regtxt) (cua--insert-rectangle regtxt)) 890 ((consp regtxt) (cua--insert-rectangle regtxt))
907 ((stringp regtxt) (insert-for-yank regtxt)) 891 ((stringp regtxt) (insert-for-yank regtxt))
908 (t (message "Unknown data in register %c" cua--register)))) 892 (t (message "Unknown data in register %c" cua--register))))
909 ((and cua--last-killed-rectangle
910 (eq (and kill-ring (car kill-ring)) (car cua--last-killed-rectangle)))
911 (let ((pt (point)))
912 (when (not (eq buffer-undo-list t))
913 (setq this-command 'cua--paste-rectangle)
914 (undo-boundary)
915 (setq buffer-undo-list (cons pt buffer-undo-list)))
916 (cua--insert-rectangle (cdr cua--last-killed-rectangle)
917 nil paste-column paste-lines)
918 (if arg (goto-char pt))))
919 ((eq this-original-command 'clipboard-yank) 893 ((eq this-original-command 'clipboard-yank)
920 (clipboard-yank)) 894 (clipboard-yank))
921 ((eq this-original-command 'x-clipboard-yank) 895 ((eq this-original-command 'x-clipboard-yank)
@@ -1426,9 +1400,7 @@ If ARG is the atom `-', scroll upward by nearly full screen."
1426 1400
1427;; State prior to enabling cua-mode 1401;; State prior to enabling cua-mode
1428;; Value is a list with the following elements: 1402;; Value is a list with the following elements:
1429;; transient-mark-mode
1430;; delete-selection-mode 1403;; delete-selection-mode
1431;; pc-selection-mode
1432 1404
1433(defvar cua--saved-state nil) 1405(defvar cua--saved-state nil)
1434 1406
@@ -1488,7 +1460,8 @@ shifted movement key, set `cua-highlight-region-shift-only'."
1488 (remove-hook 'post-command-hook 'cua--post-command-handler)) 1460 (remove-hook 'post-command-hook 'cua--post-command-handler))
1489 1461
1490 (if (not cua-mode) 1462 (if (not cua-mode)
1491 (setq emulation-mode-map-alists (delq 'cua--keymap-alist emulation-mode-map-alists)) 1463 (setq emulation-mode-map-alists
1464 (delq 'cua--keymap-alist emulation-mode-map-alists))
1492 (add-to-ordered-list 'emulation-mode-map-alists 'cua--keymap-alist 400) 1465 (add-to-ordered-list 'emulation-mode-map-alists 'cua--keymap-alist 400)
1493 (cua--select-keymaps)) 1466 (cua--select-keymaps))
1494 1467
@@ -1496,34 +1469,21 @@ shifted movement key, set `cua-highlight-region-shift-only'."
1496 (cua-mode 1469 (cua-mode
1497 (setq cua--saved-state 1470 (setq cua--saved-state
1498 (list 1471 (list
1499 transient-mark-mode 1472 (and (boundp 'delete-selection-mode) delete-selection-mode)))
1500 (and (boundp 'delete-selection-mode) delete-selection-mode)
1501 (and (boundp 'pc-selection-mode) pc-selection-mode)
1502 shift-select-mode))
1503 (if cua-delete-selection 1473 (if cua-delete-selection
1504 (delete-selection-mode 1) 1474 (delete-selection-mode 1)
1505 (if (and (boundp 'delete-selection-mode) delete-selection-mode) 1475 (if (and (boundp 'delete-selection-mode) delete-selection-mode)
1506 (delete-selection-mode -1))) 1476 (delete-selection-mode -1)))
1507 (if (and (boundp 'pc-selection-mode) pc-selection-mode) 1477 (if cua-highlight-region-shift-only (transient-mark-mode -1))
1508 (pc-selection-mode -1)) 1478 (cua--deactivate))
1509 (cua--deactivate)
1510 (setq shift-select-mode t)
1511 (transient-mark-mode (if cua-highlight-region-shift-only -1 1)))
1512 (cua--saved-state 1479 (cua--saved-state
1513 (setq transient-mark-mode (car cua--saved-state)) 1480 (if (nth 0 cua--saved-state)
1514 (if (nth 1 cua--saved-state)
1515 (delete-selection-mode 1) 1481 (delete-selection-mode 1)
1516 (if (and (boundp 'delete-selection-mode) delete-selection-mode) 1482 (if (and (boundp 'delete-selection-mode) delete-selection-mode)
1517 (delete-selection-mode -1))) 1483 (delete-selection-mode -1)))
1518 (if (nth 2 cua--saved-state)
1519 (pc-selection-mode 1))
1520 (setq shift-select-mode (nth 3 cua--saved-state))
1521 (if (called-interactively-p 'interactive) 1484 (if (called-interactively-p 'interactive)
1522 (message "CUA mode disabled.%s%s%s%s" 1485 (message "CUA mode disabled.%s"
1523 (if (nth 1 cua--saved-state) " Delete-Selection" "") 1486 (if (nth 0 cua--saved-state) " Delete-Selection enabled" "")))
1524 (if (and (nth 1 cua--saved-state) (nth 2 cua--saved-state)) " and" "")
1525 (if (nth 2 cua--saved-state) " PC-Selection" "")
1526 (if (or (nth 1 cua--saved-state) (nth 2 cua--saved-state)) " enabled" "")))
1527 (setq cua--saved-state nil)))) 1487 (setq cua--saved-state nil))))
1528 1488
1529 1489
diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el
index 8941bf27de7..71578031cba 100644
--- a/lisp/emulation/cua-rect.el
+++ b/lisp/emulation/cua-rect.el
@@ -718,7 +718,8 @@ If command is repeated at same position, delete the rectangle."
718 (cdr (cdr cua--last-rectangle)) 718 (cdr (cdr cua--last-rectangle))
719 (cua--rectangle-get-corners)) 719 (cua--rectangle-get-corners))
720 cua--status-string (if (cua--rectangle-virtual-edges) " [R]" "") 720 cua--status-string (if (cua--rectangle-virtual-edges) " [R]" "")
721 cua--last-rectangle nil)) 721 cua--last-rectangle nil)
722 (activate-mark))
722 723
723;; (defvar cua-save-point nil) 724;; (defvar cua-save-point nil)
724 725
@@ -731,7 +732,8 @@ If command is repeated at same position, delete the rectangle."
731 cua--rectangle nil 732 cua--rectangle nil
732 cua--rectangle-overlays nil 733 cua--rectangle-overlays nil
733 cua--status-string nil 734 cua--status-string nil
734 cua--mouse-last-pos nil)) 735 cua--mouse-last-pos nil)
736 (deactivate-mark))
735 737
736(defun cua--highlight-rectangle () 738(defun cua--highlight-rectangle ()
737 ;; This function is used to highlight the rectangular region. 739 ;; This function is used to highlight the rectangular region.
diff --git a/lisp/misearch.el b/lisp/misearch.el
index 0c4cd4ea323..36b826b862a 100644
--- a/lisp/misearch.el
+++ b/lisp/misearch.el
@@ -262,11 +262,11 @@ whose names match the specified regexp."
262 (multi-isearch-read-matching-buffers) 262 (multi-isearch-read-matching-buffers)
263 (multi-isearch-read-buffers)))) 263 (multi-isearch-read-buffers))))
264 (let ((multi-isearch-next-buffer-function 264 (let ((multi-isearch-next-buffer-function
265 'multi-isearch-next-buffer-from-list) 265 'multi-isearch-next-buffer-from-list))
266 (multi-isearch-buffer-list (mapcar #'get-buffer buffers))) 266 (setq multi-isearch-buffer-list (mapcar #'get-buffer buffers))
267 (switch-to-buffer (car multi-isearch-buffer-list)) 267 (switch-to-buffer (car multi-isearch-buffer-list))
268 (goto-char (if isearch-forward (point-min) (point-max))) 268 (goto-char (if isearch-forward (point-min) (point-max)))
269 (isearch-forward))) 269 (isearch-forward nil t)))
270 270
271;;;###autoload 271;;;###autoload
272(defun multi-isearch-buffers-regexp (buffers) 272(defun multi-isearch-buffers-regexp (buffers)
@@ -280,11 +280,11 @@ whose names match the specified regexp."
280 (multi-isearch-read-matching-buffers) 280 (multi-isearch-read-matching-buffers)
281 (multi-isearch-read-buffers)))) 281 (multi-isearch-read-buffers))))
282 (let ((multi-isearch-next-buffer-function 282 (let ((multi-isearch-next-buffer-function
283 'multi-isearch-next-buffer-from-list) 283 'multi-isearch-next-buffer-from-list))
284 (multi-isearch-buffer-list (mapcar #'get-buffer buffers))) 284 (setq multi-isearch-buffer-list (mapcar #'get-buffer buffers))
285 (switch-to-buffer (car multi-isearch-buffer-list)) 285 (switch-to-buffer (car multi-isearch-buffer-list))
286 (goto-char (if isearch-forward (point-min) (point-max))) 286 (goto-char (if isearch-forward (point-min) (point-max)))
287 (isearch-forward-regexp))) 287 (isearch-forward-regexp nil t)))
288 288
289 289
290;;; Global multi-file search invocations 290;;; Global multi-file search invocations
@@ -346,11 +346,11 @@ whose file names match the specified wildcard."
346 (multi-isearch-read-matching-files) 346 (multi-isearch-read-matching-files)
347 (multi-isearch-read-files)))) 347 (multi-isearch-read-files))))
348 (let ((multi-isearch-next-buffer-function 348 (let ((multi-isearch-next-buffer-function
349 'multi-isearch-next-file-buffer-from-list) 349 'multi-isearch-next-file-buffer-from-list))
350 (multi-isearch-file-list (mapcar #'expand-file-name files))) 350 (setq multi-isearch-file-list (mapcar #'expand-file-name files))
351 (find-file (car multi-isearch-file-list)) 351 (find-file (car multi-isearch-file-list))
352 (goto-char (if isearch-forward (point-min) (point-max))) 352 (goto-char (if isearch-forward (point-min) (point-max)))
353 (isearch-forward))) 353 (isearch-forward nil t)))
354 354
355;;;###autoload 355;;;###autoload
356(defun multi-isearch-files-regexp (files) 356(defun multi-isearch-files-regexp (files)
@@ -365,11 +365,11 @@ whose file names match the specified wildcard."
365 (multi-isearch-read-matching-files) 365 (multi-isearch-read-matching-files)
366 (multi-isearch-read-files)))) 366 (multi-isearch-read-files))))
367 (let ((multi-isearch-next-buffer-function 367 (let ((multi-isearch-next-buffer-function
368 'multi-isearch-next-file-buffer-from-list) 368 'multi-isearch-next-file-buffer-from-list))
369 (multi-isearch-file-list (mapcar #'expand-file-name files))) 369 (setq multi-isearch-file-list (mapcar #'expand-file-name files))
370 (find-file (car multi-isearch-file-list)) 370 (find-file (car multi-isearch-file-list))
371 (goto-char (if isearch-forward (point-min) (point-max))) 371 (goto-char (if isearch-forward (point-min) (point-max)))
372 (isearch-forward-regexp))) 372 (isearch-forward-regexp nil t)))
373 373
374 374
375(provide 'multi-isearch) 375(provide 'multi-isearch)
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 9d1c3a26949..8355ce1fb3c 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -418,7 +418,8 @@ word(s) will be searched for via `eww-search-prefix'."
418 418
419 (easy-menu-define nil map "" 419 (easy-menu-define nil map ""
420 '("Eww" 420 '("Eww"
421 ["Quit" eww-quit t] 421 ["Exit" eww-quit t]
422 ["Close browser" quit-window t]
422 ["Reload" eww-reload t] 423 ["Reload" eww-reload t]
423 ["Back to previous page" eww-back-url 424 ["Back to previous page" eww-back-url
424 :active (not (zerop (length eww-history)))] 425 :active (not (zerop (length eww-history)))]
@@ -429,7 +430,7 @@ word(s) will be searched for via `eww-search-prefix'."
429 ["View page source" eww-view-source] 430 ["View page source" eww-view-source]
430 ["Copy page URL" eww-copy-page-url t] 431 ["Copy page URL" eww-copy-page-url t]
431 ["Add bookmark" eww-add-bookmark t] 432 ["Add bookmark" eww-add-bookmark t]
432 ["List bookmarks" eww-copy-page-url t] 433 ["List bookmarks" eww-list-bookmarks t]
433 ["List cookies" url-cookie-list t])) 434 ["List cookies" url-cookie-list t]))
434 map)) 435 map))
435 436
diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el
index 778659c0de4..d551d0ddb57 100644
--- a/lisp/progmodes/octave.el
+++ b/lisp/progmodes/octave.el
@@ -528,8 +528,14 @@ Non-nil means always go to the next Octave code line after sending."
528Octave is a high-level language, primarily intended for numerical 528Octave is a high-level language, primarily intended for numerical
529computations. It provides a convenient command line interface 529computations. It provides a convenient command line interface
530for solving linear and nonlinear problems numerically. Function 530for solving linear and nonlinear problems numerically. Function
531definitions can also be stored in files and used in batch mode." 531definitions can also be stored in files and used in batch mode.
532
533See Info node `(octave-mode) Using Octave Mode' for more details.
534
535Key bindings:
536\\{octave-mode-map}"
532 :abbrev-table octave-abbrev-table 537 :abbrev-table octave-abbrev-table
538 :group 'octave
533 539
534 (smie-setup octave-smie-grammar #'octave-smie-rules 540 (smie-setup octave-smie-grammar #'octave-smie-rules
535 :forward-token #'octave-smie-forward-token 541 :forward-token #'octave-smie-forward-token
@@ -705,8 +711,16 @@ in the Inferior Octave buffer.")
705 (process-live-p inferior-octave-process)) 711 (process-live-p inferior-octave-process))
706 712
707(define-derived-mode inferior-octave-mode comint-mode "Inferior Octave" 713(define-derived-mode inferior-octave-mode comint-mode "Inferior Octave"
708 "Major mode for interacting with an inferior Octave process." 714 "Major mode for interacting with an inferior Octave process.
715
716See Info node `(octave-mode) Running Octave from Within Emacs' for more
717details.
718
719Key bindings:
720\\{inferior-octave-mode-map}"
709 :abbrev-table octave-abbrev-table 721 :abbrev-table octave-abbrev-table
722 :group 'octave
723
710 (setq comint-prompt-regexp inferior-octave-prompt) 724 (setq comint-prompt-regexp inferior-octave-prompt)
711 725
712 (setq-local comment-use-syntax t) 726 (setq-local comment-use-syntax t)
diff --git a/lisp/simple.el b/lisp/simple.el
index 260c1702def..af1139bb942 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -7435,7 +7435,7 @@ See also `normal-erase-is-backspace'."
7435 (if enabled 7435 (if enabled
7436 (progn 7436 (progn
7437 (define-key local-function-key-map [delete] [deletechar]) 7437 (define-key local-function-key-map [delete] [deletechar])
7438 (define-key local-function-key-map [kp-delete] [?\C-d]) 7438 (define-key local-function-key-map [kp-delete] [deletechar])
7439 (define-key local-function-key-map [backspace] [?\C-?]) 7439 (define-key local-function-key-map [backspace] [?\C-?])
7440 (dolist (b bindings) 7440 (dolist (b bindings)
7441 ;; Not sure if input-decode-map is really right, but 7441 ;; Not sure if input-decode-map is really right, but
diff --git a/m4/gl-openssl.m4 b/m4/gl-openssl.m4
deleted file mode 100644
index 0434c4c8721..00000000000
--- a/m4/gl-openssl.m4
+++ /dev/null
@@ -1,51 +0,0 @@
1# gl-openssl.m4 serial 3
2dnl Copyright (C) 2013 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved.
6
7AC_DEFUN([gl_SET_CRYPTO_CHECK_DEFAULT],
8[
9 m4_define([gl_CRYPTO_CHECK_DEFAULT], [$1])
10])
11gl_SET_CRYPTO_CHECK_DEFAULT([no])
12
13AC_DEFUN([gl_CRYPTO_CHECK],
14[
15 dnl gnulib users set this before gl_INIT with gl_SET_CRYPTO_CHECK_DEFAULT()
16 m4_divert_once([DEFAULTS], [with_openssl_default='gl_CRYPTO_CHECK_DEFAULT'])
17
18 dnl Only clear once, so crypto routines can be checked for individually
19 m4_divert_once([DEFAULTS], [LIB_CRYPTO=])
20
21 AC_ARG_WITH([openssl],
22 [AS_HELP_STRING([--with-openssl],
23 [use libcrypto hash routines. Valid ARGs are:
24 'yes', 'no', 'auto' => use if available,
25 'optional' => use if available and warn if not available;
26 default is ']gl_CRYPTO_CHECK_DEFAULT['])],
27 [],
28 [with_openssl=$with_openssl_default])
29
30 if test "x$1" = xMD5; then
31 ALG_header=md5.h
32 else
33 ALG_header=sha.h
34 fi
35
36 AC_SUBST([LIB_CRYPTO])
37 if test "x$with_openssl" != xno; then
38 AC_CHECK_LIB([crypto], [$1],
39 [AC_CHECK_HEADERS([openssl/$ALG_header],
40 [LIB_CRYPTO=-lcrypto
41 AC_DEFINE([HAVE_OPENSSL_$1], [1],
42 [Define to 1 if libcrypto is used for $1.])])])
43 if test "x$LIB_CRYPTO" = x; then
44 if test "x$with_openssl" = xyes; then
45 AC_MSG_ERROR([openssl development library not found for $1])
46 elif test "x$with_openssl" = xoptional; then
47 AC_MSG_WARN([openssl development library not found for $1])
48 fi
49 fi
50 fi
51])
diff --git a/src/ChangeLog b/src/ChangeLog
index 25271d6f6b8..89c640bd8c7 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,46 @@
12013-12-11 Ken Brown <kbrown@cornell.edu>
2
3 * dispextern.h (erase_phys_cursor):
4 * keyboard.h (make_ctrl_char): Declare prototypes if HAVE_NTGUI.
5
62013-12-11 Dmitry Antipov <dmantipov@yandex.ru>
7
8 * nsterm.m (x_free_frame_resources):
9 * term.c (tty_free_frame_resources):
10 * xterm.c (x_free_frame_resources): Do not check for non-NULL
11 face cache because it's implied by free_frame_faces anyway.
12 * w32term.c (x_free_frame_resources): Likewise. Do not call
13 free_frame_faces twice.
14
152013-12-11 RĂ¼diger Sonderfeld <ruediger@c-plusplus.de>
16
17 * editfns.c (Fformat_time_string): Mention %F in the doc.
18
192013-12-11 Martin Rudalics <rudalics@gmx.at>
20
21 * window.c (resize_frame_windows): Don't return immediately when
22 the root window's size doesn't change - the minibuffer window
23 may still have to be repositioned/resized.
24 * xfns.c (Fx_create_frame): Always change the frame size after
25 initializing the frame's faces.
26 * xterm.c (handle_one_xevent): Don't set pixel sizes here,
27 change_frame_size should already have done it.
28 (x_new_font): Assign new tool- and menu-bar heights.
29 (x_set_window_size_1): Account for tool- and menu-bar heights
30 (Bug#16013). Don't set pixel sizes since change_frame_size
31 should already have done it.
32
332013-12-11 Paul Eggert <eggert@cs.ucla.edu>
34
35 Remove the option of using libcrypto.
36 * Makefile.in (LIB_CRYPTO): Remove.
37 (LIBES): Don't use it.
38
392013-12-11 Juri Linkov <juri@jurta.org>
40
41 * term.c (term_get_fkeys_1): Remove non-standard IBM terminfo
42 as obsolete to avoid conflicts with <S-up>. (Bug#13471)
43
12013-12-10 Dmitry Antipov <dmantipov@yandex.ru> 442013-12-10 Dmitry Antipov <dmantipov@yandex.ru>
2 45
3 * xdisp.c (display_tool_bar_line): Don't extend on a previously 46 * xdisp.c (display_tool_bar_line): Don't extend on a previously
diff --git a/src/Makefile.in b/src/Makefile.in
index cef1ba5ed2e..7d91928acfe 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -139,7 +139,6 @@ M17N_FLT_LIBS = @M17N_FLT_LIBS@
139 139
140LIB_ACL=@LIB_ACL@ 140LIB_ACL=@LIB_ACL@
141LIB_CLOCK_GETTIME=@LIB_CLOCK_GETTIME@ 141LIB_CLOCK_GETTIME=@LIB_CLOCK_GETTIME@
142LIB_CRYPTO=@LIB_CRYPTO@
143LIB_EACCESS=@LIB_EACCESS@ 142LIB_EACCESS=@LIB_EACCESS@
144LIB_FDATASYNC=@LIB_FDATASYNC@ 143LIB_FDATASYNC=@LIB_FDATASYNC@
145LIB_TIMER_TIME=@LIB_TIMER_TIME@ 144LIB_TIMER_TIME=@LIB_TIMER_TIME@
@@ -404,7 +403,6 @@ ALLOBJS = $(FIRSTFILE_OBJ) $(VMLIMIT_OBJ) $(obj) $(otherobj)
404LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \ 403LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \
405 $(LIBX_OTHER) $(LIBSOUND) \ 404 $(LIBX_OTHER) $(LIBSOUND) \
406 $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_ACL) $(LIB_CLOCK_GETTIME) \ 405 $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_ACL) $(LIB_CLOCK_GETTIME) \
407 $(LIB_CRYPTO) \
408 $(LIB_EACCESS) $(LIB_FDATASYNC) $(LIB_TIMER_TIME) $(DBUS_LIBS) \ 406 $(LIB_EACCESS) $(LIB_FDATASYNC) $(LIB_TIMER_TIME) $(DBUS_LIBS) \
409 $(LIB_EXECINFO) $(XRANDR_LIBS) $(XINERAMA_LIBS) \ 407 $(LIB_EXECINFO) $(XRANDR_LIBS) $(XINERAMA_LIBS) \
410 $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ 408 $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \
diff --git a/src/dispextern.h b/src/dispextern.h
index 7de4edf2196..5976d068a78 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -3251,7 +3251,7 @@ extern void draw_phys_cursor_glyph (struct window *,
3251 enum draw_glyphs_face); 3251 enum draw_glyphs_face);
3252extern void get_phys_cursor_geometry (struct window *, struct glyph_row *, 3252extern void get_phys_cursor_geometry (struct window *, struct glyph_row *,
3253 struct glyph *, int *, int *, int *); 3253 struct glyph *, int *, int *, int *);
3254#ifdef WINDOWSNT 3254#if HAVE_NTGUI
3255extern void erase_phys_cursor (struct window *); 3255extern void erase_phys_cursor (struct window *);
3256#endif 3256#endif
3257extern void display_and_set_cursor (struct window *, bool, int, int, int, int); 3257extern void display_and_set_cursor (struct window *, bool, int, int, int, int);
diff --git a/src/editfns.c b/src/editfns.c
index 8e47d1f82e4..f67b95a8e81 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1723,6 +1723,7 @@ by text that describes the specified date and time in TIME:
1723%c is the locale's date and time format. 1723%c is the locale's date and time format.
1724%x is the locale's "preferred" date format. 1724%x is the locale's "preferred" date format.
1725%D is like "%m/%d/%y". 1725%D is like "%m/%d/%y".
1726%F is the ISO 8601 date format (like "%Y-%m-%d").
1726 1727
1727%R is like "%H:%M", %T is like "%H:%M:%S", %r is like "%I:%M:%S %p". 1728%R is like "%H:%M", %T is like "%H:%M:%S", %r is like "%I:%M:%S %p".
1728%X is the locale's "preferred" time format. 1729%X is the locale's "preferred" time format.
@@ -1741,7 +1742,7 @@ The modifiers are `E' and `O'. For certain characters X,
1741%EX is a locale's alternative version of %X; 1742%EX is a locale's alternative version of %X;
1742%OX is like %X, but uses the locale's number symbols. 1743%OX is like %X, but uses the locale's number symbols.
1743 1744
1744For example, to produce full ISO 8601 format, use "%Y-%m-%dT%T%z". 1745For example, to produce full ISO 8601 format, use "%FT%T%z".
1745 1746
1746usage: (format-time-string FORMAT-STRING &optional TIME UNIVERSAL) */) 1747usage: (format-time-string FORMAT-STRING &optional TIME UNIVERSAL) */)
1747 (Lisp_Object format_string, Lisp_Object timeval, Lisp_Object universal) 1748 (Lisp_Object format_string, Lisp_Object timeval, Lisp_Object universal)
diff --git a/src/keyboard.h b/src/keyboard.h
index a1aa59fe988..33a2d535cd6 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -518,7 +518,7 @@ extern bool input_polling_used (void);
518extern void clear_input_pending (void); 518extern void clear_input_pending (void);
519extern bool requeued_events_pending_p (void); 519extern bool requeued_events_pending_p (void);
520extern void bind_polling_period (int); 520extern void bind_polling_period (int);
521#ifdef WINDOWSNT 521#if HAVE_NTGUI
522extern int make_ctrl_char (int) ATTRIBUTE_CONST; 522extern int make_ctrl_char (int) ATTRIBUTE_CONST;
523#endif 523#endif
524extern void stuff_buffered_input (Lisp_Object); 524extern void stuff_buffered_input (Lisp_Object);
diff --git a/src/nsterm.m b/src/nsterm.m
index 9c87923f32e..733c05ae53a 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1155,9 +1155,7 @@ x_free_frame_resources (struct frame *f)
1155 block_input (); 1155 block_input ();
1156 1156
1157 free_frame_menubar (f); 1157 free_frame_menubar (f);
1158 1158 free_frame_faces (f);
1159 if (FRAME_FACE_CACHE (f))
1160 free_frame_faces (f);
1161 1159
1162 if (f == dpyinfo->x_focus_frame) 1160 if (f == dpyinfo->x_focus_frame)
1163 dpyinfo->x_focus_frame = 0; 1161 dpyinfo->x_focus_frame = 0;
diff --git a/src/term.c b/src/term.c
index 4d900020ce6..7b6cb41e23d 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1422,18 +1422,6 @@ term_get_fkeys_1 (void)
1422 CONDITIONAL_REASSIGN ("kD", "kI", "insert"); 1422 CONDITIONAL_REASSIGN ("kD", "kI", "insert");
1423 /* if there's no key_end keycap, map key_ll to 'end' keysym */ 1423 /* if there's no key_end keycap, map key_ll to 'end' keysym */
1424 CONDITIONAL_REASSIGN ("@7", "kH", "end"); 1424 CONDITIONAL_REASSIGN ("@7", "kH", "end");
1425
1426 /* IBM has their own non-standard dialect of terminfo.
1427 If the standard name isn't found, try the IBM name. */
1428 CONDITIONAL_REASSIGN ("kB", "KO", "backtab");
1429 CONDITIONAL_REASSIGN ("@4", "kJ", "execute"); /* actually "action" */
1430 CONDITIONAL_REASSIGN ("@4", "kc", "execute"); /* actually "command" */
1431 CONDITIONAL_REASSIGN ("%7", "ki", "menu");
1432 CONDITIONAL_REASSIGN ("@7", "kw", "end");
1433 CONDITIONAL_REASSIGN ("F1", "k<", "f11");
1434 CONDITIONAL_REASSIGN ("F2", "k>", "f12");
1435 CONDITIONAL_REASSIGN ("%1", "kq", "help");
1436 CONDITIONAL_REASSIGN ("*6", "kU", "select");
1437#undef CONDITIONAL_REASSIGN 1425#undef CONDITIONAL_REASSIGN
1438 } 1426 }
1439 1427
@@ -3845,10 +3833,7 @@ static void
3845tty_free_frame_resources (struct frame *f) 3833tty_free_frame_resources (struct frame *f)
3846{ 3834{
3847 eassert (FRAME_TERMCAP_P (f)); 3835 eassert (FRAME_TERMCAP_P (f));
3848 3836 free_frame_faces (f);
3849 if (FRAME_FACE_CACHE (f))
3850 free_frame_faces (f);
3851
3852 xfree (f->output_data.tty); 3837 xfree (f->output_data.tty);
3853} 3838}
3854 3839
@@ -3860,9 +3845,7 @@ static void
3860tty_free_frame_resources (struct frame *f) 3845tty_free_frame_resources (struct frame *f)
3861{ 3846{
3862 eassert (FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f)); 3847 eassert (FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f));
3863 3848 free_frame_faces (f);
3864 if (FRAME_FACE_CACHE (f))
3865 free_frame_faces (f);
3866} 3849}
3867#endif /* MSDOS */ 3850#endif /* MSDOS */
3868 3851
diff --git a/src/w32term.c b/src/w32term.c
index 64febea6a1a..3d6b653157b 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -6101,17 +6101,13 @@ x_free_frame_resources (struct frame *f)
6101 /* We must free faces before destroying windows because some 6101 /* We must free faces before destroying windows because some
6102 font-driver (e.g. xft) access a window while finishing a 6102 font-driver (e.g. xft) access a window while finishing a
6103 face. */ 6103 face. */
6104 if (FRAME_FACE_CACHE (f)) 6104 free_frame_faces (f);
6105 free_frame_faces (f);
6106 6105
6107 if (FRAME_W32_WINDOW (f)) 6106 if (FRAME_W32_WINDOW (f))
6108 my_destroy_window (f, FRAME_W32_WINDOW (f)); 6107 my_destroy_window (f, FRAME_W32_WINDOW (f));
6109 6108
6110 free_frame_menubar (f); 6109 free_frame_menubar (f);
6111 6110
6112 if (FRAME_FACE_CACHE (f))
6113 free_frame_faces (f);
6114
6115 xfree (f->output_data.w32); 6111 xfree (f->output_data.w32);
6116 f->output_data.w32 = NULL; 6112 f->output_data.w32 = NULL;
6117 6113
diff --git a/src/window.c b/src/window.c
index 426edc6099c..9bf6ad4b8f3 100644
--- a/src/window.c
+++ b/src/window.c
@@ -4057,7 +4057,7 @@ resize_frame_windows (struct frame *f, int size, bool horflag, bool pixelwise)
4057 r->pixel_top = FRAME_TOP_MARGIN_HEIGHT (f); 4057 r->pixel_top = FRAME_TOP_MARGIN_HEIGHT (f);
4058 4058
4059 if (new_pixel_size == old_pixel_size) 4059 if (new_pixel_size == old_pixel_size)
4060 return; 4060 ;
4061 else if (WINDOW_LEAF_P (r)) 4061 else if (WINDOW_LEAF_P (r))
4062 /* For a leaf root window just set the size. */ 4062 /* For a leaf root window just set the size. */
4063 if (horflag) 4063 if (horflag)
diff --git a/src/xfns.c b/src/xfns.c
index 3c8df12f8c5..7200c5fb2e7 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -3069,7 +3069,6 @@ This function is an internal primitive--use `make-frame' instead. */)
3069 happen. */ 3069 happen. */
3070 init_frame_faces (f); 3070 init_frame_faces (f);
3071 3071
3072#ifdef USE_GTK
3073 /* PXW: This is a duplicate from below. We have to do it here since 3072 /* PXW: This is a duplicate from below. We have to do it here since
3074 otherwise x_set_tool_bar_lines will work with the character sizes 3073 otherwise x_set_tool_bar_lines will work with the character sizes
3075 installed by init_frame_faces while the frame's pixel size is still 3074 installed by init_frame_faces while the frame's pixel size is still
@@ -3078,12 +3077,8 @@ This function is an internal primitive--use `make-frame' instead. */)
3078 non-pixelwise code apparently worked around this because it had one 3077 non-pixelwise code apparently worked around this because it had one
3079 frame line vs one toolbar line which left us with a zero root 3078 frame line vs one toolbar line which left us with a zero root
3080 window height which was obviously wrong as well ... */ 3079 window height which was obviously wrong as well ... */
3081 width = FRAME_TEXT_WIDTH (f); 3080 change_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f),
3082 height = FRAME_TEXT_HEIGHT (f); 3081 FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 1, 0, 0, 1);
3083 FRAME_TEXT_HEIGHT (f) = 0;
3084 SET_FRAME_WIDTH (f, 0);
3085 change_frame_size (f, width, height, 1, 0, 0, 1);
3086#endif /* USE_GTK */
3087 3082
3088 /* Set the menu-bar-lines and tool-bar-lines parameters. We don't 3083 /* Set the menu-bar-lines and tool-bar-lines parameters. We don't
3089 look up the X resources controlling the menu-bar and tool-bar 3084 look up the X resources controlling the menu-bar and tool-bar
diff --git a/src/xterm.c b/src/xterm.c
index 90c7c36c44f..2c5c01baa84 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -6622,8 +6622,8 @@ handle_one_xevent (struct x_display_info *dpyinfo,
6622 cancel_mouse_face (f); 6622 cancel_mouse_face (f);
6623 } 6623 }
6624 6624
6625 FRAME_PIXEL_WIDTH (f) = event->xconfigure.width; 6625/** FRAME_PIXEL_WIDTH (f) = event->xconfigure.width; **/
6626 FRAME_PIXEL_HEIGHT (f) = event->xconfigure.height; 6626/** FRAME_PIXEL_HEIGHT (f) = event->xconfigure.height; **/
6627#endif /* not USE_GTK */ 6627#endif /* not USE_GTK */
6628#endif 6628#endif
6629 6629
@@ -7689,6 +7689,9 @@ x_new_font (struct frame *f, Lisp_Object font_object, int fontset)
7689 FRAME_COLUMN_WIDTH (f) = font->average_width; 7689 FRAME_COLUMN_WIDTH (f) = font->average_width;
7690 FRAME_LINE_HEIGHT (f) = FONT_HEIGHT (font); 7690 FRAME_LINE_HEIGHT (f) = FONT_HEIGHT (font);
7691 7691
7692 FRAME_TOOL_BAR_HEIGHT (f) = FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f);
7693 FRAME_MENU_BAR_HEIGHT (f) = FRAME_MENU_BAR_LINES (f) * FRAME_LINE_HEIGHT (f);
7694
7692 compute_fringe_widths (f, 1); 7695 compute_fringe_widths (f, 1);
7693 7696
7694 /* Compute the scroll bar width in character columns. */ 7697 /* Compute the scroll bar width in character columns. */
@@ -8541,13 +8544,15 @@ x_set_window_size_1 (struct frame *f, int change_gravity, int width, int height,
8541 8544
8542 compute_fringe_widths (f, 0); 8545 compute_fringe_widths (f, 0);
8543 8546
8544 pixelwidth = 8547 pixelwidth = ((pixelwise
8545 (pixelwise ? width : FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, width)) 8548 ? FRAME_TEXT_TO_PIXEL_WIDTH (f, width)
8546 + FRAME_TOOLBAR_WIDTH (f); 8549 : FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, width))
8547 pixelheight = 8550 + FRAME_TOOLBAR_WIDTH (f));
8548 (pixelwise ? height : FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height)) 8551 pixelheight = ((pixelwise
8549 + FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f); 8552 ? FRAME_TEXT_TO_PIXEL_HEIGHT (f, height)
8550 8553 : FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height))
8554 + FRAME_MENUBAR_HEIGHT (f)
8555 + FRAME_TOOLBAR_HEIGHT (f));
8551 if (change_gravity) f->win_gravity = NorthWestGravity; 8556 if (change_gravity) f->win_gravity = NorthWestGravity;
8552 x_wm_set_size_hint (f, (long) 0, 0); 8557 x_wm_set_size_hint (f, (long) 0, 0);
8553 XResizeWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), 8558 XResizeWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),
@@ -8582,8 +8587,6 @@ x_set_window_size_1 (struct frame *f, int change_gravity, int width, int height,
8582 else 8587 else
8583 { 8588 {
8584 change_frame_size (f, width, height, 0, 1, 0, 1); 8589 change_frame_size (f, width, height, 0, 1, 0, 1);
8585 FRAME_PIXEL_WIDTH (f) = pixelwidth;
8586 FRAME_PIXEL_HEIGHT (f) = pixelheight;
8587 x_sync (f); 8590 x_sync (f);
8588 } 8591 }
8589} 8592}
@@ -9126,8 +9129,7 @@ x_free_frame_resources (struct frame *f)
9126 /* We must free faces before destroying windows because some 9129 /* We must free faces before destroying windows because some
9127 font-driver (e.g. xft) access a window while finishing a 9130 font-driver (e.g. xft) access a window while finishing a
9128 face. */ 9131 face. */
9129 if (FRAME_FACE_CACHE (f)) 9132 free_frame_faces (f);
9130 free_frame_faces (f);
9131 9133
9132 if (f->output_data.x->icon_desc) 9134 if (f->output_data.x->icon_desc)
9133 XDestroyWindow (FRAME_X_DISPLAY (f), f->output_data.x->icon_desc); 9135 XDestroyWindow (FRAME_X_DISPLAY (f), f->output_data.x->icon_desc);