From d9a72916e54b1bef8ad2322e6833f643473877b6 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 20 Oct 2014 18:02:40 -0400 Subject: [PATCH 01/35] * src/minibuf.c (history-length): Increase default from 30 to 100. * lisp/cus-start.el (history-length): Bump :version. [Backport] --- etc/NEWS | 8 ++++++++ lisp/ChangeLog | 4 ++++ lisp/cus-start.el | 2 +- src/ChangeLog | 8 ++++++-- src/minibuf.c | 2 +- 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index eba9b940585..12c67c84e7b 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -14,6 +14,14 @@ 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. +* 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 + +** cc-compat.el is marked as obsolete. * Installation Changes in Emacs 24.4 diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 398d2ccba72..376e4a3a87d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * cus-start.el (history-length): Bump :version. [Backport] + 2014-10-20 Stefan Monnier * obsolete/cc-compat.el: Make obsolete (bug#18561). diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 2da67112bd3..ed19f75b5d2 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -317,7 +317,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (enable-recursive-minibuffers minibuffer boolean) (history-length minibuffer (choice (const :tag "Infinite" t) integer) - "22.1") + "24.5") ; 30 -> 100 (history-delete-duplicates minibuffer boolean "22.1") (read-buffer-completion-ignore-case minibuffer boolean "23.1") diff --git a/src/ChangeLog b/src/ChangeLog index 39e94a85a0e..ec904da39bb 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-10-20 Glenn Morris + + * minibuf.c (history-length): Increase default from 30 to 100. + [Backport] + 2014-10-20 Stefan Monnier * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we @@ -52,8 +57,7 @@ array of 2 values specifying the coordinates of the frame's top-left corner. Use these values instead of calling x_get_arg, which can cons Lisp objects, and therefore cannot be called except - from the main thread. Remove redundant tests for the default - values. + from the main thread. Remove redundant tests for the default values. (my_create_window): Move the calculation of the coordinates of the frame's top-left edge here. Pass them to the input thread via the second parameter of the WM_EMACS_CREATEWINDOW message. diff --git a/src/minibuf.c b/src/minibuf.c index c3fcbeb59c7..3042b13b7d6 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -1970,7 +1970,7 @@ A value of t means no truncation. This variable only affects history lists that don't specify their own maximum lengths. Setting the `history-length' property of a history variable overrides this default. */); - XSETFASTINT (Vhistory_length, 30); + XSETFASTINT (Vhistory_length, 100); DEFVAR_BOOL ("history-delete-duplicates", history_delete_duplicates, doc: /* Non-nil means to delete duplicates in history. From ef65424de8cae00209f6a0974245822602709df3 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 20 Oct 2014 18:12:13 -0400 Subject: [PATCH 02/35] Make most emulation packages obsolete. [Backport] * emulation/crisp.el, emulation/tpu-edt.el, emulation/tpu-extras.el: * emulation/tpu-mapper.el, emulation/vi.el, emulation/vip.el: * emulation/ws-mode.el: Move to obsolete/. * doc/emacs/ack.texi (Acknowledgments): Remove some obsolete items. * doc/emacs/misc.texi (Emulation): Remove section. * doc/lispintro/emacs-lisp-intro.texi (Autoload): Update loaddefs.el details. * doc/misc/efaq.texi (Finding a package with particular functionality): Update example. * doc/misc/vip.texi: Mention this is obsolete. --- doc/emacs/ChangeLog | 5 +++++ doc/emacs/ack.texi | 17 ++++------------- doc/emacs/emacs.texi | 1 - doc/emacs/misc.texi | 14 ++++++++------ doc/lispintro/ChangeLog | 4 ++++ doc/lispintro/emacs-lisp-intro.texi | 4 ++-- doc/misc/ChangeLog | 6 ++++++ doc/misc/efaq.texi | 4 ++-- doc/misc/vip.texi | 8 +++++++- etc/NEWS | 9 +++++++++ lisp/ChangeLog | 6 ++++++ lisp/{emulation => obsolete}/crisp.el | 1 + lisp/{emulation => obsolete}/tpu-edt.el | 1 + lisp/{emulation => obsolete}/tpu-extras.el | 1 + lisp/{emulation => obsolete}/tpu-mapper.el | 1 + lisp/{emulation => obsolete}/vi.el | 3 +++ lisp/{emulation => obsolete}/vip.el | 7 +++++-- lisp/{emulation => obsolete}/ws-mode.el | 1 + 18 files changed, 66 insertions(+), 27 deletions(-) rename lisp/{emulation => obsolete}/crisp.el (99%) rename lisp/{emulation => obsolete}/tpu-edt.el (99%) rename lisp/{emulation => obsolete}/tpu-extras.el (99%) rename lisp/{emulation => obsolete}/tpu-mapper.el (99%) rename lisp/{emulation => obsolete}/vi.el (99%) rename lisp/{emulation => obsolete}/vip.el (99%) rename lisp/{emulation => obsolete}/ws-mode.el (99%) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 1dfda079bf2..f383205b15e 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,8 @@ +2014-10-20 Glenn Morris + + * ack.texi (Acknowledgments): Remove some obsolete items. + * misc.texi (Emulation): Remove section. + 2014-10-20 Glenn Morris * Version 24.4 released. diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi index ccd58b7aece..c611dcd7047 100644 --- a/doc/emacs/ack.texi +++ b/doc/emacs/ack.texi @@ -349,8 +349,7 @@ mail messages; and @file{saveplace.el}, for preserving point's location in files between editing sessions. @item -Gary Foster wrote @file{crisp.el}, the emulation for CRiSP and Brief -editors; and @file{scroll-all.el}, a mode for scrolling several buffers +Gary Foster wrote @file{scroll-all.el}, a mode for scrolling several buffers together. @item @@ -601,7 +600,7 @@ buffers. @item Michael Kifer wrote @code{ediff}, an interactive interface to the @command{diff}, @command{patch}, and @command{merge} programs; and -Viper, another emulator of the VI editor. +Viper, an emulator of the VI editor. @item Richard King wrote the first version of @file{userlock.el} and @@ -883,9 +882,6 @@ a mode for editing makefiles. Thien-Thi Nguyen and Dan Nicolaescu wrote @file{hideshow.el}, a minor mode for selectively displaying blocks of text. -@item -Jurgen Nickelsen wrote @file{ws-mode.el}, providing WordStar emulation. - @item Dan Nicolaescu added support for running Emacs as a daemon. He also wrote @file{romanian.el}, support for editing Romanian text; @@ -1037,10 +1033,8 @@ Alex Rezinsky wrote @file{which-func.el}, a mode that shows the name of the current function in the mode line. @item -Rob Riepel wrote @file{tpu-edt.el} and its associated files, providing -an emulation of the VMS TPU text editor emulating the VMS EDT editor, -and @file{vt-control.el}, providing some control functions for the DEC -VT line of terminals. +Rob Riepel wrote @file{vt-control.el}, providing some control +functions for the DEC VT line of terminals. @item Nick Roberts wrote @file{t-mouse.el}, for mouse support in text @@ -1083,9 +1077,6 @@ references in Info files. James B. Salem and Brewster Kahle wrote @file{completion.el}, providing dynamic word completion. -@item -Masahiko Sato wrote @file{vip.el}, an emulation of the VI editor. - @item Holger Schauer wrote @file{fortune.el}, a package for using fortune in message signatures. diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 81a75807511..b473e0ce312 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi @@ -201,7 +201,6 @@ Advanced Features * Editing Binary Files:: Editing binary files with Hexl mode. * Saving Emacs Sessions:: Saving Emacs state from one session to the next. * Recursive Edit:: Performing edits while "within another command". -* Emulation:: Emulating some other editors with Emacs. * Hyperlinking:: Following links in buffers. * Amusements:: Various games and hacks. * Packages:: Installing additional features. diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 9d660f16e19..f77cb993d71 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -2268,17 +2268,17 @@ new major mode which provides a command to switch back. These approaches give you more flexibility to go back to unfinished tasks in the order you choose. +@ignore +@c Apart from edt and viper, this is all obsolete. +@c (Can't believe we were saying ``most other editors'' into 2014!) +@c There seems no point having a node just for those, which both have +@c their own manuals. @node Emulation @section Emulation @cindex emulating other editors @cindex other editors @cindex EDT @cindex vi -@cindex PC key bindings -@cindex scrolling all windows -@cindex PC selection -@cindex Motif key bindings -@cindex Macintosh key bindings @cindex WordStar GNU Emacs can be programmed to emulate (more or less) some other @@ -2318,7 +2318,7 @@ buffers or major modes while in EDT emulation. @item vi (Berkeley editor) @findex viper-mode -Viper is the newest emulator for vi. It implements several levels of +Viper is an emulator for vi. It implements several levels of emulation; level 1 is closest to vi itself, while level 5 departs somewhat from strict emulation to take advantage of the capabilities of Emacs. To invoke Viper, type @kbd{M-x viper-mode}; it will guide you @@ -2359,6 +2359,8 @@ not use it. @kbd{M-x wordstar-mode} provides a major mode with WordStar-like key bindings. @end table +@end ignore + @node Hyperlinking @section Hyperlinking and Navigation Features diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index d70345983f7..fb9c18626ab 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog @@ -1,3 +1,7 @@ +2014-10-20 Glenn Morris + + * emacs-lisp-intro.texi (Autoload): Update loaddefs.el details. + 2014-10-20 Glenn Morris * Version 24.4 released. diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index 8ff57619c04..0ea75ea531c 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -17548,8 +17548,8 @@ are not loaded right away; but you need to wait a moment when you first use such a function, while its containing file is evaluated. Rarely used functions are frequently autoloaded. The -@file{loaddefs.el} library contains hundreds of autoloaded functions, -from @code{bookmark-set} to @code{wordstar-mode}. Of course, you may +@file{loaddefs.el} library contains thousands of autoloaded functions, +from @code{5x5} to @code{zone}. Of course, you may come to use a `rare' function frequently. When you do, you should load that function's file with a @code{load} expression in your @file{.emacs} file. diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 416d44d779c..dda1b35594b 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,9 @@ +2014-10-20 Glenn Morris + + * efaq.texi (Finding a package with particular functionality): + Update example. + * vip.texi: Mention this is obsolete. + 2014-10-20 Glenn Morris * Version 24.4 released. diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi index c320b8b6c08..0ba2838075c 100644 --- a/doc/misc/efaq.texi +++ b/doc/misc/efaq.texi @@ -3268,8 +3268,8 @@ archive sites that make GNU software available. First of all, you should check to make sure that the package isn't already available. For example, typing @kbd{M-x apropos @key{RET} -wordstar @key{RET}} lists all functions and variables containing the -string @samp{wordstar}. +python @key{RET}} lists all functions and variables containing the +string @samp{python}. It is also possible that the package is on your system, but has not been loaded. To see which packages are available for loading, look through diff --git a/doc/misc/vip.texi b/doc/misc/vip.texi index e7a53e768a7..9d6060f8de6 100644 --- a/doc/misc/vip.texi +++ b/doc/misc/vip.texi @@ -38,7 +38,7 @@ modify this GNU manual.'' @dircategory Emacs misc features @direntry -* VIP: (vip). An older VI-emulation for Emacs. +* VIP: (vip). An obsolete VI-emulation for Emacs. @end direntry @ifnottex @@ -53,6 +53,9 @@ are fairly accustomed to Vi but not so much with Emacs. Also we will concentrate mainly on differences from Vi, especially features unique to VIP. +VIP is obsolete since Emacs 24.5---consider using Viper instead. +@xref{Top, Viper,, viper, The Viper VI-emulation mode for Emacs}. + It is recommended that you read nodes on survey and on customization before you start using VIP@. Other nodes may be visited as needed. @@ -83,6 +86,9 @@ fairly accustomed to Vi but not so much with Emacs. Also we will concentrate mainly on differences from Vi, especially features unique to VIP. +VIP is obsolete since Emacs 24.5---consider using Viper instead. +@xref{Top, Viper,, viper, The Viper VI-emulation mode for Emacs}. + It is recommended that you read chapters on survey and on customization before you start using VIP@. Other chapters may be used as future references. diff --git a/etc/NEWS b/etc/NEWS index 12c67c84e7b..31baeb33516 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -16,11 +16,20 @@ with a prefix argument or by typing C-u C-h C-n. * 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 +--- +*** vi.el, vip.el (try M-x viper instead) + +--- +*** 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. + ** cc-compat.el is marked as obsolete. * Installation Changes in Emacs 24.4 diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 376e4a3a87d..2758f48d4df 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-10-20 Glenn Morris + + * emulation/crisp.el, emulation/tpu-edt.el, emulation/tpu-extras.el: + * emulation/tpu-mapper.el, emulation/vi.el, emulation/vip.el: + * emulation/ws-mode.el: Move to obsolete/. [Backport] + 2014-10-20 Glenn Morris * cus-start.el (history-length): Bump :version. [Backport] diff --git a/lisp/emulation/crisp.el b/lisp/obsolete/crisp.el similarity index 99% rename from lisp/emulation/crisp.el rename to lisp/obsolete/crisp.el index ad463412735..47cf898190b 100644 --- a/lisp/emulation/crisp.el +++ b/lisp/obsolete/crisp.el @@ -4,6 +4,7 @@ ;; Author: Gary D. Foster ;; Keywords: emulations brief crisp +;; Obsolete-since: 24.5 ;; This file is part of GNU Emacs. diff --git a/lisp/emulation/tpu-edt.el b/lisp/obsolete/tpu-edt.el similarity index 99% rename from lisp/emulation/tpu-edt.el rename to lisp/obsolete/tpu-edt.el index d9ed1908c76..43189319a6a 100644 --- a/lisp/emulation/tpu-edt.el +++ b/lisp/obsolete/tpu-edt.el @@ -6,6 +6,7 @@ ;; Maintainer: Rob Riepel ;; Version: 4.5 ;; Keywords: emulations +;; Obsolete-since: 24.5 ;; This file is part of GNU Emacs. diff --git a/lisp/emulation/tpu-extras.el b/lisp/obsolete/tpu-extras.el similarity index 99% rename from lisp/emulation/tpu-extras.el rename to lisp/obsolete/tpu-extras.el index 9ebaaf6ffce..32257e840ac 100644 --- a/lisp/emulation/tpu-extras.el +++ b/lisp/obsolete/tpu-extras.el @@ -6,6 +6,7 @@ ;; Maintainer: Rob Riepel ;; Keywords: emulations ;; Package: tpu-edt +;; Obsolete-since: 24.5 ;; This file is part of GNU Emacs. diff --git a/lisp/emulation/tpu-mapper.el b/lisp/obsolete/tpu-mapper.el similarity index 99% rename from lisp/emulation/tpu-mapper.el rename to lisp/obsolete/tpu-mapper.el index 2479389ac3c..d653685218b 100644 --- a/lisp/emulation/tpu-mapper.el +++ b/lisp/obsolete/tpu-mapper.el @@ -6,6 +6,7 @@ ;; Maintainer: Rob Riepel ;; Keywords: emulations ;; Package: tpu-edt +;; Obsolete-since: 24.5 ;; This file is part of GNU Emacs. diff --git a/lisp/emulation/vi.el b/lisp/obsolete/vi.el similarity index 99% rename from lisp/emulation/vi.el rename to lisp/obsolete/vi.el index 9aae40c0d00..bb57735b0a9 100644 --- a/lisp/emulation/vi.el +++ b/lisp/obsolete/vi.el @@ -8,9 +8,12 @@ ;; Author: Neal Ziring ;; Felix S. T. Wu ;; Keywords: emulations +;; Obsolete-since: 24.5 ;;; Commentary: +;; This file is obsolete. Consider using viper instead. + ;; Originally written by : seismo!wucs!nz@rsch.wisc.edu (Neal Ziring) ;; Extensively redesigned and rewritten by wu@crys.wisc.edu (Felix S.T. Wu) ;; Last revision: 01/07/87 Wed (for GNU Emacs 18.33) diff --git a/lisp/emulation/vip.el b/lisp/obsolete/vip.el similarity index 99% rename from lisp/emulation/vip.el rename to lisp/obsolete/vip.el index 09456e6320b..ea102cb0ac5 100644 --- a/lisp/emulation/vip.el +++ b/lisp/obsolete/vip.el @@ -1,10 +1,11 @@ ;;; vip.el --- a VI Package for GNU Emacs -;; Copyright (C) 1986-1988, 1992-1993, 1998, 2001-2014 Free Software -;; Foundation, Inc. +;; Copyright (C) 1986-1988, 1992-1993, 1998, 2001-2014 +;; Free Software Foundation, Inc. ;; Author: Masahiko Sato ;; Keywords: emulations +;; Obsolete-since: 24.5 ;; This file is part of GNU Emacs. @@ -23,6 +24,8 @@ ;;; Commentary: +;; This file is obsolete. Consider using viper instead. + ;; A full-featured vi(1) emulator. ;; ;; In Japan, the author's address is: masahiko@sato.riec.tohoku.junet diff --git a/lisp/emulation/ws-mode.el b/lisp/obsolete/ws-mode.el similarity index 99% rename from lisp/emulation/ws-mode.el rename to lisp/obsolete/ws-mode.el index fb140e6ebd7..d87cc73252b 100644 --- a/lisp/emulation/ws-mode.el +++ b/lisp/obsolete/ws-mode.el @@ -5,6 +5,7 @@ ;; Author: Juergen Nickelsen ;; Version: 0.7 ;; Keywords: emulations +;; Obsolete-since: 24.5 ;; This file is part of GNU Emacs. From 9d982156cb1ba6465b53e4722469e475f897385b Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 20 Oct 2014 18:14:21 -0400 Subject: [PATCH 03/35] * erc/erc-track.el: Docstring fixes. --- lisp/erc/erc-track.el | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el index 706cce2fefe..67d41c74e81 100644 --- a/lisp/erc/erc-track.el +++ b/lisp/erc/erc-track.el @@ -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' From 3e7807011bfb0e7921949ff5d74b2afa5129a726 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 20 Oct 2014 18:21:56 -0400 Subject: [PATCH 04/35] * lisp/Makefile.in (AUTOGEN_VCS): Remove emulation/tpu-edt.el. [Backport] --- lisp/ChangeLog | 6 +++++- lisp/Makefile.in | 1 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2758f48d4df..6680722dd4f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2014-10-20 Stefan Monnier + + * Makefile.in (AUTOGEN_VCS): Remove emulation/tpu-edt.el. + 2014-10-20 Glenn Morris * emulation/crisp.el, emulation/tpu-edt.el, emulation/tpu-extras.el: @@ -12,7 +16,7 @@ * obsolete/cc-compat.el: Make obsolete (bug#18561). - * epg-config.el (epg-gpg-program): Don't use the absolute names by default. + * epg-config.el (epg-gpg-program): Don't use absolute names by default. * emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg case (bug#18767). diff --git a/lisp/Makefile.in b/lisp/Makefile.in index a1cd6d19ce8..5e42cd16bfc 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -74,7 +74,6 @@ AUTOGENEL = loaddefs.el \ # Note that update_loaddefs parses this. AUTOGEN_VCS = \ ps-print.el \ - emulation/tpu-edt.el \ mail/rmail.el \ dired.el \ ibuffer.el \ From 2d8e7d1d0367cb9de1956224503afeaa2d4563cd Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 20 Oct 2014 18:23:28 -0400 Subject: [PATCH 05/35] * doc/misc/eieio.texi (Accessing Slots, CLOS compatibility): Adjust wording since `setf' is in core rather than in CL nowadays. --- doc/misc/ChangeLog | 5 +++++ doc/misc/eieio.texi | 10 +++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index dda1b35594b..0aafd852d1a 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,8 @@ +2014-10-20 Stefan Monnier + + * eieio.texi (Accessing Slots, CLOS compatibility): Adjust wording + since `setf' is in core rather than in CL nowadays. + 2014-10-20 Glenn Morris * efaq.texi (Finding a package with particular functionality): diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi index 937fae26907..c78229b8ab7 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. @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 From 3b1f2e09998262fb103c9d2dee3383746977d1d1 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 20 Oct 2014 18:35:43 -0400 Subject: [PATCH 06/35] * list/emulation/viper: Add some FIXME comments. --- lisp/emulation/viper-util.el | 2 +- lisp/emulation/viper.el | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) 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." ;; 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) 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." (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. From c9f7e33c60b95981367187d0419b50a8d4024ff4 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 20 Oct 2014 18:37:04 -0400 Subject: [PATCH 07/35] * lisp/progmodes/python.el (inferior-python-mode): Use add-hook. --- lisp/ChangeLog | 2 ++ lisp/progmodes/python.el | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6680722dd4f..9e1ffa7ba20 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2014-10-20 Stefan Monnier + * progmodes/python.el (inferior-python-mode): Use add-hook. + * Makefile.in (AUTOGEN_VCS): Remove emulation/tpu-edt.el. 2014-10-20 Glenn Morris diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index a564acc3075..c828de10304 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -2165,9 +2165,9 @@ variable. (define-key inferior-python-mode-map [remap complete-symbol] 'completion-at-point) (add-hook 'completion-at-point-functions - 'python-shell-completion-complete-at-point nil 'local) - (add-to-list (make-local-variable 'comint-dynamic-complete-functions) - 'python-shell-completion-complete-at-point) + #'python-shell-completion-complete-at-point nil 'local) + (add-hook 'comint-dynamic-complete-functions ;FIXME: really? + #'python-shell-completion-complete-at-point nil 'local) (define-key inferior-python-mode-map "\t" 'python-shell-completion-complete-or-indent) (make-local-variable 'python-pdbtrack-buffers-to-kill) From 3ac4e4c0eb19cecf7adce4ad6ffe60f70ad8a72d Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 20 Oct 2014 18:39:30 -0400 Subject: [PATCH 08/35] * lisp/dired.el (dired-read-regexp): Make obsolete. [Backport] (dired-mark-files-regexp, dired-mark-files-containing-regexp) (dired-flag-files-regexp): * lisp/dired-aux.el (dired-mark-read-regexp): * lisp/dired-x.el (dired-mark-unmarked-files): Use read-regexp directly. --- lisp/ChangeLog | 8 ++++++++ lisp/dired-aux.el | 9 +++++---- lisp/dired-x.el | 8 ++++---- lisp/dired.el | 18 +++++++++++------- 4 files changed, 28 insertions(+), 15 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9e1ffa7ba20..7fabbf14038 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2014-10-20 Glenn Morris + + * dired.el (dired-read-regexp): Make obsolete. + (dired-mark-files-regexp, dired-mark-files-containing-regexp) + (dired-flag-files-regexp): + * dired-aux.el (dired-mark-read-regexp): + * dired-x.el (dired-mark-unmarked-files): Use read-regexp directly. + 2014-10-20 Stefan Monnier * progmodes/python.el (inferior-python-mode): Use add-hook. diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index b1d5f4e53b0..432d2307725 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -1,7 +1,7 @@ ;;; dired-aux.el --- less commonly used parts of dired -;; Copyright (C) 1985-1986, 1992, 1994, 1998, 2000-2014 Free Software -;; Foundation, Inc. +;; Copyright (C) 1985-1986, 1992, 1994, 1998, 2000-2014 +;; Free Software Foundation, Inc. ;; Author: Sebastian Kremer . ;; Maintainer: emacs-devel@gnu.org @@ -1921,8 +1921,9 @@ Type SPC or `y' to %s one match, DEL or `n' to skip to next, (arg (if whole-name nil current-prefix-arg)) (regexp - (dired-read-regexp - (concat (if whole-name "Abs. " "") operation " from (regexp): "))) + (read-regexp + (concat (if whole-name "Abs. " "") operation " from (regexp): ") + nil 'dired-regexp-history)) (newname (read-string (concat (if whole-name "Abs. " "") operation " " regexp " to: ")))) diff --git a/lisp/dired-x.el b/lisp/dired-x.el index 947de7cd9f8..25c6f8b69af 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el @@ -1,7 +1,6 @@ ;;; dired-x.el --- extra Dired functionality -*- lexical-binding:t -*- -;; Copyright (C) 1993-1994, 1997, 2001-2014 Free Software Foundation, -;; Inc. +;; Copyright (C) 1993-1994, 1997, 2001-2014 Free Software Foundation, Inc. ;; Author: Sebastian Kremer ;; Lawrence R. Dodd @@ -556,8 +555,9 @@ interactively, prompt for REGEXP. With prefix argument, unflag all those files. Optional fourth argument LOCALP is as in `dired-get-filename'." (interactive - (list (dired-read-regexp - "Mark unmarked files matching regexp (default all): ") + (list (read-regexp + "Mark unmarked files matching regexp (default all): " + nil 'dired-regexp-history) nil current-prefix-arg nil)) (let ((dired-marker-char (if unflag-p ?\s dired-marker-char))) (dired-mark-if diff --git a/lisp/dired.el b/lisp/dired.el index 60f8c1e9dfc..98d3032637b 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -1,7 +1,7 @@ ;;; dired.el --- directory-browsing commands -*- lexical-binding: t -*- -;; Copyright (C) 1985-1986, 1992-1997, 2000-2014 Free Software -;; Foundation, Inc. +;; Copyright (C) 1985-1986, 1992-1997, 2000-2014 +;; Free Software Foundation, Inc. ;; Author: Sebastian Kremer ;; Maintainer: emacs-devel@gnu.org @@ -3302,6 +3302,7 @@ As always, hidden subdirs are not affected." (defun dired-read-regexp (prompt &optional default history) "Read a regexp using `read-regexp'." + (declare (obsolete read-regexp "24.5")) (read-regexp prompt default (or history 'dired-regexp-history))) (defun dired-mark-files-regexp (regexp &optional marker-char) @@ -3312,8 +3313,9 @@ A prefix argument means to unmark them instead. REGEXP is an Emacs regexp, not a shell wildcard. Thus, use `\\.o$' for object files--just `.o' will mark more than you might think." (interactive - (list (dired-read-regexp (concat (if current-prefix-arg "Unmark" "Mark") - " files (regexp): ")) + (list (read-regexp (concat (if current-prefix-arg "Unmark" "Mark") + " files (regexp): ") + nil 'dired-regexp-history) (if current-prefix-arg ?\040))) (let ((dired-marker-char (or marker-char dired-marker-char))) (dired-mark-if @@ -3328,8 +3330,9 @@ object files--just `.o' will mark more than you might think." A prefix argument means to unmark them instead. `.' and `..' are never marked." (interactive - (list (dired-read-regexp (concat (if current-prefix-arg "Unmark" "Mark") - " files containing (regexp): ")) + (list (read-regexp (concat (if current-prefix-arg "Unmark" "Mark") + " files containing (regexp): ") + nil 'dired-regexp-history) (if current-prefix-arg ?\040))) (let ((dired-marker-char (or marker-char dired-marker-char))) (dired-mark-if @@ -3359,7 +3362,8 @@ A prefix argument means to unmark them instead. The match is against the non-directory part of the filename. Use `^' and `$' to anchor matches. Exclude subdirs by hiding them. `.' and `..' are never flagged." - (interactive (list (dired-read-regexp "Flag for deletion (regexp): "))) + (interactive (list (read-regexp "Flag for deletion (regexp): " + nil 'dired-regexp-history))) (dired-mark-files-regexp regexp dired-del-marker)) (defun dired-mark-symlinks (unflag-p) From 531f56f59b2ae2fc79377662bd041b85b2563268 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Mon, 20 Oct 2014 18:41:19 -0400 Subject: [PATCH 09/35] * lisp/skeleton.el (skeleton-autowrap): Mark as obsolete. [Backport] --- lisp/ChangeLog | 4 ++++ lisp/skeleton.el | 7 ++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7fabbf14038..d3c0ab97ec4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2014-03-20 Juanma Barranquero + + * skeleton.el (skeleton-autowrap): Mark as obsolete. Doc fix. + 2014-10-20 Glenn Morris * dired.el (dired-read-regexp): Make obsolete. diff --git a/lisp/skeleton.el b/lisp/skeleton.el index 54dce9e43b7..bb019db502c 100644 --- a/lisp/skeleton.el +++ b/lisp/skeleton.el @@ -55,11 +55,8 @@ Typical examples might be `upcase' or `capitalize'.") When the region is visible (due to `transient-mark-mode' or marking a region with the mouse) and this is non-nil and the function was called without an explicit ARG, then the ARG defaults to -1, i.e. wrapping around the visible -region. - -We will probably delete this variable in a future Emacs version -unless we get a substantial number of complaints about the auto-wrap -feature.") +region.") +(make-obsolete-variable 'skeleton-autowrap nil "24.5") (defvar skeleton-end-newline t "If non-nil, make sure that the skeleton inserted ends with a newline. From 24421aa68b1eb23d6dacfd647480e2c21ac6d343 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 20 Oct 2014 18:44:11 -0400 Subject: [PATCH 10/35] * lisp/subr.el (call-process-shell-command, process-file-shell-command): Make the `args' obsolete. (start-process-shell-command, start-file-process-shell-command): Use `declare'. Fixes: debbugs:18409 --- etc/NEWS | 4 ++++ lisp/ChangeLog | 9 ++++++++- lisp/dired.el | 4 ++-- lisp/subr.el | 21 +++++++++++++-------- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 31baeb33516..2e7c0983d12 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -31,6 +31,10 @@ These emulations of old editors are believed to be no longer relevant - contact emacs-devel@gnu.org if you disagree. ** cc-compat.el is marked as obsolete. + +** call-process-shell-command and process-file-shell-command +don't take "&rest args" any more. + * Installation Changes in Emacs 24.4 diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d3c0ab97ec4..3a6a304d724 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,4 +1,11 @@ -2014-03-20 Juanma Barranquero +2014-09-05 Stefan Monnier + + * subr.el (call-process-shell-command, process-file-shell-command): + Make the `args' obsolete (bug#18409). + (start-process-shell-command, start-file-process-shell-command): + Use `declare'. + +2014-10-20 Juanma Barranquero * skeleton.el (skeleton-autowrap): Mark as obsolete. Doc fix. diff --git a/lisp/dired.el b/lisp/dired.el index 98d3032637b..b84fc57376a 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -3883,7 +3883,7 @@ Ask means pop up a menu for the user to select one of copy, move or link." ;;; Start of automatically extracted autoloads. -;;;### (autoloads nil "dired-aux" "dired-aux.el" "1a8e2a4a9117ab3a2586aa001358d3fb") +;;;### (autoloads nil "dired-aux" "dired-aux.el" "6969bb4414a8a31b91342ab922a94efb") ;;; Generated autoloads from dired-aux.el (autoload 'dired-diff "dired-aux" "\ @@ -4386,7 +4386,7 @@ instead. ;;;*** -;;;### (autoloads nil "dired-x" "dired-x.el" "291bc6e869bf72c900604c45d40f45ed") +;;;### (autoloads nil "dired-x" "dired-x.el" "994b5d9fc38059ab641ec271c728e56f") ;;; Generated autoloads from dired-x.el (autoload 'dired-jump "dired-x" "\ diff --git a/lisp/subr.el b/lisp/subr.el index 12704da149b..215699de178 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2879,23 +2879,21 @@ COMMAND is the shell command to run. An old calling convention accepted any number of arguments after COMMAND, which were just concatenated to COMMAND. This is still supported but strongly discouraged." - ;; We used to use `exec' to replace the shell with the command, - ;; but that failed to handle (...) and semicolon, etc. + (declare (advertised-calling-convention (name buffer command) "23.1")) + ;; We used to use `exec' to replace the shell with the command, + ;; but that failed to handle (...) and semicolon, etc. (start-process name buffer shell-file-name shell-command-switch (mapconcat 'identity args " "))) -(set-advertised-calling-convention 'start-process-shell-command - '(name buffer command) "23.1") (defun start-file-process-shell-command (name buffer &rest args) "Start a program in a subprocess. Return the process object for it. Similar to `start-process-shell-command', but calls `start-file-process'." + (declare (advertised-calling-convention (name buffer command) "23.1")) (start-file-process name buffer (if (file-remote-p default-directory) "/bin/sh" shell-file-name) (if (file-remote-p default-directory) "-c" shell-command-switch) (mapconcat 'identity args " "))) -(set-advertised-calling-convention 'start-file-process-shell-command - '(name buffer command) "23.1") (defun call-process-shell-command (command &optional infile buffer display &rest args) @@ -2911,13 +2909,18 @@ STDERR-FILE may be nil (discard standard error output), t (mix it with ordinary output), or a file name string. Fourth arg DISPLAY non-nil means redisplay buffer as output is inserted. -Remaining arguments are strings passed as additional arguments for COMMAND. Wildcards and redirection are handled as usual in the shell. If BUFFER is 0, `call-process-shell-command' returns immediately with value nil. Otherwise it waits for COMMAND to terminate and returns a numeric exit status or a signal description string. -If you quit, the process is killed with SIGINT, or SIGKILL if you quit again." +If you quit, the process is killed with SIGINT, or SIGKILL if you quit again. + +An old calling convention accepted any number of arguments after DISPLAY, +which were just concatenated to COMMAND. This is still supported but strongly +discouraged." + (declare (advertised-calling-convention + (command &optional infile buffer display) "24.5")) ;; We used to use `exec' to replace the shell with the command, ;; but that failed to handle (...) and semicolon, etc. (call-process shell-file-name @@ -2929,6 +2932,8 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again." &rest args) "Process files synchronously in a separate process. Similar to `call-process-shell-command', but calls `process-file'." + (declare (advertised-calling-convention + (command &optional infile buffer display) "24.5")) (process-file (if (file-remote-p default-directory) "/bin/sh" shell-file-name) infile buffer display From a8cab05439c75e66ac2c83a20bb8a6c829674021 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Mon, 20 Oct 2014 18:45:35 -0400 Subject: [PATCH 11/35] * lisp/url/url-vars.el (url-bug-address): Make into an obsolete alias. * lisp/url/url-http.el (url-http-handle-authentication): * lisp/url/url-news.el (url-news-fetch-message-id): Use M-x report-emacs-bug in help messages. [Backport] --- lisp/url/ChangeLog | 7 +++++++ lisp/url/url-http.el | 2 +- lisp/url/url-news.el | 3 +-- lisp/url/url-vars.el | 7 +++---- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 36f76fded69..c2085a851a8 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,10 @@ +2014-10-20 Glenn Morris + + * url-vars.el (url-bug-address): Make into an obsolete alias. + * url-http.el (url-http-handle-authentication): + * url-news.el (url-news-fetch-message-id): + Use M-x report-emacs-bug in help messages. + 2014-10-20 Glenn Morris * Version 24.4 released. diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index b0a3b688a55..d839d977fd2 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -413,7 +413,7 @@ Return the number of characters removed." (goto-char (point-max)) (insert "
Sorry, but I do not know how to handle " type " authentication. If you'd like to write it," - " send it to " url-bug-address ".
") + " please use M-x report-emacs-bug RET.
") ;; We used to set a `status' var (declared "special") but I can't ;; find the corresponding let-binding, so it's probably an error. ;; FIXME: Maybe it was supposed to set `success', i.e. to return t? diff --git a/lisp/url/url-news.el b/lisp/url/url-news.el index 105fb677374..0ce6d2e6cd1 100644 --- a/lisp/url/url-news.el +++ b/lisp/url/url-news.el @@ -70,8 +70,7 @@ " \n" "

\n" "

\n" - " If you If you feel this is an error, send mail\n" + " If you feel this is an error, M-x report-emacs-bug RET.\n" "

\n" " \n" " \n" diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el index 4cdb59deb27..62b7b855533 100644 --- a/lisp/url/url-vars.el +++ b/lisp/url/url-vars.el @@ -1,7 +1,6 @@ ;;; url-vars.el --- Variables for Uniform Resource Locator tool -;; Copyright (C) 1996-1999, 2001, 2004-2014 Free Software Foundation, -;; Inc. +;; Copyright (C) 1996-1999, 2001, 2004-2014 Free Software Foundation, Inc. ;; Keywords: comm, data, processes, hypermedia @@ -82,8 +81,8 @@ If non-nil and not t, the user will be asked for each refresh request." :type 'boolean :group 'url-cache) -(defconst url-bug-address "bug-gnu-emacs@gnu.org" - "Where to send bug reports.") +(define-obsolete-variable-alias 'url-bug-address + 'report-emacs-bug-address "24.5") (defcustom url-personal-mail-address nil "Your full email address. From 4ede14b98640b948490a3fbd0ec97b48f1738aba Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Mon, 20 Oct 2014 20:11:58 -0400 Subject: [PATCH 12/35] * lisp/vc/diff-mode.el (diff-refine-changed): Rename from `diff-refine-change' for consistency with `diff-changed'. (diff-refine-change): Add obsolete face alias. * lisp/vc/smerge-mode.el (smerge-refined-changed): Rename from `smerge-refined-change'. (smerge-refined-change): Add obsolete face alias. [Backport] Fixes: debbugs:10181 --- lisp/ChangeLog | 10 ++++++++++ lisp/vc/diff-mode.el | 3 ++- lisp/vc/smerge-mode.el | 3 ++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3a6a304d724..41b035ec8f2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,13 @@ +2014-10-20 Juri Linkov + + * vc/diff-mode.el (diff-refine-changed): Rename from + `diff-refine-change' for consistency with `diff-changed'. + (diff-refine-change): Add obsolete face alias. (Bug#10181) + + * vc/smerge-mode.el (smerge-refined-changed): Rename from + `smerge-refined-change'. + (smerge-refined-change): Add obsolete face alias. + 2014-09-05 Stefan Monnier * subr.el (call-process-shell-command, process-file-shell-command): diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el index 923de9a0ca6..3d985d9ca4d 100644 --- a/lisp/vc/diff-mode.el +++ b/lisp/vc/diff-mode.el @@ -1916,7 +1916,7 @@ For use in `add-log-current-defun-function'." ;;; Fine change highlighting. -(defface diff-refine-change +(defface diff-refine-changed '((((class color) (min-colors 88) (background light)) :background "#ffff55") (((class color) (min-colors 88) (background dark)) @@ -1924,6 +1924,7 @@ For use in `add-log-current-defun-function'." (t :inverse-video t)) "Face used for char-based changes shown by `diff-refine-hunk'." :group 'diff-mode) +(define-obsolete-face-alias 'diff-refine-change 'diff-refine-changed "24.5") (defface diff-refine-removed '((default diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el index cc9c4673345..771281555ab 100644 --- a/lisp/vc/smerge-mode.el +++ b/lisp/vc/smerge-mode.el @@ -116,9 +116,10 @@ Used in `smerge-diff-base-mine' and related functions." (define-obsolete-face-alias 'smerge-markers-face 'smerge-markers "22.1") (defvar smerge-markers-face 'smerge-markers) -(defface smerge-refined-change +(defface smerge-refined-changed '((t nil)) "Face used for char-based changes shown by `smerge-refine'.") +(define-obsolete-face-alias 'smerge-refined-change 'smerge-refined-changed "24.5") (defface smerge-refined-removed '((default From 739ba4636bf2857633e7a4968045051f434d6ddb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Santiago=20Pay=C3=A0=20i=20Miralta?= Date: Mon, 20 Oct 2014 20:14:07 -0400 Subject: [PATCH 13/35] * lisp/vc/vc-hg.el (vc-hg-log-graph): New var. (vc-hg-print-log): Use it. (vc-hg-root-log-format): Include branch name and bookmarks; ignore graph output. Fixes: debbugs:17515 --- lisp/ChangeLog | 9 ++++++++- lisp/vc/vc-hg.el | 26 +++++++++++++++++++------- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 41b035ec8f2..a23b2fc4012 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2014-10-20 Santiago Payà i Miralta + + * vc/vc-hg.el (vc-hg-log-graph): New var. + (vc-hg-print-log): Use it. + (vc-hg-root-log-format): Include branch name and bookmarks; ignore + graph output (bug#17515). + 2014-10-20 Juri Linkov * vc/diff-mode.el (diff-refine-changed): Rename from @@ -1182,7 +1189,7 @@ * emacs-lisp/nadvice.el (advice--interactive-form): Don't get fooled into autoloading just because of a silly indirection. -2014-05-11 Santiago Payà i Miralta (tiny change) +2014-05-12 Santiago Payà i Miralta * vc/vc-hg.el (vc-hg-unregister): New function. (Bug#17454) diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index b800c64c869..372504eb8f3 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el @@ -146,12 +146,19 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." :group 'vc-hg) (defcustom vc-hg-root-log-format - '("{rev}:{tags}: {author|person} {date|shortdate} {desc|firstline}\\n" - "^\\([0-9]+\\):\\([^:]*\\): \\(.*?\\)[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)" + `(,(concat "{rev}:{ifeq(branch, 'default','', '{branch}')}" + ":{bookmarks}:{tags}:{author|person}" + " {date|shortdate} {desc|firstline}\\n") + ,(concat "^\\(?:[+@o x|-]*\\)" ;Graph data. + "\\([0-9]+\\):\\([^:]*\\)" + ":\\([^:]*\\):\\([^:]*\\):\\(.*?\\)" + "[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)") ((1 'log-view-message-face) - (2 'change-log-list) - (3 'change-log-name) - (4 'change-log-date))) + (2 'change-log-file) + (3 'change-log-list) + (4 'change-log-conditionals) + (5 'change-log-name) + (6 'change-log-date))) "Mercurial log template for `vc-hg-print-log' short format. This should be a list (TEMPLATE REGEXP KEYWORDS), where TEMPLATE is the \"--template\" argument string to pass to Mercurial, @@ -160,7 +167,7 @@ output, and KEYWORDS is a list of `font-lock-keywords' for highlighting the Log View buffer." :type '(list string string (repeat sexp)) :group 'vc-hg - :version "24.1") + :version "24.5") ;;; Properties of the backend @@ -244,6 +251,9 @@ highlighting the Log View buffer." (autoload 'vc-setup-buffer "vc-dispatcher") +(defvar vc-hg-log-graph nil + "If non-nil, use `--graph' in the short log output.") + (defun vc-hg-print-log (files buffer &optional shortlog start-revision limit) "Print commit log associated with FILES into specified BUFFER. If SHORTLOG is non-nil, use a short format based on `vc-hg-root-log-format'. @@ -261,7 +271,9 @@ If LIMIT is non-nil, show no more than this many entries." (nconc (when start-revision (list (format "-r%s:0" start-revision))) (when limit (list "-l" (format "%s" limit))) - (when shortlog (list "--template" (car vc-hg-root-log-format))) + (when shortlog `(,@(if vc-hg-log-graph '("--graph")) + "--template" + ,(car vc-hg-root-log-format))) vc-hg-log-switches))))) (defvar log-view-message-re) From acb965c2adb03a9e0c97f6a7c6f4534ed66a4b2b Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 21 Oct 2014 18:36:23 +0300 Subject: [PATCH 14/35] Bump Emacs version to 24.4.50. --- README | 2 +- configure.ac | 2 +- doc/emacs/emacsver.texi | 2 +- doc/man/emacs.1 | 2 +- msdos/sed2v2.inp | 2 +- nt/config.nt | 2 +- nt/emacs.rc | 8 ++++---- nt/emacsclient.rc | 8 ++++---- nt/makefile.w32-in | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/README b/README index 66556cf10cd..9f0ff0c5daa 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ Copyright (C) 2001-2014 Free Software Foundation, Inc. See the end of the file for license conditions. -This directory tree holds version 24.4 of GNU Emacs, the extensible, +This directory tree holds version 24.4.50 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. The file INSTALL in this directory says how to build and install GNU diff --git a/configure.ac b/configure.ac index 458648e00a4..42bf7e8f316 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ dnl You should have received a copy of the GNU General Public License dnl along with GNU Emacs. If not, see . AC_PREREQ(2.65) -AC_INIT(emacs, 24.4) +AC_INIT(emacs, 24.4.50) dnl We get MINGW64 with MSYS2 if test "x$MSYSTEM" = "xMINGW32" -o "x$MSYSTEM" = "xMINGW64" diff --git a/doc/emacs/emacsver.texi b/doc/emacs/emacsver.texi index 240b506310e..6329f8aa0e6 100644 --- a/doc/emacs/emacsver.texi +++ b/doc/emacs/emacsver.texi @@ -1,4 +1,4 @@ @c It would be nicer to generate this using configure and @version@. @c However, that would mean emacsver.texi would always be newer @c then the info files in release tarfiles. -@set EMACSVER 24.4 +@set EMACSVER 24.4.50 diff --git a/doc/man/emacs.1 b/doc/man/emacs.1 index 13cd4c6e64e..45bdb64d8b0 100644 --- a/doc/man/emacs.1 +++ b/doc/man/emacs.1 @@ -1,5 +1,5 @@ .\" See section COPYING for copyright and redistribution information. -.TH EMACS 1 "2007 April 13" "GNU Emacs 24.4" +.TH EMACS 1 "2007 April 13" "GNU Emacs 24.4.50" . . .SH NAME diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index b650aa2d3d0..3a2a94f2ca9 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -70,7 +70,7 @@ /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ /^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION ""/ /^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)/ -/^#undef VERSION/s/^.*$/#define VERSION "24.4"/ +/^#undef VERSION/s/^.*$/#define VERSION "24.4.50"/ /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/ /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ diff --git a/nt/config.nt b/nt/config.nt index 0af6edc7d99..004a7381fb5 100644 --- a/nt/config.nt +++ b/nt/config.nt @@ -1576,7 +1576,7 @@ along with GNU Emacs. If not, see . */ #undef USG_SUBTTY_WORKS /* Version number of package */ -#define VERSION "24.4" +#define VERSION "24.4.50" /* Define to 1 if unsetenv returns void instead of int. */ #undef VOID_UNSETENV diff --git a/nt/emacs.rc b/nt/emacs.rc index 03975332426..2d007ba9043 100644 --- a/nt/emacs.rc +++ b/nt/emacs.rc @@ -11,8 +11,8 @@ Emacs ICON icons/emacs.ico #endif VS_VERSION_INFO VERSIONINFO - FILEVERSION 24,4,0,0 - PRODUCTVERSION 24,4,0,0 + FILEVERSION 24,4,50,0 + PRODUCTVERSION 24,4,50,0 FILEFLAGSMASK 0x3FL #ifdef EMACSDEBUG FILEFLAGS 0x1L @@ -29,12 +29,12 @@ BEGIN BEGIN VALUE "CompanyName", "Free Software Foundation\0" VALUE "FileDescription", "GNU Emacs: The extensible self-documenting text editor\0" - VALUE "FileVersion", "24, 4, 0, 0\0" + VALUE "FileVersion", "24, 4, 50, 0\0" VALUE "InternalName", "Emacs\0" VALUE "LegalCopyright", "Copyright (C) 2001-2014\0" VALUE "OriginalFilename", "emacs.exe" VALUE "ProductName", "Emacs\0" - VALUE "ProductVersion", "24, 4, 0, 0\0" + VALUE "ProductVersion", "24, 4, 50, 0\0" VALUE "OLESelfRegister", "\0" END END diff --git a/nt/emacsclient.rc b/nt/emacsclient.rc index 39ac7521e36..7e5d2e4c0f1 100644 --- a/nt/emacsclient.rc +++ b/nt/emacsclient.rc @@ -5,8 +5,8 @@ Emacs ICON icons\emacs.ico #endif VS_VERSION_INFO VERSIONINFO - FILEVERSION 24,4,0,0 - PRODUCTVERSION 24,4,0,0 + FILEVERSION 24,4,50,0 + PRODUCTVERSION 24,4,50,0 FILEFLAGSMASK 0x3FL #ifdef EMACSDEBUG FILEFLAGS 0x1L @@ -23,12 +23,12 @@ BEGIN BEGIN VALUE "CompanyName", "Free Software Foundation\0" VALUE "FileDescription", "GNU EmacsClient: Client for the extensible self-documenting text editor\0" - VALUE "FileVersion", "24, 4, 0, 0\0" + VALUE "FileVersion", "24, 4, 50, 0\0" VALUE "InternalName", "EmacsClient\0" VALUE "LegalCopyright", "Copyright (C) 2001-2014\0" VALUE "OriginalFilename", "emacsclientw.exe" VALUE "ProductName", "EmacsClient\0" - VALUE "ProductVersion", "24, 4, 0, 0\0" + VALUE "ProductVersion", "24, 4, 50, 0\0" VALUE "OLESelfRegister", "\0" END END diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in index f972f344a3a..59da03434e9 100644 --- a/nt/makefile.w32-in +++ b/nt/makefile.w32-in @@ -22,7 +22,7 @@ # FIXME: This file uses DOS EOLs. Convert to Unix after 22.1 is out # (and remove or replace this comment). -VERSION = 24.4 +VERSION = 24.4.50 TMP_DIST_DIR = emacs-$(VERSION) From 249836259909ce1533ced5dee96049b3b919e93d Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Wed, 22 Oct 2014 10:31:37 +0900 Subject: [PATCH 15/35] * xdisp.c (draw_glyphs): Set clipping to highlight boundaries. [Backport] --- src/ChangeLog | 5 +++++ src/xdisp.c | 16 ++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index ec904da39bb..b9451fb9006 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-10-22 YAMAMOTO Mitsuharu + + * xdisp.c (draw_glyphs): Set clipping to highlight boundaries. + [Backport] + 2014-10-20 Glenn Morris * minibuf.c (history-length): Increase default from 30 to 100. diff --git a/src/xdisp.c b/src/xdisp.c index 7ed11530846..da56885d2eb 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -24934,13 +24934,16 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row, else overlap_hl = DRAW_NORMAL_TEXT; + if (hl != overlap_hl) + clip_head = head; j = i; BUILD_GLYPH_STRINGS (j, start, h, t, overlap_hl, dummy_x, last_x); start = i; compute_overhangs_and_x (t, head->x, 1); prepend_glyph_string_lists (&head, &tail, h, t); - clip_head = head; + if (clip_head == NULL) + clip_head = head; } /* Prepend glyph strings for glyphs in front of the first glyph @@ -24961,7 +24964,8 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row, else overlap_hl = DRAW_NORMAL_TEXT; - clip_head = head; + if (hl == overlap_hl || clip_head == NULL) + clip_head = head; BUILD_GLYPH_STRINGS (i, start, h, t, overlap_hl, dummy_x, last_x); for (s = h; s; s = s->next) @@ -24985,13 +24989,16 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row, else overlap_hl = DRAW_NORMAL_TEXT; + if (hl != overlap_hl) + clip_tail = tail; BUILD_GLYPH_STRINGS (end, i, h, t, overlap_hl, x, last_x); /* Because BUILD_GLYPH_STRINGS updates the first argument, we don't have `end = i;' here. */ compute_overhangs_and_x (h, tail->x + tail->width, 0); append_glyph_string_lists (&head, &tail, h, t); - clip_tail = tail; + if (clip_tail == NULL) + clip_tail = tail; } /* Append glyph strings for glyphs following the last glyph @@ -25009,7 +25016,8 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row, else overlap_hl = DRAW_NORMAL_TEXT; - clip_tail = tail; + if (hl == overlap_hl || clip_tail == NULL) + clip_tail = tail; i++; /* We must include the Ith glyph. */ BUILD_GLYPH_STRINGS (end, i, h, t, overlap_hl, x, last_x); From 1a7aa3ce7fe32955f45ba8cfee2ccaf4a0770395 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Wed, 22 Oct 2014 10:39:48 +0900 Subject: [PATCH 16/35] * xdisp.c (erase_phys_cursor): Fix confusion between window-relative and text area-relative x-coordinates. [Backport] --- src/ChangeLog | 2 ++ src/xdisp.c | 12 +++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index b9451fb9006..28af5026928 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -2,6 +2,8 @@ * xdisp.c (draw_glyphs): Set clipping to highlight boundaries. [Backport] + (erase_phys_cursor): Fix confusion between window-relative and + text area-relative x-coordinates. [Backport] 2014-10-20 Glenn Morris diff --git a/src/xdisp.c b/src/xdisp.c index da56885d2eb..f0726ecce70 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -27467,7 +27467,7 @@ erase_phys_cursor (struct window *w) /* Maybe clear the display under the cursor. */ if (w->phys_cursor_type == HOLLOW_BOX_CURSOR) { - int x, y, left_x; + int x, y; int header_line_height = WINDOW_HEADER_LINE_HEIGHT (w); int width; @@ -27476,13 +27476,15 @@ erase_phys_cursor (struct window *w) goto mark_cursor_off; width = cursor_glyph->pixel_width; - left_x = window_box_left_offset (w, TEXT_AREA); x = w->phys_cursor.x; - if (x < left_x) - width -= left_x - x; + if (x < 0) + { + width += x; + x = 0; + } width = min (width, window_box_width (w, TEXT_AREA) - x); y = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, cursor_row->y)); - x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, max (x, left_x)); + x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, x); if (width > 0) FRAME_RIF (f)->clear_frame_area (f, x, y, width, cursor_row->visible_height); From bdc9a8b5acdffe0acd6360b1cade8ff732df3e76 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 22 Oct 2014 09:10:41 -0400 Subject: [PATCH 17/35] * configure.ac: Bump version to 24.4.51 to avoid ambiguity with the old trunk's 24.4.50. --- ChangeLog | 5 +++++ README | 2 +- configure.ac | 2 +- doc/emacs/emacsver.texi | 2 +- doc/man/emacs.1 | 2 +- msdos/sed2v2.inp | 2 +- nt/config.nt | 2 +- nt/makefile.w32-in | 2 +- 8 files changed, 12 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index a759f5a54ff..91b09a488a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-10-22 Stefan Monnier + + * configure.ac: Bump version to 24.4.51 to avoid ambiguity with the old + trunk's 24.4.50. + 2014-10-20 Glenn Morris * Version 24.4 released. diff --git a/README b/README index 9f0ff0c5daa..bc0fb249d08 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ Copyright (C) 2001-2014 Free Software Foundation, Inc. See the end of the file for license conditions. -This directory tree holds version 24.4.50 of GNU Emacs, the extensible, +This directory tree holds version 24.4.51 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. The file INSTALL in this directory says how to build and install GNU diff --git a/configure.ac b/configure.ac index 42bf7e8f316..1d28161b386 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ dnl You should have received a copy of the GNU General Public License dnl along with GNU Emacs. If not, see . AC_PREREQ(2.65) -AC_INIT(emacs, 24.4.50) +AC_INIT(emacs, 24.4.51) dnl We get MINGW64 with MSYS2 if test "x$MSYSTEM" = "xMINGW32" -o "x$MSYSTEM" = "xMINGW64" diff --git a/doc/emacs/emacsver.texi b/doc/emacs/emacsver.texi index 6329f8aa0e6..cef51213d5e 100644 --- a/doc/emacs/emacsver.texi +++ b/doc/emacs/emacsver.texi @@ -1,4 +1,4 @@ @c It would be nicer to generate this using configure and @version@. @c However, that would mean emacsver.texi would always be newer @c then the info files in release tarfiles. -@set EMACSVER 24.4.50 +@set EMACSVER 24.4.51 diff --git a/doc/man/emacs.1 b/doc/man/emacs.1 index 45bdb64d8b0..bd2b5fd66c2 100644 --- a/doc/man/emacs.1 +++ b/doc/man/emacs.1 @@ -1,5 +1,5 @@ .\" See section COPYING for copyright and redistribution information. -.TH EMACS 1 "2007 April 13" "GNU Emacs 24.4.50" +.TH EMACS 1 "2007 April 13" "GNU Emacs 24.4.51" . . .SH NAME diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index 3a2a94f2ca9..88da4fae65f 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -70,7 +70,7 @@ /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ /^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION ""/ /^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)/ -/^#undef VERSION/s/^.*$/#define VERSION "24.4.50"/ +/^#undef VERSION/s/^.*$/#define VERSION "24.4.51"/ /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/ /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ diff --git a/nt/config.nt b/nt/config.nt index 004a7381fb5..3bd6ebf39b0 100644 --- a/nt/config.nt +++ b/nt/config.nt @@ -1576,7 +1576,7 @@ along with GNU Emacs. If not, see . */ #undef USG_SUBTTY_WORKS /* Version number of package */ -#define VERSION "24.4.50" +#define VERSION "24.4.51" /* Define to 1 if unsetenv returns void instead of int. */ #undef VOID_UNSETENV diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in index 59da03434e9..d1542e74a64 100644 --- a/nt/makefile.w32-in +++ b/nt/makefile.w32-in @@ -22,7 +22,7 @@ # FIXME: This file uses DOS EOLs. Convert to Unix after 22.1 is out # (and remove or replace this comment). -VERSION = 24.4.50 +VERSION = 24.4.51 TMP_DIST_DIR = emacs-$(VERSION) From be603ee9b653b14f62bb1bbcc6bded35e76f3ee7 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 22 Oct 2014 09:38:47 -0400 Subject: [PATCH 18/35] * lisp/emacs-lisp/bytecomp.el (byte-compile-and-folded): Optimize case where all args are copyable. (=, <, >, <=, >=): Re-enable the optimization. Fixes: debbugs:18767 --- lisp/ChangeLog | 6 ++++++ lisp/emacs-lisp/bytecomp.el | 19 ++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a23b2fc4012..d1f8fdcdd58 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-10-22 Stefan Monnier + + * emacs-lisp/bytecomp.el (byte-compile-and-folded): Optimize case where + all args are copyable (bug#18767). + (=, <, >, <=, >=): Re-enable the optimization. + 2014-10-20 Santiago Payà i Miralta * vc/vc-hg.el (vc-hg-log-graph): New var. diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 69c4e0f1628..6ab0efff86b 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -120,7 +120,7 @@ (require 'backquote) (require 'macroexp) (require 'cconv) -(eval-when-compile (require 'cl-lib)) +(require 'cl-lib) (or (fboundp 'defsubst) ;; This really ought to be loaded already! @@ -3261,11 +3261,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) @@ -3332,13 +3332,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)) From 97be2b8848dab2e460922fe182a5e1d8d40dcdde Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 22 Oct 2014 18:19:44 +0300 Subject: [PATCH 19/35] etc/DEBUG: Improve instructions for debugging infinite loops. --- etc/DEBUG | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) 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. 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. From e5dc30bfd37122d04be3b4cdf62b25215684856d Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 23 Oct 2014 06:52:47 +0100 Subject: [PATCH 20/35] * Makefile.in (${srcdir}/info/dir): Make sure info directory exists (backport) --- ChangeLog | 4 ++++ Makefile.in | 1 + 2 files changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index 91b09a488a3..f9b676cea88 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2014-10-23 Paul Eggert + + * Makefile.in (${srcdir}/info/dir): Make sure info directory exists. + 2014-10-22 Stefan Monnier * configure.ac: Bump version to 24.4.51 to avoid ambiguity with the old diff --git a/Makefile.in b/Makefile.in index 103b035a3c9..81fa82bb30c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -981,6 +981,7 @@ info_dir_deps = ${srcdir}/build-aux/dir_top \ ## but then we would need to depend on info-real, which would ## slow down parallelization. ${srcdir}/info/dir: ${info_dir_deps} + ${MKDIR_P} ${srcdir}/info tempfile=info-dir.$$$$; \ rm -f $${tempfile}; \ thisdir=`pwd`; \ From acc443ad03bf46aa49c87bc93f2df836bedede94 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 23 Oct 2014 09:31:20 -0400 Subject: [PATCH 21/35] * lisp/emacs-lisp/bytecomp.el: Require cl-extra. * lisp/emacs-lisp/cl-extra.el: Add missing provide. Fixes: debbugs:18804 --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/bytecomp.el | 6 +++++- lisp/emacs-lisp/cl-extra.el | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d1f8fdcdd58..d5c5458facf 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2014-10-23 Stefan Monnier + + * emacs-lisp/bytecomp.el: Require cl-extra (bug#18804). + * emacs-lisp/cl-extra.el: Add missing provide. + 2014-10-22 Stefan Monnier * emacs-lisp/bytecomp.el (byte-compile-and-folded): Optimize case where diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 6ab0efff86b..a4f26efa027 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -120,7 +120,11 @@ (require 'backquote) (require 'macroexp) (require 'cconv) -(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! diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el index 9b28289e0b9..e1919c3bb8d 100644 --- a/lisp/emacs-lisp/cl-extra.el +++ b/lisp/emacs-lisp/cl-extra.el @@ -700,4 +700,5 @@ including `cl-block' and `cl-eval-when'." ;; generated-autoload-file: "cl-loaddefs.el" ;; End: +(provide 'cl-extra) ;;; cl-extra.el ends here From ac0f1b8597ec67288cd1774f02b5c7ea44c3c73c Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 23 Oct 2014 19:32:51 +0300 Subject: [PATCH 22/35] Fix bug #18760 with incorrect decoding of tutorial for "About Emacs" screen. lisp/startup.el (fancy-about-text): Read the entire tutorial, not just its first 256 bytes. --- lisp/ChangeLog | 5 +++++ lisp/startup.el | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d5c5458facf..d32c2772579 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2014-10-23 Eli Zaretskii + + * startup.el (fancy-about-text): Read the entire tutorial, not + just its first 256 bytes. (Bug#18760) + 2014-10-23 Stefan Monnier * emacs-lisp/bytecomp.el: Require cl-extra (bug#18804). diff --git a/lisp/startup.el b/lisp/startup.el index 58e970814b9..54ed53e69c8 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -1523,7 +1523,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 From 894b567b1c8e74a615441147b956263484119702 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 23 Oct 2014 19:54:25 +0300 Subject: [PATCH 23/35] Document in the user manual variables that allow pixelwise resizing. doc/emacs/frames.texi (Frame Commands): Document and index 'frame-resize-pixelwise'. doc/emacs/windows.texi (Split Window): Document and index 'window-resize-pixelwise'. --- doc/emacs/ChangeLog | 8 ++++++++ doc/emacs/frames.texi | 9 ++++++++- doc/emacs/windows.texi | 12 ++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index f383205b15e..232330faf1e 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,11 @@ +2014-10-23 Eli Zaretskii + + * frames.texi (Frame Commands): Document and index + 'frame-resize-pixelwise'. + + * windows.texi (Split Window): Document and index + 'window-resize-pixelwise'. + 2014-10-20 Glenn Morris * ack.texi (Acknowledgments): Remove some obsolete items. diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi index 8c2289b83de..c02619e82c5 100644 --- a/doc/emacs/frames.texi +++ b/doc/emacs/frames.texi @@ -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 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 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 From 9e147f750bfc25894c0d14e53f44d4996d441a96 Mon Sep 17 00:00:00 2001 From: Tassilo Horn Date: Thu, 23 Oct 2014 21:17:00 +0200 Subject: [PATCH 24/35] Backport latest doc-view fix * doc/emacs/misc.texi (Document View): Adapt to latest doc-view changes wrt viewing the document's plain text contents. [Backport] * lisp/doc-view.el (doc-view-open-text): View the document's plain text in the current buffer instead of a new one. (doc-view-toggle-display): Handle the case where the current buffer contains the plain text contents of the document. (doc-view-initiate-display): Don't switch to fallback mode if the user wants to view the doc's plain text. [Backport] --- doc/emacs/ChangeLog | 5 ++++ doc/emacs/misc.texi | 18 ++++++++++-- lisp/ChangeLog | 9 ++++++ lisp/doc-view.el | 72 +++++++++++++++++++++++++++++---------------- 4 files changed, 75 insertions(+), 29 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 232330faf1e..2b9a13069d2 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,8 @@ +2014-10-23 Tassilo Horn + + * misc.texi (Document View): Adapt to latest doc-view changes wrt + viewing the document's plain text contents. [Backport] + 2014-10-23 Eli Zaretskii * frames.texi (Frame Commands): Document and index diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index f77cb993d71..386fd6fdd3b 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -266,9 +266,10 @@ Exit the summary buffer and return to the group buffer. OpenDocument, and Microsoft Office documents. It provides features such as slicing, zooming, and searching inside documents. It works by converting the document to a set of images using the @command{gs} -(GhostScript) command and other external tools @footnote{@code{gs} is -a hard requirement. For DVI files, @code{dvipdf} or @code{dvipdfm} is -needed. For OpenDocument and Microsoft Office documents, the +(GhostScript) or @command{mudraw}/@command{pdfdraw} (MuPDF) commands +and other external tools @footnote{For PostScript files, GhostScript +is a hard requirement. For DVI files, @code{dvipdf} or @code{dvipdfm} +is needed. For OpenDocument and Microsoft Office documents, the @code{unoconv} tool is needed.}, and displaying those images. @findex doc-view-toggle-display @@ -287,6 +288,17 @@ mode or DocView minor mode, repeating @kbd{C-c C-c} (@code{doc-view-toggle-display}) toggles between DocView and the underlying file contents. +@findex doc-view-open-text + When you visit a file which would normally be handled by DocView +mode but some requirement is not met (e.g., you operate in a terminal +frame or emacs has no PNG support), you are queried if you want to +view the document's contents as plain text. If you confirm, the +buffer is put in text mode and DocView minor mode is activated. Thus, +by typing @kbd{C-c C-c} you switch to the fallback mode. With another +@kbd{C-c C-c} you return to DocView mode. The plain text contents can +also be displayed from within DocView mode by typing @kbd{C-c C-t} +(@code{doc-view-open-text}). + You can explicitly enable DocView mode with the command @code{M-x doc-view-mode}. You can toggle DocView minor mode with @code{M-x doc-view-minor-mode}. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d32c2772579..67efd558528 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2014-10-23 Tassilo Horn + + * doc-view.el (doc-view-open-text): View the document's plain text + in the current buffer instead of a new one. + (doc-view-toggle-display): Handle the case where the current + buffer contains the plain text contents of the document. + (doc-view-initiate-display): Don't switch to fallback mode if the + user wants to view the doc's plain text. [Backport] + 2014-10-23 Eli Zaretskii * startup.el (fancy-about-text): Read the entire tutorial, not diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 7d5f1e771d5..4b90a42c498 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el @@ -1398,19 +1398,28 @@ For now these keys are useful: (tooltip-show (doc-view-current-info))) (defun doc-view-open-text () - "Open a buffer with the current doc's contents as text." + "Display the current doc's contents as text." (interactive) (if doc-view--current-converter-processes (message "DocView: please wait till conversion finished.") - (let ((txt (expand-file-name "doc.txt" (doc-view--current-cache-dir))) - (bname (or buffer-file-name (buffer-name)))) + (let ((txt (expand-file-name "doc.txt" (doc-view--current-cache-dir)))) (if (file-readable-p txt) - (let ((name (concat "Text contents of " - (file-name-nondirectory bname))) - (dir (or (file-name-directory bname) default-directory))) - (with-current-buffer (find-file txt) - (rename-buffer name) - (setq default-directory dir))) + (let ((inhibit-read-only t) + (buffer-undo-list t) + (dv-bfn doc-view--buffer-file-name)) + (erase-buffer) + (set-buffer-multibyte t) + (insert-file-contents txt) + (text-mode) + (setq-local doc-view--buffer-file-name dv-bfn) + (set-buffer-modified-p nil) + (doc-view-minor-mode) + (add-hook 'write-file-functions + (lambda () + (when (eq major-mode 'text-mode) + (error "Cannot save text contents of document %s" + buffer-file-name))) + nil t)) (doc-view-doc->txt txt 'doc-view-open-text))))) ;;;;; Toggle between editing and viewing @@ -1422,20 +1431,30 @@ For now these keys are useful: (defun doc-view-toggle-display () "Toggle between editing a document as text or viewing it." (interactive) - (if (eq major-mode 'doc-view-mode) - ;; Switch to editing mode - (progn - (doc-view-kill-proc) - (setq buffer-read-only nil) - ;; Switch to the previously used major mode or fall back to - ;; normal mode. - (doc-view-fallback-mode) - (doc-view-minor-mode 1)) + (cond + ((eq major-mode 'doc-view-mode) + ;; Switch to editing mode + (doc-view-kill-proc) + (setq buffer-read-only nil) + ;; Switch to the previously used major mode or fall back to + ;; normal mode. + (doc-view-fallback-mode) + (doc-view-minor-mode 1)) + ((eq major-mode 'text-mode) + (let ((buffer-undo-list t)) + ;; We're currently viewing the document's text contents, so switch + ;; back to . + (setq buffer-read-only nil) + (insert-file-contents doc-view--buffer-file-name nil nil nil t) + (doc-view-fallback-mode) + (doc-view-minor-mode 1) + (set-buffer-modified-p nil))) + (t ;; Switch to doc-view-mode (when (and (buffer-modified-p) (y-or-n-p "The buffer has been modified. Save the changes? ")) (save-buffer)) - (doc-view-mode))) + (doc-view-mode)))) ;;;; Searching @@ -1591,11 +1610,11 @@ If BACKWARD is non-nil, jump to the previous match." (concat "No PNG support is available, or some conversion utility for " (file-name-extension doc-view--buffer-file-name) " files is missing.")) - (when (and (executable-find doc-view-pdftotext-program) - (y-or-n-p - "Unable to render file. View extracted text instead? ")) - (doc-view-open-text)) - (doc-view-toggle-display))) + (if (and (executable-find doc-view-pdftotext-program) + (y-or-n-p + "Unable to render file. View extracted text instead? ")) + (doc-view-open-text) + (doc-view-toggle-display)))) (defvar bookmark-make-record-function) @@ -1622,7 +1641,7 @@ If BACKWARD is non-nil, jump to the previous match." "Figure out the current document type (`doc-view-doc-type')." (let ((name-types (when buffer-file-name - (cdr (assoc (file-name-extension buffer-file-name) + (cdr (assoc-ignore-case (file-name-extension buffer-file-name) '( ;; DVI ("dvi" dvi) @@ -1639,7 +1658,8 @@ If BACKWARD is non-nil, jump to the previous match." ;; Microsoft Office formats (also handled ;; by the odf conversion chain) ("doc" odf) ("docx" odf) ("xls" odf) ("xlsx" odf) - ("ppt" odf) ("pptx" odf)))))) + ("ppt" odf) ("pptx" odf) + ("ppt" odf) ("pps" odf) ("pptx" odf)))))) (content-types (save-excursion (goto-char (point-min)) From 73fd041d910f737746b952f2845fbf419f6ab0d3 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 24 Oct 2014 12:13:01 +0300 Subject: [PATCH 25/35] Improve documentation of faces in the user manual. doc/emacs/frames.texi (Scroll Bars): Improve indexing of faces. doc/emacs/killing.texi (Secondary Selection): Improve indexing of faces. doc/emacs/search.texi (Basic Isearch, Query Replace): Improve indexing of faces. doc/emacs/display.texi (Standard Faces, Text Display) (Useless Whitespace): Improve indexing of faces. --- doc/emacs/ChangeLog | 11 +++++++++++ doc/emacs/display.texi | 17 ++++++++++++++++- doc/emacs/frames.texi | 4 ++++ doc/emacs/killing.texi | 1 + doc/emacs/search.texi | 3 +++ 5 files changed, 35 insertions(+), 1 deletion(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 2b9a13069d2..2261be11a15 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,14 @@ +2014-10-24 Eli Zaretskii + + * 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. + 2014-10-23 Tassilo Horn * 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}. @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 diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi index c02619e82c5..538bcab6a19 100644 --- a/doc/emacs/frames.texi +++ b/doc/emacs/frames.texi @@ -961,6 +961,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. + @node Drag and Drop @section Drag and Drop @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: @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 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}, 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 From 475e766a94eddad2419474aa9c4c38ff278af2f7 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 26 Oct 2014 17:42:08 +0200 Subject: [PATCH 26/35] Fix bug #18839 with incorrect image size returned by posn-at-point. src/dispnew.c (buffer_posn_from_coords): Use WINDOW_WANTS_HEADER_LINE_P, not WINDOW_WANTS_MODELINE_P, to account for the header-line height. --- src/ChangeLog | 6 ++++++ src/dispnew.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 28af5026928..da3e4d682d5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2014-10-26 Eli Zaretskii + + * 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-22 YAMAMOTO Mitsuharu * xdisp.c (draw_glyphs): Set clipping to highlight boundaries. diff --git a/src/dispnew.c b/src/dispnew.c index 71345775045..ffd51e08e98 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -5191,7 +5191,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)) From f399929938417ddead87d8d3654ce61d4c4b754a Mon Sep 17 00:00:00 2001 From: Dani Moncayo Date: Sun, 26 Oct 2014 19:37:16 +0100 Subject: [PATCH 27/35] * README.W32 (Preliminaries): Don't assume that this file is at the top level. (Setting up Emacs): Minor rewording to be more accurate. Backported from trunk. --- nt/ChangeLog | 6 ++++++ nt/README.W32 | 11 +++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/nt/ChangeLog b/nt/ChangeLog index dc73347e3b3..ff9b588ecf0 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,9 @@ +2014-10-26 Dani Moncayo + + * README.W32 (Preliminaries): Don't assume that this file is at + the top level. + (Setting up Emacs): Minor rewording to be more accurate. + 2014-10-20 Glenn Morris * Version 24.4 released. diff --git a/nt/README.W32 b/nt/README.W32 index c73b3b3ad09..4d59c6f0ae2 100644 --- a/nt/README.W32 +++ b/nt/README.W32 @@ -21,13 +21,16 @@ See the end of the file for license conditions. * Preliminaries - Along with this file should be four subdirectories (bin, libexec, - share, and var). + The binary distribution has these top-level directories: + + bin + + libexec + + share + + var * Setting up Emacs - To install Emacs, simply unpack all the files into a directory of - your choice. To complete the installation process, you can + To install Emacs, simply unpack the binary package into a directory + of your choice. To complete the installation process, you can optionally run the program addpm.exe in the bin subdirectory. This will put an icon for Emacs in the Start Menu under "Start -> Programs -> Gnu Emacs". From b13ccfca85d1751050fcfd7f94a7304a51ba93e7 Mon Sep 17 00:00:00 2001 From: enami tsugutomo Date: Mon, 27 Oct 2014 00:56:22 +0000 Subject: [PATCH 28/35] [Backport] lisp/gnus/nnimap.el (nnimap-wait-for-response): Ignore NOOP response requested to keep connection open --- lisp/gnus/ChangeLog | 5 +++++ lisp/gnus/nnimap.el | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 3c9c96051e3..534ac3af69d 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,8 @@ +2014-10-27 enami tsugutomo + + * nnimap.el (nnimap-wait-for-response): Ignore NOOP response requested + to keep connection open (bug#18728). + 2014-10-20 Glenn Morris * Version 24.4 released. diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index 2fc2dd6af79..6a6ad4fbe76 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -1872,7 +1872,7 @@ Return the server's response to the SELECT or EXAMINE command." (while (and (not (bobp)) (progn (forward-line -1) - (looking-at "\\*")))) + (looking-at "\\*\\|[0-9]+ OK NOOP")))) (not (looking-at (format "%d .*\n" sequence))))) (when messagep (nnheader-message-maybe From 7515423bc1935efeb43a85097e00f8758a7cc394 Mon Sep 17 00:00:00 2001 From: Katsumi Yamaoka Date: Mon, 27 Oct 2014 22:51:18 +0000 Subject: [PATCH 29/35] [Backport] gnus.el (gnus-mode-line-buffer-identification): Don't add image data for a non-graphic display; Don't shadow load-path, it blocks autoloading of find-image (bug#18813) --- lisp/gnus/ChangeLog | 6 ++++++ lisp/gnus/gnus.el | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 534ac3af69d..e659e983392 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,9 @@ +2014-10-27 Katsumi Yamaoka + + * gnus.el (gnus-mode-line-buffer-identification): + Don't add image data for a non-graphic display; + Don't shadow load-path, it blocks autoloading of find-image (bug#18813). + 2014-10-27 enami tsugutomo * nnimap.el (nnimap-wait-for-response): Ignore NOOP response requested diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index b1d60de93d9..56b749f6527 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el @@ -328,8 +328,9 @@ be set in `.emacs' instead." (if (fboundp 'find-image) (defun gnus-mode-line-buffer-identification (line) (let ((str (car-safe line)) - (load-path (mm-image-load-path))) - (if (and (stringp str) + (load-path (append (mm-image-load-path) load-path))) + (if (and (display-graphic-p) + (stringp str) (string-match "^Gnus:" str)) (progn (add-text-properties 0 5 From 205be0810af6814de7ca6fc57391bbd5096339aa Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 28 Oct 2014 19:48:21 +0200 Subject: [PATCH 30/35] Fix bug #18873 with non-ASCII characters in user's HOME directory. src/fileio.c (Fexpand_file_name): Use make_unibyte_string, not build_string, when importing a home directory. --- src/ChangeLog | 5 +++++ src/fileio.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index da3e4d682d5..33ee723fe66 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-10-28 Eli Zaretskii + + * fileio.c (Fexpand_file_name): Use make_unibyte_string, not + build_string, when importing a home directory. (Bug#18873) + 2014-10-26 Eli Zaretskii * dispnew.c (buffer_posn_from_coords): Use diff --git a/src/fileio.c b/src/fileio.c index b4653017b28..fba64010b54 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1166,7 +1166,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 @@ -1200,7 +1200,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)); if (multibyte && !STRING_MULTIBYTE (tem)) { hdir = DECODE_FILE (tem); From 091d3228b724a5f46124cb106138488678f2ac51 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 29 Oct 2014 17:17:18 +0200 Subject: [PATCH 31/35] Fix bug #18874 with rgrep not obeying grep-scroll-output. lisp/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. --- lisp/ChangeLog | 6 ++++++ lisp/progmodes/compile.el | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 67efd558528..b3b8ba4c1a9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-10-29 Eli Zaretskii + + * 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) + 2014-10-23 Tassilo Horn * doc-view.el (doc-view-open-text): View the document's plain text diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 30f30dfe83f..d2f7d595cbc 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -1651,7 +1651,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 From e8ce54913c50bb144cae7ca964aebe184c103552 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 29 Oct 2014 19:58:11 -0700 Subject: [PATCH 32/35] * doc/misc/efaq.texi (Gnus does not work with NNTP): Remove; ancient --- doc/misc/ChangeLog | 4 ++++ doc/misc/efaq.texi | 22 ---------------------- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 0aafd852d1a..e4a7e1f93ce 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,7 @@ +2014-10-30 Glenn Morris + + * efaq.texi (Gnus does not work with NNTP): Remove; ancient. + 2014-10-20 Stefan Monnier * eieio.texi (Accessing Slots, CLOS compatibility): Adjust wording diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi index 0ba2838075c..9c9b5a770a9 100644 --- a/doc/misc/efaq.texi +++ b/doc/misc/efaq.texi @@ -4196,7 +4196,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 @@ -4390,27 +4389,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 From dc8a58558cc008dd51e3246c7b276580610f207c Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 29 Oct 2014 20:26:24 -0700 Subject: [PATCH 33/35] NEWS fixes --- etc/NEWS | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 2e7c0983d12..8c039a55a2f 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -14,7 +14,15 @@ 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. -* Changes in Emacs-24.5 +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. @@ -22,18 +30,20 @@ with a prefix argument or by typing C-u C-h C-n. * Changes in Specialized Modes and Packages in Emacs 24.5 ---- -*** vi.el, vip.el (try M-x viper instead) +** `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. -** cc-compat.el is marked as obsolete. - -** call-process-shell-command and process-file-shell-command -don't take "&rest args" any more. +--- +*** vi.el, vip.el (try M-x viper instead) * Installation Changes in Emacs 24.4 From 6b3093be63ab02626d8315b9fac16e4d551585ed Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 29 Oct 2014 20:33:08 -0700 Subject: [PATCH 34/35] ChangeLog date fix --- lisp/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b3b8ba4c1a9..b95591b6ddb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -46,7 +46,7 @@ `smerge-refined-change'. (smerge-refined-change): Add obsolete face alias. -2014-09-05 Stefan Monnier +2014-10-20 Stefan Monnier * subr.el (call-process-shell-command, process-file-shell-command): Make the `args' obsolete (bug#18409). From 237bf45a48999d5a8a3617822dddf3ea305bc269 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 29 Oct 2014 23:50:15 -0400 Subject: [PATCH 35/35] * lisp/progmodes/cc-defs.el (c--macroexpand-all): New function. (c-lang-defconst): * lisp/progmodes/cc-langs.el (c-make-init-lang-vars-fun): Use it. Fixes: debbugs:18845 --- lisp/ChangeLog | 11 +++++++++-- lisp/progmodes/cc-defs.el | 13 +++++++------ lisp/progmodes/cc-langs.el | 7 +++---- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b95591b6ddb..33e0b1c757a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,14 @@ +2014-10-30 Stefan Monnier + + + * 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-29 Eli Zaretskii - * progmodes/compile.el (compilation-start): If - compilation-scroll-output is non-nil, don't force window-start of + * 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) 2014-10-23 Tassilo Horn diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el index 1606cfb3357..18e23d4e861 100644 --- a/lisp/progmodes/cc-defs.el +++ b/lisp/progmodes/cc-defs.el @@ -169,6 +169,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. @@ -1834,12 +1838,9 @@ 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 - ;; `cl-macroexpand-all' inside `c-lang-defconst'. + ;; `c--macroexpand-all' inside `c-lang-defconst'. (eval form)) -;; Only used at compile time - suppress "might not be defined at runtime". -(declare-function cl-macroexpand-all "cl" (form &optional env)) - (defmacro c-lang-defconst (name &rest args) "Set the language specific values of the language constant NAME. The second argument can optionally be a docstring. The rest of the @@ -1881,7 +1882,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 `cl-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 @@ -1944,7 +1945,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 (cl-macroexpand-all val)) + (setq val (c--macroexpand-all val)) (setq bindings (cons (cons assigned-mode val) bindings) args (cdr args)))) diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index d2d2de8801a..c5cdc731361 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el @@ -213,7 +213,6 @@ the evaluated constant value at compile time." ;; These are defined in cl as aliases to the cl- versions. ;(declare-function delete-duplicates "cl-seq" (cl-seq &rest cl-keys) t) ;(declare-function mapcan "cl-extra" (cl-func cl-seq &rest cl-rest) t) -;(declare-function cl-macroexpand-all "cl" (form &optional env)) (eval-and-compile ;; Some helper functions used when building the language constants. @@ -3183,7 +3182,7 @@ accomplish that conveniently." `(lambda () ;; This let sets up the context for `c-mode-var' and similar - ;; that could be in the result from `cl-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) @@ -3193,12 +3192,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 `cl-macroexpand-all' + ;; constant immediately in `c--macroexpand-all' ;; below. (cl-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