diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/cus-edit.el | 11 | ||||
-rw-r--r-- | lisp/gnus/mm-decode.el | 15 | ||||
-rw-r--r-- | lisp/url/url-http.el | 19 | ||||
-rw-r--r-- | lisp/vc/vc-git.el | 4 |
4 files changed, 25 insertions, 24 deletions
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index a1eb1d20016..60d07f9bc77 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -1072,9 +1072,10 @@ are shown; the contents of those subgroups are initially hidden." ;;;###autoload (defun customize-mode (mode) - "Customize options related to the current major mode. -If a prefix \\[universal-argument] was given (or if the current major mode has no known group), -then prompt for the MODE to customize." + "Customize options related to a major or minor mode. +By default the current major mode is used. With a prefix +argument or if the current major mode has no known group, prompt +for the MODE to customize." (interactive (list (let ((completion-regexp-list '("-mode\\'")) @@ -1083,8 +1084,8 @@ then prompt for the MODE to customize." major-mode (intern (completing-read (if group - (format "Major mode (default %s): " major-mode) - "Major mode: ") + (format "Mode (default %s): " major-mode) + "Mode: ") obarray 'custom-group-of-mode t nil nil (if group (symbol-name major-mode)))))))) diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 744474ca113..c653d735543 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1840,10 +1840,11 @@ If RECURSIVE, search recursively." (defvar shr-image-map) (autoload 'widget-convert-button "wid-edit") +(defvar widget-keymap) (defun mm-convert-shr-links () (let ((start (point-min)) - end) + end keymap) (while (and start (< start (point-max))) (when (setq start (text-property-not-all start (point-max) 'shr-url nil)) @@ -1851,10 +1852,16 @@ If RECURSIVE, search recursively." (widget-convert-button 'url-link start end :help-echo (get-text-property start 'help-echo) - ;;; FIXME Should only use the image map on images. - :keymap shr-image-map + :keymap (setq keymap (copy-keymap shr-map)) (get-text-property start 'shr-url)) - (put-text-property start end 'local-map nil) + ;; Remove keymap that `shr-urlify' adds. + (put-text-property start end 'keymap nil) + ;; Mask keys that launch `widget-button-click'. + ;; Those bindings are provided by `widget-keymap' + ;; that is a parent of `gnus-article-mode-map'. + (dolist (key (where-is-internal #'widget-button-click widget-keymap)) + (unless (lookup-key keymap key) + (define-key keymap key #'ignore))) (dolist (overlay (overlays-at start)) (overlay-put overlay 'face nil)) (setq start end))))) diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 306b36ae951..ef7b77969e6 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -307,19 +307,7 @@ The string is based on `url-privacy-level' and `url-user-agent'." ;; allows us to elide null lines directly, at the cost of making ;; the layout less clear. (setq request - ;; We used to concat directly, but if one of the strings happens - ;; to being multibyte (even if it only contains pure ASCII) then - ;; every string gets converted with `string-MAKE-multibyte' which - ;; turns the 127-255 codes into things like latin-1 accented chars - ;; (it would work right if it used `string-TO-multibyte' instead). - ;; So to avoid the problem we force every string to be unibyte. - (mapconcat - ;; FIXME: Instead of `string-AS-unibyte' we'd want - ;; `string-to-unibyte', so as to properly signal an error if one - ;; of the strings contains a multibyte char. - 'string-as-unibyte - (delq nil - (list + (concat ;; The request (or url-http-method "GET") " " (if using-proxy (url-recreate-url url-http-target-url) real-fname) @@ -398,7 +386,10 @@ The string is based on `url-privacy-level' and `url-user-agent'." "\r\n" ;; Any data url-http-data)) - "")) + ;; Bug#23750 + (unless (= (string-bytes request) + (length request)) + (error "Multibyte text in HTTP request: %s" request)) (url-http-debug "Request is: \n%s" request) request)) diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 783ea89c6ce..e6fe0196d88 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -1434,7 +1434,8 @@ The difference to vc-do-command is that this function always invokes (let ((coding-system-for-read (or coding-system-for-read vc-git-log-output-coding-system)) (coding-system-for-write - (or coding-system-for-write vc-git-commits-coding-system))) + (or coding-system-for-write vc-git-commits-coding-system)) + (process-environment (cons "GIT_DIR" process-environment))) (apply 'vc-do-command (or buffer "*vc*") okstatus vc-git-program ;; http://debbugs.gnu.org/16897 (unless (and (not (cdr-safe file-or-list)) @@ -1462,6 +1463,7 @@ The difference to vc-do-command is that this function always invokes (coding-system-for-write (or coding-system-for-write vc-git-commits-coding-system)) (process-environment (cons "PAGER=" process-environment))) + (push "GIT_DIR" process-environment) (apply 'process-file vc-git-program nil buffer nil command args))) (defun vc-git--out-ok (command &rest args) |