Merge branch 'emacs-29'
This commit is contained in:
commit
e4c8ba6c05
20 changed files with 207 additions and 97 deletions
|
@ -515,9 +515,9 @@ one of them selects that alternative. The keys @kbd{C-f}, @kbd{C-b},
|
|||
do the highlighting in the buffer showing the possible characters,
|
||||
rather than in the echo area.
|
||||
|
||||
To enter characters according to the @dfn{pīnyīn} transliteration
|
||||
To enter characters according to the @dfn{p@=iny@=in} transliteration
|
||||
method instead, use the @code{chinese-sisheng} input method. This is
|
||||
a composition based method, where e.g. @kbd{pi1} results in @samp{pī}.
|
||||
a composition based method, where e.g. @kbd{pi1} results in @samp{p@=i}.
|
||||
|
||||
In Japanese input methods, first you input a whole word using
|
||||
phonetic spelling; then, after the word is in the buffer, Emacs
|
||||
|
|
|
@ -1653,9 +1653,9 @@ command's first argument. If @code{case-fold-search} is set to
|
|||
@code{nil}, case is always significant in all searches.
|
||||
|
||||
@vindex case-replace
|
||||
In addition, when the @var{newstring} argument is all or partly lower
|
||||
case, replacement commands try to preserve the case pattern of each
|
||||
occurrence. Thus, the command
|
||||
In addition, when the second argument of a replace command is all or
|
||||
partly lower case, replacement commands try to preserve the case
|
||||
pattern of each occurrence. Thus, the command
|
||||
|
||||
@example
|
||||
M-x replace-string @key{RET} foo @key{RET} bar @key{RET}
|
||||
|
|
|
@ -313,14 +313,36 @@ sed -n 's/.*\[\(.*\)]$/\1/p' @var{backtrace} |
|
|||
addr2line -C -f -i -p -e @var{bindir}/@var{emacs-binary}
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
On MS-Windows, the backtrace looks somewhat differently, for example:
|
||||
|
||||
@example
|
||||
Backtrace:
|
||||
00007ff61166a12e
|
||||
00007ff611538be1
|
||||
00007ff611559601
|
||||
00007ff6116ce84a
|
||||
00007ff9b7977ff0
|
||||
@dots{}
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
Therefore, the filtering via @command{sed} is not required, and the
|
||||
command to show the source-code line number is
|
||||
|
||||
@example
|
||||
addr2line -C -f -i -p -e @var{bindir}/@var{emacs-binary} < @var{backtrace}
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
Here, @var{backtrace} is the name of a text file containing a copy of
|
||||
the backtrace, @var{bindir} is the name of the directory that
|
||||
contains the Emacs executable, and @var{emacs-binary} is the name of
|
||||
the Emacs executable file, normally @file{emacs} on GNU and Unix
|
||||
systems and @file{emacs.exe} on MS-Windows and MS-DOS@. Omit the
|
||||
@option{-p} option if your version of @command{addr2line} is too old
|
||||
to have it.
|
||||
the backtrace (on MS-Windows, @file{emacs_backtrace.txt} in the
|
||||
directory where Emacs was started), @var{bindir} is the name of the
|
||||
directory that contains the Emacs executable, and @var{emacs-binary}
|
||||
is the name of the Emacs executable file, normally @file{emacs} on GNU
|
||||
and Unix systems and @file{emacs.exe} on MS-Windows and MS-DOS@. Omit
|
||||
the @option{-p} option if your version of @command{addr2line} is too
|
||||
old to have it.
|
||||
|
||||
@cindex core dump
|
||||
Optionally, Emacs can generate a @dfn{core dump} when it crashes, on
|
||||
|
|
|
@ -1484,7 +1484,7 @@ the symbol as a function, Emacs signals a @code{void-function} error.
|
|||
Note that void is not the same as @code{nil} or the symbol
|
||||
@code{void}. The symbols @code{nil} and @code{void} are Lisp objects,
|
||||
and can be stored into a function cell just as any other object can be
|
||||
(and they can be valid functions if you define them in turn with
|
||||
(and @code{void} can be a valid function if you define it with
|
||||
@code{defun}). A void function cell contains no object whatsoever.
|
||||
|
||||
You can test the voidness of a symbol's function definition with
|
||||
|
|
|
@ -2247,7 +2247,7 @@ Here is an example:
|
|||
|
||||
@smallexample
|
||||
@group
|
||||
(yes-or-no-p "Do you really want to remove everything?")
|
||||
(yes-or-no-p "Do you really want to remove everything? ")
|
||||
|
||||
;; @r{After evaluation of the preceding expression,}
|
||||
;; @r{the following prompt appears,}
|
||||
|
|
|
@ -99,12 +99,12 @@ been added to 'eglot-stay-out-of'.
|
|||
|
||||
* Changes in Eglot 1.12.29 (Eglot bundled with Emacs 29.1)
|
||||
|
||||
** Eglot can upgrade itself to the latest version.
|
||||
** Eglot has a new command to upgrade to the latest version.
|
||||
|
||||
The new command 'eglot-upgrade-eglot' works around behaviour in the
|
||||
existing 'package-install' command and the new 'package-upgrade'
|
||||
command which would prevent the user from easily grabbing the latest
|
||||
version as usual.
|
||||
The new command 'eglot-upgrade-eglot' allows easily grabbing the
|
||||
latest version of Eglot from ELPA. This might be more convenient than
|
||||
using the more general command 'package-install', which by default
|
||||
will not upgrade "built-in" packages, those that come with Emacs.
|
||||
|
||||
|
||||
* Changes in Eglot 1.12 (13/03/2023)
|
||||
|
@ -253,12 +253,12 @@ may be disabled via 'eglot-ignored-server-capabilities'
|
|||
** Basic LSP "workspace folders" support added.
|
||||
Eglot now advertises 'project-root' and 'project-external-roots' as
|
||||
workspace-folders. (Configuring 'project-vc-external-roots-function'
|
||||
via Elisp or 'tags-table-list' via Custtomize are two ways to set the
|
||||
via Elisp or 'tags-table-list' via Customize are two ways to set the
|
||||
external roots of a simple git project.)
|
||||
|
||||
(github#893)
|
||||
|
||||
** Eglot can now show project wide diagnosics via Flymake.
|
||||
** Eglot can now show project wide diagnostics via Flymake.
|
||||
Some LSP servers report diagnostics for all files in the current
|
||||
workspace. Flymake has (as of version 1.2.1) the option to show
|
||||
diagnostics from buffers other than the currently visited one. The
|
||||
|
@ -476,7 +476,7 @@ these two domains.
|
|||
|
||||
* Changes in Eglot 1.3 (10/12/2018)
|
||||
|
||||
** Provide strict checking of incoming LSP messagesp.
|
||||
** Provide strict checking of incoming LSP messages.
|
||||
|
||||
(github#144, github#156)
|
||||
|
||||
|
@ -570,7 +570,7 @@ here.
|
|||
* Changes in Eglot 1.1 (9/7/2018)
|
||||
|
||||
** Implement TCP autostart/autoconnect (and support Ruby's Solargraph).
|
||||
The ':autoport' symbol in the server incovation is replaced
|
||||
The ':autoport' symbol in the server invocation is replaced
|
||||
dynamically by a local port believed to be vacant, so that the ensuing
|
||||
TCP connection finds a listening server.
|
||||
|
||||
|
|
|
@ -391,7 +391,7 @@ or call the function `%s'."))))
|
|||
(not (equal ,last-message
|
||||
(current-message))))
|
||||
(let ((local ,(if globalp "" " in current buffer")))
|
||||
(message ,(format "%s %%sabled%%s" pretty-name)
|
||||
(message "%s %sabled%s" ,pretty-name
|
||||
(if ,getter "en" "dis") local)))))
|
||||
,@(when after-hook `(,after-hook)))
|
||||
(force-mode-line-update)
|
||||
|
|
|
@ -92,12 +92,22 @@ report errors as appropriate for this kind of usage."
|
|||
(forward-sexp (- arg) interactive))
|
||||
|
||||
(defun mark-sexp (&optional arg allow-extend)
|
||||
"Set mark ARG sexps from point.
|
||||
The place mark goes is the same place \\[forward-sexp] would
|
||||
move to with the same argument.
|
||||
Interactively, if this command is repeated
|
||||
or (in Transient Mark mode) if the mark is active,
|
||||
it marks the next ARG sexps after the ones already marked.
|
||||
"Set mark ARG sexps from point or move mark one sexp.
|
||||
When called from Lisp with ALLOW-EXTEND ommitted or nil, mark is
|
||||
set ARG sexps from point.
|
||||
With ARG and ALLOW-EXTEND both non-nil (interactively, with prefix
|
||||
argument), the place to which mark goes is the same place \\[forward-sexp]
|
||||
would move to with the same argument; if the mark is active, it moves
|
||||
ARG sexps from its current position, otherwise it is set ARG sexps
|
||||
from point.
|
||||
When invoked interactively without a prefix argument and no active
|
||||
region, mark moves one sexp forward.
|
||||
When invoked interactively without a prefix argument, and region
|
||||
is active, mark moves one sexp away of point (i.e., forward
|
||||
if mark is at or after point, back if mark is before point), thus
|
||||
extending the region by one sexp. Since the direction of region
|
||||
extension depends on the relative position of mark and point, you
|
||||
can change the direction by \\[exchange-point-and-mark].
|
||||
This command assumes point is not in a string or comment."
|
||||
(interactive "P\np")
|
||||
(cond ((and allow-extend
|
||||
|
|
|
@ -759,11 +759,13 @@ indicating the package name and SPEC is a plist as described in
|
|||
symbol whose name is the package name, and the URL for the
|
||||
package will be taken from the package's metadata.
|
||||
|
||||
By default, this function installs the last version of the package
|
||||
available from its repository, but if REV is given and non-nil, it
|
||||
specifies the revision to install. If REV has the special value
|
||||
`:last-release' (interactively, the prefix argument), that stands
|
||||
for the last released version of the package.
|
||||
By default, this function installs the last revision of the
|
||||
package available from its repository. If REV is a string, it
|
||||
describes the revision to install, as interpreted by the VC
|
||||
backend. The special value `:last-release' (interactively, the
|
||||
prefix argument), will use the commit of the latest release, if
|
||||
it exists. The last release is the latest revision which changed
|
||||
the \"Version:\" header of the package's main Lisp file.
|
||||
|
||||
Optional argument BACKEND specifies the VC backend to use for cloning
|
||||
the package's repository; this is only possible if NAME-OR-URL is a URL,
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
;; Copyright (C) 2011-2023 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Mohsen BANAN <libre@mohsen.1.banan.byname.net>
|
||||
;; Author: Mohsen BANAN <emacs@mohsen.1.banan.byname.net>
|
||||
;; URL: http://mohsen.1.banan.byname.net/contact
|
||||
|
||||
;; Keywords: multilingual, input method, Farsi, Persian, keyboard
|
||||
|
@ -23,7 +23,7 @@
|
|||
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;
|
||||
;; This file contains a collection of input methods for
|
||||
;; Persian languages (Farsi, Urdu, Pashto/Afghanic, ...)
|
||||
;;
|
||||
|
@ -395,6 +395,7 @@
|
|||
("u" ?و)
|
||||
("V" ?ؤ)
|
||||
("h" ?ه)
|
||||
("Hh" ?ه) ;; to take care of هه -- hHh
|
||||
("y" ?ی)
|
||||
("i" ?ی)
|
||||
("I" ?ئ)
|
||||
|
@ -402,7 +403,7 @@
|
|||
|
||||
;;;;;;;;;;; isiri-6219 Table 6 -- جدول ۶ - حروِفِ عربی
|
||||
("F" ?إ)
|
||||
("D" ?\u0671) ;; (insert-char #x0671)ٱ named: حرفِ الفِ وصل
|
||||
("D" ?\u0671) ;; (ucs-insert #x0671)ٱ named: حرفِ الفِ وصل
|
||||
("K" ?ك) ;; Arabic kaf
|
||||
("Th" ?ة) ;; ta marbuteh
|
||||
("Y" ?ي)
|
||||
|
@ -421,40 +422,40 @@
|
|||
("8" ?۸)
|
||||
("9" ?۹)
|
||||
|
||||
("\\/" ?\u066B) ;; (insert-char #x066B)٫ named: ممیزِ فارسی
|
||||
("\\," ?\u066C) ;; (insert-char #x066C)٬ named: جداکنندهی هزارهای فارسی
|
||||
("%" ?\u066A) ;; (insert-char #x066A)٪ named: درصدِ فارسی
|
||||
("+" ?\u002B) ;; (insert-char #x002B)+ named: علامتِ بهاضافه
|
||||
("-" ?\u2212) ;; (insert-char #x2212)− named: علامتِ منها
|
||||
("\\*" ?\u00D7) ;; (insert-char #x00D7)× named: علامتِ ضرب
|
||||
("\\-" ?\u00F7) ;; (insert-char #x00F7)÷ named: علامتِ تقسیم
|
||||
("<" ?\u003C) ;; (insert-char #x003C)< named: علامتِ کوچکتر
|
||||
("=" ?\u003D) ;; (insert-char #x003D)= named: علامتِ مساوی
|
||||
(">" ?\u003E) ;; (insert-char #x003E)> named: علامتِ بزرگتر
|
||||
("\\/" ?\u066B) ;; (ucs-insert #x066B)٫ named: ممیزِ فارسی
|
||||
("\\," ?\u066C) ;; (ucs-insert #x066C)٬ named: جداکنندهی هزارهای فارسی
|
||||
("%" ?\u066A) ;; (ucs-insert #x066A)٪ named: درصدِ فارسی
|
||||
("+" ?\u002B) ;; (ucs-insert #x002B)+ named: علامتِ بهاضافه
|
||||
("-" ?\u2212) ;; (ucs-insert #x2212)− named: علامتِ منها
|
||||
("\\*" ?\u00D7) ;; (ucs-insert #x00D7)× named: علامتِ ضرب
|
||||
("\\-" ?\u00F7) ;; (ucs-insert #x00F7)÷ named: علامتِ تقسیم
|
||||
("<" ?\u003C) ;; (ucs-insert #x003C)< named: علامتِ کوچکتر
|
||||
("=" ?\u003D) ;; (ucs-insert #x003D)= named: علامتِ مساوی
|
||||
(">" ?\u003E) ;; (ucs-insert #x003E)> named: علامتِ بزرگتر
|
||||
|
||||
|
||||
;;;;;;;;;;; isiri-6219 Table 2 -- جدول ۲ - علائم نقطه گذاریِ مشترک
|
||||
;;; Space
|
||||
("." ?.) ;;
|
||||
(":" ?\u003A) ;; (insert-char #x003A): named:
|
||||
("!" ?\u0021) ;; (insert-char #x0021)! named:
|
||||
("\\." ?\u2026) ;; (insert-char #x2026)… named:
|
||||
("\\-" ?\u2010) ;; (insert-char #x2010)‐ named:
|
||||
("-" ?\u002D) ;; (insert-char #x002D)- named:
|
||||
(":" ?\u003A) ;; (ucs-insert #x003A): named:
|
||||
("!" ?\u0021) ;; (ucs-insert #x0021)! named:
|
||||
("\\." ?\u2026) ;; (ucs-insert #x2026)… named:
|
||||
("\\-" ?\u2010) ;; (ucs-insert #x2010)‐ named:
|
||||
("-" ?\u002D) ;; (ucs-insert #x002D)- named:
|
||||
("|" ?|)
|
||||
;;("\\\\" ?\)
|
||||
("//" ?/)
|
||||
("*" ?\u002A) ;; (insert-char #x002A)* named:
|
||||
("(" ?\u0028) ;; (insert-char #x0028)( named:
|
||||
(")" ?\u0029) ;; (insert-char #x0029)) named:
|
||||
("[" ?\u005B) ;; (insert-char #x005B)[ named:
|
||||
("[" ?\u005D) ;; (insert-char #x005D)] named:
|
||||
("{" ?\u007B) ;; (insert-char #x007B){ named:
|
||||
("}" ?\u007D) ;; (insert-char #x007D)} named:
|
||||
("\\<" ?\u00AB) ;; (insert-char #x00AB)« named:
|
||||
("\\>" ?\u00BB) ;; (insert-char #x00BB)» named:
|
||||
("N" ?\u00AB) ;; (insert-char #x00AB)« named:
|
||||
("M" ?\u00BB) ;; (insert-char #x00BB)» named:
|
||||
("*" ?\u002A) ;; (ucs-insert #x002A)* named:
|
||||
("(" ?\u0028) ;; (ucs-insert #x0028)( named:
|
||||
(")" ?\u0029) ;; (ucs-insert #x0029)) named:
|
||||
("[" ?\u005B) ;; (ucs-insert #x005B)[ named:
|
||||
("[" ?\u005D) ;; (ucs-insert #x005D)] named:
|
||||
("{" ?\u007B) ;; (ucs-insert #x007B){ named:
|
||||
("}" ?\u007D) ;; (ucs-insert #x007D)} named:
|
||||
("\\<" ?\u00AB) ;; (ucs-insert #x00AB)« named:
|
||||
("\\>" ?\u00BB) ;; (ucs-insert #x00BB)» named:
|
||||
("N" ?\u00AB) ;; (ucs-insert #x00AB)« named:
|
||||
("M" ?\u00BB) ;; (ucs-insert #x00BB)» named:
|
||||
|
||||
;;;;;;;;;;; isiri-6219 Table 3 -- جدول ۳ - علائم نقطه گذاریِ فارسی
|
||||
("," ?،) ;; farsi
|
||||
|
@ -463,24 +464,49 @@
|
|||
("_" ?ـ) ;;
|
||||
|
||||
|
||||
;;;;;;;;;;; isiri-6219 Table 1 -- جدول ۱ - نویسههای کنترلی
|
||||
;;;;;;;;;;; isiri-6219 Table 1 (plus bidi updates) - جدول ۱ - نویسههای کنترلی
|
||||
;; LF
|
||||
;; CR
|
||||
("‌" ?\u200C) ;; (insert-char #x200C) named: فاصلهی مجازی
|
||||
("‌" ?\u200C) ;; (ucs-insert #x200C) named: فاصلهی مجازی
|
||||
("/" ?\u200C) ;;
|
||||
("‍" ?\u200D) ;; (insert-char #x200D) named: اتصالِ مجازی
|
||||
("‍" ?\u200D) ;; (ucs-insert #x200D) named: اتصالِ مجازی
|
||||
("J" ?\u200D) ;;
|
||||
("‎" ?\u200E) ;; (insert-char #x200E) named: نشانهی چپبهراست
|
||||
("‏" ?\u200F) ;; (insert-char #x200F) named: نشانهی راستبهچپ
|
||||
("&ls;" ?\u2028) ;; (insert-char #x2028)
named: جداکنندهی سطرها
|
||||
("&ps;" ?\u2028) ;; (insert-char #x2029)
named: جداکنندهی بندها
|
||||
("&lre;" ?\u202A) ;; (insert-char #x202A) named: زیرمتنِ چپبهراست
|
||||
("&rle;" ?\u202B) ;; (insert-char #x202B) named: زیرمتنِ راستبهچپ
|
||||
("&pdf;" ?\u202C) ;; (insert-char #x202C) named: پایانِ زیرمتن
|
||||
("&lro;" ?\u202D) ;; (insert-char #x202D) named: زیرمتنِ اکیداً چپبهراست
|
||||
("&rlo;" ?\u202D) ;; (insert-char #x202E) named: زیرمتنِ اکیداً راستبهچپ
|
||||
("&bom;" ?\uFEFF) ;; (insert-char #xFEFF) named: نشانهی ترتیبِ بایتها
|
||||
|
||||
("&ls;" ?\u2028) ;; (ucs-insert #x2028)
named: جداکنندهی سطرها
|
||||
("&ps;" ?\u2029) ;; (ucs-insert #x2029)
named: جداکنندهی بندها
|
||||
;;
|
||||
;; Byte Order Mark (Historic)
|
||||
("&bom;" ?\uFEFF) ;; (ucs-insert #xFEFF) named: نشانهی ترتیبِ بایتها
|
||||
;; BIDI Controls
|
||||
;; -------
|
||||
;; LEFT-TO-RIGHT MARK (strongly typed LTR character)
|
||||
("‎" ?\u200E) ;; (ucs-insert #x200E) named: نشانهی چپبهراست
|
||||
("L" ?\u200E)
|
||||
;; RIGHT-TO-LEFT MARK (strongly typed RTL character)
|
||||
("‏" ?\u200F) ;; (ucs-insert #x200F) named: نشانهی راستبهچپ
|
||||
("R" ?\u200F)
|
||||
;; LEFT-TO-RIGHT ISOLATE (sets base direction to LTR & isolates the embedded)
|
||||
("&lri;" ?\u2066) ;; (ucs-insert #x2066)
|
||||
;; RIGHT-TO-LEFT ISOLATE (sets base direction to RTL & isolates the embedded)
|
||||
("&rli;" ?\u2067) ;; (ucs-insert #x2067)
|
||||
;; FIRST-STRONG ISOLATE (isolates content & sets dir to first strongly typed)
|
||||
("&fsi;" ?\u2068) ;; (ucs-insert #x2068)
|
||||
;; POP DIRECTIONAL ISOLATE (used for RLI, LRI or FSI)
|
||||
;; EMACS BUG
|
||||
;; If ("&pdi;" ?\u2069) is included Emacs fully hangs with a (describe-input-method 'farsi-transliterate-banan)
|
||||
;;("&pdi;" ?\u2069) ;; (ucs-insert #x2069)
|
||||
;; LEFT-TO-RIGHT EMBEDDING (sets base dir to LTR but allows embedded text)
|
||||
("&lre;" ?\u202A) ;; (ucs-insert #x202A) named: زیرمتنِ چپبهراست
|
||||
("B" ?\u202A)
|
||||
;; RIGHT-TO-LEFT EMBEDDING (sets base dir to RTL but allows embedded text)
|
||||
("&rle;" ?\u202B) ;; (ucs-insert #x202B) named: زیرمتنِ راستبهچپ
|
||||
;; POP DIRECTIONAL FORMATTING (used for RLE or LRE and RLO or LRO)
|
||||
;; EMACS ANOMOLY --- Why does &pdf not show up in (describe-input-method 'farsi-transliterate-banan)
|
||||
("&pdf;" ?\u202C) ;; (ucs-insert #x202C) named: پایانِ زیرمتن
|
||||
("P" ?\u202C)
|
||||
;; LEFT-TO-RIGHT OVERRIDE (overrides the bidirectional algorithm, display LTR)
|
||||
("&lro;" ?\u202D) ;; (ucs-insert #x202D) named: زیرمتنِ اکیداً چپبهراست
|
||||
;; RIGHT-TO-LEFT OVERRIDE (overrides the bidirectional algorithm, display RTL)
|
||||
("&rlo;" ?\u202E) ;; (ucs-insert #x202E) named: زیرمتنِ اکیداً راستبهچپ
|
||||
|
||||
;;;;;;;;;;; isiri-6219 Table 7 -- جدول ۷ - نشانههایِ فارسی
|
||||
("^" ?َ) ;; zbar ;; زبر فارسى
|
||||
|
@ -491,14 +517,14 @@
|
|||
("O" ?ٌ) ;; دو پيش فارسى -- تنوين رفع
|
||||
("~" ?ّ) ;; tashdid ;; تشديد فارسى
|
||||
("@" ?ْ) ;; ساکن فارسى
|
||||
("U" ?\u0653) ;; (insert-char #x0653)ٓ named: مدِ فارسی
|
||||
("U" ?\u0653) ;; (ucs-insert #x0653)ٓ named: مدِ فارسی
|
||||
("`" ?ٔ) ;; همزه فارسى بالا
|
||||
("C" ?\u0655) ;; (insert-char #x0655)ٕ named: همزه فارسى پایین
|
||||
("$" ?\u0670) ;; (insert-char #x0670)ٰ named: الفِ مقصورهی فارسی
|
||||
("C" ?\u0655) ;; (ucs-insert #x0655)ٕ named: همزه فارسى پایین
|
||||
("$" ?\u0670) ;; (ucs-insert #x0670)ٰ named: الفِ مقصورهی فارسی
|
||||
|
||||
|
||||
;;;;;;;;;;; isiri-6219 Table 8 - Forbidden Characters -- جدول ۸ - نویسههایِ ممنوع
|
||||
;; ;; he ye (insert-char 1728) (insert-char #x06c0) kills emacs-24.0.90
|
||||
;; ;; he ye (ucs-insert 1728) (ucs-insert #x06c0) kills emacs-24.0.90
|
||||
;; arabic digits 0-9
|
||||
|
||||
|
||||
|
@ -508,7 +534,7 @@
|
|||
("\\~" ?~)
|
||||
("\\@" ?@)
|
||||
("\\#" ?#)
|
||||
("\\$" ?\uFDFC) ;; (insert-char #xFDFC)﷼ named:
|
||||
("\\$" ?\uFDFC) ;; (ucs-insert #xFDFC)﷼ named:
|
||||
("\\^" ?^)
|
||||
("\\1" ?1)
|
||||
("\\2" ?2)
|
||||
|
|
|
@ -723,7 +723,7 @@ autoloads into the specified file instead."
|
|||
|
||||
;;;###autoload
|
||||
(defun make-directory-autoloads (dir output-file)
|
||||
"Update autoload definitions for Lisp files in the directories DIRS.
|
||||
"Update autoload definitions for Lisp files in the directories DIR.
|
||||
DIR can be either a single directory or a list of
|
||||
directories. (The latter usage is discouraged.)
|
||||
|
||||
|
|
|
@ -504,10 +504,10 @@ NODE should be a labeled_statement. PARENT is its parent."
|
|||
"C/C++ keywords for tree-sitter font-locking.
|
||||
MODE is either `c' or `cpp'."
|
||||
(let ((c-keywords
|
||||
'("break" "case" "const" "continue"
|
||||
'("_Atomic" "break" "case" "const" "continue"
|
||||
"default" "do" "else" "enum"
|
||||
"extern" "for" "goto" "if" "inline"
|
||||
"register" "return"
|
||||
"register" "restrict" "return"
|
||||
"sizeof" "static" "struct"
|
||||
"switch" "typedef" "union"
|
||||
"volatile" "while")))
|
||||
|
|
|
@ -464,6 +464,15 @@ compilation and evaluation time conflicts."
|
|||
|
||||
(defun csharp-guess-basic-syntax (orig-fun &rest args)
|
||||
(cond
|
||||
(;; enum
|
||||
(save-excursion
|
||||
(goto-char (c-point 'boi))
|
||||
(and
|
||||
(eq (char-after) ?\{)
|
||||
(save-excursion
|
||||
(goto-char (c-point 'iopl))
|
||||
(looking-at ".*enum.*"))))
|
||||
`((class-open ,(c-point 'iopl))))
|
||||
(;; Attributes
|
||||
(save-excursion
|
||||
(goto-char (c-point 'iopl))
|
||||
|
|
|
@ -436,6 +436,8 @@ Fourth and fifth arg START and END specify the region to operate on.
|
|||
|
||||
Arguments FROM-STRING, TO-STRING, DELIMITED, START, END, BACKWARD, and
|
||||
REGION-NONCONTIGUOUS-P are passed to `perform-replace' (which see).
|
||||
\(TO-STRING is passed to `perform-replace' as REPLACEMENTS and
|
||||
DELIMITED is passed as DELIMITED-FLAG.)
|
||||
|
||||
To customize possible responses, change the bindings in `query-replace-map'."
|
||||
(declare (interactive-args
|
||||
|
@ -533,7 +535,10 @@ text, TO-STRING is actually made a list instead of a string.
|
|||
Use \\[repeat-complex-command] after this command for details.
|
||||
|
||||
Arguments REGEXP, TO-STRING, DELIMITED, START, END, BACKWARD, and
|
||||
REGION-NONCONTIGUOUS-P are passed to `perform-replace' (which see)."
|
||||
REGION-NONCONTIGUOUS-P are passed to `perform-replace' (which see).
|
||||
\(REGEXP is passed to `perform-replace' as FROM-STRING,
|
||||
TO-STRING is passed as REPLACEMENTS, and DELIMITED is passed
|
||||
as DELIMITED-FLAG.)"
|
||||
(declare (interactive-args
|
||||
(start (use-region-beginning))
|
||||
(end (use-region-end))
|
||||
|
|
|
@ -8714,12 +8714,22 @@ node `(elisp) Word Motion' for details."
|
|||
(forward-word (- (or arg 1))))
|
||||
|
||||
(defun mark-word (&optional arg allow-extend)
|
||||
"Set mark ARG words away from point.
|
||||
The place mark goes is the same place \\[forward-word] would
|
||||
move to with the same argument.
|
||||
Interactively, if this command is repeated
|
||||
or (in Transient Mark mode) if the mark is active,
|
||||
it marks the next ARG words after the ones already marked."
|
||||
"Set mark ARG words from point or move mark one word.
|
||||
When called from Lisp with ALLOW-EXTEND ommitted or nil, mark is
|
||||
set ARG words from point.
|
||||
With ARG and ALLOW-EXTEND both non-nil (interactively, with prefix
|
||||
argument), the place to which mark goes is the same place \\[forward-word]
|
||||
would move to with the same argument; if the mark is active, it moves
|
||||
ARG words from its current position, otherwise it is set ARG words
|
||||
from point.
|
||||
When invoked interactively without a prefix argument and no active
|
||||
region, mark moves one word forward.
|
||||
When invoked interactively without a prefix argument, and region
|
||||
is active, mark moves one word away of point (i.e., forward
|
||||
if mark is at or after point, back if mark is before point), thus
|
||||
extending the region by one word. Since the direction of region
|
||||
extension depends on the relative position of mark and point, you
|
||||
can change the direction by \\[exchange-point-and-mark]."
|
||||
(interactive "P\np")
|
||||
(cond ((and allow-extend
|
||||
(or (and (eq last-command this-command) (mark t))
|
||||
|
|
|
@ -1952,6 +1952,10 @@ This is a tree-sitter equivalent of `beginning-of-defun'.
|
|||
Behavior of this function depends on `treesit-defun-type-regexp'
|
||||
and `treesit-defun-skipper'."
|
||||
(interactive "^p")
|
||||
(or (not (eq this-command 'treesit-beginning-of-defun))
|
||||
(eq last-command 'treesit-beginning-of-defun)
|
||||
(and transient-mark-mode mark-active)
|
||||
(push-mark))
|
||||
(let ((orig-point (point))
|
||||
(success nil))
|
||||
(catch 'done
|
||||
|
@ -1983,6 +1987,10 @@ this function depends on `treesit-defun-type-regexp' and
|
|||
(interactive "^p\nd")
|
||||
(let ((orig-point (point)))
|
||||
(if (or (null arg) (= arg 0)) (setq arg 1))
|
||||
(or (not (eq this-command 'treesit-end-of-defun))
|
||||
(eq last-command 'treesit-end-of-defun)
|
||||
(and transient-mark-mode mark-active)
|
||||
(push-mark))
|
||||
(catch 'done
|
||||
(dotimes (_ 2) ; Not making progress is better than infloop.
|
||||
|
||||
|
|
|
@ -609,8 +609,9 @@ message (format 32) that caused EVENT to be generated."
|
|||
(defun x-dnd-after-move-frame (frame)
|
||||
"Handle FRAME moving to a different position.
|
||||
Clear any cached root window position."
|
||||
(set-frame-parameter frame 'dnd-root-window-position
|
||||
nil))
|
||||
(and (frame-live-p frame)
|
||||
(set-frame-parameter frame 'dnd-root-window-position
|
||||
nil)))
|
||||
|
||||
(add-hook 'move-frame-functions #'x-dnd-after-move-frame)
|
||||
|
||||
|
|
|
@ -398,7 +398,7 @@ static ptrdiff_t pure_bytes_used_non_lisp;
|
|||
|
||||
/* If positive, garbage collection is inhibited. Otherwise, zero. */
|
||||
|
||||
static intptr_t garbage_collection_inhibited;
|
||||
intptr_t garbage_collection_inhibited;
|
||||
|
||||
/* The GC threshold in bytes, the last time it was calculated
|
||||
from gc-cons-threshold and gc-cons-percentage. */
|
||||
|
|
|
@ -967,6 +967,15 @@ face_for_char (struct frame *f, struct face *face, int c,
|
|||
#endif
|
||||
}
|
||||
|
||||
/* If the parent face has no fontset we could work with, and has no
|
||||
font, just return that same face, so that the caller will
|
||||
consider the character to have no font capable of displaying it,
|
||||
and display it as "glyphless". That is certainly better than
|
||||
violating the assertion below or crashing when assertions are not
|
||||
compiled in. */
|
||||
if (face->fontset < 0 && !face->font)
|
||||
return face->id;
|
||||
|
||||
eassert (fontset_id_valid_p (face->fontset));
|
||||
fontset = FONTSET_FROM_ID (face->fontset);
|
||||
eassert (!BASE_FONTSET_P (fontset));
|
||||
|
|
12
src/xdisp.c
12
src/xdisp.c
|
@ -12825,6 +12825,8 @@ truncate_message_1 (void *a1, Lisp_Object a2)
|
|||
return false;
|
||||
}
|
||||
|
||||
extern intptr_t garbage_collection_inhibited;
|
||||
|
||||
/* Set the current message to STRING. */
|
||||
|
||||
static void
|
||||
|
@ -12834,7 +12836,11 @@ set_message (Lisp_Object string)
|
|||
|
||||
eassert (STRINGP (string));
|
||||
|
||||
if (FUNCTIONP (Vset_message_function))
|
||||
if (FUNCTIONP (Vset_message_function)
|
||||
/* FIXME: (bug#63253) We should really make the regexp engine re-entrant,
|
||||
but in the mean time, let's ignore `set-message-function` when
|
||||
called from `probably_quit`. */
|
||||
&& !garbage_collection_inhibited)
|
||||
{
|
||||
specpdl_ref count = SPECPDL_INDEX ();
|
||||
specbind (Qinhibit_quit, Qt);
|
||||
|
@ -12911,7 +12917,9 @@ clear_message (bool current_p, bool last_displayed_p)
|
|||
|
||||
if (current_p)
|
||||
{
|
||||
if (FUNCTIONP (Vclear_message_function))
|
||||
if (FUNCTIONP (Vclear_message_function)
|
||||
/* FIXME: (bug#63253) Same as for `set-message-function` above. */
|
||||
&& !garbage_collection_inhibited)
|
||||
{
|
||||
specpdl_ref count = SPECPDL_INDEX ();
|
||||
specbind (Qinhibit_quit, Qt);
|
||||
|
|
Loading…
Add table
Reference in a new issue