diff options
| author | Glenn Morris | 2018-05-07 07:50:49 -0700 |
|---|---|---|
| committer | Glenn Morris | 2018-05-07 07:50:49 -0700 |
| commit | 766b057e41df7316808ec7658836fda75facda75 (patch) | |
| tree | 9f35f8fdc99192a66c01c10b8a6b3cae1fb6ebd4 | |
| parent | 6e362a32bc9d21f73a0f29ca6f45481edeea6f29 (diff) | |
| parent | 1d732d699d63b5dbfa7d0a0f44e6119d58f852bc (diff) | |
| download | emacs-766b057e41df7316808ec7658836fda75facda75.tar.gz emacs-766b057e41df7316808ec7658836fda75facda75.zip | |
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
| -rw-r--r-- | INSTALL | 2 | ||||
| -rw-r--r-- | doc/lispref/customize.texi | 7 | ||||
| -rw-r--r-- | etc/DEBUG | 8 | ||||
| -rw-r--r-- | lisp/net/browse-url.el | 16 | ||||
| -rw-r--r-- | lisp/progmodes/gud.el | 3 | ||||
| -rw-r--r-- | lisp/textmodes/ispell.el | 10 | ||||
| -rw-r--r-- | msdos/INSTALL | 15 | ||||
| -rw-r--r-- | src/xdisp.c | 12 | ||||
| -rw-r--r-- | test/src/fns-tests.el | 48 |
9 files changed, 83 insertions, 38 deletions
| @@ -34,7 +34,7 @@ some of the steps manually. The more detailed description in the other | |||
| 34 | sections of this guide will help you do that, so please refer to those | 34 | sections of this guide will help you do that, so please refer to those |
| 35 | sections if you need to. | 35 | sections if you need to. |
| 36 | 36 | ||
| 37 | 1. Unpacking the Emacs 25 release requires about 200 MB of free | 37 | 1. Unpacking the Emacs release requires about 200 MB of free |
| 38 | disk space. Building Emacs uses about another 200 MB of space. | 38 | disk space. Building Emacs uses about another 200 MB of space. |
| 39 | The final installed Emacs uses about 150 MB of disk space. | 39 | The final installed Emacs uses about 150 MB of disk space. |
| 40 | This includes the space-saving that comes from automatically | 40 | This includes the space-saving that comes from automatically |
diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi index 7fea507fd03..4d88d7c8c98 100644 --- a/doc/lispref/customize.texi +++ b/doc/lispref/customize.texi | |||
| @@ -257,6 +257,13 @@ customizable variable @code{custom-unlispify-remove-prefixes} is | |||
| 257 | non-@code{nil}, the item's tag will omit @var{prefix}. A group can | 257 | non-@code{nil}, the item's tag will omit @var{prefix}. A group can |
| 258 | have any number of prefixes. | 258 | have any number of prefixes. |
| 259 | @end table | 259 | @end table |
| 260 | |||
| 261 | @cindex @code{custom-group} property | ||
| 262 | The variables and subgroups of a group are stored in the | ||
| 263 | @code{custom-group} property of the group's symbol. @xref{Symbol | ||
| 264 | Plists}. The value of that property is a list of pairs whose | ||
| 265 | @code{car} is the variable or subgroup symbol and the @code{cdr} is | ||
| 266 | either @code{custom-variable} or @code{custom-group}. | ||
| 260 | @end defmac | 267 | @end defmac |
| 261 | 268 | ||
| 262 | @defopt custom-unlispify-remove-prefixes | 269 | @defopt custom-unlispify-remove-prefixes |
| @@ -78,6 +78,14 @@ described in the node "Auto-loading safe path" in the GDB user manual. | |||
| 78 | If nothing else helps, type "source /path/to/.gdbinit RET" at the GDB | 78 | If nothing else helps, type "source /path/to/.gdbinit RET" at the GDB |
| 79 | prompt, to unconditionally load the GDB init file. | 79 | prompt, to unconditionally load the GDB init file. |
| 80 | 80 | ||
| 81 | Running GDB on macOS sometimes brings an error message like this: | ||
| 82 | |||
| 83 | Unable to find Mach task port for process-id NNN: (os/kern) failure (0x5). | ||
| 84 | |||
| 85 | To overcome this, search the Internet for the phrase "Unable to find | ||
| 86 | Mach task port for process-id", and you will find detailed | ||
| 87 | instructions to follow. | ||
| 88 | |||
| 81 | *** Use the Emacs GDB UI front-end | 89 | *** Use the Emacs GDB UI front-end |
| 82 | 90 | ||
| 83 | We recommend using the GUI front-end for GDB provided by Emacs. With | 91 | 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 bdedcb2bd3e..bf179c8782a 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." | |||
| 877 | (error "Browsing URLs is not supported on this system"))) | 877 | (error "Browsing URLs is not supported on this system"))) |
| 878 | ((eq system-type 'cygwin) | 878 | ((eq system-type 'cygwin) |
| 879 | (call-process "cygstart" nil nil nil url)) | 879 | (call-process "cygstart" nil nil nil url)) |
| 880 | (t (w32-shell-execute "open" (url-unhex-string url))))) | 880 | (t |
| 881 | (w32-shell-execute "open" | ||
| 882 | ;; w32-shell-execute passes file:// URLs | ||
| 883 | ;; to APIs that expect file names, so we | ||
| 884 | ;; need to unhex any %nn encoded | ||
| 885 | ;; characters in the URL. We don't do | ||
| 886 | ;; that for other URLs; in particular, | ||
| 887 | ;; default Windows mail client barfs on | ||
| 888 | ;; quotes in the MAILTO URLs, so we prefer | ||
| 889 | ;; to leave the URL with its embedded %nn | ||
| 890 | ;; encoding intact. | ||
| 891 | (if (eq t (compare-strings url nil 7 | ||
| 892 | "file://" nil nil)) | ||
| 893 | (url-unhex-string url) | ||
| 894 | url))))) | ||
| 881 | 895 | ||
| 882 | (defun browse-url-default-macosx-browser (url &optional _new-window) | 896 | (defun browse-url-default-macosx-browser (url &optional _new-window) |
| 883 | "Invoke the macOS system's default Web browser. | 897 | "Invoke the macOS system's default Web browser. |
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 2664d03e723..de398350bd2 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -1695,8 +1695,7 @@ and source-file directory for your debugger." | |||
| 1695 | (gud-def gud-up "up" "<" "Up one stack frame.") | 1695 | (gud-def gud-up "up" "<" "Up one stack frame.") |
| 1696 | (gud-def gud-down "down" ">" "Down one stack frame.") | 1696 | (gud-def gud-down "down" ">" "Down one stack frame.") |
| 1697 | (gud-def gud-print "p %e" "\C-p" "Evaluate Python expression at point.") | 1697 | (gud-def gud-print "p %e" "\C-p" "Evaluate Python expression at point.") |
| 1698 | ;; Is this right? | 1698 | (gud-def gud-statement "!%e" "\C-e" "Execute Python statement at point.") |
| 1699 | (gud-def gud-statement "! %e" "\C-e" "Execute Python statement at point.") | ||
| 1700 | 1699 | ||
| 1701 | ;; (setq comint-prompt-regexp "^(.*pdb[+]?) *") | 1700 | ;; (setq comint-prompt-regexp "^(.*pdb[+]?) *") |
| 1702 | (setq comint-prompt-regexp "^(Pdb) *") | 1701 | (setq comint-prompt-regexp "^(Pdb) *") |
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index d03d12b3758..73a2c2da8b1 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el | |||
| @@ -1212,8 +1212,10 @@ Internal use.") | |||
| 1212 | (defun ispell--get-extra-word-characters (&optional lang) | 1212 | (defun ispell--get-extra-word-characters (&optional lang) |
| 1213 | "Get the extra word characters for LANG as a character class. | 1213 | "Get the extra word characters for LANG as a character class. |
| 1214 | If LANG is omitted, get the extra word characters for the default language." | 1214 | If LANG is omitted, get the extra word characters for the default language." |
| 1215 | (concat "[" (string-trim-right (apply 'ispell--call-enchant-lsmod | 1215 | (let ((extra (string-trim-right |
| 1216 | (append '("-word-chars") (if lang `(,lang))))) "]")) | 1216 | (apply 'ispell--call-enchant-lsmod |
| 1217 | (append '("-word-chars") (if lang `(,lang))))))) | ||
| 1218 | (if (string= extra "") "" (concat "[" extra "]")))) | ||
| 1217 | 1219 | ||
| 1218 | (defun ispell-find-enchant-dictionaries () | 1220 | (defun ispell-find-enchant-dictionaries () |
| 1219 | "Find Enchant's dictionaries, and record in `ispell-enchant-dictionary-alist'." | 1221 | "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." | |||
| 1243 | (defvar ispell-last-program-name nil | 1245 | (defvar ispell-last-program-name nil |
| 1244 | "Last value of `ispell-program-name'. Internal use.") | 1246 | "Last value of `ispell-program-name'. Internal use.") |
| 1245 | 1247 | ||
| 1248 | ;; Allow dynamically binding ispell-base-dicts-override-alist as | ||
| 1249 | ;; advertised in the doc string of ispell-initialize-spellchecker-hook. | ||
| 1250 | (defvar ispell-base-dicts-override-alist) | ||
| 1251 | |||
| 1246 | (defvar ispell-initialize-spellchecker-hook nil | 1252 | (defvar ispell-initialize-spellchecker-hook nil |
| 1247 | "Normal hook run on spellchecker initialization. | 1253 | "Normal hook run on spellchecker initialization. |
| 1248 | This hook is run when a spellchecker is used for the first | 1254 | This hook is run when a spellchecker is used for the first |
diff --git a/msdos/INSTALL b/msdos/INSTALL index 3b343f14563..3707f436625 100644 --- a/msdos/INSTALL +++ b/msdos/INSTALL | |||
| @@ -19,6 +19,15 @@ the necessary utilities; search for "MS-DOS". The configuration step | |||
| 19 | (see below) will test for these utilities and will refuse to continue | 19 | (see below) will test for these utilities and will refuse to continue |
| 20 | if any of them isn't found. | 20 | if any of them isn't found. |
| 21 | 21 | ||
| 22 | You should carefully choose the version of GCC you use to build Emacs, | ||
| 23 | because recent versions of GCC don't support building Emacs very well. | ||
| 24 | The main issue is the debug info: the DJGPP build of Emacs must use | ||
| 25 | the COFF debug info. GCC support for COFF debug info was steadily | ||
| 26 | deteriorating since GCC 5, and GCC 8.1 officially stopped supporting | ||
| 27 | the -gcoff switch, which the Emacs build process needs. We recommend | ||
| 28 | using GCC 3.4.X and Binutils 2.26; GDB 7.2 is capable to debug an | ||
| 29 | Emacs binary built by this combination. | ||
| 30 | |||
| 22 | Bootstrapping Emacs or recompiling Lisp files in the `lisp' | 31 | Bootstrapping Emacs or recompiling Lisp files in the `lisp' |
| 23 | subdirectory using the various targets in the lisp/Makefile file | 32 | subdirectory using the various targets in the lisp/Makefile file |
| 24 | requires additional utilities: `find' (from Findutils), GNU `echo' and | 33 | requires additional utilities: `find' (from Findutils), GNU `echo' and |
| @@ -70,15 +79,15 @@ Running "config msdos" checks for several programs that are required | |||
| 70 | to configure and build Emacs; if one of those programs is not found, | 79 | to configure and build Emacs; if one of those programs is not found, |
| 71 | CONFIG.BAT stops and prints an error message. | 80 | CONFIG.BAT stops and prints an error message. |
| 72 | 81 | ||
| 73 | On Windows NT and Windows 2000/XP/Vista/7, running "config msdos" | 82 | On Windows NT and Windows 2000/XP and later, running "config msdos" |
| 74 | might print an error message like "VDM has been already loaded". This | 83 | might print an error message like "VDM has been already loaded". This |
| 75 | is because those systems have a program called `redir.exe' which is | 84 | is because those systems have a program called `redir.exe' which is |
| 76 | incompatible with a program by the same name supplied with DJGPP, | 85 | incompatible with a program by the same name supplied with DJGPP, |
| 77 | which is used by config.bat. To resolve this, move the DJGPP's `bin' | 86 | which is used by config.bat. To resolve this, move the DJGPP's `bin' |
| 78 | subdirectory to the front of your PATH environment variable. | 87 | subdirectory to the front of your PATH environment variable. |
| 79 | 88 | ||
| 80 | Windows Vista/7 has several bugs in its DPMI server related to memory | 89 | Windows Vista and later has several bugs in its DPMI server related to |
| 81 | allocation: it fails DPMI resize memory block function, and it | 90 | memory allocation: it fails DPMI resize memory block function, and it |
| 82 | arbitrarily limits the default amount of DPMI memory to 32MB. To work | 91 | arbitrarily limits the default amount of DPMI memory to 32MB. To work |
| 83 | around these bugs, first configure Emacs to use the `malloc' function | 92 | around these bugs, first configure Emacs to use the `malloc' function |
| 84 | from the DJGPP library. To this end, run CONFIG.BAT with the | 93 | from the DJGPP library. To this end, run CONFIG.BAT with the |
diff --git a/src/xdisp.c b/src/xdisp.c index 50fd6857784..1299ba38e3d 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -14027,11 +14027,6 @@ redisplay_internal (void) | |||
| 14027 | /* Notice any pending interrupt request to change frame size. */ | 14027 | /* Notice any pending interrupt request to change frame size. */ |
| 14028 | do_pending_window_change (true); | 14028 | do_pending_window_change (true); |
| 14029 | 14029 | ||
| 14030 | /* do_pending_window_change could change the selected_window due to | ||
| 14031 | frame resizing which makes the selected window too small. */ | ||
| 14032 | if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw) | ||
| 14033 | sw = w; | ||
| 14034 | |||
| 14035 | /* Clear frames marked as garbaged. */ | 14030 | /* Clear frames marked as garbaged. */ |
| 14036 | clear_garbaged_frames (); | 14031 | clear_garbaged_frames (); |
| 14037 | 14032 | ||
| @@ -14039,6 +14034,13 @@ redisplay_internal (void) | |||
| 14039 | if (NILP (Vmemory_full)) | 14034 | if (NILP (Vmemory_full)) |
| 14040 | prepare_menu_bars (); | 14035 | prepare_menu_bars (); |
| 14041 | 14036 | ||
| 14037 | /* do_pending_window_change could change the selected_window due to | ||
| 14038 | frame resizing which makes the selected window too small. | ||
| 14039 | prepare_menu_bars may call lisp hooks and hence also change the | ||
| 14040 | selected_window. */ | ||
| 14041 | if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw) | ||
| 14042 | sw = w; | ||
| 14043 | |||
| 14042 | reconsider_clip_changes (w); | 14044 | reconsider_clip_changes (w); |
| 14043 | 14045 | ||
| 14044 | /* In most cases selected window displays current buffer. */ | 14046 | /* In most cases selected window displays current buffer. */ |
diff --git a/test/src/fns-tests.el b/test/src/fns-tests.el index 0301ceaad52..d9cca557cf2 100644 --- a/test/src/fns-tests.el +++ b/test/src/fns-tests.el | |||
| @@ -119,10 +119,9 @@ | |||
| 119 | 119 | ||
| 120 | ;; In POSIX or C locales, collation order is lexicographic. | 120 | ;; In POSIX or C locales, collation order is lexicographic. |
| 121 | (should (string-collate-lessp "XYZZY" "xyzzy" "POSIX")) | 121 | (should (string-collate-lessp "XYZZY" "xyzzy" "POSIX")) |
| 122 | ;; In a language specific locale, collation order is different. | 122 | ;; In a language specific locale on MS-Windows, collation order is different. |
| 123 | (should (string-collate-lessp | 123 | (when (eq system-type 'windows-nt) |
| 124 | "xyzzy" "XYZZY" | 124 | (should (string-collate-lessp "xyzzy" "XYZZY" "enu_USA"))) |
| 125 | (if (eq system-type 'windows-nt) "enu_USA" "en_US.UTF-8"))) | ||
| 126 | 125 | ||
| 127 | ;; Ignore case. | 126 | ;; Ignore case. |
| 128 | (should (string-collate-equalp "xyzzy" "XYZZY" nil t)) | 127 | (should (string-collate-equalp "xyzzy" "XYZZY" nil t)) |
| @@ -154,8 +153,6 @@ | |||
| 154 | (9 . "aaa") (9 . "zzz") (9 . "ppp") (9 . "fff")]))) | 153 | (9 . "aaa") (9 . "zzz") (9 . "ppp") (9 . "fff")]))) |
| 155 | 154 | ||
| 156 | (ert-deftest fns-tests-collate-sort () | 155 | (ert-deftest fns-tests-collate-sort () |
| 157 | ;; See https://lists.gnu.org/r/emacs-devel/2015-10/msg02505.html. | ||
| 158 | :expected-result (if (eq system-type 'cygwin) :failed :passed) | ||
| 159 | (skip-unless (fns-tests--collate-enabled-p)) | 156 | (skip-unless (fns-tests--collate-enabled-p)) |
| 160 | 157 | ||
| 161 | ;; Punctuation and whitespace characters are relevant for POSIX. | 158 | ;; Punctuation and whitespace characters are relevant for POSIX. |
| @@ -165,15 +162,16 @@ | |||
| 165 | (lambda (a b) (string-collate-lessp a b "POSIX"))) | 162 | (lambda (a b) (string-collate-lessp a b "POSIX"))) |
| 166 | '("1 1" "1 2" "1.1" "1.2" "11" "12"))) | 163 | '("1 1" "1 2" "1.1" "1.2" "11" "12"))) |
| 167 | ;; Punctuation and whitespace characters are not taken into account | 164 | ;; Punctuation and whitespace characters are not taken into account |
| 168 | ;; for collation in other locales. | 165 | ;; for collation in other locales, on MS-Windows systems. |
| 169 | (should | 166 | (when (eq system-type 'windows-nt) |
| 170 | (equal | 167 | (should |
| 171 | (sort '("11" "12" "1 1" "1 2" "1.1" "1.2") | 168 | (equal |
| 172 | (lambda (a b) | 169 | (sort '("11" "12" "1 1" "1 2" "1.1" "1.2") |
| 173 | (let ((w32-collate-ignore-punctuation t)) | 170 | (lambda (a b) |
| 174 | (string-collate-lessp | 171 | (let ((w32-collate-ignore-punctuation t)) |
| 175 | a b (if (eq system-type 'windows-nt) "enu_USA" "en_US.UTF-8"))))) | 172 | (string-collate-lessp |
| 176 | '("11" "1 1" "1.1" "12" "1 2" "1.2"))) | 173 | a b "enu_USA")))) |
| 174 | '("11" "1 1" "1.1" "12" "1 2" "1.2")))) | ||
| 177 | 175 | ||
| 178 | ;; Diacritics are different letters for POSIX, they sort lexicographical. | 176 | ;; Diacritics are different letters for POSIX, they sort lexicographical. |
| 179 | (should | 177 | (should |
| @@ -181,15 +179,17 @@ | |||
| 181 | (sort '("Ævar" "Agustín" "Adrian" "Eli") | 179 | (sort '("Ævar" "Agustín" "Adrian" "Eli") |
| 182 | (lambda (a b) (string-collate-lessp a b "POSIX"))) | 180 | (lambda (a b) (string-collate-lessp a b "POSIX"))) |
| 183 | '("Adrian" "Agustín" "Eli" "Ævar"))) | 181 | '("Adrian" "Agustín" "Eli" "Ævar"))) |
| 184 | ;; Diacritics are sorted between similar letters for other locales. | 182 | ;; Diacritics are sorted between similar letters for other locales, |
| 185 | (should | 183 | ;; on MS-Windows systems. |
| 186 | (equal | 184 | (when (eq system-type 'windows-nt) |
| 187 | (sort '("Ævar" "Agustín" "Adrian" "Eli") | 185 | (should |
| 188 | (lambda (a b) | 186 | (equal |
| 189 | (let ((w32-collate-ignore-punctuation t)) | 187 | (sort '("Ævar" "Agustín" "Adrian" "Eli") |
| 190 | (string-collate-lessp | 188 | (lambda (a b) |
| 191 | a b (if (eq system-type 'windows-nt) "enu_USA" "en_US.UTF-8"))))) | 189 | (let ((w32-collate-ignore-punctuation t)) |
| 192 | '("Adrian" "Ævar" "Agustín" "Eli")))) | 190 | (string-collate-lessp |
| 191 | a b "enu_USA")))) | ||
| 192 | '("Adrian" "Ævar" "Agustín" "Eli"))))) | ||
| 193 | 193 | ||
| 194 | (ert-deftest fns-tests-string-version-lessp () | 194 | (ert-deftest fns-tests-string-version-lessp () |
| 195 | (should (string-version-lessp "foo2.png" "foo12.png")) | 195 | (should (string-version-lessp "foo2.png" "foo12.png")) |