Merge from emacs-24; up to 117634

This commit is contained in:
Glenn Morris 2014-10-29 22:15:28 -07:00
commit 52b410c60a
24 changed files with 197 additions and 64 deletions

View file

@ -1,3 +1,20 @@
2014-10-30 Eli Zaretskii <eliz@gnu.org>
* frames.texi (Scroll Bars): Improve indexing of faces.
* killing.texi (Secondary Selection): Improve indexing of faces.
* search.texi (Basic Isearch, Query Replace): Improve indexing of faces.
* display.texi (Standard Faces, Text Display)
(Useless Whitespace): Improve indexing of faces.
* frames.texi (Frame Commands): Document and index
'frame-resize-pixelwise'.
* windows.texi (Split Window): Document and index
'window-resize-pixelwise'.
2014-10-22 Tassilo Horn <tsdh@gnu.org>
* misc.texi (Document View): Adapt to latest doc-view changes wrt

View file

@ -578,6 +578,7 @@ Parameters}.
@node Standard Faces
@section Standard Faces
@cindex standard faces
Here are the standard faces for specifying text appearance. You can
apply them to specific text when you want the effects they produce.
@ -598,8 +599,10 @@ This face underlines text.
This face forces use of a fixed-width font. It's reasonable to
customize this face to use a different fixed-width font, if you like,
but you should not make it a variable-width font.
@cindex variable-pitch face
@item variable-pitch
This face forces use of a variable-width font.
@cindex shadow face
@item shadow
This face is used for making the text less noticeable than the surrounding
ordinary text. Usually this can be achieved by using shades of gray in
@ -647,25 +650,34 @@ frame:
@table @code
@item mode-line
@cindex mode-line face
@cindex faces for mode lines
This face is used for the mode line of the currently selected window,
and for menu bars when toolkit menus are not used. By default, it's
drawn with shadows for a ``raised'' effect on graphical displays, and
drawn as the inverse of the default face on non-windowed terminals.
@item mode-line-inactive
@cindex mode-line-inactive face
Like @code{mode-line}, but used for mode lines of the windows other
than the selected one (if @code{mode-line-in-non-selected-windows} is
non-@code{nil}). This face inherits from @code{mode-line}, so changes
in that face affect mode lines in all windows.
@item mode-line-highlight
Like @code{highlight}, but used for portions of text on mode lines.
@cindex mode-line-highlight face
Like @code{highlight}, but used for mouse-sensitive portions of text
on mode lines. Such portions of text typically pop up tooltips
(@pxref{Tooltips}) when the mouse pointer hovers above them.
@item mode-line-buffer-id
@cindex mode-line-buffer-id face
This face is used for buffer identification parts in the mode line.
@item header-line
@cindex header-line face
Similar to @code{mode-line} for a window's header line, which appears
at the top of a window just as the mode line appears at the bottom.
Most windows do not have a header line---only some special modes, such
Info mode, create one.
@item vertical-border
@cindex vertical-border face
This face is used for the vertical divider between windows on text
terminals.
@item minibuffer-prompt
@ -1110,6 +1122,7 @@ empty lines at the end of a buffer, without realizing it. In most
cases, this @dfn{trailing whitespace} has no effect, but sometimes it
can be a nuisance.
@cindex trailing-whitespace face
You can make trailing whitespace at the end of a line visible by
setting the buffer-local variable @code{show-trailing-whitespace} to
@code{t}. Then Emacs displays trailing whitespace, using the face
@ -1418,6 +1431,8 @@ as octal escape sequences instead of caret escape sequences.
@cindex non-breaking space
@cindex non-breaking hyphen
@cindex soft hyphen
@cindex escape-glyph face
@cindex nobreak-space face
Some non-@acronym{ASCII} characters have the same appearance as an
@acronym{ASCII} space or hyphen (minus) character. Such characters
can cause problems if they are entered into a buffer without your

View file

