Merge from origin/emacs-29
842dbf500e
* Fix `batch-byte+native-compile' target directory.8dbd5aa1ee
Avoid crashes in 'display_count_lines' when current buffe...47b4f4cf78
; * doc/emacs/mini.texi (Completion Commands): Fix a typo...78999d5213
Update csharp tree-sitter support due to upstream changes556cb01b48
Substitute command keys in 'ielm-header' at use time99367078e5
; * etc/PROBLEMS: Add entry about XIM problems (bug#65205).03e897c08f
Fix rare crashes in redisplay due to problems with fontsetsb1ba06a1e4
Fix a typo in 'leuven-dark-theme.el'e80a9dcabb
; * admin/git-bisect-start: Update failing commits9091f42784
; * admin/git-bisect-start: Update failing commits344ac529ca
; * etc/PROBLEMS: Fix typo.bccf848b26
Adapt Tramp test71bc060e40
Properly expand the JSX indentation rules in 'js-ts-mode'889cfb42ed
* Add `emacs-lisp-native-compile' to easy-menu.4535aafa8a
* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Si...173af0cad5
* Introduce `emacs-lisp-native-compile'.063d7d89d7
Fix the -x switch in non-X builds5a7fb0b39b
Document that `set-mouse-color' does not work everywhered06fc72496
; * doc/emacs/dired.texi (Misc Dired Features): Fix last ...97b8ac376b
Fix the effects and documentation of 'dired-free-space'75c72e59f6
; Fix typo6d11b7b300
Fix cross-reference to eldoc in eglot manual913e50aba6
Add native-compilation to Emacs Lisp mode menub93107c20b
Fix emacs-lisp-native-compile-and-load eln target directo...
This commit is contained in:
commit
3fc9793a26
18 changed files with 150 additions and 102 deletions
|
@ -82,7 +82,7 @@ done
|
|||
# SKIP-BRANCH 58cc931e92ece70c3e64131ee12a799d65409100
|
||||
|
||||
## The list below is the exhaustive list of all commits between Dec 1
|
||||
## 2016 and Jul 8 2023 on which building Emacs with the default
|
||||
## 2016 and Aug 10 2023 on which building Emacs with the default
|
||||
## options, on a GNU/Linux computer and with GCC, fails. It is
|
||||
## possible (though unlikely) that building Emacs with non-default
|
||||
## options, with other compilers, or on other platforms, would succeed
|
||||
|
@ -1757,3 +1757,22 @@ $REAL_GIT bisect skip $(cat $0 | grep '^# SKIP-SINGLE ' | sed 's/^# SKIP-SINGLE
|
|||
# SKIP-SINGLE 0a35c991c19a6dd0a707f2baa868f8989242c3ab
|
||||
# SKIP-SINGLE e2ee646b162b87e832c8032b9d90577bd21f21f8
|
||||
# SKIP-SINGLE 35d2fe176cb438d55552cacbdf25c3692c054d51
|
||||
# SKIP-SINGLE de3d8ae71b43f80244c4d813ff1503b8551f0026
|
||||
# SKIP-SINGLE a496509cedb17109d0e6297a74e2ff8ed526333c
|
||||
# SKIP-SINGLE a6a586ffc1bd302e30d80cb88b06e1e7e1573f63
|
||||
# SKIP-SINGLE f5d142f66370b29af58360faeea90d1112756bc5
|
||||
# SKIP-SINGLE 46e8ab23eaeb5e453042f430fc016cf9ffc2ac37
|
||||
# SKIP-SINGLE eb72569dbef91862a765cd4d9f380220244b4549
|
||||
# SKIP-SINGLE c4b77b82decb757af0aff1b7420203fa0805b483
|
||||
# SKIP-SINGLE 0ee01457a84e031d490553949a2deacd4865a5bb
|
||||
# SKIP-SINGLE 6c68d9bd3a18c74384fc764179fd92a024d6c35d
|
||||
# SKIP-SINGLE a46e231a5f27c46933cc53865cee452ad1a0c0d3
|
||||
# SKIP-SINGLE c045d5322c2c1658f215bf59d431fcc8f96ffc12
|
||||
# SKIP-SINGLE dabb713eb05aff62deb6872a3498327934f18c8d
|
||||
# SKIP-SINGLE b8c05636ca4b28a7adc62e82a5fed528b402396d
|
||||
# SKIP-SINGLE e72afa9dbf92f45d00c87c90ead364d52f73024f
|
||||
# SKIP-SINGLE 9d3aacedf0c217af207d39e390f376914160396b
|
||||
# SKIP-SINGLE 6bdbb4cbfc2deb7d3a02e1428768e101f3dbd265
|
||||
# SKIP-SINGLE 2752573dfb76873dbe783e89a1fbf01d157c54e3
|
||||
# SKIP-SINGLE 62e990db7a2fad16756e019b331c28ad5a5a89fe
|
||||
# SKIP-SINGLE 6253e7e74249c7cdfa86723f0b91a1d207cb143e
|
||||
|
|
|
@ -1739,12 +1739,17 @@ rotation is lossless, and uses an external utility called
|
|||
@section Other Dired Features
|
||||
|
||||
@vindex dired-free-space
|
||||
By default, Dired will display the available space on the disk in
|
||||
the first line. This is the @code{first} value of the
|
||||
@code{dired-free-space} variable. If you set this to
|
||||
@code{separate} instead, Dired will display this on a separate line
|
||||
(including the space the files in the current directory takes). If
|
||||
you set this to @code{nil}, the free space isn't displayed at all.
|
||||
By default, Dired displays the available space on the directory's
|
||||
disk on the first line of that directory's listing, following the
|
||||
directory name. You can control this display by customizing the
|
||||
variable @code{dired-free-space}. Its default value is @code{first},
|
||||
which produces the available space after the directory name. If you
|
||||
customize it to the value @code{separate} instead, Dired will display
|
||||
the disk space information on a separate line, following the line with
|
||||
the directory name, and will include in that line the space used by
|
||||
the files in the current directory as well as the available disk
|
||||
space. If you set this to @code{nil}, the available disk space
|
||||
information will not be displayed at all.
|
||||
|
||||
@kindex + @r{(Dired)}
|
||||
@findex dired-create-directory
|
||||
|
|
|
@ -411,8 +411,8 @@ the minibuffer.
|
|||
@itemx @key{prior}
|
||||
Typing @kbd{M-v}, while in the minibuffer, selects the window showing
|
||||
the completion list (@code{switch-to-completions}). This paves the
|
||||
way for also using the commands below. @key{PageUp}, @key{prior} and
|
||||
@kbd{M-g M-c} does the same. You can also select the window in other
|
||||
way for using the commands below. @key{PageUp}, @key{prior} and
|
||||
@kbd{M-g M-c} do the same. You can also select the window in other
|
||||
ways (@pxref{Windows}).
|
||||
|
||||
@findex choose-completion
|
||||
|
|
|
@ -406,9 +406,10 @@ provides:
|
|||
At-point documentation: when point is at or near a symbol or an
|
||||
identifier, the information about the symbol/identifier, such as the
|
||||
signature of a function or class method and server-generated
|
||||
diagnostics, is made available via the ElDoc package (@pxref{Lisp
|
||||
Doc,,, emacs, GNU Emacs Manual}). This allows major modes to provide
|
||||
extensive help and documentation about the program identifiers.
|
||||
diagnostics, is made available via the ElDoc package
|
||||
(@pxref{Programming Language Doc,,, emacs, GNU Emacs Manual}). This
|
||||
allows major modes to provide extensive help and documentation about
|
||||
the program identifiers.
|
||||
|
||||
@item
|
||||
On-the-fly diagnostic annotations with server-suggested fixes, via the
|
||||
|
|
63
etc/PROBLEMS
63
etc/PROBLEMS
|
@ -516,7 +516,7 @@ directory copy is ineffective.
|
|||
This is due to an arbitrary limit in certain versions of awk.
|
||||
The solution is to use gawk (GNU awk).
|
||||
|
||||
*** Saving a file encrypted with GnuPG via EasyPG hangs
|
||||
*** Saving a file encrypted with GnuPG via EasyPG hangs.
|
||||
|
||||
This is known to happen with GnuPG v2.4.1. The only known workaround
|
||||
is to downgrade to a version of GnuPG older than 2.4.1 (or, in the
|
||||
|
@ -575,6 +575,20 @@ This can happen with CVS versions 1.12.8 and 1.12.9. Upgrade to CVS
|
|||
|
||||
** Miscellaneous problems
|
||||
|
||||
*** 'set-mouse-color' and the '-ms' command line argument do not work.
|
||||
|
||||
Systems where the default cursors are not simple 1 bit-per-pixel
|
||||
bitmaps usually forbid recoloring the cursor, since it is unclear
|
||||
which colors should replace those already present within each cursor
|
||||
image. For example, 'set-mouse-color' and '-ms' have no function on X
|
||||
systems with GNOME, KDE, and other recent desktop environments
|
||||
employing cursor images containing colors and partial transparency.
|
||||
|
||||
Changing the cursor color is also impossible on MS-Windows and PGTK
|
||||
systems. In the former case, it is because the prerequisite code has
|
||||
yet to be written. In the latter, it is because GTK does not provide
|
||||
for changing the color of cursor images.
|
||||
|
||||
*** Display artifacts on GUI frames on X-based systems.
|
||||
|
||||
This is known to be caused by using double-buffering (which is enabled
|
||||
|
@ -1163,43 +1177,6 @@ do anything about it.
|
|||
|
||||
** International characters aren't displayed under X.
|
||||
|
||||
*** Missing X fonts
|
||||
|
||||
XFree86 4 contains many fonts in iso10646-1 encoding which have
|
||||
minimal character repertoires (whereas the encoding part of the font
|
||||
name is meant to be a reasonable indication of the repertoire
|
||||
according to the XLFD spec). Emacs may choose one of these to display
|
||||
characters from the mule-unicode charsets and then typically won't be
|
||||
able to find the glyphs to display many characters. (Check with C-u
|
||||
C-x = .) To avoid this, you may need to use a fontset which sets the
|
||||
font for the mule-unicode sets explicitly. E.g. to use GNU unifont,
|
||||
include in the fontset spec:
|
||||
|
||||
mule-unicode-2500-33ff:-gnu-unifont-*-iso10646-1,\
|
||||
mule-unicode-e000-ffff:-gnu-unifont-*-iso10646-1,\
|
||||
mule-unicode-0100-24ff:-gnu-unifont-*-iso10646-1
|
||||
|
||||
** The UTF-8/16/7 coding systems don't encode CJK (Far Eastern) characters.
|
||||
|
||||
Emacs directly supports the Unicode BMP whose code points are in the
|
||||
ranges 0000-33ff and e000-ffff, and indirectly supports the parts of
|
||||
CJK characters belonging to these legacy charsets:
|
||||
|
||||
GB2312, Big5, JISX0208, JISX0212, JISX0213-1, JISX0213-2, KSC5601
|
||||
|
||||
The latter support is done in Utf-Translate-Cjk mode (turned on by
|
||||
default). Which Unicode CJK characters are decoded into which Emacs
|
||||
charset is decided by the current language environment. For instance,
|
||||
in Chinese-GB, most of them are decoded into chinese-gb2312.
|
||||
|
||||
If you read UTF-8 data with code points outside these ranges, the
|
||||
characters appear in the buffer as raw bytes of the original UTF-8
|
||||
(composed into a single quasi-character) and they will be written back
|
||||
correctly as UTF-8, assuming you don't break the composed sequences.
|
||||
If you read such characters from UTF-16 or UTF-7 data, they are
|
||||
substituted with the Unicode 'replacement character', and you lose
|
||||
information.
|
||||
|
||||
** Accented ISO-8859-1 characters are displayed as | or _.
|
||||
|
||||
Try other font set sizes (S-mouse-1). If the problem persists with
|
||||
|
@ -1237,6 +1214,16 @@ In your ~/.Xresources file, then run
|
|||
|
||||
And restart Emacs.
|
||||
|
||||
** Emacs hangs when using XIM
|
||||
|
||||
This is due to an old bug in the implementation of the X protocol's
|
||||
XIM transport: when an input method crashes for some reason, Xlib
|
||||
cannot recover. Emacs cannot do anything about this except wait for
|
||||
the I-Bux developers to fix their crashes. You can work around these
|
||||
problems by disabling XIM in your X resources:
|
||||
|
||||
Emacs.useXIM: false
|
||||
|
||||
** On Haiku, BeCJK doesn't work properly with Emacs
|
||||
|
||||
Some popular Haiku input methods such BeCJK are known to behave badly
|
||||
|
|
|
@ -95,7 +95,7 @@ CONTROL can be a number, nil, or t. When t, use DEFAULT-HEIGHT."
|
|||
|
||||
;;;###theme-autoload
|
||||
(deftheme leuven-dark
|
||||
"Face colors with a light background.
|
||||
"Face colors with a dark background.
|
||||
Basic, Font Lock, Isearch, Gnus, Message, Org mode, Diff, Ediff,
|
||||
Flyspell, Semantic, and Ansi-Color faces are included -- and much
|
||||
more..."
|
||||
|
|
|
@ -218,14 +218,19 @@ If t, they are marked if and as the files linked to were marked.
|
|||
If a character, new links are unconditionally marked with that character.")
|
||||
|
||||
(defcustom dired-free-space 'first
|
||||
"Whether and how to display the amount of free disk space in Dired buffers.
|
||||
"Whether and how to display the disk space usage info in Dired buffers.
|
||||
If nil, don't display.
|
||||
If `separate', display on a separate line (along with used count).
|
||||
If `first', display only the free disk space on the first line,
|
||||
following the directory name."
|
||||
:type '(choice (const :tag "On a separate line" separate)
|
||||
(const :tag "On the first line, after directory name" first)
|
||||
(const :tag "Don't display" nil))
|
||||
If `separate', display on a separate line, and include both the used
|
||||
and the free disk space.
|
||||
If `first', the default, display only the free disk space on the first
|
||||
line, following the directory name."
|
||||
:type '(choice (const
|
||||
:tag
|
||||
"On separate line, display both used and free space" separate)
|
||||
(const
|
||||
:tag
|
||||
"On first line, after directory name, display only free space" first)
|
||||
(const :tag "Don't display disk space usage" nil))
|
||||
:version "29.1"
|
||||
:group 'dired)
|
||||
|
||||
|
@ -1770,7 +1775,10 @@ see `dired-use-ls-dired' for more details.")
|
|||
((eq dired-free-space 'separate)
|
||||
(end-of-line)
|
||||
(insert " available " available)
|
||||
(forward-line 1)
|
||||
;; The separate free-space line is considered part of the
|
||||
;; directory content, for the purposes of
|
||||
;; 'dired-hide-details-mode'.
|
||||
(beginning-of-line)
|
||||
(point))
|
||||
((eq dired-free-space 'first)
|
||||
(goto-char beg)
|
||||
|
|
|
@ -1431,11 +1431,8 @@ clashes."
|
|||
(unless byte-to-native-top-level-forms
|
||||
(signal 'native-compiler-error-empty-byte (list filename)))
|
||||
(unless (comp-ctxt-output comp-ctxt)
|
||||
(setf (comp-ctxt-output comp-ctxt) (comp-el-to-eln-filename
|
||||
filename
|
||||
(or native-compile-target-directory
|
||||
(when byte+native-compile
|
||||
(car (last native-comp-eln-load-path)))))))
|
||||
(setf (comp-ctxt-output comp-ctxt)
|
||||
(comp-el-to-eln-filename filename native-compile-target-directory)))
|
||||
(setf (comp-ctxt-speed comp-ctxt) (alist-get 'native-comp-speed
|
||||
byte-native-qualities)
|
||||
(comp-ctxt-debug comp-ctxt) (alist-get 'native-comp-debug
|
||||
|
@ -4374,8 +4371,9 @@ last directory in `native-comp-eln-load-path')."
|
|||
(comp-ensure-native-compiler)
|
||||
(let ((comp-running-batch-compilation t)
|
||||
(native-compile-target-directory
|
||||
(if for-tarball
|
||||
(car (last native-comp-eln-load-path)))))
|
||||
(if for-tarball
|
||||
(car (last native-comp-eln-load-path))
|
||||
native-compile-target-directory)))
|
||||
(cl-loop for file in command-line-args-left
|
||||
if (or (null byte+native-compile)
|
||||
(cl-notany (lambda (re) (string-match re file))
|
||||
|
@ -4417,6 +4415,8 @@ variable \"NATIVE_DISABLED\" is set, only byte compile."
|
|||
(batch-byte-compile)
|
||||
(cl-assert (length= command-line-args-left 1))
|
||||
(let* ((byte+native-compile t)
|
||||
(native-compile-target-directory
|
||||
(car (last native-comp-eln-load-path)))
|
||||
(byte-to-native-output-buffer-file nil)
|
||||
(eln-file (car (batch-native-compile))))
|
||||
(comp-write-bytecode-file eln-file)
|
||||
|
|
|
@ -1493,7 +1493,7 @@ If PREFIX is non-nil, mention only keys that start with PREFIX.
|
|||
If TITLE is non-nil, is a string to insert at the beginning.
|
||||
TITLE should not end with a colon or a newline; we supply that.
|
||||
|
||||
If NOMENU is non-nil, then omit menu-bar commands.
|
||||
If NO-MENU is non-nil, then omit menu-bar commands.
|
||||
|
||||
If TRANSL is non-nil, the definitions are actually key
|
||||
translations so print strings and vectors differently.
|
||||
|
|
|
@ -148,9 +148,8 @@ such as `edebug-defun' to work with such inputs."
|
|||
This variable is buffer-local.")
|
||||
|
||||
(defvar ielm-header
|
||||
(substitute-command-keys
|
||||
"*** Welcome to IELM *** Type (describe-mode) or press \
|
||||
\\[describe-mode] for help.\n")
|
||||
\\[describe-mode] for help.\n"
|
||||
"Message to display when IELM is started.")
|
||||
|
||||
(defvaralias 'inferior-emacs-lisp-mode-map 'ielm-map)
|
||||
|
@ -622,7 +621,7 @@ Customized bindings may be defined in `ielm-map', which currently contains:
|
|||
(setq-local comint-inhibit-carriage-motion t)
|
||||
|
||||
;; Add a silly header
|
||||
(insert ielm-header)
|
||||
(insert (substitute-command-keys ielm-header))
|
||||
(ielm-set-pm (point-max))
|
||||
(unless comint-use-prompt-regexp
|
||||
(let ((inhibit-read-only t))
|
||||
|
|
|
@ -816,7 +816,7 @@ compilation and evaluation time conflicts."
|
|||
:language 'c-sharp
|
||||
:feature 'definition
|
||||
:override t
|
||||
'((qualified_name (identifier) @font-lock-type-face)
|
||||
`((qualified_name (identifier) @font-lock-type-face)
|
||||
(using_directive (identifier) @font-lock-type-face)
|
||||
(using_directive (name_equals
|
||||
(identifier) @font-lock-type-face))
|
||||
|
@ -843,8 +843,13 @@ compilation and evaluation time conflicts."
|
|||
(class_declaration (identifier) @font-lock-type-face)
|
||||
|
||||
(constructor_declaration name: (_) @font-lock-type-face)
|
||||
|
||||
(method_declaration type: [(identifier) (void_keyword)] @font-lock-type-face)
|
||||
;;; Handle different releases of tree-sitter-c-sharp.
|
||||
;;; Check if keyword void_keyword is available, then return the correct rule."
|
||||
,@(condition-case nil
|
||||
(progn (treesit-query-capture 'csharp '((void_keyword) @capture))
|
||||
`((method_declaration type: [(identifier) (void_keyword)] @font-lock-type-face)))
|
||||
(error
|
||||
`((method_declaration type: [(identifier) (predefined_type)] @font-lock-type-face))))
|
||||
(method_declaration type: (generic_name (identifier) @font-lock-type-face))
|
||||
(method_declaration name: (_) @font-lock-function-name-face)
|
||||
|
||||
|
|
|
@ -84,6 +84,12 @@ All commands in `lisp-mode-shared-map' are inherited by this map."
|
|||
:help "Byte-compile the current file (if it has changed), then load compiled code"]
|
||||
["Byte-recompile Directory..." byte-recompile-directory
|
||||
:help "Recompile every `.el' file in DIRECTORY that needs recompilation"]
|
||||
["Native-compile This File" emacs-lisp-native-compile
|
||||
:help "Compile the current file containing the current buffer to native code"
|
||||
:active (native-comp-available-p)]
|
||||
["Native-compile and Load" emacs-lisp-native-compile-and-load
|
||||
:help "Compile the current file to native code, then load compiled native code"
|
||||
:active (native-comp-available-p)]
|
||||
["Disassemble Byte Compiled Object..." disassemble
|
||||
:help "Print disassembled code for OBJECT in a buffer"]
|
||||
"---"
|
||||
|
@ -217,6 +223,16 @@ All commands in `lisp-mode-shared-map' are inherited by this map."
|
|||
(declare-function native-compile "comp")
|
||||
(declare-function comp-write-bytecode-file "comp")
|
||||
|
||||
(defun emacs-lisp-native-compile ()
|
||||
"Native-compile synchronously the current file (if it has changed)."
|
||||
(interactive nil emacs-lisp-mode)
|
||||
(emacs-lisp--before-compile-buffer)
|
||||
(let* ((byte+native-compile t)
|
||||
(byte-to-native-output-buffer-file nil)
|
||||
(eln (native-compile buffer-file-name)))
|
||||
(when eln
|
||||
(comp-write-bytecode-file eln))))
|
||||
|
||||
(defun emacs-lisp-native-compile-and-load ()
|
||||
"Native-compile synchronously the current file (if it has changed).
|
||||
Load the compiled code when finished.
|
||||
|
@ -225,11 +241,8 @@ Use `emacs-lisp-byte-compile-and-load' in combination with
|
|||
`native-comp-jit-compilation' set to t to achieve asynchronous
|
||||
native compilation."
|
||||
(interactive nil emacs-lisp-mode)
|
||||
(emacs-lisp--before-compile-buffer)
|
||||
(let ((byte+native-compile t)
|
||||
(byte-to-native-output-buffer-file nil))
|
||||
(when-let ((eln (native-compile buffer-file-name)))
|
||||
(load (file-name-sans-extension (comp-write-bytecode-file eln))))))
|
||||
(when-let ((byte-file (emacs-lisp-native-compile)))
|
||||
(load (file-name-sans-extension byte-file))))
|
||||
|
||||
(defun emacs-lisp-macroexpand ()
|
||||
"Macroexpand the form after point.
|
||||
|
|
|
@ -3474,7 +3474,7 @@ Check if a node type is available, then return the right indent rules."
|
|||
((parent-is "statement_block") parent-bol js-indent-level)
|
||||
|
||||
;; JSX
|
||||
(js-jsx--treesit-indent-compatibility-bb1f97b)
|
||||
,@(js-jsx--treesit-indent-compatibility-bb1f97b)
|
||||
((node-is "jsx_closing_element") parent 0)
|
||||
((match "jsx_element" "statement") parent js-indent-level)
|
||||
((parent-is "jsx_element") parent js-indent-level)
|
||||
|
|
24
src/emacs.c
24
src/emacs.c
|
@ -2077,15 +2077,16 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
|
|||
}
|
||||
#endif /* HAVE_NS */
|
||||
|
||||
#ifdef HAVE_X_WINDOWS
|
||||
/* Stupid kludge to catch command-line display spec. We can't
|
||||
handle this argument entirely in window system dependent code
|
||||
because we don't even know which window system dependent code
|
||||
to run until we've recognized this argument. */
|
||||
{
|
||||
char *displayname = 0;
|
||||
int count_before = skip_args;
|
||||
|
||||
#ifdef HAVE_X_WINDOWS
|
||||
char *displayname = 0;
|
||||
|
||||
/* Skip any number of -d options, but only use the last one. */
|
||||
while (!only_version)
|
||||
{
|
||||
|
@ -2115,12 +2116,15 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
|
|||
}
|
||||
argv[count_before + 1] = (char *) "-d";
|
||||
}
|
||||
#endif /* HAVE_X_WINDOWS */
|
||||
|
||||
if (! no_site_lisp)
|
||||
{
|
||||
if (argmatch (argv, argc, "-Q", "--quick", 3, NULL, &skip_args)
|
||||
|
||||
if (argmatch (argv, argc, "-Q", "--quick", 3, NULL, &skip_args)
|
||||
|| argmatch (argv, argc, "-quick", 0, 2, NULL, &skip_args))
|
||||
no_site_lisp = 1;
|
||||
no_site_lisp = 1;
|
||||
|
||||
}
|
||||
|
||||
if (argmatch (argv, argc, "-x", 0, 1, &junk, &skip_args))
|
||||
|
@ -2136,18 +2140,6 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
|
|||
/* Don't actually discard this arg. */
|
||||
skip_args = count_before;
|
||||
}
|
||||
#else /* !HAVE_X_WINDOWS */
|
||||
if (! no_site_lisp)
|
||||
{
|
||||
int count_before = skip_args;
|
||||
|
||||
if (argmatch (argv, argc, "-Q", "--quick", 3, NULL, &skip_args)
|
||||
|| argmatch (argv, argc, "-quick", 0, 2, NULL, &skip_args))
|
||||
no_site_lisp = 1;
|
||||
|
||||
skip_args = count_before;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* argmatch must not be used after here,
|
||||
except when building temacs
|
||||
|
|
|
@ -6160,6 +6160,9 @@ from the absolute start of the buffer, disregarding the narrowing. */)
|
|||
{
|
||||
ptrdiff_t pos_byte, start_byte = BEGV_BYTE;
|
||||
|
||||
if (!BUFFER_LIVE_P (current_buffer))
|
||||
error ("Attempt to count lines in a dead buffer");
|
||||
|
||||
if (MARKERP (position))
|
||||
{
|
||||
/* We don't trust the byte position if the marker's buffer is
|
||||
|
|
23
src/xdisp.c
23
src/xdisp.c
|
@ -8339,9 +8339,17 @@ get_next_display_element (struct it *it)
|
|||
&& success_p
|
||||
&& FRAME_WINDOW_P (it->f))
|
||||
{
|
||||
struct face *face = FACE_FROM_ID (it->f, it->face_id);
|
||||
struct face *face = FACE_FROM_ID_OR_NULL (it->f, it->face_id);
|
||||
|
||||
if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0)
|
||||
/* It shouldn't happen, ever, that FACE is NULL here, but
|
||||
evidently some faulty fonts/fontsets can sometimes cause it.
|
||||
In that case, we punt and consider the stuff undisplayable. */
|
||||
if (!face)
|
||||
{
|
||||
it->what = IT_GLYPHLESS;
|
||||
it->glyphless_method = GLYPHLESS_DISPLAY_EMPTY_BOX;
|
||||
}
|
||||
else if (it->what == IT_COMPOSITION && it->cmp_it.ch >= 0)
|
||||
{
|
||||
/* Automatic composition with glyph-string. */
|
||||
Lisp_Object gstring = composition_gstring_from_id (it->cmp_it.id);
|
||||
|
@ -27908,6 +27916,8 @@ are the selected window and the WINDOW's buffer). */)
|
|||
if (NILP (buffer))
|
||||
buffer = w->contents;
|
||||
CHECK_BUFFER (buffer);
|
||||
if (!BUFFER_LIVE_P (XBUFFER (buffer)))
|
||||
error ("Attempt to format a mode line for a dead buffer");
|
||||
|
||||
/* Make formatting the modeline a non-op when noninteractive, otherwise
|
||||
there will be problems later caused by a partially initialized frame. */
|
||||
|
@ -32098,9 +32108,12 @@ produce_glyphless_glyph (struct it *it, bool for_no_font, Lisp_Object acronym)
|
|||
int len;
|
||||
|
||||
/* Get the metrics of the base font. We always refer to the current
|
||||
ASCII face. */
|
||||
face = FACE_FROM_ID (it->f, it->face_id)->ascii_face;
|
||||
font = face->font ? face->font : FRAME_FONT (it->f);
|
||||
ASCII face, but if some faulty setup of fontsets causes that to
|
||||
be NULL, we fall back to the frame's default font. */
|
||||
face = FACE_FROM_ID_OR_NULL (it->f, it->face_id);
|
||||
if (face)
|
||||
face = face->ascii_face;
|
||||
font = (face && face->font) ? face->font : FRAME_FONT (it->f);
|
||||
normal_char_ascent_descent (font, -1, &it->ascent, &it->descent);
|
||||
it->ascent += font->baseline_offset;
|
||||
it->descent -= font->baseline_offset;
|
||||
|
|
|
@ -7411,6 +7411,7 @@ This requires restrictions of file name syntax."
|
|||
(skip-unless (not (getenv "EMACS_HYDRA_CI"))) ; SLOW ~ 245s
|
||||
(skip-unless (not (tramp--test-rsync-p)))
|
||||
(skip-unless (not (tramp--test-rclone-p)))
|
||||
(skip-unless (not (or (eq system-type 'darwin) (tramp--test-macos-p))))
|
||||
|
||||
;; Newlines, slashes and backslashes in file names are not
|
||||
;; supported. So we don't test. And we don't test the tab
|
||||
|
|
|
@ -72,9 +72,11 @@ Check that the resulting binaries do not differ."
|
|||
:suffix "-comp-stage1.el"
|
||||
(ert-with-temp-file comp2-src
|
||||
:suffix "-comp-stage2.el"
|
||||
(let* ((byte+native-compile t) ; FIXME HACK
|
||||
(let* ((byte+native-compile t)
|
||||
(native-compile-target-directory
|
||||
(car (last native-comp-eln-load-path)))
|
||||
(comp-src (expand-file-name "../../../lisp/emacs-lisp/comp.el"
|
||||
(ert-resource-directory)))
|
||||
(ert-resource-directory)))
|
||||
;; Can't use debug symbols.
|
||||
(native-comp-debug 0))
|
||||
(copy-file comp-src comp1-src t)
|
||||
|
|
Loading…
Add table
Reference in a new issue