emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 766b057: Merge from origin/emacs-26


From: Glenn Morris
Subject: [Emacs-diffs] master 766b057: Merge from origin/emacs-26
Date: Mon, 7 May 2018 10:54:14 -0400 (EDT)

branch: master
commit 766b057e41df7316808ec7658836fda75facda75
Merge: 6e362a3 1d732d6
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Merge from origin/emacs-26
    
    1d732d6 (origin/emacs-26) Fix gud-statement for pdb
    91a68b5 ; * msdos/INSTALL: Add info about GCC versions.
    7ddcc9a Document 'custom-group'
    58f9e15 A minor addition to etc/DEBUG
    4590414 Avoid errors in ispell.el when Enchant returns empty extra chars
    d0d75f9 Make 'ispell-initialize-spellchecker-hook' work again
    b90ce66 Handle selected_window change in prepare_menu_bars (Bug#31312)
    79ad0b3 ; * INSTALL: Fix Emacs version number.  (Bug#31358)
    91de88b Fix report-emacs-bug via mailclient on MS-Windows
    f4b5ff2 Port collation tests to glibc 2.27
---
 INSTALL                    |  2 +-
 doc/lispref/customize.texi |  7 +++++++
 etc/DEBUG                  |  8 ++++++++
 lisp/net/browse-url.el     | 16 +++++++++++++++-
 lisp/progmodes/gud.el      |  3 +--
 lisp/textmodes/ispell.el   | 10 ++++++++--
 msdos/INSTALL              | 15 ++++++++++++---
 src/xdisp.c                | 12 +++++++-----
 test/src/fns-tests.el      | 48 +++++++++++++++++++++++-----------------------
 9 files changed, 83 insertions(+), 38 deletions(-)

diff --git a/INSTALL b/INSTALL
index 22abf7f..ab2e800 100644
--- a/INSTALL
+++ b/INSTALL
@@ -34,7 +34,7 @@ some of the steps manually.  The more detailed description in 
the other
 sections of this guide will help you do that, so please refer to those
 sections if you need to.
 
-  1. Unpacking the Emacs 25 release requires about 200 MB of free
+  1. Unpacking the Emacs release requires about 200 MB of free
   disk space.  Building Emacs uses about another 200 MB of space.
   The final installed Emacs uses about 150 MB of disk space.
   This includes the space-saving that comes from automatically
diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi
index 7fea507..4d88d7c 100644
--- a/doc/lispref/customize.texi
+++ b/doc/lispref/customize.texi
@@ -257,6 +257,13 @@ customizable variable 
@code{custom-unlispify-remove-prefixes} is
 address@hidden, the item's tag will omit @var{prefix}.  A group can
 have any number of prefixes.
 @end table
+
address@hidden @code{custom-group} property
+The variables and subgroups of a group are stored in the
address@hidden property of the group's symbol.  @xref{Symbol
+Plists}.  The value of that property is a list of pairs whose
address@hidden is the variable or subgroup symbol and the @code{cdr} is
+either @code{custom-variable} or @code{custom-group}.
 @end defmac
 
 @defopt custom-unlispify-remove-prefixes
diff --git a/etc/DEBUG b/etc/DEBUG
index aeb447b..19c75e8 100644
--- a/etc/DEBUG
+++ b/etc/DEBUG
@@ -78,6 +78,14 @@ described in the node "Auto-loading safe path" in the GDB 
user manual.
 If nothing else helps, type "source /path/to/.gdbinit RET" at the GDB
 prompt, to unconditionally load the GDB init file.
 
+Running GDB on macOS sometimes brings an error message like this:
+
+  Unable to find Mach task port for process-id NNN: (os/kern) failure (0x5).
+
+To overcome this, search the Internet for the phrase "Unable to find
+Mach task port for process-id", and you will find detailed
+instructions to follow.
+
 *** Use the Emacs GDB UI front-end
 
 We recommend using the GUI front-end for GDB provided by Emacs.  With
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index bdedcb2..bf179c8 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -877,7 +877,21 @@ The optional NEW-WINDOW argument is not used."
           (error "Browsing URLs is not supported on this system")))
        ((eq system-type 'cygwin)
         (call-process "cygstart" nil nil nil url))
-       (t (w32-shell-execute "open" (url-unhex-string url)))))
+       (t
+         (w32-shell-execute "open"
+                            ;; w32-shell-execute passes file:// URLs
+                            ;; to APIs that expect file names, so we
+                            ;; need to unhex any %nn encoded
+                            ;; characters in the URL.  We don't do
+                            ;; that for other URLs; in particular,
+                            ;; default Windows mail client barfs on
+                            ;; quotes in the MAILTO URLs, so we prefer
+                            ;; to leave the URL with its embedded %nn
+                            ;; encoding intact.
+                            (if (eq t (compare-strings url nil 7
+                                                       "file://" nil nil))
+                                (url-unhex-string url)
+                              url)))))
 
 (defun browse-url-default-macosx-browser (url &optional _new-window)
   "Invoke the macOS system's default Web browser.
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 2664d03..de39835 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -1695,8 +1695,7 @@ and source-file directory for your debugger."
   (gud-def gud-up     "up"           "<" "Up one stack frame.")
   (gud-def gud-down   "down"         ">" "Down one stack frame.")
   (gud-def gud-print  "p %e"         "\C-p" "Evaluate Python expression at 
point.")
-  ;; Is this right?
-  (gud-def gud-statement "! %e"      "\C-e" "Execute Python statement at 
point.")
+  (gud-def gud-statement "!%e"      "\C-e" "Execute Python statement at 
point.")
 
   ;; (setq comint-prompt-regexp "^(.*pdb[+]?) *")
   (setq comint-prompt-regexp "^(Pdb) *")
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index d03d12b..73a2c2d 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1212,8 +1212,10 @@ Internal use.")
 (defun ispell--get-extra-word-characters (&optional lang)
   "Get the extra word characters for LANG as a character class.
 If LANG is omitted, get the extra word characters for the default language."
-  (concat "[" (string-trim-right (apply 'ispell--call-enchant-lsmod
-                                        (append '("-word-chars") (if lang 
`(,lang))))) "]"))
+  (let ((extra (string-trim-right
+                (apply 'ispell--call-enchant-lsmod
+                       (append '("-word-chars") (if lang `(,lang)))))))
+    (if (string= extra "") "" (concat "[" extra "]"))))
 
 (defun ispell-find-enchant-dictionaries ()
   "Find Enchant's dictionaries, and record in 
`ispell-enchant-dictionary-alist'."
@@ -1243,6 +1245,10 @@ If LANG is omitted, get the extra word characters for 
the default language."
 (defvar ispell-last-program-name nil
   "Last value of `ispell-program-name'.  Internal use.")
 
+;; Allow dynamically binding ispell-base-dicts-override-alist as
+;; advertised in the doc string of ispell-initialize-spellchecker-hook.
+(defvar ispell-base-dicts-override-alist)
+
 (defvar ispell-initialize-spellchecker-hook nil
   "Normal hook run on spellchecker initialization.
 This hook is run when a spellchecker is used for the first
diff --git a/msdos/INSTALL b/msdos/INSTALL
index 3b343f1..3707f43 100644
--- a/msdos/INSTALL
+++ b/msdos/INSTALL
@@ -19,6 +19,15 @@ the necessary utilities; search for "MS-DOS".  The 
configuration step
 (see below) will test for these utilities and will refuse to continue
 if any of them isn't found.
 
+You should carefully choose the version of GCC you use to build Emacs,
+because recent versions of GCC don't support building Emacs very well.
+The main issue is the debug info: the DJGPP build of Emacs must use
+the COFF debug info.  GCC support for COFF debug info was steadily
+deteriorating since GCC 5, and GCC 8.1 officially stopped supporting
+the -gcoff switch, which the Emacs build process needs.  We recommend
+using GCC 3.4.X and Binutils 2.26; GDB 7.2 is capable to debug an
+Emacs binary built by this combination.
+
 Bootstrapping Emacs or recompiling Lisp files in the `lisp'
 subdirectory using the various targets in the lisp/Makefile file
 requires additional utilities: `find' (from Findutils), GNU `echo' and
@@ -70,15 +79,15 @@ Running "config msdos" checks for several programs that are 
required
 to configure and build Emacs; if one of those programs is not found,
 CONFIG.BAT stops and prints an error message.
 
-On Windows NT and Windows 2000/XP/Vista/7, running "config msdos"
+On Windows NT and Windows 2000/XP and later, running "config msdos"
 might print an error message like "VDM has been already loaded".  This
 is because those systems have a program called `redir.exe' which is
 incompatible with a program by the same name supplied with DJGPP,
 which is used by config.bat.  To resolve this, move the DJGPP's `bin'
 subdirectory to the front of your PATH environment variable.
 
-Windows Vista/7 has several bugs in its DPMI server related to memory
-allocation: it fails DPMI resize memory block function, and it
+Windows Vista and later has several bugs in its DPMI server related to
+memory allocation: it fails DPMI resize memory block function, and it
 arbitrarily limits the default amount of DPMI memory to 32MB.  To work
 around these bugs, first configure Emacs to use the `malloc' function
 from the DJGPP library.  To this end, run CONFIG.BAT with the
diff --git a/src/xdisp.c b/src/xdisp.c
index 50fd685..1299ba3 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -14027,11 +14027,6 @@ redisplay_internal (void)
   /* Notice any pending interrupt request to change frame size.  */
   do_pending_window_change (true);
 
-  /* do_pending_window_change could change the selected_window due to
-     frame resizing which makes the selected window too small.  */
-  if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw)
-    sw = w;
-
   /* Clear frames marked as garbaged.  */
   clear_garbaged_frames ();
 
@@ -14039,6 +14034,13 @@ redisplay_internal (void)
   if (NILP (Vmemory_full))
     prepare_menu_bars ();
 
+  /* do_pending_window_change could change the selected_window due to
+     frame resizing which makes the selected window too small.
+     prepare_menu_bars may call lisp hooks and hence also change the
+     selected_window.  */
+  if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw)
+    sw = w;
+
   reconsider_clip_changes (w);
 
   /* In most cases selected window displays current buffer.  */
diff --git a/test/src/fns-tests.el b/test/src/fns-tests.el
index 0301cea..d9cca55 100644
--- a/test/src/fns-tests.el
+++ b/test/src/fns-tests.el
@@ -119,10 +119,9 @@
 
   ;; In POSIX or C locales, collation order is lexicographic.
   (should (string-collate-lessp "XYZZY" "xyzzy" "POSIX"))
-  ;; In a language specific locale, collation order is different.
-  (should (string-collate-lessp
-          "xyzzy" "XYZZY"
-          (if (eq system-type 'windows-nt) "enu_USA" "en_US.UTF-8")))
+  ;; In a language specific locale on MS-Windows, collation order is different.
+  (when (eq system-type 'windows-nt)
+    (should (string-collate-lessp "xyzzy" "XYZZY" "enu_USA")))
 
   ;; Ignore case.
   (should (string-collate-equalp "xyzzy" "XYZZY" nil t))
@@ -154,8 +153,6 @@
            (9 . "aaa") (9 . "zzz") (9 . "ppp") (9 . "fff")])))
 
 (ert-deftest fns-tests-collate-sort ()
-  ;; See https://lists.gnu.org/r/emacs-devel/2015-10/msg02505.html.
-  :expected-result (if (eq system-type 'cygwin) :failed :passed)
   (skip-unless (fns-tests--collate-enabled-p))
 
   ;; Punctuation and whitespace characters are relevant for POSIX.
@@ -165,15 +162,16 @@
          (lambda (a b) (string-collate-lessp a b "POSIX")))
     '("1 1" "1 2" "1.1" "1.2" "11" "12")))
   ;; Punctuation and whitespace characters are not taken into account
-  ;; for collation in other locales.
-  (should
-   (equal
-    (sort '("11" "12" "1 1" "1 2" "1.1" "1.2")
-         (lambda (a b)
-           (let ((w32-collate-ignore-punctuation t))
-             (string-collate-lessp
-              a b (if (eq system-type 'windows-nt) "enu_USA" "en_US.UTF-8")))))
-    '("11" "1 1" "1.1" "12" "1 2" "1.2")))
+  ;; for collation in other locales, on MS-Windows systems.
+  (when (eq system-type 'windows-nt)
+    (should
+     (equal
+      (sort '("11" "12" "1 1" "1 2" "1.1" "1.2")
+            (lambda (a b)
+              (let ((w32-collate-ignore-punctuation t))
+                (string-collate-lessp
+                 a b "enu_USA"))))
+      '("11" "1 1" "1.1" "12" "1 2" "1.2"))))
 
   ;; Diacritics are different letters for POSIX, they sort lexicographical.
   (should
@@ -181,15 +179,17 @@
     (sort '("Ævar" "Agustín" "Adrian" "Eli")
          (lambda (a b) (string-collate-lessp a b "POSIX")))
     '("Adrian" "Agustín" "Eli" "Ævar")))
-  ;; Diacritics are sorted between similar letters for other locales.
-  (should
-   (equal
-    (sort '("Ævar" "Agustín" "Adrian" "Eli")
-         (lambda (a b)
-           (let ((w32-collate-ignore-punctuation t))
-             (string-collate-lessp
-              a b (if (eq system-type 'windows-nt) "enu_USA" "en_US.UTF-8")))))
-    '("Adrian" "Ævar" "Agustín" "Eli"))))
+  ;; Diacritics are sorted between similar letters for other locales,
+  ;; on MS-Windows systems.
+  (when (eq system-type 'windows-nt)
+    (should
+     (equal
+      (sort '("Ævar" "Agustín" "Adrian" "Eli")
+            (lambda (a b)
+              (let ((w32-collate-ignore-punctuation t))
+                (string-collate-lessp
+                 a b "enu_USA"))))
+      '("Adrian" "Ævar" "Agustín" "Eli")))))
 
 (ert-deftest fns-tests-string-version-lessp ()
   (should (string-version-lessp "foo2.png" "foo12.png"))



reply via email to

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