emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master f779446 1/5: Merge from origin/emacs-25


From: Paul Eggert
Subject: [Emacs-diffs] master f779446 1/5: Merge from origin/emacs-25
Date: Sun, 24 Apr 2016 19:58:26 +0000

branch: master
commit f7794460e8e9e0c514b0cb01dd010b531c21169c
Merge: e6d6a99 78f9af7
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    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
---
 admin/authors.el                 |    7 +++---
 doc/emacs/dired.texi             |    8 ++++++-
 doc/emacs/help.texi              |    7 +++++-
 doc/misc/efaq-w32.texi           |    1 -
 etc/NEWS                         |    3 +++
 lisp/ChangeLog.17                |    2 +-
 lisp/dired.el                    |    7 +++++-
 lisp/emacs-lisp/check-declare.el |    2 +-
 lisp/progmodes/grep.el           |   48 +++++++++++++-------------------------
 lisp/progmodes/project.el        |    4 ++--
 lisp/tmm.el                      |   16 +++++++++----
 lisp/vc/log-view.el              |    2 +-
 lisp/vc/vc-hooks.el              |    2 +-
 src/w32fns.c                     |   38 +++++++++++++++++++++++++++++-
 src/w32term.c                    |    2 ++
 src/xterm.c                      |    2 ++
 16 files changed, 101 insertions(+), 50 deletions(-)

diff --git a/admin/authors.el b/admin/authors.el
index ecdd5ca..f1aa2fa 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 60542df..d2de679 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 ed813ff..172d058 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}).
address@hidden 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
address@hidden help-go-forward
 @kindex RET @r{(Help mode)}
 @kindex C-c C-b @r{(Help mode)}
address@hidden 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 fe65da6..28c09f6 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
address@hidden 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 6c7c9de..a03f74d 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 ee03661..29081d3 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 2a65bd0..38979b5 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 b8a00b3..b6fa054 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 a478c95..2b44b58 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 82059c9..9c8a88c 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 714de92..d1a08ab 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 34ffb3c..63d5003 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 0535565..4047bca 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 111f1fb..ede8f6b 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 8955ce2..74ea6b5 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 7108207..28856cf 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.  */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]