emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 788c248: Merge from origin/emacs-27


From: Glenn Morris
Subject: master 788c248: Merge from origin/emacs-27
Date: Sat, 16 May 2020 13:29:25 -0400 (EDT)

branch: master
commit 788c2480f448e97773172f3e840976dbcdc3e6c8
Merge: a67415a b4937f6
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Merge from origin/emacs-27
    
    b4937f64cd (origin/emacs-27) Improve documentation of manually instal...
    efd4e973a4 Reflect the emacs-devel ELPA/MELPA dispute in FAQ
    28541674cd Consider face inheritance when checking region face backgr...
    e75f6be6cc Fix dired default file operation (bug#41261)
    406fb0746c Fix documentation related to 'command-switch-alist'.
    747e0a2523 Improve ediff readability in misterioso theme (Bug#41221)
    48830c73e7 Fix a crash in handle_display_spec
    a37290a6f9 In x_hide_tip reset tip_last_frame for GTK+ tooltips only ...
    3d81995692 Fix docstring of flymake-make-diagnostic (bug#40351)
    632aa9d57a Go back to “Bahá’í”
    e2406ff60f * lisp/dired.el (dired-toggle-marks): Doc fix.  (Bug#41097)
    
    # Conflicts:
    #   doc/emacs/building.texi
---
 doc/emacs/building.texi        | 32 ++++++++++++++++++++++++++++
 doc/emacs/calendar.texi        |  2 +-
 doc/emacs/package.texi         | 32 ++++++++++++++++++++--------
 doc/lispref/os.texi            | 10 ++++++++-
 doc/misc/efaq.texi             |  5 ++++-
 etc/themes/misterioso-theme.el |  7 +++++++
 lisp/dired-aux.el              |  7 +++----
 lisp/dired.el                  |  4 ++--
 lisp/progmodes/flymake.el      |  7 ++++---
 lisp/simple.el                 |  2 +-
 src/xdisp.c                    |  2 +-
 src/xfns.c                     |  8 ++++---
 test/lisp/startup-tests.el     | 47 ++++++++++++++++++++++++++++++++++++++++++
 13 files changed, 139 insertions(+), 26 deletions(-)

diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index 77a0e80..7074bd4 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -1541,6 +1541,11 @@ putting a line like this in your init file (@pxref{Init 
File}):
 (add-to-list 'load-path "/path/to/my/lisp/library")
 @end example
 
+It is customary to put locally installed libraries in the
+@file{site-lisp} directory that is already in the default value of
+@code{load-path}, or in some subdirectory of @file{site-lisp}.  This
+way, you don't need to modify the default value of @code{load-path}.
+
 @cindex autoload
   Some commands are @dfn{autoloaded}; when you run them, Emacs
 automatically loads the associated library first.  For instance, the
@@ -1563,6 +1568,33 @@ Automatic loading also occurs when completing names for
 prefix being completed.  To disable this feature, change the variable
 @code{help-enable-completion-autoload} to @code{nil}.
 
+  Once you put your library in a directory where Emacs can find and
+load it, you may wish to make it available at startup.  This is useful
+when the library defines features that should be available
+automatically on demand, and manually loading the library is thus
+inconvenient.  In these cases, make sure the library will be loaded by
+adding suitable forms to your init file: either @code{load} or
+@code{require} (if you always need to load the library at startup), or
+@code{autoload} if you need Emacs to load the library when some
+command or function is invoked.  For example:
+
+@smalllisp
+@group
+ ;; Loads @file{my-shining-package.elc} unconditionally.
+ (require 'my-shining-package)
+@end group
+@group
+ ;; Will load @file{my-shining-package.elc} when @code{my-func} is invoked.
+ (autoload 'my-func "my-shining-package")
+@end group
+@end smalllisp
+
+  Note that installing a package using @code{package-install}
+(@pxref{Package Installation}) takes care of placing the package's
+Lisp files in a directory where Emacs will find it, and also writes
+the necessary initialization code into your init files, making the
+above manual customizations unnecessary.
+
 @node Lisp Eval
 @section Evaluating Emacs Lisp Expressions
 @cindex Emacs Lisp mode
diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi
index 8dc1a0b..fe51ad3 100644
--- a/doc/emacs/calendar.texi
+++ b/doc/emacs/calendar.texi
@@ -532,7 +532,7 @@ holidays centered around a different month, use @kbd{C-u M-x
 holidays}, which prompts for the month and year.
 
   The holidays known to Emacs include United States holidays and the
-major Bah@'{a}@t{'}@'{i}, Chinese, Christian, Islamic, and Jewish
+major Bahá'í, Chinese, Christian, Islamic, and Jewish
 holidays; also the solstices and equinoxes.
 
 @findex list-holidays
diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi
index 91e44b8..453d9eb 100644
--- a/doc/emacs/package.texi
+++ b/doc/emacs/package.texi
@@ -5,23 +5,37 @@
 @node Packages
 @chapter Emacs Lisp Packages
 @cindex Package
-@cindex Emacs Lisp package archive
 @cindex Package archive
 
-Emacs includes a facility that lets you easily download and install
-@dfn{packages} that implement additional features.  Each package is a
-separate Emacs Lisp program, sometimes including other components such
-as an Info manual.
+  Emacs is extended by implementing additional features in
+@dfn{packages}, which are Emacs Lisp libraries.  These could be
+written by you or provided by someone else.  If you want to install
+such a package so it is available in your future Emacs session, you
+need to compile it and put it in a directory where Emacs looks for
+Lisp libraries.  @xref{Lisp Libraries}, for more details about this
+manual installation method.  Many packages provide installation and
+usage instructions in the large commentary near the beginning of the
+Lisp file; you can use those instructions for installing and
+fine-tuning your use of the package.
 
-  @kbd{M-x list-packages} brings up a buffer named @file{*Packages*}
-with a list of all packages.  You can install or uninstall packages
-via this buffer.  @xref{Package Menu}.
+@cindex Emacs Lisp package archive
+  Packages can also be provided by @dfn{package archives}, which are
+large collections of Emacs Lisp packages.  Each package is a separate
+Emacs Lisp program, sometimes including other components such as an
+Info manual.  Emacs includes a facility that lets you easily download
+and install packages from such archives.  The rest of this chapter
+describes this facility.
+
+  To list the packages available for installation from package
+archives, type @w{@kbd{M-x list-packages @key{RET}}}.  It brings up a
+buffer named @file{*Packages*} with a list of all packages.  You can
+install or uninstall packages via this buffer.  @xref{Package Menu}.
 
   The command @kbd{C-h P} (@code{describe-package}) prompts for the
 name of a package, and displays a help buffer describing the
 attributes of the package and the features that it implements.
 
-  By default, Emacs downloads packages from a @dfn{package archive}
+  By default, Emacs downloads packages from a package archive
 maintained by the Emacs developers and hosted by the GNU project.
 Optionally, you can also download packages from archives maintained by
 third parties.  @xref{Package Installation}.
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 8bf48b1..8f2c743 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -613,7 +613,7 @@ The elements of the @code{command-switch-alist} look like 
this:
 @end example
 
 The @sc{car}, @var{option}, is a string, the name of a command-line
-option (not including the initial hyphen).  The @var{handler-function}
+option (including the initial hyphen).  The @var{handler-function}
 is called to handle @var{option}, and receives the option name as its
 sole argument.
 
@@ -623,6 +623,14 @@ remaining command-line arguments in the variable
 @code{command-line-args-left} (see below).  (The entire list of
 command-line arguments is in @code{command-line-args}.)
 
+Note that the handling of @code{command-switch-alist} doesn't treat
+equals signs in @var{option} specially.  That is, if there's an option
+like @code{--name=value} on the command line, then only a
+@code{command-switch-alist} member whose @code{car} is literally
+@code{--name=value} will match this option.  If you want to parse such
+options, you need to use @code{command-line-functions} instead (see
+below).
+
 The command-line arguments are parsed by the @code{command-line-1}
 function in the @file{startup.el} file.  See also @ref{Emacs
 Invocation, , Command Line Arguments for Emacs Invocation, emacs, The
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 50a208d..d3a2f07 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -3478,7 +3478,10 @@ There are other, non-GNU, Emacs Lisp package servers, 
including:
 @uref{https://marmalade-repo.org, Marmalade}.  To use additional
 package servers, customize the @code{package-archives} variable.  Be
 aware that installing a package can run arbitrary code, so only add
-sources that you trust.
+sources that you trust.  Also, packages hosted on non-GNU package
+servers may encourage or require you to install and use non-free
+software; for example, MELPA is known to host some packages that do
+this.
 
 The @uref{https://lists.gnu.org/mailman/listinfo/gnu-emacs-sources,
 GNU Emacs sources mailing list}, which is gatewayed to the
diff --git a/etc/themes/misterioso-theme.el b/etc/themes/misterioso-theme.el
index 8161dbd..ff9af0c 100644
--- a/etc/themes/misterioso-theme.el
+++ b/etc/themes/misterioso-theme.el
@@ -63,6 +63,13 @@
    `(button ((,class (:underline t))))
    `(link ((,class (:foreground "#59e9ff" :underline t))))
    `(link-visited ((,class (:foreground "#ed74cd" :underline t))))
+   ;; Ediff
+   `(ediff-even-diff-A ((,class (:background "#1d2430"))))
+   `(ediff-even-diff-B ((,class (:background "#1d2430"))))
+   `(ediff-even-diff-C ((,class (:background "#1d2430"))))
+   `(ediff-odd-diff-A ((,class (:background "#415160"))))
+   `(ediff-odd-diff-B ((,class (:background "#415160"))))
+   `(ediff-odd-diff-C ((,class (:background "#415160"))))
    ;; Gnus faces
    `(gnus-group-news-1 ((,class (:foreground "#ff4242" :weight bold))))
    `(gnus-group-news-1-low ((,class (:foreground "#ff4242"))))
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 60a352d..24ebfa4 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -2006,10 +2006,9 @@ Optional arg HOW-TO determines how to treat the target.
    (format prompt (dired-mark-prompt arg files)) dir default))
 
 (defun dired-dwim-target-directories ()
-  (cond ((functionp dired-dwim-target)
-         (funcall dired-dwim-target))
-        (dired-dwim-target
-         (dired-dwim-target-next))))
+  (if (functionp dired-dwim-target)
+      (funcall dired-dwim-target)
+    (dired-dwim-target-next)))
 
 (defun dired-dwim-target-next (&optional all-frames)
   ;; Return directories from all next windows with dired-mode buffers.
diff --git a/lisp/dired.el b/lisp/dired.el
index 14bbb28..aad44a6 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3717,8 +3717,8 @@ in the active region."
 
 (defun dired-toggle-marks ()
   "Toggle marks: marked files become unmarked, and vice versa.
-Files marked with other flags (such as `D') are not affected.
-`.' and `..' are never toggled.
+Flagged files (indicated with flags such as `C' and `D', not
+with `*') are not affected, and `.' and `..' are never toggled.
 As always, hidden subdirs are not affected."
   (interactive)
   (save-excursion
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index 93a09d1..4ca5c65 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -316,9 +316,10 @@ generated it."
                                 &optional data
                                 overlay-properties)
   "Make a Flymake diagnostic for BUFFER's region from BEG to END.
-TYPE is a key to symbol and TEXT is a description of the problem
-detected in this region.  DATA is any object that the caller
-wishes to attach to the created diagnostic for later retrieval.
+TYPE is a diagnostic symbol and TEXT is string describing the
+problem detected in this region.  DATA is any object that the
+caller wishes to attach to the created diagnostic for later
+retrieval.
 
 OVERLAY-PROPERTIES is an alist of properties attached to the
 created diagnostic, overriding the default properties and any
diff --git a/lisp/simple.el b/lisp/simple.el
index d151d6c..111afa6 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4903,7 +4903,7 @@ of this sample text; it defaults to 40."
        ;; Swap point-and-mark quickly so as to show the region that
        ;; was selected.  Don't do it if the region is highlighted.
        (unless (and (region-active-p)
-                    (face-background 'region))
+                    (face-background 'region nil t))
          ;; Swap point and mark.
          (set-marker (mark-marker) (point) (current-buffer))
          (goto-char mark)
diff --git a/src/xdisp.c b/src/xdisp.c
index d65bb38..cf15f57 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5120,7 +5120,7 @@ handle_display_spec (struct it *it, Lisp_Object spec, 
Lisp_Object object,
   if (CONSP (spec) && EQ (XCAR (spec), Qdisable_eval))
     {
       enable_eval = false;
-      spec = XCAR (XCDR (spec));
+      spec = CONSP (XCDR (spec)) ? XCAR (XCDR (spec)) : Qnil;
     }
 
   if (CONSP (spec)
diff --git a/src/xfns.c b/src/xfns.c
index 1f381e2..2ab5080 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -6738,9 +6738,11 @@ x_hide_tip (bool delete)
            }
        }
 
-      /* Reset tip_last_frame, it will be reassigned when showing the
-        next GTK+ system tooltip.  */
-      tip_last_frame = Qnil;
+      /* When using GTK+ system tooltips (compare Bug#41200) reset
+        tip_last_frame.  It will be reassigned when showing the next
+        GTK+ system tooltip.  */
+      if (x_gtk_use_system_tooltips)
+       tip_last_frame = Qnil;
 
       /* Now look whether there's an Emacs tip around.  */
       if (FRAMEP (tip_frame))
diff --git a/test/lisp/startup-tests.el b/test/lisp/startup-tests.el
new file mode 100644
index 0000000..314ffc9
--- /dev/null
+++ b/test/lisp/startup-tests.el
@@ -0,0 +1,47 @@
+;;; startup-tests.el --- unit tests for startup.el   -*- lexical-binding: t; 
-*-
+
+;; Copyright (C) 2020  Free Software Foundation, Inc.
+
+;; Author: Philipp Stephani <address@hidden>
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Unit tests for startup.el.
+
+;;; Code:
+
+(ert-deftest startup-tests/command-switch-alist ()
+  (let* ((foo-args ()) (bar-args ())
+         (command-switch-alist
+          (list (cons "--foo"
+                      (lambda (arg)
+                        (ert-info ("Processing argument --foo")
+                          (push arg foo-args)
+                          (should (equal command-line-args-left
+                                         '("value" "--bar=value")))
+                          (pop command-line-args-left))))
+                (cons "--bar=value"
+                      (lambda (arg)
+                        (ert-info ("Processing argument --bar")
+                          (push arg bar-args)
+                          (should-not command-line-args-left)))))))
+    (command-line-1 '("--foo" "value" "--bar=value"))
+    (should (equal foo-args '("--foo")))
+    (should (equal bar-args '("--bar=value")))))
+
+;;; startup-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]