@ -376,6 +376,9 @@ position (@pxref{Split Window}).
between two side-by-side mode lines, you can move the vertical
boundary to the left or right.
Note that resizing windows is affected by the value of
@code{window-resize-pixelwise}, see @ref{Split Window}.
@node Creating Frames
@section Creating Frames
@cindex creating frames
@ -469,9 +472,13 @@ hides window manager decorations, giving slightly more screen space to
Emacs itself.)
@end table
@vindex frame-resize-pixelwise
Note that with some window managers you may have to customize the
variable @code{frame-resize-pixelwise} to a non-@code{nil} value in
order to make a frame truly ``maximized'' or ``fullscreen''.
order to make a frame truly ``maximized'' or ``fullscreen''. This
variable, when set to a non-@code{nil} value, in general allows
resizing frames at pixel resolution, rather than in integral multiples
of lines and columns.
The @kbd{C-x 5 0} (@code{delete-frame}) command deletes the selected
frame. 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
bottom when the end of the buffer is shown. You can not over-scroll
when the entire buffer is visible.
@cindex scroll-bar face
The visual appearance of the scroll bars is controlled by the
@code{scroll-bar} face.
@cindex Horizontal Scroll Bar
@cindex Horizontal Scroll Bar mode
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
scroll bar height, change the @code{scroll-bar-height} frame parameter
(@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}).
@node Drag and Drop
@section Drag and Drop
@cindex drag and drop

View file

@ -588,6 +588,7 @@ you can access it using the following Emacs commands:
@table @kbd
@findex mouse-set-secondary
@kindex M-Drag-Mouse-1
@cindex secondary-selection face
@item M-Drag-Mouse-1
Set the secondary selection, with one end at the place where you press
down the button, and the other end at the place where you release it

View file

