Skip to content
This repository has been archived by the owner on Apr 18, 2022. It is now read-only.

Commit

Permalink
Merge from origin/emacs-26
Browse files Browse the repository at this point in the history
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
  • Loading branch information
rgmorris committed May 7, 2018
2 parents 6e362a3 + 1d732d6 commit 766b057
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 38 deletions.
2 changes: 1 addition & 1 deletion INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 7 additions & 0 deletions doc/lispref/customize.texi
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,13 @@ customizable variable @code{custom-unlispify-remove-prefixes} is
non-@code{nil}, the item's tag will omit @var{prefix}. A group can
have any number of prefixes.
@end table

@cindex @code{custom-group} property
The variables and subgroups of a group are stored in the
@code{custom-group} property of the group's symbol. @xref{Symbol
Plists}. The value of that property is a list of pairs whose
@code{car} 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
Expand Down
8 changes: 8 additions & 0 deletions etc/DEBUG
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
16 changes: 15 additions & 1 deletion lisp/net/browse-url.el
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
3 changes: 1 addition & 2 deletions lisp/progmodes/gud.el
Original file line number Diff line number Diff line change
Expand Up @@ -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) *")
Expand Down
10 changes: 8 additions & 2 deletions lisp/textmodes/ispell.el
Original file line number Diff line number Diff line change
Expand Up @@ -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'."
Expand Down Expand Up @@ -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
Expand Down
15 changes: 12 additions & 3 deletions msdos/INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
12 changes: 7 additions & 5 deletions src/xdisp.c
Original file line number Diff line number Diff line change
Expand Up @@ -14027,18 +14027,20 @@ 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 ();

/* Build menubar and tool-bar items. */
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. */
Expand Down
48 changes: 24 additions & 24 deletions test/src/fns-tests.el
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -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.
Expand All @@ -165,31 +162,34 @@
(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
(equal
(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"))
Expand Down

0 comments on commit 766b057

Please sign in to comment.