diff options
| -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 ecdd5ca7741..f1aa2fa4428 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.") | |||
| 279 | "ChangeLog.nextstep" "Emacs.clr" "spec.txt" | 279 | "ChangeLog.nextstep" "Emacs.clr" "spec.txt" |
| 280 | "gfdl.1" | 280 | "gfdl.1" |
| 281 | "texi/Makefile.in" | 281 | "texi/Makefile.in" |
| 282 | "lwlib/autodeps.mk" | 282 | "autodeps.mk" |
| 283 | "oldXMenu/autodeps.mk" | 283 | "oldXMenu/autodeps.mk" |
| 284 | "src/autodeps.mk" | 284 | "src/autodeps.mk" |
| 285 | "Imakefile" "icons/sink.ico" "aixcc.lex" | 285 | "Imakefile" "icons/sink.ico" "aixcc.lex" |
| @@ -371,7 +371,7 @@ Changes to files matching one of the regexps in this list are not listed.") | |||
| 371 | "lib/qset-acl.c" "lib/qcopy-acl.c" "lib/file-has-acl.c" | 371 | "lib/qset-acl.c" "lib/qcopy-acl.c" "lib/file-has-acl.c" |
| 372 | ;; files from old MS Windows build procedures | 372 | ;; files from old MS Windows build procedures |
| 373 | "makefile.w32-in" | 373 | "makefile.w32-in" |
| 374 | "admin/unidata/makefile.w32-in" | 374 | "unidata/makefile.w32-in" |
| 375 | "lib/makefile.w32-in" | 375 | "lib/makefile.w32-in" |
| 376 | "leim/makefile.w32-in" | 376 | "leim/makefile.w32-in" |
| 377 | "src/makefile.w32-in" | 377 | "src/makefile.w32-in" |
| @@ -691,7 +691,8 @@ Changes to files in this list are not listed.") | |||
| 691 | "mh-exec.el" "mh-init.el" "mh-customize.el" | 691 | "mh-exec.el" "mh-init.el" "mh-customize.el" |
| 692 | "net/zone-mode.el" "xesam.el" | 692 | "net/zone-mode.el" "xesam.el" |
| 693 | "term/mac-win.el" "sup-mouse.el" | 693 | "term/mac-win.el" "sup-mouse.el" |
| 694 | "term/vt102.el" "term/vt201.el" "term/vt220.el" "term/vt300.el" | 694 | "term/apollo.el" |
| 695 | "term/vt102.el" "term/vt125.el" "term/vt201.el" "term/vt220.el" "term/vt300.el" | ||
| 695 | "term/vt320.el" "term/vt400.el" "term/vt420.el" | 696 | "term/vt320.el" "term/vt400.el" "term/vt420.el" |
| 696 | "url-https.el" | 697 | "url-https.el" |
| 697 | "org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el" | 698 | "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 60542df1097..d2de6795c6b 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 | |||
| 550 | the regular expression @var{regexp} | 550 | the regular expression @var{regexp} |
| 551 | (@code{dired-mark-files-containing-regexp}). This command is like | 551 | (@code{dired-mark-files-containing-regexp}). This command is like |
| 552 | @kbd{% m}, except that it searches the file contents instead of the file | 552 | @kbd{% m}, except that it searches the file contents instead of the file |
| 553 | name. | 553 | name. Note that if a file is visited in an Emacs buffer, this command |
| 554 | will look in the buffer without revisiting the file, so the results | ||
| 555 | might be inconsistent with the file on disk if its contents has changed | ||
| 556 | since it was last visited. If you don't want this, you may wish | ||
| 557 | reverting the files you have visited in your buffers, or turning on | ||
| 558 | the @code{auto-revert} mode in those buffers, before invoking this | ||
| 559 | command. @xref{Reverting}. | ||
| 554 | 560 | ||
| 555 | @item C-/ | 561 | @item C-/ |
| 556 | @itemx C-x u | 562 | @itemx C-x u |
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index ed813ff0bf6..172d058f857 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi | |||
| @@ -410,6 +410,8 @@ Follow a hyperlink that you click on. | |||
| 410 | @item C-c C-c | 410 | @item C-c C-c |
| 411 | Show all documentation about the symbol at point | 411 | Show all documentation about the symbol at point |
| 412 | (@code{help-follow-symbol}). | 412 | (@code{help-follow-symbol}). |
| 413 | @item C-c C-f | ||
| 414 | Go forward to the next help topic (@code{help-go-forward}). | ||
| 413 | @item C-c C-b | 415 | @item C-c C-b |
| 414 | Go back to the previous help topic (@code{help-go-back}). | 416 | Go back to the previous help topic (@code{help-go-back}). |
| 415 | @end table | 417 | @end table |
| @@ -417,15 +419,18 @@ Go back to the previous help topic (@code{help-go-back}). | |||
| 417 | @cindex hyperlink | 419 | @cindex hyperlink |
| 418 | @findex help-follow | 420 | @findex help-follow |
| 419 | @findex help-go-back | 421 | @findex help-go-back |
| 422 | @findex help-go-forward | ||
| 420 | @kindex RET @r{(Help mode)} | 423 | @kindex RET @r{(Help mode)} |
| 421 | @kindex C-c C-b @r{(Help mode)} | 424 | @kindex C-c C-b @r{(Help mode)} |
| 425 | @kindex C-c C-f @r{(Help mode)} | ||
| 422 | When a function name, variable name, or face name (@pxref{Faces}) | 426 | When a function name, variable name, or face name (@pxref{Faces}) |
| 423 | appears in the documentation in the help buffer, it is normally an | 427 | appears in the documentation in the help buffer, it is normally an |
| 424 | underlined @dfn{hyperlink}. To view the associated documentation, | 428 | underlined @dfn{hyperlink}. To view the associated documentation, |
| 425 | move point there and type @key{RET} (@code{help-follow}), or click on | 429 | move point there and type @key{RET} (@code{help-follow}), or click on |
| 426 | the hyperlink with @kbd{Mouse-1} or @kbd{Mouse-2}. Doing so replaces | 430 | the hyperlink with @kbd{Mouse-1} or @kbd{Mouse-2}. Doing so replaces |
| 427 | the contents of the help buffer; to retrace your steps, type @kbd{C-c | 431 | the contents of the help buffer; to retrace your steps, type @kbd{C-c |
| 428 | C-b} (@code{help-go-back}). | 432 | C-b} (@code{help-go-back}). While retracing your steps, you can go |
| 433 | forward by using @kbd{C-c C-b} (@code{help-go-forward}). | ||
| 429 | 434 | ||
| 430 | @cindex URL, viewing in help | 435 | @cindex URL, viewing in help |
| 431 | @cindex help, viewing web pages | 436 | @cindex help, viewing web pages |
diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi index fe65da6d612..28c09f69744 100644 --- a/doc/misc/efaq-w32.texi +++ b/doc/misc/efaq-w32.texi | |||
| @@ -2061,7 +2061,6 @@ Jonathan Arnold has written an | |||
| 2061 | @cindex mercurial, version control integration with Emacs | 2061 | @cindex mercurial, version control integration with Emacs |
| 2062 | @cindex hg, version control integration with Emacs | 2062 | @cindex hg, version control integration with Emacs |
| 2063 | @cindex monotone, version control integration with Emacs | 2063 | @cindex monotone, version control integration with Emacs |
| 2064 | @cindex mcvs, version control integration with Emacs | ||
| 2065 | 2064 | ||
| 2066 | If you are using a graphical revision control tool already, check if | 2065 | If you are using a graphical revision control tool already, check if |
| 2067 | it comes with command-line tools. Many such GUI tools are just | 2066 | it comes with command-line tools. Many such GUI tools are just |
| @@ -1418,6 +1418,9 @@ customization group. | |||
| 1418 | "Copyright-paperwork-exempt: yes". Set 'log-edit-rewrite-tiny-change' | 1418 | "Copyright-paperwork-exempt: yes". Set 'log-edit-rewrite-tiny-change' |
| 1419 | nil to disable this. | 1419 | nil to disable this. |
| 1420 | 1420 | ||
| 1421 | +++ | ||
| 1422 | *** vc-mcvs.el has been removed. | ||
| 1423 | |||
| 1421 | --- | 1424 | --- |
| 1422 | ** VHDL mode now supports VHDL'08. | 1425 | ** VHDL mode now supports VHDL'08. |
| 1423 | 1426 | ||
diff --git a/lisp/ChangeLog.17 b/lisp/ChangeLog.17 index ee03661ece0..29081d3f3cd 100644 --- a/lisp/ChangeLog.17 +++ b/lisp/ChangeLog.17 | |||
| @@ -6835,7 +6835,7 @@ | |||
| 6835 | console as well (bug#18629). | 6835 | console as well (bug#18629). |
| 6836 | * w32-common-fns.el: Remove. | 6836 | * w32-common-fns.el: Remove. |
| 6837 | * loadup.el: Don't load w32-common-fns.el. | 6837 | * loadup.el: Don't load w32-common-fns.el. |
| 6838 | * w32-fns.elc: Don't require w32-common-fns. | 6838 | * w32-fns.el: Don't require w32-common-fns. |
| 6839 | 6839 | ||
| 6840 | * icomplete.el: Move Iswitchb autoload here. Much simpler. | 6840 | * icomplete.el: Move Iswitchb autoload here. Much simpler. |
| 6841 | * obsolete/iswitchb.el (iswitchb-mode): Use normal autoload cookie. | 6841 | * obsolete/iswitchb.el (iswitchb-mode): Use normal autoload cookie. |
diff --git a/lisp/dired.el b/lisp/dired.el index 2a65bd09cc5..38979b5244d 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -3357,7 +3357,12 @@ object files--just `.o' will mark more than you might think." | |||
| 3357 | (defun dired-mark-files-containing-regexp (regexp &optional marker-char) | 3357 | (defun dired-mark-files-containing-regexp (regexp &optional marker-char) |
| 3358 | "Mark all files with contents containing REGEXP for use in later commands. | 3358 | "Mark all files with contents containing REGEXP for use in later commands. |
| 3359 | A prefix argument means to unmark them instead. | 3359 | A prefix argument means to unmark them instead. |
| 3360 | `.' and `..' are never marked." | 3360 | `.' and `..' are never marked. |
| 3361 | |||
| 3362 | Note that if a file is visited in an Emacs buffer, this command will | ||
| 3363 | look in the buffer without revisiting the file, so the results might | ||
| 3364 | be inconsistent with the file on disk if its contents has changed | ||
| 3365 | since it was last visited." | ||
| 3361 | (interactive | 3366 | (interactive |
| 3362 | (list (read-regexp (concat (if current-prefix-arg "Unmark" "Mark") | 3367 | (list (read-regexp (concat (if current-prefix-arg "Unmark" "Mark") |
| 3363 | " files containing (regexp): ") | 3368 | " files containing (regexp): ") |
diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el index b8a00b3fb4e..b6fa0546088 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." | |||
| 339 | errlist files) | 339 | errlist files) |
| 340 | (message "%s" m) | 340 | (message "%s" m) |
| 341 | (message "%s" m2) | 341 | (message "%s" m2) |
| 342 | (setq files (process-lines grep-find-program root | 342 | (setq files (process-lines find-program root |
| 343 | "-name" "*.el" | 343 | "-name" "*.el" |
| 344 | "-exec" grep-program | 344 | "-exec" grep-program |
| 345 | "-l" "^[ \t]*(declare-function" "{}" ";")) | 345 | "-l" "^[ \t]*(declare-function" "{}" ";")) |
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index a478c95eb4f..2b44b58f245 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 | |||
| 427 | This gets tacked on the end of the generated expressions.") | 427 | This gets tacked on the end of the generated expressions.") |
| 428 | 428 | ||
| 429 | ;;;###autoload | 429 | ;;;###autoload |
| 430 | (defcustom grep-program (purecopy "grep") | 430 | (defvar grep-program (purecopy "grep") |
| 431 | "The default grep program for `grep-command' and `grep-find-command'. | 431 | "The default grep program for `grep-command' and `grep-find-command'. |
| 432 | This variable's value takes effect when `grep-compute-defaults' is called." | 432 | This variable's value takes effect when `grep-compute-defaults' is called.") |
| 433 | :type 'string | ||
| 434 | :version "25.1" | ||
| 435 | :group 'grep) | ||
| 436 | 433 | ||
| 437 | ;;;###autoload | 434 | ;;;###autoload |
| 438 | (defcustom grep-find-program (purecopy "find") | 435 | (defvar find-program (purecopy "find") |
| 439 | "The default find program. | 436 | "The default find program. |
| 440 | This is used by commands like `grep-find-command', `find-dired' | 437 | This is used by commands like `grep-find-command', `find-dired' |
| 441 | and others." | 438 | and others.") |
| 442 | :type 'string | ||
| 443 | :version "25.1" | ||
| 444 | :group 'grep) | ||
| 445 | |||
| 446 | (define-obsolete-variable-alias 'find-program 'grep-find-program "25.1") | ||
| 447 | 439 | ||
| 448 | ;;;###autoload | 440 | ;;;###autoload |
| 449 | (defcustom grep-xargs-program (purecopy "xargs") | 441 | (defvar xargs-program (purecopy "xargs") |
| 450 | "The default xargs program for `grep-find-command'. | 442 | "The default xargs program for `grep-find-command'. |
| 451 | See `grep-find-use-xargs'. | 443 | See `grep-find-use-xargs'. |
| 452 | This variable's value takes effect when `grep-compute-defaults' is called." | 444 | This variable's value takes effect when `grep-compute-defaults' is called.") |
| 453 | :type 'string | ||
| 454 | :version "25.1" | ||
| 455 | :group 'grep) | ||
| 456 | |||
| 457 | (define-obsolete-variable-alias 'xargs-program 'grep-xargs-program "25.1") | ||
| 458 | 445 | ||
| 459 | ;;;###autoload | 446 | ;;;###autoload |
| 460 | (defvar grep-find-use-xargs nil | 447 | (defvar grep-find-use-xargs nil |
| @@ -624,14 +611,13 @@ This function is called from `compilation-filter-hook'." | |||
| 624 | (unless grep-find-use-xargs | 611 | (unless grep-find-use-xargs |
| 625 | (setq grep-find-use-xargs | 612 | (setq grep-find-use-xargs |
| 626 | (cond | 613 | (cond |
| 627 | ((grep-probe grep-find-program | 614 | ((grep-probe find-program |
| 628 | `(nil nil nil ,null-device "-exec" "echo" | 615 | `(nil nil nil ,null-device "-exec" "echo" |
| 629 | "{}" "+")) | 616 | "{}" "+")) |
| 630 | 'exec-plus) | 617 | 'exec-plus) |
| 631 | ((and | 618 | ((and |
| 632 | (grep-probe grep-find-program | 619 | (grep-probe find-program `(nil nil nil ,null-device "-print0")) |
| 633 | `(nil nil nil ,null-device "-print0")) | 620 | (grep-probe xargs-program `(nil nil nil "-0" "echo"))) |
| 634 | (grep-probe grep-xargs-program `(nil nil nil "-0" "echo"))) | ||
| 635 | 'gnu) | 621 | 'gnu) |
| 636 | (t | 622 | (t |
| 637 | 'exec)))) | 623 | 'exec)))) |
| @@ -642,11 +628,10 @@ This function is called from `compilation-filter-hook'." | |||
| 642 | ;; after the pipe symbol be quoted if they use | 628 | ;; after the pipe symbol be quoted if they use |
| 643 | ;; forward slashes as directory separators. | 629 | ;; forward slashes as directory separators. |
| 644 | (format "%s . -type f -print0 | \"%s\" -0 %s" | 630 | (format "%s . -type f -print0 | \"%s\" -0 %s" |
| 645 | grep-find-program grep-xargs-program | 631 | find-program xargs-program grep-command)) |
| 646 | grep-command)) | ||
| 647 | ((memq grep-find-use-xargs '(exec exec-plus)) | 632 | ((memq grep-find-use-xargs '(exec exec-plus)) |
| 648 | (let ((cmd0 (format "%s . -type f -exec %s" | 633 | (let ((cmd0 (format "%s . -type f -exec %s" |
| 649 | grep-find-program grep-command)) | 634 | find-program grep-command)) |
| 650 | (null (if grep-use-null-device | 635 | (null (if grep-use-null-device |
| 651 | (format "%s " null-device) | 636 | (format "%s " null-device) |
| 652 | ""))) | 637 | ""))) |
| @@ -658,8 +643,7 @@ This function is called from `compilation-filter-hook'." | |||
| 658 | (1+ (length cmd0))))) | 643 | (1+ (length cmd0))))) |
| 659 | (t | 644 | (t |
| 660 | (format "%s . -type f -print | \"%s\" %s" | 645 | (format "%s . -type f -print | \"%s\" %s" |
| 661 | grep-find-program grep-xargs-program | 646 | find-program xargs-program grep-command))))) |
| 662 | grep-command))))) | ||
| 663 | (unless grep-find-template | 647 | (unless grep-find-template |
| 664 | (setq grep-find-template | 648 | (setq grep-find-template |
| 665 | (let ((gcmd (format "%s <C> %s <R>" | 649 | (let ((gcmd (format "%s <C> %s <R>" |
| @@ -669,17 +653,17 @@ This function is called from `compilation-filter-hook'." | |||
| 669 | ""))) | 653 | ""))) |
| 670 | (cond ((eq grep-find-use-xargs 'gnu) | 654 | (cond ((eq grep-find-use-xargs 'gnu) |
| 671 | (format "%s <D> <X> -type f <F> -print0 | \"%s\" -0 %s" | 655 | (format "%s <D> <X> -type f <F> -print0 | \"%s\" -0 %s" |
| 672 | grep-find-program grep-xargs-program gcmd)) | 656 | find-program xargs-program gcmd)) |
| 673 | ((eq grep-find-use-xargs 'exec) | 657 | ((eq grep-find-use-xargs 'exec) |
| 674 | (format "%s <D> <X> -type f <F> -exec %s {} %s%s" | 658 | (format "%s <D> <X> -type f <F> -exec %s {} %s%s" |
| 675 | grep-find-program gcmd null | 659 | find-program gcmd null |
| 676 | (shell-quote-argument ";"))) | 660 | (shell-quote-argument ";"))) |
| 677 | ((eq grep-find-use-xargs 'exec-plus) | 661 | ((eq grep-find-use-xargs 'exec-plus) |
| 678 | (format "%s <D> <X> -type f <F> -exec %s %s{} +" | 662 | (format "%s <D> <X> -type f <F> -exec %s %s{} +" |
| 679 | grep-find-program gcmd null)) | 663 | find-program gcmd null)) |
| 680 | (t | 664 | (t |
| 681 | (format "%s <D> <X> -type f <F> -print | \"%s\" %s" | 665 | (format "%s <D> <X> -type f <F> -print | \"%s\" %s" |
| 682 | grep-find-program grep-xargs-program gcmd)))))))) | 666 | find-program xargs-program gcmd)))))))) |
| 683 | 667 | ||
| 684 | ;; Save defaults for this host. | 668 | ;; Save defaults for this host. |
| 685 | (setq grep-host-defaults-alist | 669 | (setq grep-host-defaults-alist |
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 82059c91363..9c8a88c80fc 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 | |||
| 162 | DIRS is a list of absolute directories; it should be some | 162 | DIRS is a list of absolute directories; it should be some |
| 163 | subset of the project roots and external roots. | 163 | subset of the project roots and external roots. |
| 164 | 164 | ||
| 165 | The default implementation uses `grep-find-program'. PROJECT is used | 165 | The default implementation uses `find-program'. PROJECT is used |
| 166 | to find the list of ignores for each directory." | 166 | to find the list of ignores for each directory." |
| 167 | ;; FIXME: Uniquely abbreviate the roots? | 167 | ;; FIXME: Uniquely abbreviate the roots? |
| 168 | (require 'xref) | 168 | (require 'xref) |
| @@ -171,7 +171,7 @@ to find the list of ignores for each directory." | |||
| 171 | (lambda (dir) | 171 | (lambda (dir) |
| 172 | (let ((command | 172 | (let ((command |
| 173 | (format "%s %s %s -type f -print0" | 173 | (format "%s %s %s -type f -print0" |
| 174 | grep-find-program | 174 | find-program |
| 175 | dir | 175 | dir |
| 176 | (xref--find-ignores-arguments | 176 | (xref--find-ignores-arguments |
| 177 | (project-ignores project dir) | 177 | (project-ignores project dir) |
diff --git a/lisp/tmm.el b/lisp/tmm.el index 714de9230e7..d1a08ab2623 100644 --- a/lisp/tmm.el +++ b/lisp/tmm.el | |||
| @@ -72,13 +72,15 @@ to invoke `tmm-menubar' instead, customize the variable | |||
| 72 | (tmm-get-keybind [menu-bar])) | 72 | (tmm-get-keybind [menu-bar])) |
| 73 | (setq menu-bar `(keymap ,@(nreverse menu-bar) ,@(nreverse menu-end))) | 73 | (setq menu-bar `(keymap ,@(nreverse menu-bar) ,@(nreverse menu-end))) |
| 74 | (if x-position | 74 | (if x-position |
| 75 | (let ((column 0)) | 75 | (let ((column 0) |
| 76 | prev-key) | ||
| 76 | (catch 'done | 77 | (catch 'done |
| 77 | (map-keymap | 78 | (map-keymap |
| 78 | (lambda (key binding) | 79 | (lambda (key binding) |
| 79 | (when (> column x-position) | 80 | (when (> column x-position) |
| 80 | (setq menu-bar-item key) | 81 | (setq menu-bar-item prev-key) |
| 81 | (throw 'done nil)) | 82 | (throw 'done nil)) |
| 83 | (setq prev-key key) | ||
| 82 | (pcase binding | 84 | (pcase binding |
| 83 | ((or `(,(and (pred stringp) name) . ,_) ;Simple menu item. | 85 | ((or `(,(and (pred stringp) name) . ,_) ;Simple menu item. |
| 84 | `(menu-item ,name ,_cmd ;Extended menu item. | 86 | `(menu-item ,name ,_cmd ;Extended menu item. |
| @@ -187,7 +189,6 @@ Its value should be an event that has a binding in MENU." | |||
| 187 | ((vectorp elt) | 189 | ((vectorp elt) |
| 188 | (dotimes (i (length elt)) | 190 | (dotimes (i (length elt)) |
| 189 | (tmm-get-keymap (cons i (aref elt i)) not-menu)))))) | 191 | (tmm-get-keymap (cons i (aref elt i)) not-menu)))))) |
| 190 | (setq tmm-km-list (nreverse tmm-km-list)) | ||
| 191 | ;; Choose an element of tmm-km-list; put it in choice. | 192 | ;; Choose an element of tmm-km-list; put it in choice. |
| 192 | (if (and not-menu (= 1 (length tmm-km-list))) | 193 | (if (and not-menu (= 1 (length tmm-km-list))) |
| 193 | ;; If this is the top-level of an x-popup-menu menu, | 194 | ;; 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." | |||
| 239 | (if default-item | 240 | (if default-item |
| 240 | (car (nth index-of-default tmm-km-list)) | 241 | (car (nth index-of-default tmm-km-list)) |
| 241 | (minibuffer-with-setup-hook #'tmm-add-prompt | 242 | (minibuffer-with-setup-hook #'tmm-add-prompt |
| 243 | ;; tmm-km-list is reversed, because history | ||
| 244 | ;; needs it in LIFO order. But completion | ||
| 245 | ;; needs it in non-reverse order, so that the | ||
| 246 | ;; menu items are displayed as completion | ||
| 247 | ;; candidates in the order they are shown on | ||
| 248 | ;; the menu bar. So pass completing-read the | ||
| 249 | ;; reversed copy of the list. | ||
| 242 | (completing-read | 250 | (completing-read |
| 243 | (concat gl-str | 251 | (concat gl-str |
| 244 | " (up/down to change, PgUp to menu): ") | 252 | " (up/down to change, PgUp to menu): ") |
| 245 | (tmm--completion-table tmm-km-list) nil t nil | 253 | (tmm--completion-table (reverse tmm-km-list)) nil t nil |
| 246 | (cons 'tmm--history | 254 | (cons 'tmm--history |
| 247 | (- (* 2 history-len) index-of-default)))))))) | 255 | (- (* 2 history-len) index-of-default)))))))) |
| 248 | (setq choice (cdr (assoc out tmm-km-list))) | 256 | (setq choice (cdr (assoc out tmm-km-list))) |
diff --git a/lisp/vc/log-view.el b/lisp/vc/log-view.el index 34ffb3c93b5..63d50033eec 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." | |||
| 542 | (setq en (point)) | 542 | (setq en (point)) |
| 543 | (or (log-view-current-entry nil t) | 543 | (or (log-view-current-entry nil t) |
| 544 | (throw 'beginning-of-buffer nil)) | 544 | (throw 'beginning-of-buffer nil)) |
| 545 | (cond ((memq backend '(SCCS RCS CVS MCVS SVN)) | 545 | (cond ((memq backend '(SCCS RCS CVS SVN)) |
| 546 | (forward-line 2)) | 546 | (forward-line 2)) |
| 547 | ((eq backend 'Hg) | 547 | ((eq backend 'Hg) |
| 548 | (forward-line 4) | 548 | (forward-line 4) |
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el index 0535565db28..4047bca046a 100644 --- a/lisp/vc/vc-hooks.el +++ b/lisp/vc/vc-hooks.el | |||
| @@ -122,7 +122,7 @@ An empty list disables VC altogether." | |||
| 122 | :group 'vc) | 122 | :group 'vc) |
| 123 | 123 | ||
| 124 | ;; Note: we don't actually have a darcs back end yet. | 124 | ;; Note: we don't actually have a darcs back end yet. |
| 125 | ;; Also, Meta-CVS (corresponding to MCVS) and Arch are unsupported. | 125 | ;; Also, Arch is unsupported, and the Meta-CVS back end has been removed. |
| 126 | ;; The Arch back end will be retrieved and fixed if it is ever required. | 126 | ;; The Arch back end will be retrieved and fixed if it is ever required. |
| 127 | (defcustom vc-directory-exclusion-list (purecopy '("SCCS" "RCS" "CVS" "MCVS" | 127 | (defcustom vc-directory-exclusion-list (purecopy '("SCCS" "RCS" "CVS" "MCVS" |
| 128 | ".src" ".svn" ".git" ".hg" ".bzr" | 128 | ".src" ".svn" ".git" ".hg" ".bzr" |
diff --git a/src/w32fns.c b/src/w32fns.c index 111f1fb6562..ede8f6be292 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, | |||
| 3540 | SHORT r = VkKeyScanW (*b), bitmap = 0x1FF; | 3540 | SHORT r = VkKeyScanW (*b), bitmap = 0x1FF; |
| 3541 | 3541 | ||
| 3542 | FPRINTF_WM_CHARS((stderr, "VkKeyScanW %#06x %#04x\n", (int)r, | 3542 | FPRINTF_WM_CHARS((stderr, "VkKeyScanW %#06x %#04x\n", (int)r, |
| 3543 | wParam)); | 3543 | wParam)); |
| 3544 | if ((r & 0xFF) == wParam) | 3544 | if ((r & 0xFF) == wParam) |
| 3545 | bitmap = r>>8; /* *b is reachable via simple interface */ | 3545 | bitmap = r>>8; /* *b is reachable via simple interface */ |
| 3546 | else | ||
| 3547 | { | ||
| 3548 | /* VkKeyScanW() (essentially) returns the FIRST key with | ||
| 3549 | the specified character; so here the pressed key is the | ||
| 3550 | SECONDARY key producing the character. | ||
| 3551 | |||
| 3552 | Essentially, we have no information about the "role" of | ||
| 3553 | modifiers on this key: which contribute into the | ||
| 3554 | produced character (so "are consumed"), and which are | ||
| 3555 | "extra" (must attache to bindable events). | ||
| 3556 | |||
| 3557 | The default above would consume ALL modifiers, so the | ||
| 3558 | character is reported "as is". However, on many layouts | ||
| 3559 | the ordering of the keys (in the layout table) is not | ||
| 3560 | thought out well, so the "secondary" keys are often those | ||
| 3561 | which the users would prefer to use with Alt-CHAR. | ||
| 3562 | (Moreover - with e.g. Czech-QWERTY - the ASCII | ||
| 3563 | punctuation is accessible from two equally [nu]preferable | ||
| 3564 | AltGr-keys.) | ||
| 3565 | |||
| 3566 | SO: Heuristic: if the reported char is ASCII, AND Meta | ||
| 3567 | modifier is a candidate, behave as if Meta is present | ||
| 3568 | (fallback to the legacy branch; bug#23251). | ||
| 3569 | |||
| 3570 | (This would break layouts | ||
| 3571 | - delivering ASCII characters | ||
| 3572 | - on SECONDARY keys | ||
| 3573 | - with not Shift/AltGr-like modifier combinations. | ||
| 3574 | All 3 conditions together must be pretty exotic | ||
| 3575 | cases - and a workaround exists: use "primary" keys!) */ | ||
| 3576 | if (*b < 0x80 | ||
| 3577 | && (wmsg.dwModifiers | ||
| 3578 | & (alt_modifier | meta_modifier | ||
| 3579 | | super_modifier | hyper_modifier))) | ||
| 3580 | return 0; | ||
| 3581 | } | ||
| 3546 | if (*type_CtrlAlt == 'a') /* Simple Alt seen */ | 3582 | if (*type_CtrlAlt == 'a') /* Simple Alt seen */ |
| 3547 | { | 3583 | { |
| 3548 | if ((bitmap & ~1) == 0) /* 1: KBDSHIFT */ | 3584 | if ((bitmap & ~1) == 0) /* 1: KBDSHIFT */ |
diff --git a/src/w32term.c b/src/w32term.c index 8955ce26b4b..74ea6b543bd 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -6245,6 +6245,8 @@ x_set_window_size (struct frame *f, bool change_gravity, | |||
| 6245 | } | 6245 | } |
| 6246 | 6246 | ||
| 6247 | unblock_input (); | 6247 | unblock_input (); |
| 6248 | |||
| 6249 | do_pending_window_change (false); | ||
| 6248 | } | 6250 | } |
| 6249 | 6251 | ||
| 6250 | /* Mouse warping. */ | 6252 | /* Mouse warping. */ |
diff --git a/src/xterm.c b/src/xterm.c index 7108207f257..28856cfe192 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -10742,6 +10742,8 @@ x_set_window_size (struct frame *f, bool change_gravity, | |||
| 10742 | cancel_mouse_face (f); | 10742 | cancel_mouse_face (f); |
| 10743 | 10743 | ||
| 10744 | unblock_input (); | 10744 | unblock_input (); |
| 10745 | |||
| 10746 | do_pending_window_change (false); | ||
| 10745 | } | 10747 | } |
| 10746 | 10748 | ||
| 10747 | /* Move the mouse to position pixel PIX_X, PIX_Y relative to frame F. */ | 10749 | /* Move the mouse to position pixel PIX_X, PIX_Y relative to frame F. */ |