diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2016-04-24 12:48:34 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2016-04-24 12:48:34 -0700 |
commit | f7794460e8e9e0c514b0cb01dd010b531c21169c (patch) | |
tree | 4bc195ab38f3e0e106b21b02d080be558ba80b33 | |
parent | e6d6a99455183bca5074b7601ad11d424da6442e (diff) | |
parent | 78f9af707f711121ba24d8dce88d6757683a4dfe (diff) |
Merge from origin/emacs-25
78f9af7 ; ChangeLog fixes
162e549 * admin/authors.el (authors-ignored-files): Additions.
2b31a0c In x_set_window_size restore do_pending_window_change calls
401857e Fix Alt-modified keys on some European MS-Windows keyboards
a77cf24 Document 'help-go-forward'
1ba947f Revert "Allow to customize names of executables used by grep.el"
570e0fa Revert "Don't use 'find-program'"
645f4ef Revert "Use 'grep-find-program' in check-declare.el"
aa03257 Clarify documentation of 'dired-mark-files-containing-regexp'
ce0d8c7 Make tmm-menubar work in correct order again
b8d5a8f Remove the Meta-CVS VC backend
-rw-r--r-- | admin/authors.el | 7 | ||||
-rw-r--r-- | doc/emacs/dired.texi | 8 | ||||
-rw-r--r-- | doc/emacs/help.texi | 7 | ||||
-rw-r--r-- | doc/misc/efaq-w32.texi | 1 | ||||
-rw-r--r-- | etc/NEWS | 3 | ||||
-rw-r--r-- | lisp/ChangeLog.17 | 2 | ||||
-rw-r--r-- | lisp/dired.el | 7 | ||||
-rw-r--r-- | lisp/emacs-lisp/check-declare.el | 2 | ||||
-rw-r--r-- | lisp/progmodes/grep.el | 48 | ||||
-rw-r--r-- | lisp/progmodes/project.el | 4 | ||||
-rw-r--r-- | lisp/tmm.el | 16 | ||||
-rw-r--r-- | lisp/vc/log-view.el | 2 | ||||
-rw-r--r-- | lisp/vc/vc-hooks.el | 2 | ||||
-rw-r--r-- | src/w32fns.c | 38 | ||||
-rw-r--r-- | src/w32term.c | 2 | ||||
-rw-r--r-- | src/xterm.c | 2 |
16 files changed, 101 insertions, 50 deletions
diff --git a/admin/authors.el b/admin/authors.el index ecdd5ca774..f1aa2fa442 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -279,7 +279,7 @@ Changes to files matching one of the regexps in this list are not listed.") "ChangeLog.nextstep" "Emacs.clr" "spec.txt" "gfdl.1" "texi/Makefile.in" - "lwlib/autodeps.mk" + "autodeps.mk" "oldXMenu/autodeps.mk" "src/autodeps.mk" "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" ;; files from old MS Windows build procedures "makefile.w32-in" - "admin/unidata/makefile.w32-in" + "unidata/makefile.w32-in" "lib/makefile.w32-in" "leim/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" "net/zone-mode.el" "xesam.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" "url-https.el" "org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el" diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index 60542df109..d2de6795c6 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi @@ -550,7 +550,13 @@ Mark (with @samp{*}) all files whose @emph{contents} contain a match for the regular expression @var{regexp} (@code{dired-mark-files-containing-regexp}). This command is like @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-/ @itemx C-x u diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index ed813ff0bf..172d058f85 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -410,6 +410,8 @@ Follow a hyperlink that you click on. @item C-c C-c Show all documentation about the symbol at point (@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 Go back to the previous help topic (@code{help-go-back}). @end table @@ -417,15 +419,18 @@ Go back to the previous help topic (@code{help-go-back}). @cindex hyperlink @findex help-follow @findex help-go-back +@findex help-go-forward @kindex RET @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}) appears in the documentation in the help buffer, it is normally an underlined @dfn{hyperlink}. To view the associated documentation, 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 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 help, viewing web pages diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi index fe65da6d61..28c09f6974 100644 --- a/doc/misc/efaq-w32.texi +++ b/doc/misc/efaq-w32.texi @@ -2061,7 +2061,6 @@ Jonathan Arnold has written an @cindex mercurial, version control integration with Emacs @cindex hg, 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 it comes with command-line tools. Many such GUI tools are just @@ -1418,6 +1418,9 @@ customization group. "Copyright-paperwork-exempt: yes". Set 'log-edit-rewrite-tiny-change' nil to disable this. ++++ +*** vc-mcvs.el has been removed. + --- ** VHDL mode now supports VHDL'08. diff --git a/lisp/ChangeLog.17 b/lisp/ChangeLog.17 index ee03661ece..29081d3f3c 100644 --- a/lisp/ChangeLog.17 +++ b/lisp/ChangeLog.17 @@ -6835,7 +6835,7 @@ console as well (bug#18629). * w32-common-fns.el: Remove. * 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. * obsolete/iswitchb.el (iswitchb-mode): Use normal autoload cookie. diff --git a/lisp/dired.el b/lisp/dired.el index 2a65bd09cc..38979b5244 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -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) "Mark all files with contents containing REGEXP for use in later commands. 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 (list (read-regexp (concat (if current-prefix-arg "Unmark" "Mark") " files containing (regexp): ") diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el index b8a00b3fb4..b6fa054608 100644 --- a/lisp/emacs-lisp/check-declare.el +++ b/lisp/emacs-lisp/check-declare.el @@ -339,7 +339,7 @@ Returns non-nil if any false statements are found." errlist files) (message "%s" m) (message "%s" m2) - (setq files (process-lines grep-find-program root + (setq files (process-lines find-program root "-name" "*.el" "-exec" grep-program "-l" "^[ \t]*(declare-function" "{}" ";")) diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index a478c95eb4..2b44b58f24 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el @@ -427,34 +427,21 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies This gets tacked on the end of the generated expressions.") ;;;###autoload -(defcustom grep-program (purecopy "grep") +(defvar grep-program (purecopy "grep") "The default grep program for `grep-command' and `grep-find-command'. -This variable's value takes effect when `grep-compute-defaults' is called." - :type 'string - :version "25.1" - :group 'grep) +This variable's value takes effect when `grep-compute-defaults' is called.") ;;;###autoload -(defcustom grep-find-program (purecopy "find") +(defvar find-program (purecopy "find") "The default find program. This is used by commands like `grep-find-command', `find-dired' -and others." - :type 'string - :version "25.1" - :group 'grep) - -(define-obsolete-variable-alias 'find-program 'grep-find-program "25.1") +and others.") ;;;###autoload -(defcustom grep-xargs-program (purecopy "xargs") +(defvar xargs-program (purecopy "xargs") "The default xargs program for `grep-find-command'. See `grep-find-use-xargs'. -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") +This variable's value takes effect when `grep-compute-defaults' is called.") ;;;###autoload (defvar grep-find-use-xargs nil @@ -624,14 +611,13 @@ This function is called from `compilation-filter-hook'." (unless grep-find-use-xargs (setq grep-find-use-xargs (cond - ((grep-probe grep-find-program + ((grep-probe find-program `(nil nil nil ,null-device "-exec" "echo" "{}" "+")) 'exec-plus) ((and - (grep-probe grep-find-program - `(nil nil nil ,null-device "-print0")) - (grep-probe grep-xargs-program `(nil nil nil "-0" "echo"))) + (grep-probe find-program `(nil nil nil ,null-device "-print0")) + (grep-probe xargs-program `(nil nil nil "-0" "echo"))) 'gnu) (t 'exec)))) @@ -642,11 +628,10 @@ This function is called from `compilation-filter-hook'." ;; after the pipe symbol be quoted if they use ;; forward slashes as directory separators. (format "%s . -type f -print0 | \"%s\" -0 %s" - grep-find-program grep-xargs-program - grep-command)) + find-program xargs-program grep-command)) ((memq grep-find-use-xargs '(exec exec-plus)) (let ((cmd0 (format "%s . -type f -exec %s" - grep-find-program grep-command)) + find-program grep-command)) (null (if grep-use-null-device (format "%s " null-device) ""))) @@ -658,8 +643,7 @@ This function is called from `compilation-filter-hook'." (1+ (length cmd0))))) (t (format "%s . -type f -print | \"%s\" %s" - grep-find-program grep-xargs-program - grep-command))))) + find-program xargs-program grep-command))))) (unless grep-find-template (setq grep-find-template (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) (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) (format "%s <D> <X> -type f <F> -exec %s {} %s%s" - grep-find-program gcmd null + find-program gcmd null (shell-quote-argument ";"))) ((eq grep-find-use-xargs 'exec-plus) (format "%s <D> <X> -type f <F> -exec %s %s{} +" - grep-find-program gcmd null)) + find-program gcmd null)) (t (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. (setq grep-host-defaults-alist diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 82059c9136..9c8a88c80f 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -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 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." ;; FIXME: Uniquely abbreviate the roots? (require 'xref) @@ -171,7 +171,7 @@ to find the list of ignores for each directory." (lambda (dir) (let ((command (format "%s %s %s -type f -print0" - grep-find-program + find-program dir (xref--find-ignores-arguments (project-ignores project dir) diff --git a/lisp/tmm.el b/lisp/tmm.el index 714de9230e..d1a08ab262 100644 --- a/lisp/tmm.el +++ b/lisp/tmm.el @@ -72,13 +72,15 @@ to invoke `tmm-menubar' instead, customize the variable (tmm-get-keybind [menu-bar])) (setq menu-bar `(keymap ,@(nreverse menu-bar) ,@(nreverse menu-end))) (if x-position - (let ((column 0)) + (let ((column 0) + prev-key) (catch 'done (map-keymap (lambda (key binding) (when (> column x-position) - (setq menu-bar-item key) + (setq menu-bar-item prev-key) (throw 'done nil)) + (setq prev-key key) (pcase binding ((or `(,(and (pred stringp) name) . ,_) ;Simple 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) (dotimes (i (length elt)) (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. (if (and not-menu (= 1 (length tmm-km-list))) ;; 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 (car (nth index-of-default tmm-km-list)) (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 (concat gl-str " (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 (- (* 2 history-len) index-of-default)))))))) (setq choice (cdr (assoc out tmm-km-list))) diff --git a/lisp/vc/log-view.el b/lisp/vc/log-view.el index 34ffb3c93b..63d50033ee 100644 --- a/lisp/vc/log-view.el +++ b/lisp/vc/log-view.el @@ -542,7 +542,7 @@ If called interactively, visit the version at point." (setq en (point)) (or (log-view-current-entry nil t) (throw 'beginning-of-buffer nil)) - (cond ((memq backend '(SCCS RCS CVS MCVS SVN)) + (cond ((memq backend '(SCCS RCS CVS SVN)) (forward-line 2)) ((eq backend 'Hg) (forward-line 4) diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el index 0535565db2..4047bca046 100644 --- a/lisp/vc/vc-hooks.el +++ b/lisp/vc/vc-hooks.el @@ -122,7 +122,7 @@ An empty list disables VC altogether." :group 'vc) ;; 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. (defcustom vc-directory-exclusion-list (purecopy '("SCCS" "RCS" "CVS" "MCVS" ".src" ".svn" ".git" ".hg" ".bzr" diff --git a/src/w32fns.c b/src/w32fns.c index 111f1fb656..ede8f6be29 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -3540,9 +3540,45 @@ deliver_wm_chars (int do_translate, HWND hwnd, UINT msg, UINT wParam, SHORT r = VkKeyScanW (*b), bitmap = 0x1FF; FPRINTF_WM_CHARS((stderr, "VkKeyScanW %#06x %#04x\n", (int)r, - wParam)); + wParam)); if ((r & 0xFF) == wParam) 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 ((bitmap & ~1) == 0) /* 1: KBDSHIFT */ diff --git a/src/w32term.c b/src/w32term.c index 8955ce26b4..74ea6b543b 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -6245,6 +6245,8 @@ x_set_window_size (struct frame *f, bool change_gravity, } unblock_input (); + + do_pending_window_change (false); } /* Mouse warping. */ diff --git a/src/xterm.c b/src/xterm.c index 7108207f25..28856cfe19 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -10742,6 +10742,8 @@ x_set_window_size (struct frame *f, bool change_gravity, cancel_mouse_face (f); unblock_input (); + + do_pending_window_change (false); } /* Move the mouse to position pixel PIX_X, PIX_Y relative to frame F. */ |