@ -86,6 +86,7 @@ not be the first @samp{F} previously found. After another @kbd{O},
the cursor moves to just after the first @samp{FOO}.
@cindex faces for highlighting search matches
@cindex isearch face
At each step, Emacs highlights the @dfn{current match}---the buffer
text that matches the search string---using the @code{isearch} face
(@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
like @code{query-replace}.
@cindex faces for highlighting query replace
@cindex query-replace face
@cindex lazy-highlight face
These commands highlight the current match using the face
@code{query-replace}. They highlight other matches using
@code{lazy-highlight} just like incremental search (@pxref{Incremental

View file

@ -134,6 +134,18 @@ clicking @kbd{C-Mouse-2} in the scroll bar, which puts a horizontal
divider where you click (this feature does not work when Emacs uses
GTK+ scroll bars).
@vindex window-resize-pixelwise
By default, when you split a window, Emacs gives each of the
resulting windows dimensions that are an integral multiple of the
default font size of the frame. That might subdivide the screen
estate unevenly between the resulting windows. If you set the
variable @code{window-resize-pixelwise} to a non-@code{nil} value,
Emacs will give each window the same number of pixels (give or take
one pixel if the initial dimension was an odd number of pixels). Note
that when a frame's pixel size is not a multiple of the frame's
character size, at least one window may get resized pixelwise even if
this option is @code{nil}.
@node Other Window
@section Using Other Windows

View file

@ -1,3 +1,12 @@
2014-10-30 Glenn Morris <rgm@gnu.org>
* efaq.texi (Gnus does not work with NNTP): Remove; ancient.
2014-10-30 Stefan Monnier <monnier@iro.umontreal.ca>
* eieio.texi (Accessing Slots, CLOS compatibility): Adjust wording
since `setf' is in core rather than in CL nowadays.
2014-10-29 Paul Eggert <eggert@cs.ucla.edu>
Simplify use of current-time and friends.

View file

@ -4190,7 +4190,6 @@ fontset, or you can select it by setting the default font in your
* Replying to the sender of a message::
* Automatically starting a mail or news reader::
* Reading news with Emacs::
* Gnus does not work with NNTP::
* Making Gnus faster::
* Catching up in all newsgroups::
@end menu
@ -4384,27 +4383,6 @@ Manual, gnus, The Gnus Manual}, which includes @ref{Frequently Asked
Questions,, the Gnus FAQ, gnus, The Gnus Manual}.
@node Gnus does not work with NNTP
@section Why doesn't Gnus work via NNTP?
@cindex Gnus and NNTP
@cindex NNTP, Gnus fails to work with
There is a bug in NNTP version 1.5.10, such that when multiple requests
are sent to the NNTP server, the server only handles the first one
before blocking waiting for more input which never comes. NNTP version
1.5.11 claims to fix this.
You can work around the bug inside Emacs like this:
@lisp
(setq nntp-maximum-request 1)
@end lisp
You can find out what version of NNTP your news server is running by
telnetting to the NNTP port (usually 119) on the news server machine
(i.e., @kbd{telnet server-machine 119}). The server should give its
version number in the welcome message. Type @kbd{quit} to get out.
@node Making Gnus faster
@section How do I make Gnus faster?
@cindex Faster, starting Gnus

View file

@ -755,8 +755,8 @@ Unlike @code{oref}, the symbol for @var{slot} must be quoted.
@defun set-slot-value object slot value
@anchor{set-slot-value}
This is not a CLOS function, but is meant to mirror @code{slot-value} if
you don't want to use the cl package's @code{setf} function. This
This is not a CLOS function, but is the setter for @code{slot-value}
used by the @code{setf} macro. This
function sets the value of @var{slot} from @var{object}. Unlike
@code{oset}, the symbol for @var{slot} must be quoted.
@end defun
@ -790,7 +790,7 @@ This establishes a lexical environment for referring to the slots in
the instance named by the given slot-names as though they were
variables. Within such a context the value of the slot can be
specified by using its slot name, as if it were a lexically bound
variable. Both setf and setq can be used to set the value of the
variable. Both @code{setf} and @code{setq} can be used to set the value of the
slot.
@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
in @eieio{} this function accepts replacement arguments. This permits
subclasses to modify arguments as they are passed up the tree. If no
arguments are given, the expected CLOS behavior is used.
@item setf
If the common-lisp subsystem is loaded, the setf parameters are also
loaded so the form @code{(setf (slot-value object slot) t)} should
work.
@end table
CLOS supports the @code{describe} command, but @eieio{} provides

View file

@ -398,9 +398,13 @@ to start debugging.
Don't assume Emacs is `hung'--it may instead be in an infinite loop.
To find out which, make the problem happen under GDB and stop Emacs
once it is not responding. (If Emacs is using X Windows directly, you
can stop Emacs by typing C-z at the GDB job.) Then try stepping with
`step'. If Emacs is hung, the `step' command won't return. If it is
looping, `step' will return.
can stop Emacs by typing C-z at the GDB job. On MS-Windows, run Emacs
as usual, and then attach GDB to it -- that will usually interrupt
whatever Emacs is doing and let you perform the steps described
below.)
Then try stepping with `step'. If Emacs is hung, the `step' command
won't return. If it is looping, `step' will return.
If this shows Emacs is hung in a system call, stop it again and
examine 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
the data being used in the loop and try to determine why the loop does
not exit when it should.
You can also trying sending Emacs SIGUSR2, which, if `debug-on-event'
has its default value, will cause Emacs to attempt to break it out of
its current loop and into the Lisp debugger. This feature is useful
when a C-level debugger is not conveniently available.
On GNU and Unix systems, you can also trying sending Emacs SIGUSR2,
which, if `debug-on-event' has its default value, will cause Emacs to
attempt to break it out of its current loop and into the Lisp
debugger. This feature is useful when a C-level debugger is not
conveniently available.
** If certain operations in Emacs are slower than they used to be, here
is some advice for how to find out why.

View file

@ -14,6 +14,37 @@ and NEWS.1-17 for changes in older Emacs versions.
You can narrow news to a specific version by calling `view-emacs-news'
with a prefix argument or by typing C-u C-h C-n.
Temporary note:
+++ indicates that all necessary documentation updates are complete.
(This means all relevant manuals in doc/ AND lisp doc-strings.)
--- means no change in the manuals is needed.
When you add a new item, use the appropriate mark if you are sure it applies,
otherwise leave it unmarked.
* Changes in Emacs 24.5
---
** The default value of `history-length' has increased to 100.
* Changes in Specialized Modes and Packages in Emacs 24.5
** `call-process-shell-command' and `process-file-shell-command'
don't take "&rest args" any more.
** Obsolete packages
*** cc-compat.el
---
*** crisp.el, tpu-edt.el, ws-mode.el
These emulations of old editors are believed to be no longer relevant
- contact emacs-devel@gnu.org if you disagree.
---
*** vi.el, vip.el (try M-x viper instead)
* Installation Changes in Emacs 24.4

View file

@ -1,3 +1,27 @@
2014-10-30 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/cc-defs.el (c--macroexpand-all): New function (bug#18845).
(c-lang-defconst):
* progmodes/cc-langs.el (c-make-init-lang-vars-fun): Use it.
2014-10-30 Eli Zaretskii <eliz@gnu.org>
* progmodes/compile.el (compilation-start):
If compilation-scroll-output is non-nil, don't force window-start of
the compilation buffer to be at beginning of buffer. (Bug#18874)
* startup.el (fancy-about-text): Read the entire tutorial, not
just its first 256 bytes. (Bug#18760)
2014-10-30 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/bytecomp.el: Require cl-extra (bug#18804).
* emacs-lisp/cl-extra.el: Add missing provide.
* emacs-lisp/bytecomp.el (byte-compile-and-folded): Optimize case where
all args are copyable (bug#18767).
(=, <, >, <=, >=): Re-enable the optimization.
2014-10-29 Glenn Morris <rgm@gnu.org>
* net/rcirc.el (rcirc-fill-column): Unbump :version. Mark :risky.

View file

@ -120,7 +120,11 @@
(require 'backquote)
(require 'macroexp)
(require 'cconv)
(eval-when-compile (require 'cl-lib))
;; During bootstrap, cl-loaddefs.el is not created yet, so loading cl-lib
;; doesn't setup autoloads for things like cl-every, which is why we have to
;; require cl-extra instead (bug#18804).
(require 'cl-extra)
(or (fboundp 'defsubst)
;; This really ought to be loaded already!
@ -3283,11 +3287,11 @@ If it is nil, then the handler is \"byte-compile-SYMBOL.\""
(byte-defop-compiler cons 2)
(byte-defop-compiler aref 2)
(byte-defop-compiler set 2)
(byte-defop-compiler (= byte-eqlsign) 2) ;; -and bug#18767
(byte-defop-compiler (< byte-lss) 2) ;; -and bug#18767
(byte-defop-compiler (> byte-gtr) 2) ;; -and bug#18767
(byte-defop-compiler (<= byte-leq) 2) ;; -and bug#18767
(byte-defop-compiler (>= byte-geq) 2) ;; -and bug#18767
(byte-defop-compiler (= byte-eqlsign) 2-and)
(byte-defop-compiler (< byte-lss) 2-and)
(byte-defop-compiler (> byte-gtr) 2-and)
(byte-defop-compiler (<= byte-leq) 2-and)
(byte-defop-compiler (>= byte-geq) 2-and)
(byte-defop-compiler get 2)
(byte-defop-compiler nth 2)
(byte-defop-compiler substring 2-3)
@ -3354,13 +3358,14 @@ If it is nil, then the handler is \"byte-compile-SYMBOL.\""
(defun byte-compile-and-folded (form)
"Compile calls to functions like `<='.
These implicitly `and' together a bunch of two-arg bytecodes."
;; FIXME: bug#18767 means we can't do it this way!
(let ((l (length form)))
(cond
((< l 3) (byte-compile-form `(progn ,(nth 1 form) t)))
((= l 3) (byte-compile-two-args form))
(t (byte-compile-form `(and (,(car form) ,(nth 1 form) ,(nth 2 form))
(,(car form) ,@(nthcdr 2 form))))))))
((cl-every #'macroexp-copyable-p (nthcdr 2 form))
(byte-compile-form `(and (,(car form) ,(nth 1 form) ,(nth 2 form))
(,(car form) ,@(nthcdr 2 form)))))
(t (byte-compile-normal-call form)))))
(defun byte-compile-three-args (form)
(if (not (= (length form) 4))

View file

@ -720,4 +720,5 @@ including `cl-block' and `cl-eval-when'."
;; generated-autoload-file: "cl-loaddefs.el"
;; End:
(provide 'cl-extra)
;;; cl-extra.el ends here

View file

@ -984,7 +984,7 @@ Otherwise return the normal value."
;; macros, since it enables certain macros to be shared between X and TTY modes
;; by correctly mapping key sequences for Left/Right/... (on an ascii
;; terminal) into logical keys left, right, etc.
(defun viper-read-key ()
(defun viper-read-key () ;; FIXME: Use `read-key'?
(let ((overriding-local-map viper-overriding-map)
(inhibit-quit t)
help-char key)

View file

@ -531,6 +531,7 @@ If Viper is enabled, turn it off. Otherwise, turn it on."
(if viper-mode
()
(setq viper-mode t)
;; FIXME: Don't reload!
(load-library "viper"))
(if viper-first-time ; Important check. Prevents mix-up of startup
@ -887,6 +888,7 @@ Two differences:
;; When viper-mode is executed in such a case, it will set the major mode
;; back to fundamental-mode.
(if (eq (default-value 'major-mode) 'fundamental-mode)
;; FIXME: We should use after-change-major-mode-hook instead!
(setq-default major-mode 'viper-mode))
(viper-setup-ESC-to-escape t)
@ -936,6 +938,7 @@ Two differences:
(defadvice self-insert-command (around viper-self-insert-ad activate)
"Ignore all self-inserting keys in the vi-state."
;; FIXME: Use remapping?
(if (and (eq viper-current-state 'vi-state)
;; Do not use called-interactively-p here. XEmacs does not have it
;; and interactive-p is just fine.

View file

@ -265,9 +265,7 @@ nil - don't add to mode line."
(erc-track-add-to-mode-line val))))
(defun erc-modified-channels-object (strings)
"Generate a new `erc-modified-channels-object' based on STRINGS.
If STRINGS is nil, we initialize `erc-modified-channels-object' to
an appropriate initial value for this flavor of Emacs."
"Generate a new `erc-modified-channels-object' based on STRINGS."
(if strings
(if (featurep 'xemacs)
(let ((e-m-c-s '("[")))
@ -743,7 +741,7 @@ only consider active buffers visible.")
(defvar erc-modified-channels-update-inside nil
"Variable to prevent running `erc-modified-channels-update' multiple
times. Without it, you cannot debug `erc-modified-channels-display',
because the debugger also cases changes to the window-configuration.")
because the debugger also causes changes to the window-configuration.")
(defun erc-modified-channels-update (&rest _args)
"This function updates the information in `erc-modified-channels-alist'

View file

@ -174,6 +174,10 @@ This variant works around bugs in `eval-when-compile' in various
(put 'cc-eval-when-compile 'lisp-indent-hook 0))
(eval-and-compile
(defalias 'c--macroexpand-all
(if (fboundp 'macroexpand-all)
'macroexpand-all 'cl-macroexpand-all)))
;;; Macros.
@ -1841,7 +1845,7 @@ system."
immediately, i.e. at the same time as the `c-lang-defconst' form
itself is evaluated."
;; Evaluate at macro expansion time, i.e. in the
;; `macroexpand-all' inside `c-lang-defconst'.
;; `c--macroexpand-all' inside `c-lang-defconst'.
(eval form))
(defmacro c-lang-defconst (name &rest args)
@ -1885,7 +1889,7 @@ constant. A file is identified by its base name."
(let* ((sym (intern (symbol-name name) c-lang-constants))
;; Make `c-lang-const' expand to a straightforward call to
;; `c-get-lang-constant' in `macroexpand-all' below.
;; `c-get-lang-constant' in `c--macroexpand-all' below.
;;
;; (The default behavior, i.e. to expand to a call inside
;; `eval-when-compile' should be equivalent, since that macro
@ -1948,7 +1952,7 @@ constant. A file is identified by its base name."
;; reason, but we also use this expansion handle
;; `c-lang-defconst-eval-immediately' and to register
;; dependencies on the `c-lang-const's in VAL.)
(setq val (macroexpand-all val))
(setq val (c--macroexpand-all val))
(setq bindings `(cons (cons ',assigned-mode (lambda () ,val)) ,bindings)
args (cdr args))))

View file

@ -3238,7 +3238,7 @@ accomplish that conveniently."
`(lambda ()
;; This let sets up the context for `c-mode-var' and similar
;; that could be in the result from `macroexpand-all'.
;; that could be in the result from `c--macroexpand-all'.
(let ((c-buffer-is-cc-mode ',mode)
current-var source-eval)
(c-make-emacs-variables-local)
@ -3248,12 +3248,12 @@ accomplish that conveniently."
(setq ,@(let ((c-buffer-is-cc-mode mode)
(c-lang-const-expansion 'immediate))
;; `c-lang-const' will expand to the evaluated
;; constant immediately in `macroexpand-all'
;; constant immediately in `c--macroexpand-all'
;; below.
(mapcan
(lambda (init)
`(current-var ',(car init)
,(car init) ,(macroexpand-all
,(car init) ,(c--macroexpand-all
(elt init 1))))
;; Note: The following `append' copies the
;; first argument. That list is small, so

View file

@ -1676,7 +1676,16 @@ Returns the compilation buffer created."
(list command mode name-function highlight-regexp))
(set (make-local-variable 'revert-buffer-function)
'compilation-revert-buffer)
(and outwin (set-window-start outwin (point-min)))
(and outwin
;; Forcing the window-start overrides the usual redisplay
;; feature of bringing point into view, so setting the
;; window-start to top of the buffer risks losing the
;; effect of moving point to EOB below, per
;; compilation-scroll-output, if the command is long
;; enough to push point outside of the window. This
;; could happen, e.g., in `rgrep'.
(not compilation-scroll-output)
(set-window-start outwin (point-min)))
;; Position point as the user will see it.
(let ((desired-visible-point

View file

@ -1496,7 +1496,10 @@ Each element in the list should be a list of strings or pairs
(title (with-temp-buffer
(insert-file-contents
(expand-file-name tut tutorial-directory)
nil 0 256)
;; Reat the entire file, to make sure any
;; coding cookies and other local variables
;; get acted upon.
nil)
(search-forward ".")
(buffer-substring (point-min) (1- (point))))))
;; If there is a specific tutorial for the current language

View file

@ -1,3 +1,12 @@
2014-10-30 Eli Zaretskii <eliz@gnu.org>
* fileio.c (Fexpand_file_name): Use make_unibyte_string, not
build_string, when importing a home directory. (Bug#18873)
* dispnew.c (buffer_posn_from_coords): Use
WINDOW_WANTS_HEADER_LINE_P, not WINDOW_WANTS_MODELINE_P, to
account for the header-line height. (Bug#18839)
2014-10-28 Ulf Jasper <ulf.jasper@web.de>
* xml.c (parse_region): Do not forget the first document child.

View file

@ -5205,7 +5205,7 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p
start position, i.e. it excludes the header-line row, but
MATRIX_ROW includes the header-line row. Adjust for a possible
header-line row. */
it_vpos = it.vpos + WINDOW_WANTS_MODELINE_P (w);
it_vpos = it.vpos + WINDOW_WANTS_HEADER_LINE_P (w);
if (it_vpos < w->current_matrix->nrows
&& (row = MATRIX_ROW (w->current_matrix, it_vpos),
row->enabled_p))

View file

@ -1163,7 +1163,7 @@ filesystem tree, not (expand-file-name ".." dirname). */)
char newdir_utf8[MAX_UTF8_PATH];
filename_from_ansi (newdir, newdir_utf8);
tem = build_string (newdir_utf8);
tem = make_unibyte_string (newdir_utf8, strlen (newdir_utf8));
}
else
#endif
@ -1199,7 +1199,7 @@ filesystem tree, not (expand-file-name ".." dirname). */)
/* `getpwnam' may return a unibyte string, which will
bite us since we expect the directory to be
multibyte. */
tem = build_string (newdir);
tem = make_unibyte_string (newdir, strlen (newdir));
newdirlim = newdir + SBYTES (tem);
if (multibyte && !STRING_MULTIBYTE (tem))
{