summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2016-04-24 12:48:34 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2016-04-24 12:48:34 -0700
commitf7794460e8e9e0c514b0cb01dd010b531c21169c (patch)
tree4bc195ab38f3e0e106b21b02d080be558ba80b33
parente6d6a99455183bca5074b7601ad11d424da6442e (diff)
parent78f9af707f711121ba24d8dce88d6757683a4dfe (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.el7
-rw-r--r--doc/emacs/dired.texi8
-rw-r--r--doc/emacs/help.texi7
-rw-r--r--doc/misc/efaq-w32.texi1
-rw-r--r--etc/NEWS3
-rw-r--r--lisp/ChangeLog.172
-rw-r--r--lisp/dired.el7
-rw-r--r--lisp/emacs-lisp/check-declare.el2
-rw-r--r--lisp/progmodes/grep.el48
-rw-r--r--lisp/progmodes/project.el4
-rw-r--r--lisp/tmm.el16
-rw-r--r--lisp/vc/log-view.el2
-rw-r--r--lisp/vc/vc-hooks.el2
-rw-r--r--src/w32fns.c38
-rw-r--r--src/w32term.c2
-rw-r--r--src/xterm.c2
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
diff --git a/etc/NEWS b/etc/NEWS
index 6c7c9de4d5..a03f74dec6 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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. */