summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/net/browse-url.el16
-rw-r--r--lisp/progmodes/gud.el3
-rw-r--r--lisp/textmodes/ispell.el10
3 files changed, 24 insertions, 5 deletions
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."
(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 2664d03e723..de398350bd2 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 d03d12b3758..73a2c2da8b1 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