diff options
| author | Glenn Morris | 2020-01-15 07:50:22 -0800 |
|---|---|---|
| committer | Glenn Morris | 2020-01-15 07:50:22 -0800 |
| commit | d672ad60e34b4e1dcb28f91d15f1e286acf2f94f (patch) | |
| tree | 5d17911717db0469bed838cbda7c0adf9638e31b | |
| parent | e31287e704a539ebef777d92e4d06d4b1d912b2a (diff) | |
| parent | 0e936f18f8738fbe3809784f5ec6feb27c6bb24e (diff) | |
| download | emacs-d672ad60e34b4e1dcb28f91d15f1e286acf2f94f.tar.gz emacs-d672ad60e34b4e1dcb28f91d15f1e286acf2f94f.zip | |
Merge from origin/emacs-27
0e936f18f8 (origin/emacs-27) Fix build failure with --with-cairo --wi...
c34f7e884b Add new node "Package Statuses" to manual
fdee034ac8 * lisp/isearch.el: Fix corner cases of isearch-lazy-count.
7b14329d86 ; * lisp/simple.el (messages-buffer): Doc fix. (Bug#39124)
7ec66a59e3 Document spacing issues with Xft for some fonts
08cd247fbd ; * etc/NEWS: Fix typo.
d645628e3c Always use lexical-binding in lisp-interaction-mode (bug#3...
c42198f78c ; *etc/NEWS: Fix typo.
0ed9cfa7dc vc-dir: ensure we don't use a pager with git
37e0d00c14 Improve ERC's matching of nicks and URLs (bug#38257)
d47b157969 Handle tab-bar clicks on a GPM-capable console.
e4791f3f8e ;* etc/TODO: Update.
# Conflicts:
# etc/NEWS
| -rw-r--r-- | doc/emacs/emacs.texi | 1 | ||||
| -rw-r--r-- | doc/emacs/package.texi | 76 | ||||
| -rw-r--r-- | doc/lispref/variables.texi | 3 | ||||
| -rw-r--r-- | etc/NEWS.27 | 21 | ||||
| -rw-r--r-- | etc/PROBLEMS | 12 | ||||
| -rw-r--r-- | etc/TODO | 43 | ||||
| -rw-r--r-- | lisp/erc/erc-button.el | 11 | ||||
| -rw-r--r-- | lisp/erc/erc-match.el | 3 | ||||
| -rw-r--r-- | lisp/isearch.el | 7 | ||||
| -rw-r--r-- | lisp/progmodes/elisp-mode.el | 3 | ||||
| -rw-r--r-- | lisp/simple.el | 2 | ||||
| -rw-r--r-- | lisp/startup.el | 4 | ||||
| -rw-r--r-- | lisp/tab-line.el | 4 | ||||
| -rw-r--r-- | lisp/vc/vc-git.el | 3 | ||||
| -rw-r--r-- | src/image.c | 8 | ||||
| -rw-r--r-- | src/term.c | 8 | ||||
| -rw-r--r-- | src/xdisp.c | 4 |
17 files changed, 137 insertions, 76 deletions
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index 0400ed0b736..c3cb37e6a6d 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi | |||
| @@ -1099,6 +1099,7 @@ Hyperlinking and Navigation Features | |||
| 1099 | Emacs Lisp Packages | 1099 | Emacs Lisp Packages |
| 1100 | 1100 | ||
| 1101 | * Package Menu:: Buffer for viewing and managing packages. | 1101 | * Package Menu:: Buffer for viewing and managing packages. |
| 1102 | * Package Statuses:: Which statuses a package can have. | ||
| 1102 | * Package Installation:: Options for package installation. | 1103 | * Package Installation:: Options for package installation. |
| 1103 | * Package Files:: Where packages are installed. | 1104 | * Package Files:: Where packages are installed. |
| 1104 | 1105 | ||
diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi index cca602e7a05..1cac7f9b4b6 100644 --- a/doc/emacs/package.texi +++ b/doc/emacs/package.texi | |||
| @@ -32,6 +32,7 @@ Manual}. | |||
| 32 | 32 | ||
| 33 | @menu | 33 | @menu |
| 34 | * Package Menu:: Buffer for viewing and managing packages. | 34 | * Package Menu:: Buffer for viewing and managing packages. |
| 35 | * Package Statuses:: Which statuses a package can have. | ||
| 35 | * Package Installation:: Options for package installation. | 36 | * Package Installation:: Options for package installation. |
| 36 | * Package Files:: Where packages are installed. | 37 | * Package Files:: Where packages are installed. |
| 37 | @end menu | 38 | @end menu |
| @@ -57,19 +58,12 @@ The package's version number (e.g., @samp{11.86}). | |||
| 57 | The package's status---normally one of @samp{available} (can be | 58 | The package's status---normally one of @samp{available} (can be |
| 58 | downloaded from the package archive), @samp{installed}, | 59 | downloaded from the package archive), @samp{installed}, |
| 59 | @c @samp{unsigned} (installed, but not signed; @pxref{Package Signing}), | 60 | @c @samp{unsigned} (installed, but not signed; @pxref{Package Signing}), |
| 60 | or @samp{built-in} (included in Emacs by default). The status | 61 | or @samp{built-in} (included in Emacs by default). |
| 61 | @samp{external} means the package is not built-in and not from the | 62 | @xref{Package Statuses}. |
| 62 | directory specified by @code{package-user-dir} (@pxref{Package | 63 | |
| 63 | Files}). External packages are treated much like built-in: they | 64 | @item |
| 64 | cannot be deleted through the package menu, and are not considered for | 65 | Which package archive this package is from, if you have more than one |
| 65 | upgrading. | 66 | package archive enabled. |
| 66 | |||
| 67 | The status can also be @samp{new}. This is equivalent to | ||
| 68 | @samp{available}, except that it means the package became newly | ||
| 69 | available on the package archive after your last invocation of | ||
| 70 | @kbd{M-x list-packages}. In other instances, a package may have the | ||
| 71 | status @samp{held}, @samp{disabled}, or @samp{obsolete}. | ||
| 72 | @xref{Package Installation}. | ||
| 73 | 67 | ||
| 74 | @item | 68 | @item |
| 75 | A short description of the package. | 69 | A short description of the package. |
| @@ -139,7 +133,7 @@ current line by an @kbd{i} or @kbd{d} command | |||
| 139 | Mark all package with a newer available version for upgrading | 133 | Mark all package with a newer available version for upgrading |
| 140 | (@code{package-menu-mark-upgrades}). This places an installation mark | 134 | (@code{package-menu-mark-upgrades}). This places an installation mark |
| 141 | on the new available versions, and a deletion mark on the old | 135 | on the new available versions, and a deletion mark on the old |
| 142 | installed versions. | 136 | installed versions (marked with status @samp{obsolete}). |
| 143 | 137 | ||
| 144 | @item x | 138 | @item x |
| 145 | @kindex x @r{(Package Menu)} | 139 | @kindex x @r{(Package Menu)} |
| @@ -195,6 +189,60 @@ from lower-priority archives (@code{package-menu-toggle-hiding}). | |||
| 195 | For example, you can install a package by typing @kbd{i} on the line | 189 | For example, you can install a package by typing @kbd{i} on the line |
| 196 | listing that package, followed by @kbd{x}. | 190 | listing that package, followed by @kbd{x}. |
| 197 | 191 | ||
| 192 | @node Package Statuses | ||
| 193 | @section Package Statuses | ||
| 194 | @cindex package status | ||
| 195 | |||
| 196 | A package can have one of the following statuses: | ||
| 197 | |||
| 198 | @table @samp | ||
| 199 | @item available | ||
| 200 | The package is not installed, but can be downloaded and installed from | ||
| 201 | the package archive. | ||
| 202 | |||
| 203 | @item avail-obso | ||
| 204 | The package is available for installation, but a newer version is also | ||
| 205 | available. Packages with this status are hidden by default. | ||
| 206 | |||
| 207 | @item built-in | ||
| 208 | The package is included in Emacs by default. It cannot be deleted | ||
| 209 | through the package menu, and is not considered for upgrading. | ||
| 210 | |||
| 211 | @item dependency | ||
| 212 | The package was installed automatically to satisfy a dependency of | ||
| 213 | another package. | ||
| 214 | |||
| 215 | @item disabled | ||
| 216 | The package has been disabled using the @code{package-load-list} | ||
| 217 | variable. | ||
| 218 | |||
| 219 | @item external | ||
| 220 | The package is not built-in and not from the directory specified by | ||
| 221 | @code{package-user-dir} (@pxref{Package Files}). External packages | ||
| 222 | are treated much like @samp{built-in} packages and cannot be deleted. | ||
| 223 | |||
| 224 | @item held | ||
| 225 | The package is held, @xref{Package Installation}. | ||
| 226 | |||
| 227 | @item incompat | ||
| 228 | The package cannot be installed for some reason, for example because | ||
| 229 | it depends on uninstallable packages. | ||
| 230 | |||
| 231 | @item installed | ||
| 232 | The package is installed. | ||
| 233 | |||
| 234 | @item new | ||
| 235 | Equivalent to @samp{available}, except that the package became newly | ||
| 236 | available on the package archive after your last invocation of | ||
| 237 | @kbd{M-x list-packages}. | ||
| 238 | |||
| 239 | @item obsolete | ||
| 240 | The package is an outdated installed version; in addition to this | ||
| 241 | version of the package, a newer version is also installed. | ||
| 242 | |||
| 243 | @c @samp{unsigned} (installed, but not signed; @pxref{Package Signing}), | ||
| 244 | @end table | ||
| 245 | |||
| 198 | @node Package Installation | 246 | @node Package Installation |
| 199 | @section Package Installation | 247 | @section Package Installation |
| 200 | 248 | ||
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index 1ec97e2f3de..1e357754abe 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi | |||
| @@ -1187,6 +1187,9 @@ When evaluating Emacs Lisp code directly using an @code{eval} call, | |||
| 1187 | lexical binding is enabled if the @var{lexical} argument to | 1187 | lexical binding is enabled if the @var{lexical} argument to |
| 1188 | @code{eval} is non-@code{nil}. @xref{Eval}. | 1188 | @code{eval} is non-@code{nil}. @xref{Eval}. |
| 1189 | 1189 | ||
| 1190 | Lexical binding is also enabled in Lisp Interaction and IELM | ||
| 1191 | mode, used in the @file{*scratch*} and @file{*ielm*} buffers. | ||
| 1192 | |||
| 1190 | @cindex special variables | 1193 | @cindex special variables |
| 1191 | Even when lexical binding is enabled, certain variables will | 1194 | Even when lexical binding is enabled, certain variables will |
| 1192 | continue to be dynamically bound. These are called @dfn{special | 1195 | continue to be dynamically bound. These are called @dfn{special |
diff --git a/etc/NEWS.27 b/etc/NEWS.27 index 43805bb0ac6..cea5d500c7c 100644 --- a/etc/NEWS.27 +++ b/etc/NEWS.27 | |||
| @@ -337,8 +337,9 @@ answers, but also function keys like 'F1', character events such as | |||
| 337 | 'C-M-h', and control characters like 'C-h'. | 337 | 'C-M-h', and control characters like 'C-h'. |
| 338 | 338 | ||
| 339 | ** Lexical binding is now used when evaluating interactive Elisp forms. | 339 | ** Lexical binding is now used when evaluating interactive Elisp forms. |
| 340 | More specifically, lexical-binding is now used for 'M-:', '--eval', as | 340 | More specifically, 'lexical-binding' is now used for 'M-:', '--eval', |
| 341 | well as in the "*scratch*" and "*ielm*" buffers. | 341 | as well as in 'lisp-interaction-mode' and 'ielm-mode', used in the |
| 342 | "*scratch*" and "*ielm*" buffers. | ||
| 342 | 343 | ||
| 343 | --- | 344 | --- |
| 344 | ** The new user option 'tooltip-resize-echo-area' avoids truncating | 345 | ** The new user option 'tooltip-resize-echo-area' avoids truncating |
| @@ -781,8 +782,8 @@ cases that have plagued it for years, and on the other experiments indicated | |||
| 781 | that it doesn't bring any measurable benefit. | 782 | that it doesn't bring any measurable benefit. |
| 782 | 783 | ||
| 783 | --- | 784 | --- |
| 784 | *** The 'g' keystroke in *Compile-Log* buffers has been bound to a new | 785 | *** The 'g' keystroke in "*Compile-Log*" buffers has been bound to a |
| 785 | command that will recompile the file previously compiled with 'M-x | 786 | new command that will recompile the file previously compiled with 'M-x |
| 786 | byte-compile-file' and the like. | 787 | byte-compile-file' and the like. |
| 787 | 788 | ||
| 788 | ** compile.el | 789 | ** compile.el |
| @@ -1569,6 +1570,18 @@ and its value has been changed to Duck Duck Go. | |||
| 1569 | The user option to use instead to alter text to be sent is now | 1570 | The user option to use instead to alter text to be sent is now |
| 1570 | 'erc-pre-send-functions'. | 1571 | 'erc-pre-send-functions'. |
| 1571 | 1572 | ||
| 1573 | --- | ||
| 1574 | *** Improve matching/highlighting of nicknames. | ||
| 1575 | Open and close parenthesis and apostrophe are not considered valid | ||
| 1576 | nick characters anymore, matching the given grammar in RFC 2812 | ||
| 1577 | section 2.3.1. This enables correct matching and highlighting of | ||
| 1578 | nicks when they are surrounded by parentheses, like "(nick)", and when | ||
| 1579 | adjacent to an apostrophe, like "nick's". | ||
| 1580 | |||
| 1581 | --- | ||
| 1582 | *** Set 'erc-button-url-regexp' to 'browse-url-button-regexp' | ||
| 1583 | which better handles surrounding pair of parentheses. | ||
| 1584 | |||
| 1572 | ** EUDC | 1585 | ** EUDC |
| 1573 | 1586 | ||
| 1574 | --- | 1587 | --- |
diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 5067b53817b..9e4a631c729 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS | |||
| @@ -728,6 +728,18 @@ and ps-mule to print Unicode characters. | |||
| 728 | 728 | ||
| 729 | You may have bad fonts. | 729 | You may have bad fonts. |
| 730 | 730 | ||
| 731 | ** Under X, some characters are unexpectedly wide. | ||
| 732 | |||
| 733 | e.g. recent versions of Inconsolata show this issue for almost all of | ||
| 734 | its characters. Due to what is probably an Xft bug, the determination | ||
| 735 | of the width of some characters is incorrect. One workaround is to | ||
| 736 | build emacs with Cairo enabled ("configure --with-cairo" and have the | ||
| 737 | appropriate Cairo development packages installed) as this | ||
| 738 | configuration does not suffer from this problem. See | ||
| 739 | <https://github.com/googlefonts/Inconsolata/issues/42> and | ||
| 740 | <https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-01/msg00456.html> | ||
| 741 | for more discussion. | ||
| 742 | |||
| 731 | ** Under X, an unexpected monospace font is used as the default font. | 743 | ** Under X, an unexpected monospace font is used as the default font. |
| 732 | 744 | ||
| 733 | When compiled with XFT, Emacs tries to use a default font named | 745 | When compiled with XFT, Emacs tries to use a default font named |
| @@ -384,6 +384,12 @@ specified filters, specified timers, and specified hooks. | |||
| 384 | 384 | ||
| 385 | ** Install mmc@maruska.dyndns.org's no-flicker change. | 385 | ** Install mmc@maruska.dyndns.org's no-flicker change. |
| 386 | 386 | ||
| 387 | https://lists.gnu.org/archive/html/emacs-devel/2005-12/msg00699.html | ||
| 388 | |||
| 389 | I don't know if this is still relevant. I can't reach the URLs in | ||
| 390 | the above message thread and double-buffering may have solved some | ||
| 391 | of the problems. | ||
| 392 | |||
| 387 | ** Add a "current vertical pixel level" value that goes with point, | 393 | ** Add a "current vertical pixel level" value that goes with point, |
| 388 | so that motion commands can also move through tall images. | 394 | so that motion commands can also move through tall images. |
| 389 | This value would be to point as window-vscroll is to window-start. | 395 | This value would be to point as window-vscroll is to window-start. |
| @@ -537,11 +543,6 @@ from the emacsclient process. | |||
| 537 | ** Provide an optional feature which computes a scroll bar slider's | 543 | ** Provide an optional feature which computes a scroll bar slider's |
| 538 | size and its position from lines instead of characters. | 544 | size and its position from lines instead of characters. |
| 539 | 545 | ||
| 540 | ** Allow unknown image types to be rendered via an external program | ||
| 541 | converting them to, say, PBM (in the same way as PostScript?). [does | ||
| 542 | doc-view.el do this, or could it be extended to do this? | ||
| 543 | Does ImageMagick obsolete this idea?] | ||
| 544 | |||
| 545 | ** Allow displaying an X window from an external program in a buffer, | 546 | ** Allow displaying an X window from an external program in a buffer, |
| 546 | e.g. to render graphics from Java applets. [gerd and/or wmperry | 547 | e.g. to render graphics from Java applets. [gerd and/or wmperry |
| 547 | thought this was feasible.] | 548 | thought this was feasible.] |
| @@ -555,6 +556,8 @@ from the emacsclient process. | |||
| 555 | 556 | ||
| 556 | ** Use the XIE X extension, if available, for image display. | 557 | ** Use the XIE X extension, if available, for image display. |
| 557 | 558 | ||
| 559 | (Obsolete as XIE is now considered obsolete itself.) | ||
| 560 | |||
| 558 | ** Make monochrome images display using the foreground and background | 561 | ** Make monochrome images display using the foreground and background |
| 559 | colors of the applicable faces. | 562 | colors of the applicable faces. |
| 560 | 563 | ||
| @@ -679,6 +682,10 @@ simple buttons to webkit (effectively, a web browser). | |||
| 679 | Currently, xwidgets works only for the gtk+ framework but it is | 682 | Currently, xwidgets works only for the gtk+ framework but it is |
| 680 | designed to be compatible with multiple Emacs ports. | 683 | designed to be compatible with multiple Emacs ports. |
| 681 | 684 | ||
| 685 | (See the scratch/nsxwidget branch, and the discussion around | ||
| 686 | Objective-C code and GCC at | ||
| 687 | https://lists.gnu.org/archive/html/emacs-devel/2019-08/msg00072.html) | ||
| 688 | |||
| 682 | **** Respect 'frame-inhibit-implied-resize' | 689 | **** Respect 'frame-inhibit-implied-resize' |
| 683 | 690 | ||
| 684 | When the variable 'frame-inhibit-implied-resize' is non-nil, frames | 691 | When the variable 'frame-inhibit-implied-resize' is non-nil, frames |
| @@ -855,32 +862,6 @@ all build versions. | |||
| 855 | 862 | ||
| 856 | *** Bugs | 863 | *** Bugs |
| 857 | 864 | ||
| 858 | **** Incorrect translation of Super modifier with Ctrl or Meta on macOS | ||
| 859 | |||
| 860 | When pressing 'M-s-a', Emacs replies "M-s-Ã¥ is undefined". What | ||
| 861 | happened is a mix of Emacs view that Meta and Super has been pressed, | ||
| 862 | and macOS view that ALT-a should yield "Ã¥" (U+00E5 LATIN SMALL LETTER | ||
| 863 | A WITH RING ABOVE). | ||
| 864 | |||
| 865 | The bug reports suggest two different patches; unfortunately, neither | ||
| 866 | works properly. For example: | ||
| 867 | |||
| 868 | Use a Swedish keyboard layout | ||
| 869 | |||
| 870 | (setq ns-alternate-modifier nil) | ||
| 871 | |||
| 872 | "CMD-ALT-9" | ||
| 873 | |||
| 874 | Today, this correctly yields that s-] is undefined. With either | ||
| 875 | of the two patches, Emacs responds that s-9 was pressed. | ||
| 876 | |||
| 877 | More investigation is needed to fix this problem. | ||
| 878 | |||
| 879 | Links: | ||
| 880 | - https://debbugs.gnu.org/19977 | ||
| 881 | - https://debbugs.gnu.org/21330 | ||
| 882 | - https://debbugs.gnu.org/21551 | ||
| 883 | |||
| 884 | **** Toggling the toolbar in fullheight or maximized modes | 865 | **** Toggling the toolbar in fullheight or maximized modes |
| 885 | 866 | ||
| 886 | The toolbar, in the NS interface, is not considered part of the text | 867 | The toolbar, in the NS interface, is not considered part of the text |
diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el index 6e30b3a7935..e4f5a190913 100644 --- a/lisp/erc/erc-button.el +++ b/lisp/erc/erc-button.el | |||
| @@ -41,6 +41,7 @@ | |||
| 41 | (require 'erc) | 41 | (require 'erc) |
| 42 | (require 'wid-edit) | 42 | (require 'wid-edit) |
| 43 | (require 'erc-fill) | 43 | (require 'erc-fill) |
| 44 | (require 'browse-url) | ||
| 44 | 45 | ||
| 45 | ;;; Minor Mode | 46 | ;;; Minor Mode |
| 46 | 47 | ||
| @@ -87,12 +88,9 @@ above them." | |||
| 87 | :type 'face | 88 | :type 'face |
| 88 | :group 'erc-faces) | 89 | :group 'erc-faces) |
| 89 | 90 | ||
| 90 | (defcustom erc-button-url-regexp | 91 | (defcustom erc-button-url-regexp browse-url-button-regexp |
| 91 | (concat "\\(www\\.\\|\\(s?https?\\|" | ||
| 92 | "ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\|mailto\\):\\)" | ||
| 93 | "\\(//[-a-zA-Z0-9_.]+:[0-9]*\\)?" | ||
| 94 | "[-a-zA-Z0-9_=!?#$@~`%&*+\\/:;.,()]+[-a-zA-Z0-9_=#$@~`%&*+\\/()]") | ||
| 95 | "Regular expression that matches URLs." | 92 | "Regular expression that matches URLs." |
| 93 | :version "27.1" | ||
| 96 | :group 'erc-button | 94 | :group 'erc-button |
| 97 | :type 'regexp) | 95 | :type 'regexp) |
| 98 | 96 | ||
| @@ -223,14 +221,11 @@ PAR is a number of a regexp grouping whose text will be passed to | |||
| 223 | 221 | ||
| 224 | (defvar erc-button-syntax-table | 222 | (defvar erc-button-syntax-table |
| 225 | (let ((table (make-syntax-table))) | 223 | (let ((table (make-syntax-table))) |
| 226 | (modify-syntax-entry ?\( "w" table) | ||
| 227 | (modify-syntax-entry ?\) "w" table) | ||
| 228 | (modify-syntax-entry ?\[ "w" table) | 224 | (modify-syntax-entry ?\[ "w" table) |
| 229 | (modify-syntax-entry ?\] "w" table) | 225 | (modify-syntax-entry ?\] "w" table) |
| 230 | (modify-syntax-entry ?\{ "w" table) | 226 | (modify-syntax-entry ?\{ "w" table) |
| 231 | (modify-syntax-entry ?\} "w" table) | 227 | (modify-syntax-entry ?\} "w" table) |
| 232 | (modify-syntax-entry ?` "w" table) | 228 | (modify-syntax-entry ?` "w" table) |
| 233 | (modify-syntax-entry ?' "w" table) | ||
| 234 | (modify-syntax-entry ?^ "w" table) | 229 | (modify-syntax-entry ?^ "w" table) |
| 235 | (modify-syntax-entry ?- "w" table) | 230 | (modify-syntax-entry ?- "w" table) |
| 236 | (modify-syntax-entry ?_ "w" table) | 231 | (modify-syntax-entry ?_ "w" table) |
diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el index 7a824cce9f8..8b9ab331288 100644 --- a/lisp/erc/erc-match.el +++ b/lisp/erc/erc-match.el | |||
| @@ -246,14 +246,11 @@ and other miscellaneous functions." | |||
| 246 | ;; just put it in erc.el | 246 | ;; just put it in erc.el |
| 247 | (defvar erc-match-syntax-table | 247 | (defvar erc-match-syntax-table |
| 248 | (let ((table (make-syntax-table))) | 248 | (let ((table (make-syntax-table))) |
| 249 | (modify-syntax-entry ?\( "w" table) | ||
| 250 | (modify-syntax-entry ?\) "w" table) | ||
| 251 | (modify-syntax-entry ?\[ "w" table) | 249 | (modify-syntax-entry ?\[ "w" table) |
| 252 | (modify-syntax-entry ?\] "w" table) | 250 | (modify-syntax-entry ?\] "w" table) |
| 253 | (modify-syntax-entry ?\{ "w" table) | 251 | (modify-syntax-entry ?\{ "w" table) |
| 254 | (modify-syntax-entry ?\} "w" table) | 252 | (modify-syntax-entry ?\} "w" table) |
| 255 | (modify-syntax-entry ?` "w" table) | 253 | (modify-syntax-entry ?` "w" table) |
| 256 | (modify-syntax-entry ?' "w" table) | ||
| 257 | (modify-syntax-entry ?^ "w" table) | 254 | (modify-syntax-entry ?^ "w" table) |
| 258 | (modify-syntax-entry ?- "w" table) | 255 | (modify-syntax-entry ?- "w" table) |
| 259 | (modify-syntax-entry ?_ "w" table) | 256 | (modify-syntax-entry ?_ "w" table) |
diff --git a/lisp/isearch.el b/lisp/isearch.el index c9873937252..ddf9190dc6d 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -1225,6 +1225,9 @@ used to set the value of `isearch-regexp-function'." | |||
| 1225 | isearch-pre-scroll-point nil | 1225 | isearch-pre-scroll-point nil |
| 1226 | isearch-pre-move-point nil | 1226 | isearch-pre-move-point nil |
| 1227 | 1227 | ||
| 1228 | isearch-lazy-count-current nil | ||
| 1229 | isearch-lazy-count-total nil | ||
| 1230 | |||
| 1228 | ;; Save the original value of `minibuffer-message-timeout', and | 1231 | ;; Save the original value of `minibuffer-message-timeout', and |
| 1229 | ;; set it to nil so that isearch's messages don't get timed out. | 1232 | ;; set it to nil so that isearch's messages don't get timed out. |
| 1230 | isearch-original-minibuffer-message-timeout minibuffer-message-timeout | 1233 | isearch-original-minibuffer-message-timeout minibuffer-message-timeout |
| @@ -3776,7 +3779,7 @@ by other Emacs features." | |||
| 3776 | isearch-lazy-highlight-window-end)))))) | 3779 | isearch-lazy-highlight-window-end)))))) |
| 3777 | ;; something important did indeed change | 3780 | ;; something important did indeed change |
| 3778 | (lazy-highlight-cleanup t (not (equal isearch-string ""))) ;stop old timer | 3781 | (lazy-highlight-cleanup t (not (equal isearch-string ""))) ;stop old timer |
| 3779 | (when isearch-lazy-count | 3782 | (when (and isearch-lazy-count isearch-mode (null isearch-message-function)) |
| 3780 | (when (or (equal isearch-string "") | 3783 | (when (or (equal isearch-string "") |
| 3781 | ;; Check if this place was reached by a condition above | 3784 | ;; Check if this place was reached by a condition above |
| 3782 | ;; other than changed window boundaries (that shouldn't | 3785 | ;; other than changed window boundaries (that shouldn't |
| @@ -3794,7 +3797,7 @@ by other Emacs features." | |||
| 3794 | (clrhash isearch-lazy-count-hash) | 3797 | (clrhash isearch-lazy-count-hash) |
| 3795 | (setq isearch-lazy-count-current nil | 3798 | (setq isearch-lazy-count-current nil |
| 3796 | isearch-lazy-count-total nil) | 3799 | isearch-lazy-count-total nil) |
| 3797 | (funcall (or isearch-message-function #'isearch-message)))) | 3800 | (isearch-message))) |
| 3798 | (setq isearch-lazy-highlight-window-start-changed nil) | 3801 | (setq isearch-lazy-highlight-window-start-changed nil) |
| 3799 | (setq isearch-lazy-highlight-window-end-changed nil) | 3802 | (setq isearch-lazy-highlight-window-end-changed nil) |
| 3800 | (setq isearch-lazy-highlight-error isearch-error) | 3803 | (setq isearch-lazy-highlight-error isearch-error) |
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 774e3324c2e..2617a6e4cce 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el | |||
| @@ -933,7 +933,8 @@ Paragraphs are separated only by blank lines. | |||
| 933 | Semicolons start comments. | 933 | Semicolons start comments. |
| 934 | 934 | ||
| 935 | \\{lisp-interaction-mode-map}" | 935 | \\{lisp-interaction-mode-map}" |
| 936 | :abbrev-table nil) | 936 | :abbrev-table nil |
| 937 | (setq-local lexical-binding t)) | ||
| 937 | 938 | ||
| 938 | ;;; Emacs Lisp Byte-Code mode | 939 | ;;; Emacs Lisp Byte-Code mode |
| 939 | 940 | ||
diff --git a/lisp/simple.el b/lisp/simple.el index f9f1efcc98c..f28198cd81f 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -8953,7 +8953,7 @@ and setting it to nil." | |||
| 8953 | 8953 | ||
| 8954 | (defun messages-buffer () | 8954 | (defun messages-buffer () |
| 8955 | "Return the \"*Messages*\" buffer. | 8955 | "Return the \"*Messages*\" buffer. |
| 8956 | If it does not exist, create and it switch it to `messages-buffer-mode'." | 8956 | If it does not exist, create it and switch it to `messages-buffer-mode'." |
| 8957 | (or (get-buffer "*Messages*") | 8957 | (or (get-buffer "*Messages*") |
| 8958 | (with-current-buffer (get-buffer-create "*Messages*") | 8958 | (with-current-buffer (get-buffer-create "*Messages*") |
| 8959 | (messages-buffer-mode) | 8959 | (messages-buffer-mode) |
diff --git a/lisp/startup.el b/lisp/startup.el index c27af726f9c..2a85c004da1 100644 --- a/lisp/startup.el +++ b/lisp/startup.el | |||
| @@ -1435,8 +1435,7 @@ please check its value") | |||
| 1435 | (if (get-buffer "*scratch*") | 1435 | (if (get-buffer "*scratch*") |
| 1436 | (with-current-buffer "*scratch*" | 1436 | (with-current-buffer "*scratch*" |
| 1437 | (if (eq major-mode 'fundamental-mode) | 1437 | (if (eq major-mode 'fundamental-mode) |
| 1438 | (funcall initial-major-mode)) | 1438 | (funcall initial-major-mode)))) |
| 1439 | (setq-local lexical-binding t))) | ||
| 1440 | 1439 | ||
| 1441 | ;; Load library for our terminal type. | 1440 | ;; Load library for our terminal type. |
| 1442 | ;; User init file can set term-file-prefix to nil to prevent this. | 1441 | ;; User init file can set term-file-prefix to nil to prevent this. |
| @@ -2317,7 +2316,6 @@ A fancy display is used on graphic displays, normal otherwise." | |||
| 2317 | (or (get-buffer "*scratch*") | 2316 | (or (get-buffer "*scratch*") |
| 2318 | (with-current-buffer (get-buffer-create "*scratch*") | 2317 | (with-current-buffer (get-buffer-create "*scratch*") |
| 2319 | (set-buffer-major-mode (current-buffer)) | 2318 | (set-buffer-major-mode (current-buffer)) |
| 2320 | (setq-local lexical-binding t) | ||
| 2321 | (current-buffer)))) | 2319 | (current-buffer)))) |
| 2322 | 2320 | ||
| 2323 | (defun command-line-1 (args-left) | 2321 | (defun command-line-1 (args-left) |
diff --git a/lisp/tab-line.el b/lisp/tab-line.el index 8e561c71f5b..ef530d43dec 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el | |||
| @@ -81,9 +81,7 @@ | |||
| 81 | '((default | 81 | '((default |
| 82 | :inherit tab-line-tab) | 82 | :inherit tab-line-tab) |
| 83 | (((class color) (min-colors 88)) | 83 | (((class color) (min-colors 88)) |
| 84 | :background "grey85") | 84 | :background "grey85")) |
| 85 | (t | ||
| 86 | :inverse-video t)) | ||
| 87 | "Tab line face for tab with current buffer in selected window." | 85 | "Tab line face for tab with current buffer in selected window." |
| 88 | :version "27.1" | 86 | :version "27.1" |
| 89 | :group 'tab-line-faces) | 87 | :group 'tab-line-faces) |
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 37bc53b3850..2caa287bce2 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el | |||
| @@ -1785,13 +1785,12 @@ The difference to vc-do-command is that this function always invokes | |||
| 1785 | (process-environment | 1785 | (process-environment |
| 1786 | (append | 1786 | (append |
| 1787 | `("GIT_DIR" | 1787 | `("GIT_DIR" |
| 1788 | "PAGER=" | ||
| 1789 | ;; Avoid repository locking during background operations | 1788 | ;; Avoid repository locking during background operations |
| 1790 | ;; (bug#21559). | 1789 | ;; (bug#21559). |
| 1791 | ,@(when revert-buffer-in-progress-p | 1790 | ,@(when revert-buffer-in-progress-p |
| 1792 | '("GIT_OPTIONAL_LOCKS=0"))) | 1791 | '("GIT_OPTIONAL_LOCKS=0"))) |
| 1793 | process-environment))) | 1792 | process-environment))) |
| 1794 | (apply 'process-file vc-git-program nil buffer nil command args))) | 1793 | (apply 'process-file vc-git-program nil buffer nil "--no-pager" command args))) |
| 1795 | 1794 | ||
| 1796 | (defun vc-git--out-ok (command &rest args) | 1795 | (defun vc-git--out-ok (command &rest args) |
| 1797 | (zerop (apply 'vc-git--call '(t nil) command args))) | 1796 | (zerop (apply 'vc-git--call '(t nil) command args))) |
diff --git a/src/image.c b/src/image.c index d3fec37186c..65d59254f02 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -6235,7 +6235,7 @@ pbm_load (struct frame *f, struct image *img) | |||
| 6235 | PNG | 6235 | PNG |
| 6236 | ***********************************************************************/ | 6236 | ***********************************************************************/ |
| 6237 | 6237 | ||
| 6238 | #if defined (HAVE_PNG) || defined (HAVE_NS) || defined (USE_CAIRO) | 6238 | #if defined (HAVE_PNG) || defined (HAVE_NS) |
| 6239 | 6239 | ||
| 6240 | /* Indices of image specification fields in png_format, below. */ | 6240 | /* Indices of image specification fields in png_format, below. */ |
| 6241 | 6241 | ||
| @@ -6286,10 +6286,10 @@ png_image_p (Lisp_Object object) | |||
| 6286 | return fmt[PNG_FILE].count + fmt[PNG_DATA].count == 1; | 6286 | return fmt[PNG_FILE].count + fmt[PNG_DATA].count == 1; |
| 6287 | } | 6287 | } |
| 6288 | 6288 | ||
| 6289 | #endif /* HAVE_PNG || HAVE_NS || USE_CAIRO */ | 6289 | #endif /* HAVE_PNG || HAVE_NS */ |
| 6290 | 6290 | ||
| 6291 | 6291 | ||
| 6292 | #if (defined HAVE_PNG && !defined HAVE_NS) || defined USE_CAIRO | 6292 | #if defined HAVE_PNG && !defined HAVE_NS |
| 6293 | 6293 | ||
| 6294 | # ifdef WINDOWSNT | 6294 | # ifdef WINDOWSNT |
| 6295 | /* PNG library details. */ | 6295 | /* PNG library details. */ |
| @@ -10164,7 +10164,7 @@ static struct image_type const image_types[] = | |||
| 10164 | { SYMBOL_INDEX (Qsvg), svg_image_p, svg_load, image_clear_image, | 10164 | { SYMBOL_INDEX (Qsvg), svg_image_p, svg_load, image_clear_image, |
| 10165 | IMAGE_TYPE_INIT (init_svg_functions) }, | 10165 | IMAGE_TYPE_INIT (init_svg_functions) }, |
| 10166 | #endif | 10166 | #endif |
| 10167 | #if defined HAVE_PNG || defined HAVE_NS || defined USE_CAIRO | 10167 | #if defined HAVE_PNG || defined HAVE_NS |
| 10168 | { SYMBOL_INDEX (Qpng), png_image_p, png_load, image_clear_image, | 10168 | { SYMBOL_INDEX (Qpng), png_image_p, png_load, image_clear_image, |
| 10169 | IMAGE_TYPE_INIT (init_png_functions) }, | 10169 | IMAGE_TYPE_INIT (init_png_functions) }, |
| 10170 | #endif | 10170 | #endif |
diff --git a/src/term.c b/src/term.c index 871734318c0..a3aef31ec25 100644 --- a/src/term.c +++ b/src/term.c | |||
| @@ -2568,6 +2568,14 @@ handle_one_term_event (struct tty_display_info *tty, Gpm_Event *event, | |||
| 2568 | else { | 2568 | else { |
| 2569 | f->mouse_moved = 0; | 2569 | f->mouse_moved = 0; |
| 2570 | term_mouse_click (&ie, event, f); | 2570 | term_mouse_click (&ie, event, f); |
| 2571 | if (tty_handle_tab_bar_click (f, event->x, event->y, | ||
| 2572 | (ie.modifiers & down_modifier) != 0, &ie)) | ||
| 2573 | { | ||
| 2574 | /* tty_handle_tab_bar_click stores 2 events in the event | ||
| 2575 | queue, so we are done here. */ | ||
| 2576 | count += 2; | ||
| 2577 | return count; | ||
| 2578 | } | ||
| 2571 | } | 2579 | } |
| 2572 | 2580 | ||
| 2573 | done: | 2581 | done: |
diff --git a/src/xdisp.c b/src/xdisp.c index 53300928d7b..516013ce4ba 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -13516,6 +13516,10 @@ tty_handle_tab_bar_click (struct frame *f, int x, int y, bool down_p, | |||
| 13516 | f->last_tab_bar_item = prop_idx; | 13516 | f->last_tab_bar_item = prop_idx; |
| 13517 | else | 13517 | else |
| 13518 | { | 13518 | { |
| 13519 | /* Force reset of up_modifier bit from the event modifiers. */ | ||
| 13520 | if (event->modifiers & up_modifier) | ||
| 13521 | event->modifiers &= ~up_modifier; | ||
| 13522 | |||
| 13519 | /* Generate a TAB_BAR_EVENT event. */ | 13523 | /* Generate a TAB_BAR_EVENT event. */ |
| 13520 | Lisp_Object frame; | 13524 | Lisp_Object frame; |
| 13521 | Lisp_Object key = AREF (f->tab_bar_items, | 13525 | Lisp_Object key = AREF (f->tab_bar_items, |