aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2014-10-29 22:15:28 -0700
committerGlenn Morris2014-10-29 22:15:28 -0700
commit52b410c60aebeb769ec9580af25ca50df2a44751 (patch)
treeba5de0b896c5ea410ceb2f2f1866c0fac73ea236
parentcc99f920f507d28bb1422f8a3d52723ddc734c8a (diff)
parent237bf45a48999d5a8a3617822dddf3ea305bc269 (diff)
downloademacs-52b410c60aebeb769ec9580af25ca50df2a44751.tar.gz
emacs-52b410c60aebeb769ec9580af25ca50df2a44751.zip
Merge from emacs-24; up to 117634
-rw-r--r--doc/emacs/ChangeLog17
-rw-r--r--doc/emacs/display.texi17
-rw-r--r--doc/emacs/frames.texi14
-rw-r--r--doc/emacs/killing.texi1
-rw-r--r--doc/emacs/search.texi3
-rw-r--r--doc/emacs/windows.texi12
-rw-r--r--doc/misc/ChangeLog9
-rw-r--r--doc/misc/efaq.texi22
-rw-r--r--doc/misc/eieio.texi10
-rw-r--r--etc/DEBUG19
-rw-r--r--etc/NEWS.2431
-rw-r--r--lisp/ChangeLog24
-rw-r--r--lisp/emacs-lisp/bytecomp.el23
-rw-r--r--lisp/emacs-lisp/cl-extra.el1
-rw-r--r--lisp/emulation/viper-util.el2
-rw-r--r--lisp/emulation/viper.el3
-rw-r--r--lisp/erc/erc-track.el6
-rw-r--r--lisp/progmodes/cc-defs.el10
-rw-r--r--lisp/progmodes/cc-langs.el6
-rw-r--r--lisp/progmodes/compile.el11
-rw-r--r--lisp/startup.el5
-rw-r--r--src/ChangeLog9
-rw-r--r--src/dispnew.c2
-rw-r--r--src/fileio.c4
24 files changed, 197 insertions, 64 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 901eaac42c3..adf61e833b3 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,20 @@
12014-10-30 Eli Zaretskii <eliz@gnu.org>
2
3 * frames.texi (Scroll Bars): Improve indexing of faces.
4
5 * killing.texi (Secondary Selection): Improve indexing of faces.
6
7 * search.texi (Basic Isearch, Query Replace): Improve indexing of faces.
8
9 * display.texi (Standard Faces, Text Display)
10 (Useless Whitespace): Improve indexing of faces.
11
12 * frames.texi (Frame Commands): Document and index
13 'frame-resize-pixelwise'.
14
15 * windows.texi (Split Window): Document and index
16 'window-resize-pixelwise'.
17
12014-10-22 Tassilo Horn <tsdh@gnu.org> 182014-10-22 Tassilo Horn <tsdh@gnu.org>
2 19
3 * misc.texi (Document View): Adapt to latest doc-view changes wrt 20 * misc.texi (Document View): Adapt to latest doc-view changes wrt
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 0a77e722d32..a5555d58054 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -578,6 +578,7 @@ Parameters}.
578 578
579@node Standard Faces 579@node Standard Faces
580@section Standard Faces 580@section Standard Faces
581@cindex standard faces
581 582
582 Here are the standard faces for specifying text appearance. You can 583 Here are the standard faces for specifying text appearance. You can
583apply them to specific text when you want the effects they produce. 584apply them to specific text when you want the effects they produce.
@@ -598,8 +599,10 @@ This face underlines text.
598This face forces use of a fixed-width font. It's reasonable to 599This face forces use of a fixed-width font. It's reasonable to
599customize this face to use a different fixed-width font, if you like, 600customize this face to use a different fixed-width font, if you like,
600but you should not make it a variable-width font. 601but you should not make it a variable-width font.
602@cindex variable-pitch face
601@item variable-pitch 603@item variable-pitch
602This face forces use of a variable-width font. 604This face forces use of a variable-width font.
605@cindex shadow face
603@item shadow 606@item shadow
604This face is used for making the text less noticeable than the surrounding 607This face is used for making the text less noticeable than the surrounding
605ordinary text. Usually this can be achieved by using shades of gray in 608ordinary text. Usually this can be achieved by using shades of gray in
@@ -647,25 +650,34 @@ frame:
647 650
648@table @code 651@table @code
649@item mode-line 652@item mode-line
653@cindex mode-line face
654@cindex faces for mode lines
650This face is used for the mode line of the currently selected window, 655This face is used for the mode line of the currently selected window,
651and for menu bars when toolkit menus are not used. By default, it's 656and for menu bars when toolkit menus are not used. By default, it's
652drawn with shadows for a ``raised'' effect on graphical displays, and 657drawn with shadows for a ``raised'' effect on graphical displays, and
653drawn as the inverse of the default face on non-windowed terminals. 658drawn as the inverse of the default face on non-windowed terminals.
654@item mode-line-inactive 659@item mode-line-inactive
660@cindex mode-line-inactive face
655Like @code{mode-line}, but used for mode lines of the windows other 661Like @code{mode-line}, but used for mode lines of the windows other
656than the selected one (if @code{mode-line-in-non-selected-windows} is 662than the selected one (if @code{mode-line-in-non-selected-windows} is
657non-@code{nil}). This face inherits from @code{mode-line}, so changes 663non-@code{nil}). This face inherits from @code{mode-line}, so changes
658in that face affect mode lines in all windows. 664in that face affect mode lines in all windows.
659@item mode-line-highlight 665@item mode-line-highlight
660Like @code{highlight}, but used for portions of text on mode lines. 666@cindex mode-line-highlight face
667Like @code{highlight}, but used for mouse-sensitive portions of text
668on mode lines. Such portions of text typically pop up tooltips
669(@pxref{Tooltips}) when the mouse pointer hovers above them.
661@item mode-line-buffer-id 670@item mode-line-buffer-id
671@cindex mode-line-buffer-id face
662This face is used for buffer identification parts in the mode line. 672This face is used for buffer identification parts in the mode line.
663@item header-line 673@item header-line
674@cindex header-line face
664Similar to @code{mode-line} for a window's header line, which appears 675Similar to @code{mode-line} for a window's header line, which appears
665at the top of a window just as the mode line appears at the bottom. 676at the top of a window just as the mode line appears at the bottom.
666Most windows do not have a header line---only some special modes, such 677Most windows do not have a header line---only some special modes, such
667Info mode, create one. 678Info mode, create one.
668@item vertical-border 679@item vertical-border
680@cindex vertical-border face
669This face is used for the vertical divider between windows on text 681This face is used for the vertical divider between windows on text
670terminals. 682terminals.
671@item minibuffer-prompt 683@item minibuffer-prompt
@@ -1110,6 +1122,7 @@ empty lines at the end of a buffer, without realizing it. In most
1110cases, this @dfn{trailing whitespace} has no effect, but sometimes it 1122cases, this @dfn{trailing whitespace} has no effect, but sometimes it
1111can be a nuisance. 1123can be a nuisance.
1112 1124
1125@cindex trailing-whitespace face
1113 You can make trailing whitespace at the end of a line visible by 1126 You can make trailing whitespace at the end of a line visible by
1114setting the buffer-local variable @code{show-trailing-whitespace} to 1127setting the buffer-local variable @code{show-trailing-whitespace} to
1115@code{t}. Then Emacs displays trailing whitespace, using the face 1128@code{t}. Then Emacs displays trailing whitespace, using the face
@@ -1418,6 +1431,8 @@ as octal escape sequences instead of caret escape sequences.
1418@cindex non-breaking space 1431@cindex non-breaking space
1419@cindex non-breaking hyphen 1432@cindex non-breaking hyphen
1420@cindex soft hyphen 1433@cindex soft hyphen
1434@cindex escape-glyph face
1435@cindex nobreak-space face
1421 Some non-@acronym{ASCII} characters have the same appearance as an 1436 Some non-@acronym{ASCII} characters have the same appearance as an
1422@acronym{ASCII} space or hyphen (minus) character. Such characters 1437@acronym{ASCII} space or hyphen (minus) character. Such characters
1423can cause problems if they are entered into a buffer without your 1438can cause problems if they are entered into a buffer without your
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index da0dd8aa6ac..27380cd565e 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -376,6 +376,9 @@ position (@pxref{Split Window}).
376between two side-by-side mode lines, you can move the vertical 376between two side-by-side mode lines, you can move the vertical
377boundary to the left or right. 377boundary to the left or right.
378 378
379 Note that resizing windows is affected by the value of
380@code{window-resize-pixelwise}, see @ref{Split Window}.
381
379@node Creating Frames 382@node Creating Frames
380@section Creating Frames 383@section Creating Frames
381@cindex creating frames 384@cindex creating frames
@@ -469,9 +472,13 @@ hides window manager decorations, giving slightly more screen space to
469Emacs itself.) 472Emacs itself.)
470@end table 473@end table
471 474
475@vindex frame-resize-pixelwise
472 Note that with some window managers you may have to customize the 476 Note that with some window managers you may have to customize the
473variable @code{frame-resize-pixelwise} to a non-@code{nil} value in 477variable @code{frame-resize-pixelwise} to a non-@code{nil} value in
474order to make a frame truly ``maximized'' or ``fullscreen''. 478order to make a frame truly ``maximized'' or ``fullscreen''. This
479variable, when set to a non-@code{nil} value, in general allows
480resizing frames at pixel resolution, rather than in integral multiples
481of lines and columns.
475 482
476 The @kbd{C-x 5 0} (@code{delete-frame}) command deletes the selected 483 The @kbd{C-x 5 0} (@code{delete-frame}) command deletes the selected
477frame. However, it will refuse to delete the last frame in an Emacs 484frame. However, it will refuse to delete the last frame in an Emacs
@@ -955,6 +962,10 @@ end of the buffer is shown; if @code{nil}, the thumb will be at the
955bottom when the end of the buffer is shown. You can not over-scroll 962bottom when the end of the buffer is shown. You can not over-scroll
956when the entire buffer is visible. 963when the entire buffer is visible.
957 964
965@cindex scroll-bar face
966 The visual appearance of the scroll bars is controlled by the
967@code{scroll-bar} face.
968
958@cindex Horizontal Scroll Bar 969@cindex Horizontal Scroll Bar
959@cindex Horizontal Scroll Bar mode 970@cindex Horizontal Scroll Bar mode
960 On graphical displays with toolkit support, Emacs may also supply a 971 On graphical displays with toolkit support, Emacs may also supply a
@@ -987,7 +998,6 @@ or disable horizontal scroll bars (@pxref{Resources}). To control the
987scroll bar height, change the @code{scroll-bar-height} frame parameter 998scroll bar height, change the @code{scroll-bar-height} frame parameter
988(@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}). 999(@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}).
989 1000
990
991@node Drag and Drop 1001@node Drag and Drop
992@section Drag and Drop 1002@section Drag and Drop
993@cindex drag and drop 1003@cindex drag and drop
diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi
index f4b1752643d..e258d1ca1a0 100644
--- a/doc/emacs/killing.texi
+++ b/doc/emacs/killing.texi
@@ -588,6 +588,7 @@ you can access it using the following Emacs commands:
588@table @kbd 588@table @kbd
589@findex mouse-set-secondary 589@findex mouse-set-secondary
590@kindex M-Drag-Mouse-1 590@kindex M-Drag-Mouse-1
591@cindex secondary-selection face
591@item M-Drag-Mouse-1 592@item M-Drag-Mouse-1
592Set the secondary selection, with one end at the place where you press 593Set the secondary selection, with one end at the place where you press
593down the button, and the other end at the place where you release it 594down the button, and the other end at the place where you release it
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index bdfb534e186..bd0bd0bf641 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -86,6 +86,7 @@ not be the first @samp{F} previously found. After another @kbd{O},
86the cursor moves to just after the first @samp{FOO}. 86the cursor moves to just after the first @samp{FOO}.
87 87
88@cindex faces for highlighting search matches 88@cindex faces for highlighting search matches
89@cindex isearch face
89 At each step, Emacs highlights the @dfn{current match}---the buffer 90 At each step, Emacs highlights the @dfn{current match}---the buffer
90text that matches the search string---using the @code{isearch} face 91text that matches the search string---using the @code{isearch} face
91(@pxref{Faces}). The current search string is also displayed in the 92(@pxref{Faces}). The current search string is also displayed in the
@@ -1280,6 +1281,8 @@ It works like @code{replace-regexp} except that it queries
1280like @code{query-replace}. 1281like @code{query-replace}.
1281 1282
1282@cindex faces for highlighting query replace 1283@cindex faces for highlighting query replace
1284@cindex query-replace face
1285@cindex lazy-highlight face
1283 These commands highlight the current match using the face 1286 These commands highlight the current match using the face
1284@code{query-replace}. They highlight other matches using 1287@code{query-replace}. They highlight other matches using
1285@code{lazy-highlight} just like incremental search (@pxref{Incremental 1288@code{lazy-highlight} just like incremental search (@pxref{Incremental
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index 4a5f24c13fb..4045908d4d5 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -134,6 +134,18 @@ clicking @kbd{C-Mouse-2} in the scroll bar, which puts a horizontal
134divider where you click (this feature does not work when Emacs uses 134divider where you click (this feature does not work when Emacs uses
135GTK+ scroll bars). 135GTK+ scroll bars).
136 136
137@vindex window-resize-pixelwise
138 By default, when you split a window, Emacs gives each of the
139resulting windows dimensions that are an integral multiple of the
140default font size of the frame. That might subdivide the screen
141estate unevenly between the resulting windows. If you set the
142variable @code{window-resize-pixelwise} to a non-@code{nil} value,
143Emacs will give each window the same number of pixels (give or take
144one pixel if the initial dimension was an odd number of pixels). Note
145that when a frame's pixel size is not a multiple of the frame's
146character size, at least one window may get resized pixelwise even if
147this option is @code{nil}.
148
137@node Other Window 149@node Other Window
138@section Using Other Windows 150@section Using Other Windows
139 151
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 82e768c6564..1ecc0a65741 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,12 @@
12014-10-30 Glenn Morris <rgm@gnu.org>
2
3 * efaq.texi (Gnus does not work with NNTP): Remove; ancient.
4
52014-10-30 Stefan Monnier <monnier@iro.umontreal.ca>
6
7 * eieio.texi (Accessing Slots, CLOS compatibility): Adjust wording
8 since `setf' is in core rather than in CL nowadays.
9
12014-10-29 Paul Eggert <eggert@cs.ucla.edu> 102014-10-29 Paul Eggert <eggert@cs.ucla.edu>
2 11
3 Simplify use of current-time and friends. 12 Simplify use of current-time and friends.
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 4d1df8b97dc..0159101916d 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -4190,7 +4190,6 @@ fontset, or you can select it by setting the default font in your
4190* Replying to the sender of a message:: 4190* Replying to the sender of a message::
4191* Automatically starting a mail or news reader:: 4191* Automatically starting a mail or news reader::
4192* Reading news with Emacs:: 4192* Reading news with Emacs::
4193* Gnus does not work with NNTP::
4194* Making Gnus faster:: 4193* Making Gnus faster::
4195* Catching up in all newsgroups:: 4194* Catching up in all newsgroups::
4196@end menu 4195@end menu
@@ -4384,27 +4383,6 @@ Manual, gnus, The Gnus Manual}, which includes @ref{Frequently Asked
4384Questions,, the Gnus FAQ, gnus, The Gnus Manual}. 4383Questions,, the Gnus FAQ, gnus, The Gnus Manual}.
4385 4384
4386 4385
4387@node Gnus does not work with NNTP
4388@section Why doesn't Gnus work via NNTP?
4389@cindex Gnus and NNTP
4390@cindex NNTP, Gnus fails to work with
4391
4392There is a bug in NNTP version 1.5.10, such that when multiple requests
4393are sent to the NNTP server, the server only handles the first one
4394before blocking waiting for more input which never comes. NNTP version
43951.5.11 claims to fix this.
4396
4397You can work around the bug inside Emacs like this:
4398
4399@lisp
4400(setq nntp-maximum-request 1)
4401@end lisp
4402
4403You can find out what version of NNTP your news server is running by
4404telnetting to the NNTP port (usually 119) on the news server machine
4405(i.e., @kbd{telnet server-machine 119}). The server should give its
4406version number in the welcome message. Type @kbd{quit} to get out.
4407
4408@node Making Gnus faster 4386@node Making Gnus faster
4409@section How do I make Gnus faster? 4387@section How do I make Gnus faster?
4410@cindex Faster, starting Gnus 4388@cindex Faster, starting Gnus
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index 8f93300e24a..80e52baf255 100644
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -755,8 +755,8 @@ Unlike @code{oref}, the symbol for @var{slot} must be quoted.
755 755
756@defun set-slot-value object slot value 756@defun set-slot-value object slot value
757@anchor{set-slot-value} 757@anchor{set-slot-value}
758This is not a CLOS function, but is meant to mirror @code{slot-value} if 758This is not a CLOS function, but is the setter for @code{slot-value}
759you don't want to use the cl package's @code{setf} function. This 759used by the @code{setf} macro. This
760function sets the value of @var{slot} from @var{object}. Unlike 760function sets the value of @var{slot} from @var{object}. Unlike
761@code{oset}, the symbol for @var{slot} must be quoted. 761@code{oset}, the symbol for @var{slot} must be quoted.
762@end defun 762@end defun
@@ -790,7 +790,7 @@ This establishes a lexical environment for referring to the slots in
790the instance named by the given slot-names as though they were 790the instance named by the given slot-names as though they were
791variables. Within such a context the value of the slot can be 791variables. Within such a context the value of the slot can be
792specified by using its slot name, as if it were a lexically bound 792specified by using its slot name, as if it were a lexically bound
793variable. Both setf and setq can be used to set the value of the 793variable. Both @code{setf} and @code{setq} can be used to set the value of the
794slot. 794slot.
795 795
796@var{spec-list} is of a form similar to @dfn{let}. For example: 796@var{spec-list} is of a form similar to @dfn{let}. For example:
@@ -1850,10 +1850,6 @@ for the given object. This is different than that found in CLOS because
1850in @eieio{} this function accepts replacement arguments. This permits 1850in @eieio{} this function accepts replacement arguments. This permits
1851subclasses to modify arguments as they are passed up the tree. If no 1851subclasses to modify arguments as they are passed up the tree. If no
1852arguments are given, the expected CLOS behavior is used. 1852arguments are given, the expected CLOS behavior is used.
1853@item setf
1854If the common-lisp subsystem is loaded, the setf parameters are also
1855loaded so the form @code{(setf (slot-value object slot) t)} should
1856work.
1857@end table 1853@end table
1858 1854
1859CLOS supports the @code{describe} command, but @eieio{} provides 1855CLOS supports the @code{describe} command, but @eieio{} provides
diff --git a/etc/DEBUG b/etc/DEBUG
index 096bdbc48c9..89e1a85088c 100644
--- a/etc/DEBUG
+++ b/etc/DEBUG
@@ -398,9 +398,13 @@ to start debugging.
398Don't assume Emacs is `hung'--it may instead be in an infinite loop. 398Don't assume Emacs is `hung'--it may instead be in an infinite loop.
399To find out which, make the problem happen under GDB and stop Emacs 399To find out which, make the problem happen under GDB and stop Emacs
400once it is not responding. (If Emacs is using X Windows directly, you 400once it is not responding. (If Emacs is using X Windows directly, you
401can stop Emacs by typing C-z at the GDB job.) Then try stepping with 401can stop Emacs by typing C-z at the GDB job. On MS-Windows, run Emacs
402`step'. If Emacs is hung, the `step' command won't return. If it is 402as usual, and then attach GDB to it -- that will usually interrupt
403looping, `step' will return. 403whatever Emacs is doing and let you perform the steps described
404below.)
405
406Then try stepping with `step'. If Emacs is hung, the `step' command
407won't return. If it is looping, `step' will return.
404 408
405If this shows Emacs is hung in a system call, stop it again and 409If this shows Emacs is hung in a system call, stop it again and
406examine the arguments of the call. If you report the bug, it is very 410examine the arguments of the call. If you report the bug, it is very
@@ -420,10 +424,11 @@ stepping, you will see where the loop starts and ends. Also, examine
420the data being used in the loop and try to determine why the loop does 424the data being used in the loop and try to determine why the loop does
421not exit when it should. 425not exit when it should.
422 426
423You can also trying sending Emacs SIGUSR2, which, if `debug-on-event' 427On GNU and Unix systems, you can also trying sending Emacs SIGUSR2,
424has its default value, will cause Emacs to attempt to break it out of 428which, if `debug-on-event' has its default value, will cause Emacs to
425its current loop and into the Lisp debugger. This feature is useful 429attempt to break it out of its current loop and into the Lisp
426when a C-level debugger is not conveniently available. 430debugger. This feature is useful when a C-level debugger is not
431conveniently available.
427 432
428** If certain operations in Emacs are slower than they used to be, here 433** If certain operations in Emacs are slower than they used to be, here
429is some advice for how to find out why. 434is some advice for how to find out why.
diff --git a/etc/NEWS.24 b/etc/NEWS.24
index eba9b940585..8c039a55a2f 100644
--- a/etc/NEWS.24
+++ b/etc/NEWS.24
@@ -14,6 +14,37 @@ and NEWS.1-17 for changes in older Emacs versions.
14You can narrow news to a specific version by calling `view-emacs-news' 14You can narrow news to a specific version by calling `view-emacs-news'
15with a prefix argument or by typing C-u C-h C-n. 15with a prefix argument or by typing C-u C-h C-n.
16 16
17Temporary note:
18+++ indicates that all necessary documentation updates are complete.
19 (This means all relevant manuals in doc/ AND lisp doc-strings.)
20--- means no change in the manuals is needed.
21When you add a new item, use the appropriate mark if you are sure it applies,
22otherwise leave it unmarked.
23
24
25* Changes in Emacs 24.5
26
27---
28** The default value of `history-length' has increased to 100.
29
30
31* Changes in Specialized Modes and Packages in Emacs 24.5
32
33** `call-process-shell-command' and `process-file-shell-command'
34don't take "&rest args" any more.
35
36** Obsolete packages
37
38*** cc-compat.el
39
40---
41*** crisp.el, tpu-edt.el, ws-mode.el
42These emulations of old editors are believed to be no longer relevant
43 - contact emacs-devel@gnu.org if you disagree.
44
45---
46*** vi.el, vip.el (try M-x viper instead)
47
17 48
18* Installation Changes in Emacs 24.4 49* Installation Changes in Emacs 24.4
19 50
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1def6877f2c..56da0d6e154 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,27 @@
12014-10-30 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * progmodes/cc-defs.el (c--macroexpand-all): New function (bug#18845).
4 (c-lang-defconst):
5 * progmodes/cc-langs.el (c-make-init-lang-vars-fun): Use it.
6
72014-10-30 Eli Zaretskii <eliz@gnu.org>
8
9 * progmodes/compile.el (compilation-start):
10 If compilation-scroll-output is non-nil, don't force window-start of
11 the compilation buffer to be at beginning of buffer. (Bug#18874)
12
13 * startup.el (fancy-about-text): Read the entire tutorial, not
14 just its first 256 bytes. (Bug#18760)
15
162014-10-30 Stefan Monnier <monnier@iro.umontreal.ca>
17
18 * emacs-lisp/bytecomp.el: Require cl-extra (bug#18804).
19 * emacs-lisp/cl-extra.el: Add missing provide.
20
21 * emacs-lisp/bytecomp.el (byte-compile-and-folded): Optimize case where
22 all args are copyable (bug#18767).
23 (=, <, >, <=, >=): Re-enable the optimization.
24
12014-10-29 Glenn Morris <rgm@gnu.org> 252014-10-29 Glenn Morris <rgm@gnu.org>
2 26
3 * net/rcirc.el (rcirc-fill-column): Unbump :version. Mark :risky. 27 * net/rcirc.el (rcirc-fill-column): Unbump :version. Mark :risky.
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 62de943f1be..392f6ee83cd 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -120,7 +120,11 @@
120(require 'backquote) 120(require 'backquote)
121(require 'macroexp) 121(require 'macroexp)
122(require 'cconv) 122(require 'cconv)
123(eval-when-compile (require 'cl-lib)) 123
124;; During bootstrap, cl-loaddefs.el is not created yet, so loading cl-lib
125;; doesn't setup autoloads for things like cl-every, which is why we have to
126;; require cl-extra instead (bug#18804).
127(require 'cl-extra)
124 128
125(or (fboundp 'defsubst) 129(or (fboundp 'defsubst)
126 ;; This really ought to be loaded already! 130 ;; This really ought to be loaded already!
@@ -3283,11 +3287,11 @@ If it is nil, then the handler is \"byte-compile-SYMBOL.\""
3283(byte-defop-compiler cons 2) 3287(byte-defop-compiler cons 2)
3284(byte-defop-compiler aref 2) 3288(byte-defop-compiler aref 2)
3285(byte-defop-compiler set 2) 3289(byte-defop-compiler set 2)
3286(byte-defop-compiler (= byte-eqlsign) 2) ;; -and bug#18767 3290(byte-defop-compiler (= byte-eqlsign) 2-and)
3287(byte-defop-compiler (< byte-lss) 2) ;; -and bug#18767 3291(byte-defop-compiler (< byte-lss) 2-and)
3288(byte-defop-compiler (> byte-gtr) 2) ;; -and bug#18767 3292(byte-defop-compiler (> byte-gtr) 2-and)
3289(byte-defop-compiler (<= byte-leq) 2) ;; -and bug#18767 3293(byte-defop-compiler (<= byte-leq) 2-and)
3290(byte-defop-compiler (>= byte-geq) 2) ;; -and bug#18767 3294(byte-defop-compiler (>= byte-geq) 2-and)
3291(byte-defop-compiler get 2) 3295(byte-defop-compiler get 2)
3292(byte-defop-compiler nth 2) 3296(byte-defop-compiler nth 2)
3293(byte-defop-compiler substring 2-3) 3297(byte-defop-compiler substring 2-3)
@@ -3354,13 +3358,14 @@ If it is nil, then the handler is \"byte-compile-SYMBOL.\""
3354(defun byte-compile-and-folded (form) 3358(defun byte-compile-and-folded (form)
3355 "Compile calls to functions like `<='. 3359 "Compile calls to functions like `<='.
3356These implicitly `and' together a bunch of two-arg bytecodes." 3360These implicitly `and' together a bunch of two-arg bytecodes."
3357 ;; FIXME: bug#18767 means we can't do it this way!
3358 (let ((l (length form))) 3361 (let ((l (length form)))
3359 (cond 3362 (cond
3360 ((< l 3) (byte-compile-form `(progn ,(nth 1 form) t))) 3363 ((< l 3) (byte-compile-form `(progn ,(nth 1 form) t)))
3361 ((= l 3) (byte-compile-two-args form)) 3364 ((= l 3) (byte-compile-two-args form))
3362 (t (byte-compile-form `(and (,(car form) ,(nth 1 form) ,(nth 2 form)) 3365 ((cl-every #'macroexp-copyable-p (nthcdr 2 form))
3363 (,(car form) ,@(nthcdr 2 form)))))))) 3366 (byte-compile-form `(and (,(car form) ,(nth 1 form) ,(nth 2 form))
3367 (,(car form) ,@(nthcdr 2 form)))))
3368 (t (byte-compile-normal-call form)))))
3364 3369
3365(defun byte-compile-three-args (form) 3370(defun byte-compile-three-args (form)
3366 (if (not (= (length form) 4)) 3371 (if (not (= (length form) 4))
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index a7970261608..b8b7b2c170b 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -720,4 +720,5 @@ including `cl-block' and `cl-eval-when'."
720;; generated-autoload-file: "cl-loaddefs.el" 720;; generated-autoload-file: "cl-loaddefs.el"
721;; End: 721;; End:
722 722
723(provide 'cl-extra)
723;;; cl-extra.el ends here 724;;; cl-extra.el ends here
diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el
index 178b23e1fca..4e3b71e3104 100644
--- a/lisp/emulation/viper-util.el
+++ b/lisp/emulation/viper-util.el
@@ -984,7 +984,7 @@ Otherwise return the normal value."
984;; macros, since it enables certain macros to be shared between X and TTY modes 984;; macros, since it enables certain macros to be shared between X and TTY modes
985;; by correctly mapping key sequences for Left/Right/... (on an ascii 985;; by correctly mapping key sequences for Left/Right/... (on an ascii
986;; terminal) into logical keys left, right, etc. 986;; terminal) into logical keys left, right, etc.
987(defun viper-read-key () 987(defun viper-read-key () ;; FIXME: Use `read-key'?
988 (let ((overriding-local-map viper-overriding-map) 988 (let ((overriding-local-map viper-overriding-map)
989 (inhibit-quit t) 989 (inhibit-quit t)
990 help-char key) 990 help-char key)
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el
index d1353bdc8fa..c7394e1cea5 100644
--- a/lisp/emulation/viper.el
+++ b/lisp/emulation/viper.el
@@ -531,6 +531,7 @@ If Viper is enabled, turn it off. Otherwise, turn it on."
531 (if viper-mode 531 (if viper-mode
532 () 532 ()
533 (setq viper-mode t) 533 (setq viper-mode t)
534 ;; FIXME: Don't reload!
534 (load-library "viper")) 535 (load-library "viper"))
535 536
536 (if viper-first-time ; Important check. Prevents mix-up of startup 537 (if viper-first-time ; Important check. Prevents mix-up of startup
@@ -887,6 +888,7 @@ Two differences:
887 ;; When viper-mode is executed in such a case, it will set the major mode 888 ;; When viper-mode is executed in such a case, it will set the major mode
888 ;; back to fundamental-mode. 889 ;; back to fundamental-mode.
889 (if (eq (default-value 'major-mode) 'fundamental-mode) 890 (if (eq (default-value 'major-mode) 'fundamental-mode)
891 ;; FIXME: We should use after-change-major-mode-hook instead!
890 (setq-default major-mode 'viper-mode)) 892 (setq-default major-mode 'viper-mode))
891 893
892 (viper-setup-ESC-to-escape t) 894 (viper-setup-ESC-to-escape t)
@@ -936,6 +938,7 @@ Two differences:
936 938
937 (defadvice self-insert-command (around viper-self-insert-ad activate) 939 (defadvice self-insert-command (around viper-self-insert-ad activate)
938 "Ignore all self-inserting keys in the vi-state." 940 "Ignore all self-inserting keys in the vi-state."
941 ;; FIXME: Use remapping?
939 (if (and (eq viper-current-state 'vi-state) 942 (if (and (eq viper-current-state 'vi-state)
940 ;; Do not use called-interactively-p here. XEmacs does not have it 943 ;; Do not use called-interactively-p here. XEmacs does not have it
941 ;; and interactive-p is just fine. 944 ;; and interactive-p is just fine.
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el
index 47e76c3ea1e..fae6be433fd 100644
--- a/lisp/erc/erc-track.el
+++ b/lisp/erc/erc-track.el
@@ -265,9 +265,7 @@ nil - don't add to mode line."
265 (erc-track-add-to-mode-line val)))) 265 (erc-track-add-to-mode-line val))))
266 266
267(defun erc-modified-channels-object (strings) 267(defun erc-modified-channels-object (strings)
268 "Generate a new `erc-modified-channels-object' based on STRINGS. 268 "Generate a new `erc-modified-channels-object' based on STRINGS."
269If STRINGS is nil, we initialize `erc-modified-channels-object' to
270an appropriate initial value for this flavor of Emacs."
271 (if strings 269 (if strings
272 (if (featurep 'xemacs) 270 (if (featurep 'xemacs)
273 (let ((e-m-c-s '("["))) 271 (let ((e-m-c-s '("[")))
@@ -743,7 +741,7 @@ only consider active buffers visible.")
743(defvar erc-modified-channels-update-inside nil 741(defvar erc-modified-channels-update-inside nil
744 "Variable to prevent running `erc-modified-channels-update' multiple 742 "Variable to prevent running `erc-modified-channels-update' multiple
745times. Without it, you cannot debug `erc-modified-channels-display', 743times. Without it, you cannot debug `erc-modified-channels-display',
746because the debugger also cases changes to the window-configuration.") 744because the debugger also causes changes to the window-configuration.")
747 745
748(defun erc-modified-channels-update (&rest _args) 746(defun erc-modified-channels-update (&rest _args)
749 "This function updates the information in `erc-modified-channels-alist' 747 "This function updates the information in `erc-modified-channels-alist'
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index dc31fde131d..1d8b8abeb2f 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -174,6 +174,10 @@ This variant works around bugs in `eval-when-compile' in various
174 174
175 (put 'cc-eval-when-compile 'lisp-indent-hook 0)) 175 (put 'cc-eval-when-compile 'lisp-indent-hook 0))
176 176
177(eval-and-compile
178 (defalias 'c--macroexpand-all
179 (if (fboundp 'macroexpand-all)
180 'macroexpand-all 'cl-macroexpand-all)))
177 181
178;;; Macros. 182;;; Macros.
179 183
@@ -1841,7 +1845,7 @@ system."
1841immediately, i.e. at the same time as the `c-lang-defconst' form 1845immediately, i.e. at the same time as the `c-lang-defconst' form
1842itself is evaluated." 1846itself is evaluated."
1843 ;; Evaluate at macro expansion time, i.e. in the 1847 ;; Evaluate at macro expansion time, i.e. in the
1844 ;; `macroexpand-all' inside `c-lang-defconst'. 1848 ;; `c--macroexpand-all' inside `c-lang-defconst'.
1845 (eval form)) 1849 (eval form))
1846 1850
1847(defmacro c-lang-defconst (name &rest args) 1851(defmacro c-lang-defconst (name &rest args)
@@ -1885,7 +1889,7 @@ constant. A file is identified by its base name."
1885 1889
1886 (let* ((sym (intern (symbol-name name) c-lang-constants)) 1890 (let* ((sym (intern (symbol-name name) c-lang-constants))
1887 ;; Make `c-lang-const' expand to a straightforward call to 1891 ;; Make `c-lang-const' expand to a straightforward call to
1888 ;; `c-get-lang-constant' in `macroexpand-all' below. 1892 ;; `c-get-lang-constant' in `c--macroexpand-all' below.
1889 ;; 1893 ;;
1890 ;; (The default behavior, i.e. to expand to a call inside 1894 ;; (The default behavior, i.e. to expand to a call inside
1891 ;; `eval-when-compile' should be equivalent, since that macro 1895 ;; `eval-when-compile' should be equivalent, since that macro
@@ -1948,7 +1952,7 @@ constant. A file is identified by its base name."
1948 ;; reason, but we also use this expansion handle 1952 ;; reason, but we also use this expansion handle
1949 ;; `c-lang-defconst-eval-immediately' and to register 1953 ;; `c-lang-defconst-eval-immediately' and to register
1950 ;; dependencies on the `c-lang-const's in VAL.) 1954 ;; dependencies on the `c-lang-const's in VAL.)
1951 (setq val (macroexpand-all val)) 1955 (setq val (c--macroexpand-all val))
1952 1956
1953 (setq bindings `(cons (cons ',assigned-mode (lambda () ,val)) ,bindings) 1957 (setq bindings `(cons (cons ',assigned-mode (lambda () ,val)) ,bindings)
1954 args (cdr args)))) 1958 args (cdr args))))
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index bab928ac5dd..a8dc3b8968c 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -3238,7 +3238,7 @@ accomplish that conveniently."
3238 `(lambda () 3238 `(lambda ()
3239 3239
3240 ;; This let sets up the context for `c-mode-var' and similar 3240 ;; This let sets up the context for `c-mode-var' and similar
3241 ;; that could be in the result from `macroexpand-all'. 3241 ;; that could be in the result from `c--macroexpand-all'.
3242 (let ((c-buffer-is-cc-mode ',mode) 3242 (let ((c-buffer-is-cc-mode ',mode)
3243 current-var source-eval) 3243 current-var source-eval)
3244 (c-make-emacs-variables-local) 3244 (c-make-emacs-variables-local)
@@ -3248,12 +3248,12 @@ accomplish that conveniently."
3248 (setq ,@(let ((c-buffer-is-cc-mode mode) 3248 (setq ,@(let ((c-buffer-is-cc-mode mode)
3249 (c-lang-const-expansion 'immediate)) 3249 (c-lang-const-expansion 'immediate))
3250 ;; `c-lang-const' will expand to the evaluated 3250 ;; `c-lang-const' will expand to the evaluated
3251 ;; constant immediately in `macroexpand-all' 3251 ;; constant immediately in `c--macroexpand-all'
3252 ;; below. 3252 ;; below.
3253 (mapcan 3253 (mapcan
3254 (lambda (init) 3254 (lambda (init)
3255 `(current-var ',(car init) 3255 `(current-var ',(car init)
3256 ,(car init) ,(macroexpand-all 3256 ,(car init) ,(c--macroexpand-all
3257 (elt init 1)))) 3257 (elt init 1))))
3258 ;; Note: The following `append' copies the 3258 ;; Note: The following `append' copies the
3259 ;; first argument. That list is small, so 3259 ;; first argument. That list is small, so
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index ee066f4c56c..d3d03cd2030 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1676,7 +1676,16 @@ Returns the compilation buffer created."
1676 (list command mode name-function highlight-regexp)) 1676 (list command mode name-function highlight-regexp))
1677 (set (make-local-variable 'revert-buffer-function) 1677 (set (make-local-variable 'revert-buffer-function)
1678 'compilation-revert-buffer) 1678 'compilation-revert-buffer)
1679 (and outwin (set-window-start outwin (point-min))) 1679 (and outwin
1680 ;; Forcing the window-start overrides the usual redisplay
1681 ;; feature of bringing point into view, so setting the
1682 ;; window-start to top of the buffer risks losing the
1683 ;; effect of moving point to EOB below, per
1684 ;; compilation-scroll-output, if the command is long
1685 ;; enough to push point outside of the window. This
1686 ;; could happen, e.g., in `rgrep'.
1687 (not compilation-scroll-output)
1688 (set-window-start outwin (point-min)))
1680 1689
1681 ;; Position point as the user will see it. 1690 ;; Position point as the user will see it.
1682 (let ((desired-visible-point 1691 (let ((desired-visible-point
diff --git a/lisp/startup.el b/lisp/startup.el
index 0dacf191c14..88611a0cd8f 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1496,7 +1496,10 @@ Each element in the list should be a list of strings or pairs
1496 (title (with-temp-buffer 1496 (title (with-temp-buffer
1497 (insert-file-contents 1497 (insert-file-contents
1498 (expand-file-name tut tutorial-directory) 1498 (expand-file-name tut tutorial-directory)
1499 nil 0 256) 1499 ;; Reat the entire file, to make sure any
1500 ;; coding cookies and other local variables
1501 ;; get acted upon.
1502 nil)
1500 (search-forward ".") 1503 (search-forward ".")
1501 (buffer-substring (point-min) (1- (point)))))) 1504 (buffer-substring (point-min) (1- (point))))))
1502 ;; If there is a specific tutorial for the current language 1505 ;; If there is a specific tutorial for the current language
diff --git a/src/ChangeLog b/src/ChangeLog
index 25009f8a310..89c0bb8fd8e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,12 @@
12014-10-30 Eli Zaretskii <eliz@gnu.org>
2
3 * fileio.c (Fexpand_file_name): Use make_unibyte_string, not
4 build_string, when importing a home directory. (Bug#18873)
5
6 * dispnew.c (buffer_posn_from_coords): Use
7 WINDOW_WANTS_HEADER_LINE_P, not WINDOW_WANTS_MODELINE_P, to
8 account for the header-line height. (Bug#18839)
9
12014-10-28 Ulf Jasper <ulf.jasper@web.de> 102014-10-28 Ulf Jasper <ulf.jasper@web.de>
2 11
3 * xml.c (parse_region): Do not forget the first document child. 12 * xml.c (parse_region): Do not forget the first document child.
diff --git a/src/dispnew.c b/src/dispnew.c
index 3ab8bcf3e64..900912d9d97 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -5205,7 +5205,7 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p
5205 start position, i.e. it excludes the header-line row, but 5205 start position, i.e. it excludes the header-line row, but
5206 MATRIX_ROW includes the header-line row. Adjust for a possible 5206 MATRIX_ROW includes the header-line row. Adjust for a possible
5207 header-line row. */ 5207 header-line row. */
5208 it_vpos = it.vpos + WINDOW_WANTS_MODELINE_P (w); 5208 it_vpos = it.vpos + WINDOW_WANTS_HEADER_LINE_P (w);
5209 if (it_vpos < w->current_matrix->nrows 5209 if (it_vpos < w->current_matrix->nrows
5210 && (row = MATRIX_ROW (w->current_matrix, it_vpos), 5210 && (row = MATRIX_ROW (w->current_matrix, it_vpos),
5211 row->enabled_p)) 5211 row->enabled_p))
diff --git a/src/fileio.c b/src/fileio.c
index 4ba1c5914e8..cdbd0be28ad 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1163,7 +1163,7 @@ filesystem tree, not (expand-file-name ".." dirname). */)
1163 char newdir_utf8[MAX_UTF8_PATH]; 1163 char newdir_utf8[MAX_UTF8_PATH];
1164 1164
1165 filename_from_ansi (newdir, newdir_utf8); 1165 filename_from_ansi (newdir, newdir_utf8);
1166 tem = build_string (newdir_utf8); 1166 tem = make_unibyte_string (newdir_utf8, strlen (newdir_utf8));
1167 } 1167 }
1168 else 1168 else
1169#endif 1169#endif
@@ -1199,7 +1199,7 @@ filesystem tree, not (expand-file-name ".." dirname). */)
1199 /* `getpwnam' may return a unibyte string, which will 1199 /* `getpwnam' may return a unibyte string, which will
1200 bite us since we expect the directory to be 1200 bite us since we expect the directory to be
1201 multibyte. */ 1201 multibyte. */
1202 tem = build_string (newdir); 1202 tem = make_unibyte_string (newdir, strlen (newdir));
1203 newdirlim = newdir + SBYTES (tem); 1203 newdirlim = newdir + SBYTES (tem);
1204 if (multibyte && !STRING_MULTIBYTE (tem)) 1204 if (multibyte && !STRING_MULTIBYTE (tem))
1205 { 1205 {