mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-13 01:20:28 -08:00
Merge from origin/emacs-25
78f9af7; ChangeLog fixes162e549* admin/authors.el (authors-ignored-files): Additions.2b31a0cIn x_set_window_size restore do_pending_window_change calls401857eFix Alt-modified keys on some European MS-Windows keyboardsa77cf24Document 'help-go-forward'1ba947fRevert "Allow to customize names of executables used by grep.el"570e0faRevert "Don't use 'find-program'"645f4efRevert "Use 'grep-find-program' in check-declare.el"aa03257Clarify documentation of 'dired-mark-files-containing-regexp'ce0d8c7Make tmm-menubar work in correct order againb8d5a8fRemove the Meta-CVS VC backend
This commit is contained in:
commit
f7794460e8
16 changed files with 101 additions and 50 deletions
|
|
@ -279,7 +279,7 @@ Changes to files matching one of the regexps in this list are not listed.")
|
||||||
"ChangeLog.nextstep" "Emacs.clr" "spec.txt"
|
"ChangeLog.nextstep" "Emacs.clr" "spec.txt"
|
||||||
"gfdl.1"
|
"gfdl.1"
|
||||||
"texi/Makefile.in"
|
"texi/Makefile.in"
|
||||||
"lwlib/autodeps.mk"
|
"autodeps.mk"
|
||||||
"oldXMenu/autodeps.mk"
|
"oldXMenu/autodeps.mk"
|
||||||
"src/autodeps.mk"
|
"src/autodeps.mk"
|
||||||
"Imakefile" "icons/sink.ico" "aixcc.lex"
|
"Imakefile" "icons/sink.ico" "aixcc.lex"
|
||||||
|
|
@ -371,7 +371,7 @@ Changes to files matching one of the regexps in this list are not listed.")
|
||||||
"lib/qset-acl.c" "lib/qcopy-acl.c" "lib/file-has-acl.c"
|
"lib/qset-acl.c" "lib/qcopy-acl.c" "lib/file-has-acl.c"
|
||||||
;; files from old MS Windows build procedures
|
;; files from old MS Windows build procedures
|
||||||
"makefile.w32-in"
|
"makefile.w32-in"
|
||||||
"admin/unidata/makefile.w32-in"
|
"unidata/makefile.w32-in"
|
||||||
"lib/makefile.w32-in"
|
"lib/makefile.w32-in"
|
||||||
"leim/makefile.w32-in"
|
"leim/makefile.w32-in"
|
||||||
"src/makefile.w32-in"
|
"src/makefile.w32-in"
|
||||||
|
|
@ -691,7 +691,8 @@ Changes to files in this list are not listed.")
|
||||||
"mh-exec.el" "mh-init.el" "mh-customize.el"
|
"mh-exec.el" "mh-init.el" "mh-customize.el"
|
||||||
"net/zone-mode.el" "xesam.el"
|
"net/zone-mode.el" "xesam.el"
|
||||||
"term/mac-win.el" "sup-mouse.el"
|
"term/mac-win.el" "sup-mouse.el"
|
||||||
"term/vt102.el" "term/vt201.el" "term/vt220.el" "term/vt300.el"
|
"term/apollo.el"
|
||||||
|
"term/vt102.el" "term/vt125.el" "term/vt201.el" "term/vt220.el" "term/vt300.el"
|
||||||
"term/vt320.el" "term/vt400.el" "term/vt420.el"
|
"term/vt320.el" "term/vt400.el" "term/vt420.el"
|
||||||
"url-https.el"
|
"url-https.el"
|
||||||
"org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el"
|
"org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el"
|
||||||
|
|
|
||||||
|
|
@ -550,7 +550,13 @@ Mark (with @samp{*}) all files whose @emph{contents} contain a match for
|
||||||
the regular expression @var{regexp}
|
the regular expression @var{regexp}
|
||||||
(@code{dired-mark-files-containing-regexp}). This command is like
|
(@code{dired-mark-files-containing-regexp}). This command is like
|
||||||
@kbd{% m}, except that it searches the file contents instead of the file
|
@kbd{% m}, except that it searches the file contents instead of the file
|
||||||
name.
|
name. Note that if a file is visited in an Emacs buffer, this command
|
||||||
|
will look in the buffer without revisiting the file, so the results
|
||||||
|
might be inconsistent with the file on disk if its contents has changed
|
||||||
|
since it was last visited. If you don't want this, you may wish
|
||||||
|
reverting the files you have visited in your buffers, or turning on
|
||||||
|
the @code{auto-revert} mode in those buffers, before invoking this
|
||||||
|
command. @xref{Reverting}.
|
||||||
|
|
||||||
@item C-/
|
@item C-/
|
||||||
@itemx C-x u
|
@itemx C-x u
|
||||||
|
|
|
||||||
|
|
@ -410,6 +410,8 @@ Follow a hyperlink that you click on.
|
||||||
@item C-c C-c
|
@item C-c C-c
|
||||||
Show all documentation about the symbol at point
|
Show all documentation about the symbol at point
|
||||||
(@code{help-follow-symbol}).
|
(@code{help-follow-symbol}).
|
||||||
|
@item C-c C-f
|
||||||
|
Go forward to the next help topic (@code{help-go-forward}).
|
||||||
@item C-c C-b
|
@item C-c C-b
|
||||||
Go back to the previous help topic (@code{help-go-back}).
|
Go back to the previous help topic (@code{help-go-back}).
|
||||||
@end table
|
@end table
|
||||||
|
|
@ -417,15 +419,18 @@ Go back to the previous help topic (@code{help-go-back}).
|
||||||
@cindex hyperlink
|
@cindex hyperlink
|
||||||
@findex help-follow
|
@findex help-follow
|
||||||
@findex help-go-back
|
@findex help-go-back
|
||||||
|
@findex help-go-forward
|
||||||
@kindex RET @r{(Help mode)}
|
@kindex RET @r{(Help mode)}
|
||||||
@kindex C-c C-b @r{(Help mode)}
|
@kindex C-c C-b @r{(Help mode)}
|
||||||
|
@kindex C-c C-f @r{(Help mode)}
|
||||||
When a function name, variable name, or face name (@pxref{Faces})
|
When a function name, variable name, or face name (@pxref{Faces})
|
||||||
appears in the documentation in the help buffer, it is normally an
|
appears in the documentation in the help buffer, it is normally an
|
||||||
underlined @dfn{hyperlink}. To view the associated documentation,
|
underlined @dfn{hyperlink}. To view the associated documentation,
|
||||||
move point there and type @key{RET} (@code{help-follow}), or click on
|
move point there and type @key{RET} (@code{help-follow}), or click on
|
||||||
the hyperlink with @kbd{Mouse-1} or @kbd{Mouse-2}. Doing so replaces
|
the hyperlink with @kbd{Mouse-1} or @kbd{Mouse-2}. Doing so replaces
|
||||||
the contents of the help buffer; to retrace your steps, type @kbd{C-c
|
the contents of the help buffer; to retrace your steps, type @kbd{C-c
|
||||||
C-b} (@code{help-go-back}).
|
C-b} (@code{help-go-back}). While retracing your steps, you can go
|
||||||
|
forward by using @kbd{C-c C-b} (@code{help-go-forward}).
|
||||||
|
|
||||||
@cindex URL, viewing in help
|
@cindex URL, viewing in help
|
||||||
@cindex help, viewing web pages
|
@cindex help, viewing web pages
|
||||||
|
|
|
||||||
|
|
@ -2061,7 +2061,6 @@ Jonathan Arnold has written an
|
||||||
@cindex mercurial, version control integration with Emacs
|
@cindex mercurial, version control integration with Emacs
|
||||||
@cindex hg, version control integration with Emacs
|
@cindex hg, version control integration with Emacs
|
||||||
@cindex monotone, version control integration with Emacs
|
@cindex monotone, version control integration with Emacs
|
||||||
@cindex mcvs, version control integration with Emacs
|
|
||||||
|
|
||||||
If you are using a graphical revision control tool already, check if
|
If you are using a graphical revision control tool already, check if
|
||||||
it comes with command-line tools. Many such GUI tools are just
|
it comes with command-line tools. Many such GUI tools are just
|
||||||
|
|
|
||||||
3
etc/NEWS
3
etc/NEWS
|
|
@ -1418,6 +1418,9 @@ customization group.
|
||||||
"Copyright-paperwork-exempt: yes". Set 'log-edit-rewrite-tiny-change'
|
"Copyright-paperwork-exempt: yes". Set 'log-edit-rewrite-tiny-change'
|
||||||
nil to disable this.
|
nil to disable this.
|
||||||
|
|
||||||
|
+++
|
||||||
|
*** vc-mcvs.el has been removed.
|
||||||
|
|
||||||
---
|
---
|
||||||
** VHDL mode now supports VHDL'08.
|
** VHDL mode now supports VHDL'08.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6835,7 +6835,7 @@
|
||||||
console as well (bug#18629).
|
console as well (bug#18629).
|
||||||
* w32-common-fns.el: Remove.
|
* w32-common-fns.el: Remove.
|
||||||
* loadup.el: Don't load w32-common-fns.el.
|
* loadup.el: Don't load w32-common-fns.el.
|
||||||
* w32-fns.elc: Don't require w32-common-fns.
|
* w32-fns.el: Don't require w32-common-fns.
|
||||||
|
|
||||||
* icomplete.el: Move Iswitchb autoload here. Much simpler.
|
* icomplete.el: Move Iswitchb autoload here. Much simpler.
|
||||||
* obsolete/iswitchb.el (iswitchb-mode): Use normal autoload cookie.
|
* obsolete/iswitchb.el (iswitchb-mode): Use normal autoload cookie.
|
||||||
|
|
|
||||||
|
|
@ -3357,7 +3357,12 @@ object files--just `.o' will mark more than you might think."
|
||||||
(defun dired-mark-files-containing-regexp (regexp &optional marker-char)
|
(defun dired-mark-files-containing-regexp (regexp &optional marker-char)
|
||||||
"Mark all files with contents containing REGEXP for use in later commands.
|
"Mark all files with contents containing REGEXP for use in later commands.
|
||||||
A prefix argument means to unmark them instead.
|
A prefix argument means to unmark them instead.
|
||||||
`.' and `..' are never marked."
|
`.' and `..' are never marked.
|
||||||
|
|
||||||
|
Note that if a file is visited in an Emacs buffer, this command will
|
||||||
|
look in the buffer without revisiting the file, so the results might
|
||||||
|
be inconsistent with the file on disk if its contents has changed
|
||||||
|
since it was last visited."
|
||||||
(interactive
|
(interactive
|
||||||
(list (read-regexp (concat (if current-prefix-arg "Unmark" "Mark")
|
(list (read-regexp (concat (if current-prefix-arg "Unmark" "Mark")
|
||||||
" files containing (regexp): ")
|
" files containing (regexp): ")
|
||||||
|
|
|
||||||
|
|
@ -339,7 +339,7 @@ Returns non-nil if any false statements are found."
|
||||||
errlist files)
|
errlist files)
|
||||||
(message "%s" m)
|
(message "%s" m)
|
||||||
(message "%s" m2)
|
(message "%s" m2)
|
||||||
(setq files (process-lines grep-find-program root
|
(setq files (process-lines find-program root
|
||||||
"-name" "*.el"
|
"-name" "*.el"
|
||||||
"-exec" grep-program
|
"-exec" grep-program
|
||||||
"-l" "^[ \t]*(declare-function" "{}" ";"))
|
"-l" "^[ \t]*(declare-function" "{}" ";"))
|
||||||
|
|
|
||||||
|
|
@ -427,34 +427,21 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies
|
||||||
This gets tacked on the end of the generated expressions.")
|
This gets tacked on the end of the generated expressions.")
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defcustom grep-program (purecopy "grep")
|
(defvar grep-program (purecopy "grep")
|
||||||
"The default grep program for `grep-command' and `grep-find-command'.
|
"The default grep program for `grep-command' and `grep-find-command'.
|
||||||
This variable's value takes effect when `grep-compute-defaults' is called."
|
This variable's value takes effect when `grep-compute-defaults' is called.")
|
||||||
:type 'string
|
|
||||||
:version "25.1"
|
|
||||||
:group 'grep)
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defcustom grep-find-program (purecopy "find")
|
(defvar find-program (purecopy "find")
|
||||||
"The default find program.
|
"The default find program.
|
||||||
This is used by commands like `grep-find-command', `find-dired'
|
This is used by commands like `grep-find-command', `find-dired'
|
||||||
and others."
|
and others.")
|
||||||
:type 'string
|
|
||||||
:version "25.1"
|
|
||||||
:group 'grep)
|
|
||||||
|
|
||||||
(define-obsolete-variable-alias 'find-program 'grep-find-program "25.1")
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defcustom grep-xargs-program (purecopy "xargs")
|
(defvar xargs-program (purecopy "xargs")
|
||||||
"The default xargs program for `grep-find-command'.
|
"The default xargs program for `grep-find-command'.
|
||||||
See `grep-find-use-xargs'.
|
See `grep-find-use-xargs'.
|
||||||
This variable's value takes effect when `grep-compute-defaults' is called."
|
This variable's value takes effect when `grep-compute-defaults' is called.")
|
||||||
:type 'string
|
|
||||||
:version "25.1"
|
|
||||||
:group 'grep)
|
|
||||||
|
|
||||||
(define-obsolete-variable-alias 'xargs-program 'grep-xargs-program "25.1")
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defvar grep-find-use-xargs nil
|
(defvar grep-find-use-xargs nil
|
||||||
|
|
@ -624,14 +611,13 @@ This function is called from `compilation-filter-hook'."
|
||||||
(unless grep-find-use-xargs
|
(unless grep-find-use-xargs
|
||||||
(setq grep-find-use-xargs
|
(setq grep-find-use-xargs
|
||||||
(cond
|
(cond
|
||||||
((grep-probe grep-find-program
|
((grep-probe find-program
|
||||||
`(nil nil nil ,null-device "-exec" "echo"
|
`(nil nil nil ,null-device "-exec" "echo"
|
||||||
"{}" "+"))
|
"{}" "+"))
|
||||||
'exec-plus)
|
'exec-plus)
|
||||||
((and
|
((and
|
||||||
(grep-probe grep-find-program
|
(grep-probe find-program `(nil nil nil ,null-device "-print0"))
|
||||||
`(nil nil nil ,null-device "-print0"))
|
(grep-probe xargs-program `(nil nil nil "-0" "echo")))
|
||||||
(grep-probe grep-xargs-program `(nil nil nil "-0" "echo")))
|
|
||||||
'gnu)
|
'gnu)
|
||||||
(t
|
(t
|
||||||
'exec))))
|
'exec))))
|
||||||
|
|
@ -642,11 +628,10 @@ This function is called from `compilation-filter-hook'."
|
||||||
;; after the pipe symbol be quoted if they use
|
;; after the pipe symbol be quoted if they use
|
||||||
;; forward slashes as directory separators.
|
;; forward slashes as directory separators.
|
||||||
(format "%s . -type f -print0 | \"%s\" -0 %s"
|
(format "%s . -type f -print0 | \"%s\" -0 %s"
|
||||||
grep-find-program grep-xargs-program
|
find-program xargs-program grep-command))
|
||||||
grep-command))
|
|
||||||
((memq grep-find-use-xargs '(exec exec-plus))
|
((memq grep-find-use-xargs '(exec exec-plus))
|
||||||
(let ((cmd0 (format "%s . -type f -exec %s"
|
(let ((cmd0 (format "%s . -type f -exec %s"
|
||||||
grep-find-program grep-command))
|
find-program grep-command))
|
||||||
(null (if grep-use-null-device
|
(null (if grep-use-null-device
|
||||||
(format "%s " null-device)
|
(format "%s " null-device)
|
||||||
"")))
|
"")))
|
||||||
|
|
@ -658,8 +643,7 @@ This function is called from `compilation-filter-hook'."
|
||||||
(1+ (length cmd0)))))
|
(1+ (length cmd0)))))
|
||||||
(t
|
(t
|
||||||
(format "%s . -type f -print | \"%s\" %s"
|
(format "%s . -type f -print | \"%s\" %s"
|
||||||
grep-find-program grep-xargs-program
|
find-program xargs-program grep-command)))))
|
||||||
grep-command)))))
|
|
||||||
(unless grep-find-template
|
(unless grep-find-template
|
||||||
(setq grep-find-template
|
(setq grep-find-template
|
||||||
(let ((gcmd (format "%s <C> %s <R>"
|
(let ((gcmd (format "%s <C> %s <R>"
|
||||||
|
|
@ -669,17 +653,17 @@ This function is called from `compilation-filter-hook'."
|
||||||
"")))
|
"")))
|
||||||
(cond ((eq grep-find-use-xargs 'gnu)
|
(cond ((eq grep-find-use-xargs 'gnu)
|
||||||
(format "%s <D> <X> -type f <F> -print0 | \"%s\" -0 %s"
|
(format "%s <D> <X> -type f <F> -print0 | \"%s\" -0 %s"
|
||||||
grep-find-program grep-xargs-program gcmd))
|
find-program xargs-program gcmd))
|
||||||
((eq grep-find-use-xargs 'exec)
|
((eq grep-find-use-xargs 'exec)
|
||||||
(format "%s <D> <X> -type f <F> -exec %s {} %s%s"
|
(format "%s <D> <X> -type f <F> -exec %s {} %s%s"
|
||||||
grep-find-program gcmd null
|
find-program gcmd null
|
||||||
(shell-quote-argument ";")))
|
(shell-quote-argument ";")))
|
||||||
((eq grep-find-use-xargs 'exec-plus)
|
((eq grep-find-use-xargs 'exec-plus)
|
||||||
(format "%s <D> <X> -type f <F> -exec %s %s{} +"
|
(format "%s <D> <X> -type f <F> -exec %s %s{} +"
|
||||||
grep-find-program gcmd null))
|
find-program gcmd null))
|
||||||
(t
|
(t
|
||||||
(format "%s <D> <X> -type f <F> -print | \"%s\" %s"
|
(format "%s <D> <X> -type f <F> -print | \"%s\" %s"
|
||||||
grep-find-program grep-xargs-program gcmd))))))))
|
find-program xargs-program gcmd))))))))
|
||||||
|
|
||||||
;; Save defaults for this host.
|
;; Save defaults for this host.
|
||||||
(setq grep-host-defaults-alist
|
(setq grep-host-defaults-alist
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,7 @@ end it with `/'. DIR must be one of `project-roots' or
|
||||||
DIRS is a list of absolute directories; it should be some
|
DIRS is a list of absolute directories; it should be some
|
||||||
subset of the project roots and external roots.
|
subset of the project roots and external roots.
|
||||||
|
|
||||||
The default implementation uses `grep-find-program'. PROJECT is used
|
The default implementation uses `find-program'. PROJECT is used
|
||||||
to find the list of ignores for each directory."
|
to find the list of ignores for each directory."
|
||||||
;; FIXME: Uniquely abbreviate the roots?
|
;; FIXME: Uniquely abbreviate the roots?
|
||||||
(require 'xref)
|
(require 'xref)
|
||||||
|
|
@ -171,7 +171,7 @@ to find the list of ignores for each directory."
|
||||||
(lambda (dir)
|
(lambda (dir)
|
||||||
(let ((command
|
(let ((command
|
||||||
(format "%s %s %s -type f -print0"
|
(format "%s %s %s -type f -print0"
|
||||||
grep-find-program
|
find-program
|
||||||
dir
|
dir
|
||||||
(xref--find-ignores-arguments
|
(xref--find-ignores-arguments
|
||||||
(project-ignores project dir)
|
(project-ignores project dir)
|
||||||
|
|
|
||||||
16
lisp/tmm.el
16
lisp/tmm.el
|
|
@ -72,13 +72,15 @@ to invoke `tmm-menubar' instead, customize the variable
|
||||||
(tmm-get-keybind [menu-bar]))
|
(tmm-get-keybind [menu-bar]))
|
||||||
(setq menu-bar `(keymap ,@(nreverse menu-bar) ,@(nreverse menu-end)))
|
(setq menu-bar `(keymap ,@(nreverse menu-bar) ,@(nreverse menu-end)))
|
||||||
(if x-position
|
(if x-position
|
||||||
(let ((column 0))
|
(let ((column 0)
|
||||||
|
prev-key)
|
||||||
(catch 'done
|
(catch 'done
|
||||||
(map-keymap
|
(map-keymap
|
||||||
(lambda (key binding)
|
(lambda (key binding)
|
||||||
(when (> column x-position)
|
(when (> column x-position)
|
||||||
(setq menu-bar-item key)
|
(setq menu-bar-item prev-key)
|
||||||
(throw 'done nil))
|
(throw 'done nil))
|
||||||
|
(setq prev-key key)
|
||||||
(pcase binding
|
(pcase binding
|
||||||
((or `(,(and (pred stringp) name) . ,_) ;Simple menu item.
|
((or `(,(and (pred stringp) name) . ,_) ;Simple menu item.
|
||||||
`(menu-item ,name ,_cmd ;Extended menu item.
|
`(menu-item ,name ,_cmd ;Extended menu item.
|
||||||
|
|
@ -187,7 +189,6 @@ Its value should be an event that has a binding in MENU."
|
||||||
((vectorp elt)
|
((vectorp elt)
|
||||||
(dotimes (i (length elt))
|
(dotimes (i (length elt))
|
||||||
(tmm-get-keymap (cons i (aref elt i)) not-menu))))))
|
(tmm-get-keymap (cons i (aref elt i)) not-menu))))))
|
||||||
(setq tmm-km-list (nreverse tmm-km-list))
|
|
||||||
;; Choose an element of tmm-km-list; put it in choice.
|
;; Choose an element of tmm-km-list; put it in choice.
|
||||||
(if (and not-menu (= 1 (length tmm-km-list)))
|
(if (and not-menu (= 1 (length tmm-km-list)))
|
||||||
;; If this is the top-level of an x-popup-menu menu,
|
;; If this is the top-level of an x-popup-menu menu,
|
||||||
|
|
@ -239,10 +240,17 @@ Its value should be an event that has a binding in MENU."
|
||||||
(if default-item
|
(if default-item
|
||||||
(car (nth index-of-default tmm-km-list))
|
(car (nth index-of-default tmm-km-list))
|
||||||
(minibuffer-with-setup-hook #'tmm-add-prompt
|
(minibuffer-with-setup-hook #'tmm-add-prompt
|
||||||
|
;; tmm-km-list is reversed, because history
|
||||||
|
;; needs it in LIFO order. But completion
|
||||||
|
;; needs it in non-reverse order, so that the
|
||||||
|
;; menu items are displayed as completion
|
||||||
|
;; candidates in the order they are shown on
|
||||||
|
;; the menu bar. So pass completing-read the
|
||||||
|
;; reversed copy of the list.
|
||||||
(completing-read
|
(completing-read
|
||||||
(concat gl-str
|
(concat gl-str
|
||||||
" (up/down to change, PgUp to menu): ")
|
" (up/down to change, PgUp to menu): ")
|
||||||
(tmm--completion-table tmm-km-list) nil t nil
|
(tmm--completion-table (reverse tmm-km-list)) nil t nil
|
||||||
(cons 'tmm--history
|
(cons 'tmm--history
|
||||||
(- (* 2 history-len) index-of-default))))))))
|
(- (* 2 history-len) index-of-default))))))))
|
||||||
(setq choice (cdr (assoc out tmm-km-list)))
|
(setq choice (cdr (assoc out tmm-km-list)))
|
||||||
|
|
|
||||||
|
|
@ -542,7 +542,7 @@ If called interactively, visit the version at point."
|
||||||
(setq en (point))
|
(setq en (point))
|
||||||
(or (log-view-current-entry nil t)
|
(or (log-view-current-entry nil t)
|
||||||
(throw 'beginning-of-buffer nil))
|
(throw 'beginning-of-buffer nil))
|
||||||
(cond ((memq backend '(SCCS RCS CVS MCVS SVN))
|
(cond ((memq backend '(SCCS RCS CVS SVN))
|
||||||
(forward-line 2))
|
(forward-line 2))
|
||||||
((eq backend 'Hg)
|
((eq backend 'Hg)
|
||||||
(forward-line 4)
|
(forward-line 4)
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,7 @@ An empty list disables VC altogether."
|
||||||
:group 'vc)
|
:group 'vc)
|
||||||
|
|
||||||
;; Note: we don't actually have a darcs back end yet.
|
;; Note: we don't actually have a darcs back end yet.
|
||||||
;; Also, Meta-CVS (corresponding to MCVS) and Arch are unsupported.
|
;; Also, Arch is unsupported, and the Meta-CVS back end has been removed.
|
||||||
;; The Arch back end will be retrieved and fixed if it is ever required.
|
;; The Arch back end will be retrieved and fixed if it is ever required.
|
||||||
(defcustom vc-directory-exclusion-list (purecopy '("SCCS" "RCS" "CVS" "MCVS"
|
(defcustom vc-directory-exclusion-list (purecopy '("SCCS" "RCS" "CVS" "MCVS"
|
||||||
".src" ".svn" ".git" ".hg" ".bzr"
|
".src" ".svn" ".git" ".hg" ".bzr"
|
||||||
|
|
|
||||||
36
src/w32fns.c
36
src/w32fns.c
|
|
@ -3543,6 +3543,42 @@ deliver_wm_chars (int do_translate, HWND hwnd, UINT msg, UINT wParam,
|
||||||
wParam));
|
wParam));
|
||||||
if ((r & 0xFF) == wParam)
|
if ((r & 0xFF) == wParam)
|
||||||
bitmap = r>>8; /* *b is reachable via simple interface */
|
bitmap = r>>8; /* *b is reachable via simple interface */
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* VkKeyScanW() (essentially) returns the FIRST key with
|
||||||
|
the specified character; so here the pressed key is the
|
||||||
|
SECONDARY key producing the character.
|
||||||
|
|
||||||
|
Essentially, we have no information about the "role" of
|
||||||
|
modifiers on this key: which contribute into the
|
||||||
|
produced character (so "are consumed"), and which are
|
||||||
|
"extra" (must attache to bindable events).
|
||||||
|
|
||||||
|
The default above would consume ALL modifiers, so the
|
||||||
|
character is reported "as is". However, on many layouts
|
||||||
|
the ordering of the keys (in the layout table) is not
|
||||||
|
thought out well, so the "secondary" keys are often those
|
||||||
|
which the users would prefer to use with Alt-CHAR.
|
||||||
|
(Moreover - with e.g. Czech-QWERTY - the ASCII
|
||||||
|
punctuation is accessible from two equally [nu]preferable
|
||||||
|
AltGr-keys.)
|
||||||
|
|
||||||
|
SO: Heuristic: if the reported char is ASCII, AND Meta
|
||||||
|
modifier is a candidate, behave as if Meta is present
|
||||||
|
(fallback to the legacy branch; bug#23251).
|
||||||
|
|
||||||
|
(This would break layouts
|
||||||
|
- delivering ASCII characters
|
||||||
|
- on SECONDARY keys
|
||||||
|
- with not Shift/AltGr-like modifier combinations.
|
||||||
|
All 3 conditions together must be pretty exotic
|
||||||
|
cases - and a workaround exists: use "primary" keys!) */
|
||||||
|
if (*b < 0x80
|
||||||
|
&& (wmsg.dwModifiers
|
||||||
|
& (alt_modifier | meta_modifier
|
||||||
|
| super_modifier | hyper_modifier)))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (*type_CtrlAlt == 'a') /* Simple Alt seen */
|
if (*type_CtrlAlt == 'a') /* Simple Alt seen */
|
||||||
{
|
{
|
||||||
if ((bitmap & ~1) == 0) /* 1: KBDSHIFT */
|
if ((bitmap & ~1) == 0) /* 1: KBDSHIFT */
|
||||||
|
|
|
||||||
|
|
@ -6245,6 +6245,8 @@ x_set_window_size (struct frame *f, bool change_gravity,
|
||||||
}
|
}
|
||||||
|
|
||||||
unblock_input ();
|
unblock_input ();
|
||||||
|
|
||||||
|
do_pending_window_change (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Mouse warping. */
|
/* Mouse warping. */
|
||||||
|
|
|
||||||
|
|
@ -10742,6 +10742,8 @@ x_set_window_size (struct frame *f, bool change_gravity,
|
||||||
cancel_mouse_face (f);
|
cancel_mouse_face (f);
|
||||||
|
|
||||||
unblock_input ();
|
unblock_input ();
|
||||||
|
|
||||||
|
do_pending_window_change (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Move the mouse to position pixel PIX_X, PIX_Y relative to frame F. */
|
/* Move the mouse to position pixel PIX_X, PIX_Y relative to frame F. */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue