]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 months agoAdd major mode for highlighting npmrc files (Bug#77138)
Konstantin Kharlamov [Thu, 20 Mar 2025 16:17:32 +0000 (19:17 +0300)]
Add major mode for highlighting npmrc files (Bug#77138)

* etc/NEWS: mention the new mode.
* lisp/textmodes/conf-mode.el (conf-npmrc-mode-syntax-table): New
variable.
* lisp/textmodes/conf-mode.el (conf-npmrc-mode): New major mode
derived from conf-mode for highlighting .npmrc files.
* lisp/files.el (auto-mode-alist): Associate the new mode with .npmrc
files.

(cherry picked from commit 891f51fe118597ffe58d5d817fff693db3188639)

2 months agoDo not redundantly dump constant forwarding objects
Po Lu [Sat, 29 Mar 2025 06:45:38 +0000 (14:45 +0800)]
Do not redundantly dump constant forwarding objects

* src/pdumper.c (dump_fwd_int, dump_fwd_bool, dump_fwd_obj): Do
not redundantly dump constant forwarding descriptors; restrict
to dumping the objects being forwarded to.
(dump_fwd_buffer_obj): Copy from the dump file into bss rather
than load buffer forwarding descriptors from the dump file
itself.
(dump_fwd_kboard_obj): Delete function.
(dump_fwd): Don't return offset of dumped objects.
(dump_blv): Adjust correspondingly.
(dump_pre_dump_symbol): Improve documentation.  Record offset of
forwarding objects in relation to `emacs_basis' rather than the
dump file.
(dump_symbol): Restore forwarding descriptors to their original
values as static variables in Emacs.  This reduces the size of
dump files by an insignificant 2kb but facilitates certain kinds
of watchpoints on platforms where ASLR cannot be disabled, e.g.,
Android.

(cherry picked from commit 2b7a72b1177a057813f40aacc24fd0cd71f5903a)

2 months ago; Skip commit 8a986e7075dc83c0b87f0928ba767215c3c6a377
Eshel Yaron [Mon, 31 Mar 2025 08:31:29 +0000 (10:31 +0200)]
; Skip commit 8a986e7075dc83c0b87f0928ba767215c3c6a377

2 months ago; Skip commit 8acbde02a03b4cdf8dcfba0472e9eb4a440028f6
Eshel Yaron [Mon, 31 Mar 2025 08:31:13 +0000 (10:31 +0200)]
; Skip commit 8acbde02a03b4cdf8dcfba0472e9eb4a440028f6

2 months ago; Fix package-version values
Eli Zaretskii [Thu, 27 Mar 2025 11:52:22 +0000 (13:52 +0200)]
; Fix package-version values

* lisp/textmodes/rst.el (rst-compile-toolsets):
* lisp/which-key.el (which-key-idle-delay): Fix package-version.

(cherry picked from commit a702f29a00b0362b6060bbf4c83edcdc61b5fe32)

2 months ago; * lisp/which-key.el (which-key-idle-delay): Fix package-version.
Eli Zaretskii [Thu, 27 Mar 2025 11:49:10 +0000 (13:49 +0200)]
; * lisp/which-key.el (which-key-idle-delay): Fix package-version.

(cherry picked from commit a1fbc51dc715bf9eaa89b165f902eef9dd819077)

2 months ago; Skip commit 9a07d64f5c734f08baa741d763640943a7b407e7
Eshel Yaron [Mon, 31 Mar 2025 08:29:27 +0000 (10:29 +0200)]
; Skip commit 9a07d64f5c734f08baa741d763640943a7b407e7

2 months ago; Improve type specifier documentation
Stefan Kangas [Tue, 25 Mar 2025 22:16:11 +0000 (23:16 +0100)]
; Improve type specifier documentation

* doc/lispref/functions.texi (Declare Form): Clarify wording for
precision and consistency; note consequences of incorrect declarations.
* doc/lispref/objects.texi (Type Specifiers): Mention use by the native
compiler; tighten wording.

(cherry picked from commit b3881ac443f2ab279aba3d9687792c71d97554d0)

2 months ago; Improve documentation of "function types"
Eli Zaretskii [Tue, 25 Mar 2025 12:37:17 +0000 (14:37 +0200)]
; Improve documentation of "function types"

* doc/lispref/functions.texi (Declare Form):
* doc/lispref/objects.texi (Type Specifiers): Improve wording and
indexing.

(cherry picked from commit 6a3e2b88d26db4f703c566cf9b508f8c83ea8850)

2 months agoFlymake: remove unneeded 'require'
Eshel Yaron [Mon, 31 Mar 2025 08:23:04 +0000 (10:23 +0200)]
Flymake: remove unneeded 'require'

2 months agoRemove 'checkdoc-minor-mode'
Eshel Yaron [Mon, 31 Mar 2025 08:22:51 +0000 (10:22 +0200)]
Remove 'checkdoc-minor-mode'

2 months ago; Fix build
Eshel Yaron [Sun, 30 Mar 2025 15:24:53 +0000 (17:24 +0200)]
; Fix build

2 months agoscope.el: 'nnoo-define-basics' is unsafe.
Eshel Yaron [Sun, 30 Mar 2025 15:17:18 +0000 (17:17 +0200)]
scope.el: 'nnoo-define-basics' is unsafe.

2 months agoelisp-mode.el: Improve xref-backend-references impl.
Eshel Yaron [Sat, 29 Mar 2025 20:49:00 +0000 (21:49 +0100)]
elisp-mode.el: Improve xref-backend-references impl.

2 months agoscope.el: Fix some errors
Eshel Yaron [Sat, 29 Mar 2025 20:48:32 +0000 (21:48 +0100)]
scope.el: Fix some errors

2 months ago(minibuffer-add-completion-predicate): Evaluate non-symbols.
Eshel Yaron [Sat, 29 Mar 2025 20:45:24 +0000 (21:45 +0100)]
(minibuffer-add-completion-predicate): Evaluate non-symbols.

2 months ago(macroexp-quote): Add optional argument Q.
Eshel Yaron [Sat, 29 Mar 2025 20:44:38 +0000 (21:44 +0100)]
(macroexp-quote): Add optional argument Q.

2 months ago* lisp/help.el (where-is): Remove prefix arg, clean up.
Eshel Yaron [Sat, 29 Mar 2025 20:42:15 +0000 (21:42 +0100)]
* lisp/help.el (where-is): Remove prefix arg, clean up.

2 months ago; (find-function-search-for-symbol): Be cautious with macros.
Eshel Yaron [Fri, 28 Mar 2025 16:57:35 +0000 (17:57 +0100)]
; (find-function-search-for-symbol): Be cautious with macros.

2 months ago; Time Stamps doc: expand the explanation of the examples
Stephen Gildea [Fri, 28 Mar 2025 14:04:03 +0000 (07:04 -0700)]
; Time Stamps doc: expand the explanation of the examples

* doc/emacs/files.texi (Time Stamps): Divide into three sections.
* doc/emacs/emacs.texi: Add new nodes to menu.
* lisp/time-stamp.el: Change reference to new node.

(cherry picked from commit 7527e395499e7ef24249b286dda87d7feb04fb8e)

2 months agoRemove a use of a PUA Unicode character (bug#77328)
Gerd Möllmann [Fri, 28 Mar 2025 13:44:35 +0000 (14:44 +0100)]
Remove a use of a PUA Unicode character (bug#77328)

* lisp/progmodes/eglot.el (eglot-code-action-indicator): Use
U+1F4A1 ELECTRIC LIGHT BULB instead of a PUA character.

(cherry picked from commit 638ec3cd66e51f9287dbea8e8c9d037bfa28ad0e)

2 months ago; Skip commit da9a3f558d1f9cbe44e5e791028234c5a593d945
Eshel Yaron [Fri, 28 Mar 2025 16:57:17 +0000 (17:57 +0100)]
; Skip commit da9a3f558d1f9cbe44e5e791028234c5a593d945

2 months agoMiscellaneous corrections
Po Lu [Fri, 28 Mar 2025 08:10:12 +0000 (16:10 +0800)]
Miscellaneous corrections

* src/buffer.h (BUF_PTR_BYTE_POS): Fix comment.

* src/profiler.c (add_sample): Use BASE_EQ.

(cherry picked from commit ed3d8bb298bf4c7ef39a08392ace3271686cd5c0)

2 months ago; Skip commit 9720e1a96ed78fb86b24787f9986f14bad108c96
Eshel Yaron [Fri, 28 Mar 2025 16:57:10 +0000 (17:57 +0100)]
; Skip commit 9720e1a96ed78fb86b24787f9986f14bad108c96

2 months ago; Skip commit 01f4a0cb6cb15fbbc28e64abd94cb38604a24672
Eshel Yaron [Fri, 28 Mar 2025 16:56:49 +0000 (17:56 +0100)]
; Skip commit 01f4a0cb6cb15fbbc28e64abd94cb38604a24672

2 months ago; Skip commit 364c3dbc12e7b6d41ab449dd495c96d08874310e
Eshel Yaron [Fri, 28 Mar 2025 16:56:42 +0000 (17:56 +0100)]
; Skip commit 364c3dbc12e7b6d41ab449dd495c96d08874310e

2 months ago; Skip commit 59fd8c26be2f7724a5c8cb583383f2025171c660
Eshel Yaron [Fri, 28 Mar 2025 16:30:26 +0000 (17:30 +0100)]
; Skip commit 59fd8c26be2f7724a5c8cb583383f2025171c660

2 months ago; Silence compilation warning
Eshel Yaron [Fri, 28 Mar 2025 16:30:11 +0000 (17:30 +0100)]
; Silence compilation warning

2 months agoHandle better changed default-directory in shell-command
Michael Albinus [Thu, 27 Mar 2025 16:48:20 +0000 (17:48 +0100)]
Handle better changed default-directory in shell-command

* lisp/simple.el (shell-command): Kill buffer-local values of
`shell-file-name' and `shell-command-switch', there could be left
connection-local values.  (Bug#76888)

(cherry picked from commit 37b8acf3781a65d397a946f621893b07a0960de0)

2 months ago; Reorder initialization of module environment functions.
Philipp Stephani [Thu, 27 Mar 2025 13:07:39 +0000 (14:07 +0100)]
; Reorder initialization of module environment functions.

* src/emacs-module.c (initialize_environment): Reorder assignments to
match declaration order in emacs-module.h.

(cherry picked from commit f22af15aef96c95de35a37ee72d2055579d5b297)

2 months agow32: fail gracefully when using invalid glyphs on DWrite
Cecilio Pardo [Thu, 27 Mar 2025 12:26:00 +0000 (13:26 +0100)]
w32: fail gracefully when using invalid glyphs on DWrite

* src/w32dwrite.c (text_extents_internal): Return false instead
of crashing with bad glyph indexes.  (Bug#77196)

(cherry picked from commit 33a46ff565296b491e808aa63d1dbaa2d994bbb5)

2 months agolisp/help-fns.el (help-fns--signature): Pretty print type
Stefan Monnier [Thu, 27 Mar 2025 12:59:06 +0000 (08:59 -0400)]
lisp/help-fns.el (help-fns--signature): Pretty print type

(cherry picked from commit 0cbe17cdb6b44606cfb831358ed83cdbf22a01e3)

2 months agopeg.texi: Fix bug#76555 even a bit more
Yue Yi [Wed, 26 Mar 2025 02:22:08 +0000 (22:22 -0400)]
peg.texi: Fix bug#76555 even a bit more

* doc/lispref/peg.texi (Parsing Expression Grammars):
Fix other part of the grammar of `define-peg-ruleset` example.

(cherry picked from commit ba409f37125a4cf8b99718f9252f7804229663a2)

2 months agopeg.texi: Fix bug#76555 even a bit more
Yue Yi [Wed, 26 Mar 2025 02:20:50 +0000 (22:20 -0400)]
peg.texi: Fix bug#76555 even a bit more

* doc/lispref/peg.texi (Parsing Expression Grammars):
Fix grammar of `define-peg-ruleset` example.

(cherry picked from commit 1d7fe589fad13595a0923bbd23939166f0ad639c)

2 months agoPEG: Fix bug#76555
Stefan Monnier [Wed, 26 Mar 2025 02:17:05 +0000 (22:17 -0400)]
PEG: Fix bug#76555

* doc/lispref/peg.texi (Parsing Expression Grammars):
Fix `define-peg-ruleset` example.

* lisp/progmodes/peg.el (define-peg-rule): Fix indent rule.

(cherry picked from commit 1db7aaceb9fe9b78838ad06199e3fbba830737e9)

2 months agoC++ Mode: Fix some indentation bugs. FIxes bug#19867
Alan Mackenzie [Thu, 27 Mar 2025 10:24:48 +0000 (10:24 +0000)]
C++ Mode: Fix some indentation bugs.  FIxes bug#19867

1. Fix closing paren aligning with trailing comment on line
with matching open paren.
2. Fix indentation of first identifier inside a comma separated
list aligning with the type rather than the subsequent
identifiers.
3. Fix lambda expressions inside a brace list aligning like a
single statement.

* lisp/progmodes/cc-align.el (c-lineup-arglist): Take into
account any preceding comments when lining up the arguments in
the arglist.
(c-lineup-arglist-intro-after-paren): Handle comments properly,
and don't line up the closing parenthesis with a trailing
comment on the first line.
(c-lineup-item-after-paren-at-boi): Also allow a paren to count
as being at BOI when it is preceded only by open parens on that
line.
(c-lineup-runin-statements, c-lineup-ObjC-method-call): Hanle
comments better.

* lisp/progmodes/cc-engine.el (c-forward-comments) Introduce an
optional limit parameter.  Use this limit in calls from
cc-align.el and cc-mode.el.
(c-just-after-func-arglist-p): Handle the presence of a
protection keyword such as "public".
(c-at-bracelist-p): Renamed from c-inside-bracelist-p, after
dropping the accept-in-paren parameter, having removed its
functionality.
(c-looking-at-statement-block-1): New function, based on the
old c-looking-at-statement-block.  Enhanced to handle C++
lambda expressions, and to return the symbol `maybe' when the
contents of a brace delimited block fail to determine whether
it is a statement block.
(c-looking-at-statement-block): Enhanced to examine the context
of a brace delimited block when the contents are ambiguous.
(c-looking-at-c++-lambda-expression): Check the character after
point is a < before calling c-forward-<>-arglist.
(c-add-stmt-syntax): Make the context more accurate by calling
c-looking-at-statement-block.
(c-guess-basic-syntax, CASE 5D.5): Replace the syntactic symbol
topmost-intro-cont with the new symbol class-field-cont,
additionally determining the position of the enclosing brace as
an extra anchor point.
(c-guess-basic-syntax, CASE 5V): New case for an identifier
following a type inside class braces.
(c-guess-basic-syntax, CASE 9): Use
c-looking-at-statement-block to detect a brace list more
accurately.

* lisp/progmodes/cc-fonts.el (c-get-fontification-context):
Rename the call to c-inside-bracelist-p to c-at-bracelist-p.

* lisp/progmodes/cc-langs.el (c-protection-kwds): Add an entry
for java-mode.
(c-stmt-block-only-keywords-regexp): Prevent this regexp also
matching a character preceding the keyword.

* /lisp/progmodes/cc-mode.el (c-before-change-include-<>)
(c-after-change-include-<>): Use the new limit argument to
c-forward-comments.

* lisp/progmodes/cc-styles.el (c-style-alist, "gnu" and "java"
styles): Change the offset for arglist-close to
c-lineup-arglist-close-under-paren.

* lisp/progmodes/cc-vars.el (c-offsets-alist): Introduce the
new syntactic symbol class-field-cont, giving it default
offset +.

* doc/misc/cc-mode.texi (Syntactic Symbols, Class Symbols):
Document the new syntactic symbol class-field-cont.

(cherry picked from commit 555ec43a32ea8f3675c5a9d73ca30609eeaa9013)

2 months ago* lisp/treesit-x.el: Remove unnecessary treesit-generic-mode.
Juri Linkov [Thu, 27 Mar 2025 07:33:45 +0000 (09:33 +0200)]
* lisp/treesit-x.el: Remove unnecessary treesit-generic-mode.

(treesit-generic-mode-list): Remove variable.
(define-treesit-generic-mode): Remove docstring text about hook
that is already added by 'define-derived-mode'.
(treesit-generic-mode): Remove command.

(cherry picked from commit 27c41d026f79ebc46fc8fe202836be0fd375bc1b)

2 months agoDon't write to bottom-right cell on ttys with AutoWrap (bug#77233)
Gerd Möllmann [Thu, 27 Mar 2025 05:10:46 +0000 (06:10 +0100)]
Don't write to bottom-right cell on ttys with AutoWrap (bug#77233)

* src/term.c (tty_write_glyphs): Handle case of writing only one
character in the last column.

(cherry picked from commit 1883a5c7174eeede8fe307e73014628edca6b614)

2 months agoSignal user-error in info--ensure-not-in-directory-node
Stefan Kangas [Wed, 26 Mar 2025 20:39:18 +0000 (21:39 +0100)]
Signal user-error in info--ensure-not-in-directory-node

* lisp/info.el (info--ensure-not-in-directory-node): Change from 'error'
to 'user-error' to reduce 'debug-on-error' frustration.

(cherry picked from commit c00170e92c5c3f68734e0e2d632d6efdcbb9c969)

2 months agoFix vertical cursor motion with wide images and line numbers
Eli Zaretskii [Wed, 26 Mar 2025 17:04:16 +0000 (19:04 +0200)]
Fix vertical cursor motion with wide images and line numbers

* src/xdisp.c (produce_image_glyph): When cropping an image that
exceeds the window's right edge, account for the screen estate
taken by line-number display.  (Bug#77217)

(cherry picked from commit 1e68351d56918cd4d7883bcff629f794660a3134)

2 months ago; Remove obsolete file `java/incrementing-version-code'.
Po Lu [Wed, 26 Mar 2025 12:46:54 +0000 (20:46 +0800)]
; Remove obsolete file `java/incrementing-version-code'.

(cherry picked from commit 8f7790a95ecd88efec97417f1a3b51ba9da5e287)

2 months ago; Fix OOM kill in ert-tests
Eli Zaretskii [Wed, 26 Mar 2025 12:31:41 +0000 (14:31 +0200)]
; Fix OOM kill in ert-tests

* test/lisp/emacs-lisp/ert-tests.el
(ert-test-run-tests-batch-expensive): Mark it 'unstable', as it
might run out of memory on GNU/Linux and on Windows.

(cherry picked from commit 3d5def2677c62aa017b675ced18c9bac2697c439)

2 months ago; Fix 'ert-tests' on MS-Windows
Eli Zaretskii [Wed, 26 Mar 2025 12:22:30 +0000 (14:22 +0200)]
; Fix 'ert-tests' on MS-Windows

* test/lisp/emacs-lisp/ert-tests.el
(ert-test-run-tests-batch-expensive): Skip the test on MS-Windows.

(cherry picked from commit f1715f6411d665442397835ab792ef39051f859a)

2 months agoFurther amendments of child frame handling and documentation
Martin Rudalics [Wed, 26 Mar 2025 08:04:49 +0000 (09:04 +0100)]
Further amendments of child frame handling and documentation

* src/frame.c (frame_subsumes_p): New static function
(delete_frame): On ttys refuse to delete a frame that could be
used as surrogate minibuffer frame by surviving frames.
(store_frame_param): Make sure 'minibuffer' parameter does not
reference a deleted window.  If on a tty it references a live
window, make sure its frame has the same root frame as the frame
where the parameter shall be installed.  Also on ttys make sure
that storing the 'parent-frame' parameter does not assign a
surrogate minibuffer frame a different root frame than that of
any of its client frames.  Further on ttys assert that making a
child a new root frame gives it the dimensions of the terminal.
(Fmouse_position_in_root_frame): Don't use XFRAME before
it's clear that FRAME is a frame.
* doc/lispref/elisp.texi (Top): Add menu for Child Frames section.
* doc/lispref/frames.texi (Buffer Parameters): Mention that
value 'child-frame' is not special for 'minibuffer' parameter on
text terminals.
(Visibility of Frames): Fix description of 'iconify-frame'.
(Raising and Lowering): 'minibuffer-auto-raise' is an option.
(Child Frames): Major rewrite using subsections.  Explain new
and deviant features on text terminals - menu bar access,
reparenting, deleting, visibility and minibuffer-only child
frames.
* etc/NEWS: Remove remark that child frames cannot be
arbitrarily reparented on ttys.

(cherry picked from commit 001359ce7650c1ec110b4c38b6f67274d2d29ad1)

2 months agoUse numeric time zone suffix in ERT explainer.
Philipp Stephani [Wed, 26 Mar 2025 02:32:46 +0000 (03:32 +0100)]
Use numeric time zone suffix in ERT explainer.

This is more robust since the time zone name is system-dependent.

* lisp/emacs-lisp/ert.el (ert--explain-time-equal-p): Use numeric time
zone suffix.

* test/lisp/emacs-lisp/ert-tests.el (ert-test-explain-time-equal-p):
Adapt test.

(cherry picked from commit 2d278a0f2e945eef30752550f900c1c88367fb6b)

2 months ago* test/lisp/gnus/message-tests.el (message-default-buffer-type): New test.
Michael Albinus [Tue, 25 Mar 2025 18:48:06 +0000 (19:48 +0100)]
* test/lisp/gnus/message-tests.el (message-default-buffer-type): New test.

(cherry picked from commit 56248fad53cb1476b9f460044c0c73f986a0bbac)

2 months agobacktrace.el: Remove redundant `put` and `:group`
Stefan Monnier [Tue, 25 Mar 2025 18:16:03 +0000 (14:16 -0400)]
backtrace.el: Remove redundant `put` and `:group`

* lisp/emacs-lisp/backtrace.el: Remove redundant `:group` args.
Prefer # to quote function arguments.
(backtrace-mode): Remove redundant `put`.

(cherry picked from commit ce0c1f44429bc7e9757f6e81019d8c8c12ba5e55)

2 months agobs.el: Janitorial work; most importantly use `special-mode`
Stefan Monnier [Tue, 25 Mar 2025 18:06:32 +0000 (14:06 -0400)]
bs.el: Janitorial work; most importantly use `special-mode`

* lisp/bs.el: Prefer # to quote function arguments.
(bs-mode-font-lock-keywords): Use backquote; quote face names; and use
a list of faces instead of two applications at the same spot.
(bs-sort-buffer-interns-are-last, bs-config--files-and-scratch)
(bs-configurations, bs--intern-show-never): Fix ^$-vs-\`\' confusion.
(bs-mode-map): Remove bindings made redundant by inheritance.
(bs--redisplay): Use `line-number-at-pos`.
(bs--goto-current-buffer): Use `regexp-opt`.
(bs-mode): Inherit from `special-mode`.
(bs--current-buffer, bs--up): Use `point-min`.
(bs--create-header-line): Remove redundant arg.

(cherry picked from commit bb62e435637c7422741189384fa89e2272caec5b)

2 months agobookmark.el: Cosmetic changes
Stefan Monnier [Tue, 25 Mar 2025 17:43:53 +0000 (13:43 -0400)]
bookmark.el: Cosmetic changes

* lisp/bookmark.el: Prefer # to quote function arguments.
(bookmark-watch-bookmark-file): Remove redundant `:group`.
(bookmark-bmenu-mode): Let `define-derived-mode` take care of
`mode-class` property.

(cherry picked from commit bc2b815f098751be700243cd0c47806a0d08dc68)

2 months ago* lisp/treesit-x.el: New file.
Juri Linkov [Tue, 25 Mar 2025 17:41:33 +0000 (19:41 +0200)]
* lisp/treesit-x.el: New file.

* lisp/treesit.el (treesit--copy-queries): New function.
(treesit--install-language-grammar-1): Use it.

https://lists.gnu.org/archive/html/emacs-devel/2025-03/msg01312.html
(cherry picked from commit 050325da303996cf5be7bd13d0a13e0bd12fa25e)

2 months agolisp/gnus/mm-encode.el (mm-default-buffer-type): Obey the mode hierarchy
Stefan Monnier [Tue, 25 Mar 2025 15:23:48 +0000 (11:23 -0400)]
lisp/gnus/mm-encode.el (mm-default-buffer-type): Obey the mode hierarchy

(cherry picked from commit e67f03bf35b97d2898b64281215be6717b659839)

2 months ago* lisp/gnus/mm-encode.el (mm-default-buffer-type): Check `major-mode'.
Michael Albinus [Tue, 25 Mar 2025 14:13:16 +0000 (15:13 +0100)]
* lisp/gnus/mm-encode.el (mm-default-buffer-type): Check `major-mode'.

(cherry picked from commit a15534f32e1a978dee6ec96d6b60b5e755666e70)

2 months agoRename 'buffer-too-small' to 'memory-buffer-too-small'.
Philipp Stephani [Tue, 25 Mar 2025 13:24:04 +0000 (14:24 +0100)]
Rename 'buffer-too-small' to 'memory-buffer-too-small'.

This clarifies that the error isn't talking about an editing buffer.

* src/emacs-module.c (module_memory_buffer_too_small): Rename from
'module_buffer_too_small'.
(module_copy_string_contents, module_extract_big_integer): Adapt
callers.
(syms_of_module): Rename symbol 'buffer-too-small' to
'memory-buffer-too-small'.

(cherry picked from commit 0b1102a70413dabba082d822c200b014464de667)

2 months agoUse better attachment defaults for *diff* buffers
Michael Albinus [Tue, 25 Mar 2025 10:45:29 +0000 (11:45 +0100)]
Use better attachment defaults for *diff* buffers

* lisp/gnus/mm-encode.el (mm-default-buffer-type): New defun.

* lisp/gnus/mml.el (mml-attach-buffer): Use it.

(cherry picked from commit 2adc912d0ec277d9ffe6485e7d81849fab98a2ea)

2 months ago* test/infra/Dockerfile.emba (emacs-tree-sitter): Add gowork grammar.
Michael Albinus [Tue, 25 Mar 2025 08:28:43 +0000 (09:28 +0100)]
* test/infra/Dockerfile.emba (emacs-tree-sitter): Add gowork grammar.

(cherry picked from commit d6c7a77465203bfc277ff489be0f4f4d476615c7)

2 months agooutline-move-subtree-down/up: Fix for non-nil outline-blank-line
James Cherti [Thu, 20 Mar 2025 13:01:36 +0000 (09:01 -0400)]
outline-move-subtree-down/up: Fix for non-nil outline-blank-line

* lisp/outline.el (outline-move-subtree-down):
Include blank line when outline-blank-line is t
(bug#77238).

Copyright-paperwork-exempt: yes
(cherry picked from commit 40bf281c644e3323f010b007c9bfc730e92896aa)

2 months ago(built-in-class--make): Take list of types rather than classes
Stefan Monnier [Tue, 25 Mar 2025 06:09:48 +0000 (02:09 -0400)]
(built-in-class--make): Take list of types rather than classes

Consolidate the conversion from types to classes into
`built-in-class--make` instead of duplicating it in ever caller.

* lisp/emacs-lisp/cl-preloaded.el (built-in-class--make): Take list of
types rather than classes.
(cl--define-built-in-type): Simplify accordingly.

(cherry picked from commit 7ec0ee742da17864b554e2cf4384d2a12baaf1e8)

2 months ago; * msdos/emacs.djl: Don't interfere with the order of other symbols.
Po Lu [Tue, 25 Mar 2025 02:37:09 +0000 (10:37 +0800)]
; * msdos/emacs.djl: Don't interfere with the order of other symbols.

(cherry picked from commit c3492b969da3b117904a070a2617b31dd965f109)

2 months agoFix the DJGPP build
Po Lu [Tue, 25 Mar 2025 02:34:40 +0000 (10:34 +0800)]
Fix the DJGPP build

* msdos/emacs.djl (.bss): Guarantee that lread.o is 8-byte
aligned.

* msdos/sed2v2.inp (ALIGNOF_INT, ALIGNOF_LONG)
(ALIGNOF_LONG_LONG): Correct typos.

* src/term.c (tty_free_frame_resources): Synchronize with
non-DOS variant.

(cherry picked from commit 49eab999f13fede351ab7700c1469ba6cbf3d6b8)

2 months agoMimic behavior of 'aref' when signalling out-of-range errors.
Philipp Stephani [Tue, 25 Mar 2025 01:56:01 +0000 (02:56 +0100)]
Mimic behavior of 'aref' when signalling out-of-range errors.

The convention used by 'aref' and friends is that for
'args-out-of-range', the error data is a list (SEQ INDEX).  Use the same
convention for the vector-related module functions.

* src/emacs-module.c (check_vec_index): Use vector and index as error
data.

(cherry picked from commit 8efcdcab8658ff9537fe483e0a12875cca90a527)

2 months agoDon't use 'args-out-of-range' error for too-small buffers.
Philipp Stephani [Tue, 25 Mar 2025 01:50:37 +0000 (02:50 +0100)]
Don't use 'args-out-of-range' error for too-small buffers.

'args-out-of-range' means that some index argument isn't valid for a
given sequence/range, which isn't the case here.  Instead, define a new
error symbol to mean "user-supplied buffer is too small."  Since we
never specified nor tested which error symbol was signalled in this
case, changing it shouldn't cause severe breakages.

* src/emacs-module.c (module_buffer_too_small): New helper function.
(module_copy_string_contents, module_extract_big_integer): Use it.
(syms_of_module): Define 'buffer-too-small' error symbol.

(cherry picked from commit 96a1a07fb1f9d8f3f41f3893ed1b624246a76c43)

2 months agoAdd an ERT explainer for 'time-equal-p'.
Philipp Stephani [Mon, 24 Mar 2025 23:12:20 +0000 (00:12 +0100)]
Add an ERT explainer for 'time-equal-p'.

* lisp/emacs-lisp/ert.el (ert--explain-time-equal-p): New explainer
function.

* test/lisp/emacs-lisp/ert-tests.el (ert-test-explain-time-equal-p): New
test.

(cherry picked from commit 8be7e98557df8ba708b3f7e285a29f279b609e46)

2 months agolisp/loadup.el (max-lisp-eval-depth): Bump up a bit
Stefan Monnier [Mon, 24 Mar 2025 21:31:35 +0000 (17:31 -0400)]
lisp/loadup.el (max-lisp-eval-depth): Bump up a bit

This is to accommodate the deep backquoted thingy in `cus-start.el`.

(cherry picked from commit cf6d0b48d83ce93e792ef60f6f55f61ebb6f30cf)

2 months agoExpose some lambdas currently hidden in quoted data
Stefan Monnier [Mon, 24 Mar 2025 21:14:26 +0000 (17:14 -0400)]
Expose some lambdas currently hidden in quoted data

* lisp/language/chinese.el ("Chinese-GB", "Chinese-BIG5")
("Chinese-CNS", "Chinese-EUC-TW", "Chinese-GBK"):
* lisp/isearch.el (isearch-menu-bar-map):
* lisp/international/mule-cmds.el (language-info-custom-alist):
* lisp/font-lock.el (cpp-font-lock-keywords):
* lisp/cus-start.el (<toplevel>): Expose lambda-expressions to the compiler.

(cherry picked from commit f66c92a793557f6ac14f6dd07ad97f3a6057b3c9)

2 months ago(byte-compile-maybe-guarded): Make its code edebuggable
Stefan Monnier [Mon, 24 Mar 2025 21:12:16 +0000 (17:12 -0400)]
(byte-compile-maybe-guarded): Make its code edebuggable

* lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function): Hoist
subexpression out of `if`.
(byte-compile-variadic-numeric, byte-compile--cond-vars)
(byte-compile--cond-switch-prefix, byte-compile-file-form-defalias):
Obey `lexical-binding` when evaluating the code we're compiling.
(byte-compile--maybe-guarded): New function, extracted from
`byte-compile-maybe-guarded`.
(byte-compile-maybe-guarded): Use it so we can edebug the code.

(cherry picked from commit c26862a6c9f2d46f41b4f91972d139a138cb2edf)

2 months ago(buffer-local-set-state): Optimize away unused data
Stefan Monnier [Mon, 24 Mar 2025 21:08:26 +0000 (17:08 -0400)]
(buffer-local-set-state): Optimize away unused data

* lisp/subr.el (buffer-local-set-state--get): Simplify by making it
take only the vars rather than the pairs.
(buffer-local-set-state): Adjust accordingly so we don't needlessly keep
part of the source code in the compiled code.

(cherry picked from commit e343055f63b7329292641d0bca7d03183f35d871)

2 months agoNew test for function-get
Stefan Kangas [Mon, 24 Mar 2025 20:20:11 +0000 (21:20 +0100)]
New test for function-get

* test/lisp/subr-tests.el (subr-tests-function-get): New test.

(cherry picked from commit 4194d5af4585fedfc7f148da72431a67a9c26045)

2 months ago; Skip commit 119931a9cee4c25e7c5536c9bb75c038a1cd7cd3
Eshel Yaron [Tue, 25 Mar 2025 18:18:29 +0000 (19:18 +0100)]
; Skip commit 119931a9cee4c25e7c5536c9bb75c038a1cd7cd3

2 months ago; Skip commit 0c32f7521b12c13ac0c7fff09981054e106989c6
Eshel Yaron [Tue, 25 Mar 2025 18:18:11 +0000 (19:18 +0100)]
; Skip commit 0c32f7521b12c13ac0c7fff09981054e106989c6

2 months agolog-edit: Don't add rear-nonsticky to font-lock-extra-managed-props
Sean Whitton [Mon, 24 Mar 2025 02:29:17 +0000 (10:29 +0800)]
log-edit: Don't add rear-nonsticky to font-lock-extra-managed-props

* lisp/vc/log-edit.el (log-edit-mode): Don't add rear-nonsticky
to font-lock-extra-managed-props (bug#77197).  Investigated by
Paul D. Nelson <ultrano@gmail.com>.  Fix due to Stefan Monnier.

(cherry picked from commit 0503766495cabcf6e891094e723026d663e1c580)

2 months agoAdd basic and low-level tests for hash tables
Stefan Kangas [Sun, 23 Mar 2025 23:56:14 +0000 (00:56 +0100)]
Add basic and low-level tests for hash tables

* test/src/fns-tests.el (test-hash-table)
(test-hash-table-wrong-keywords, test-remhash, test-clrhash)
(test-hash-table-p, test-hash-table-count, test-maphash)
(test-copy-hash-table): New tests.

(cherry picked from commit 5830d1fa6552ad584daa574135e704d1f1e0220a)

2 months agoImprove docstring of cl-defstruct accessors
Stefan Kangas [Sun, 23 Mar 2025 23:33:37 +0000 (00:33 +0100)]
Improve docstring of cl-defstruct accessors

* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Improve generated
docstring by not leaking the internal CL-X argument name, preferring X
instead.  Set property 'document-generalized-variable', used below.
* lisp/help-fns.el (help-fns--generalized-variable): When function has
non-nil property 'document-generalized-variable', document it as a
generalized variable.

(cherry picked from commit 1b56e0f1694650c3c567b90e1ae3caa0bfea209e)

2 months agoAdd a choice to 'dired-movement-style' to restore the previous behavior
Juri Linkov [Sun, 23 Mar 2025 17:48:28 +0000 (19:48 +0200)]
Add a choice to 'dired-movement-style' to restore the previous behavior

* lisp/dired.el (dired-movement-style): Add new values
'bounded-files' and 'cycle-files' (bug#76596).
(dired--move-to-next-line): Use new values for users
who prefer the default behavior of Emacs 30.1.

(cherry picked from commit bc51fabc108ceccd4824ba6c6f0c29f143ebf47a)

2 months ago; Fix some markup in doc/lispref/commands.texi.
Basil L. Contovounesios [Sun, 23 Mar 2025 17:13:52 +0000 (18:13 +0100)]
; Fix some markup in doc/lispref/commands.texi.

(cherry picked from commit 10d534023a9aa1ffdfa0109f114630ff2eb9cf65)

2 months agoImprove docstring of should-error
Stefan Kangas [Sun, 23 Mar 2025 16:40:22 +0000 (17:40 +0100)]
Improve docstring of should-error

* lisp/emacs-lisp/ert.el (should-error): Improve docstring.

(cherry picked from commit c2c287b3252e2cd3223f2e2d0ef96f29e024b47b)

2 months ago* lisp/treesit.el (treesit-indent-region): Handle markers (bug#77077).
Juri Linkov [Sat, 22 Mar 2025 18:37:35 +0000 (20:37 +0200)]
* lisp/treesit.el (treesit-indent-region): Handle markers (bug#77077).

Ensure that markers are converted to integers for 'beg' and 'end'.

(cherry picked from commit 84abd43f42fec623d4939e3557a1da2b83e08562)

2 months ago; * lisp/simple.el: Drop some cruft.
Eshel Yaron [Tue, 25 Mar 2025 18:14:30 +0000 (19:14 +0100)]
; * lisp/simple.el: Drop some cruft.

2 months agoDrop cl-font-lock.el
Eshel Yaron [Mon, 24 Mar 2025 10:14:10 +0000 (11:14 +0100)]
Drop cl-font-lock.el

2 months ago; Move time-stamp release info from symbol-releases.eld to NEWS
Stephen Gildea [Sun, 23 Mar 2025 17:37:21 +0000 (10:37 -0700)]
; Move time-stamp release info from symbol-releases.eld to NEWS

Update the appropriate historical NEWS files with time-stamp feature
releases.  Suggested by Stefan Monnier.  All dates are from my notes.

* etc/symbol-releases.eld: Remove time-stamp,
reverting commit 69210eb84e of 17 March.
* etc/NEWS.19:
* etc/NEWS.20: Add 'time-stamp' feature paragraphs that
should have been written then.
* etc/NEWS.21: Add missing quotes, so symbol names can be identified.

(cherry picked from commit 9e005e9da06f71441e643f7ecbe309e35f68680a)

2 months agoFix a nativecomp type propagation bug (bug#74771)
Andrea Corallo [Wed, 11 Dec 2024 23:06:43 +0000 (00:06 +0100)]
Fix a nativecomp type propagation bug (bug#74771)

* lisp/emacs-lisp/comp.el (comp--add-cond-cstrs): Don't emit negated
cstr.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test.

(cherry picked from commit d565a6747a2bb3c6699a95e60e5f522f80a1ca0a)

2 months agocheckdoc: Delete redundant check for wide docstrings
Stefan Kangas [Sun, 23 Mar 2025 16:22:51 +0000 (17:22 +0100)]
checkdoc: Delete redundant check for wide docstrings

With Emacs 28.1, wide docstrings are now flagged by the byte-compiler.
The logic in the byte-compiler for catching these issues is complex
and continuously evolving, particularly to avoid incorrectly flagging
`substitute-command-keys` substitutions.  Unfortunately, the checkdoc
implementation incorrectly flags correct docstrings as overly wide.

Rather than duplicating the byte-compiler logic in checkdoc, which
would introduce unnecessary maintenance overhead, we acknowledge that
this check is now redundant and remove it.  Users utilizing the
byte-compiler, whether manually or through `flymake`, will continue to
be warned about this issue.

* lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
Remove check for overly wide docstrings; duplicates byte-compiler
logic.

(cherry picked from commit 408ad273eeadf72dea11b89ea2a44f36ea0e2295)

2 months agoPatch bug#77128
Po Lu [Sun, 23 Mar 2025 11:43:13 +0000 (19:43 +0800)]
Patch bug#77128

* src/pgtkterm.c (pgtk_flash): Destroy `cr_surface_visible_bell'
if still present.  (bug#77128)

(cherry picked from commit 7d14e35498209e45290f5c1297ded6d7175bf1ea)

2 months agoImprove documentation of cl-defstruct
Stefan Kangas [Sun, 23 Mar 2025 00:30:37 +0000 (01:30 +0100)]
Improve documentation of cl-defstruct

* doc/misc/cl.texi (Structures): Organize more logically, slightly
expand, and add more examples.

(cherry picked from commit 81404bf3c2695dbd5a78e40ea8dd0547c1cca30c)

2 months agoAvoid rare crashes due to "C-g C-g" on TTY frames
Eli Zaretskii [Sun, 23 Mar 2025 11:17:06 +0000 (13:17 +0200)]
Avoid rare crashes due to "C-g C-g" on TTY frames

* src/term.c (tty_send_additional_strings): Don't use SBYTES, as
this function could be called in the middle of GC.  (Bug#77205)

(cherry picked from commit 939a2a3c2dd60503c6ebef839b5f05f962d405ce)

2 months ago; * src/dispnew.c (check_window_matrix_pointers): Fix last change.
Eli Zaretskii [Sun, 23 Mar 2025 09:35:25 +0000 (11:35 +0200)]
; * src/dispnew.c (check_window_matrix_pointers): Fix last change.

(cherry picked from commit 467aba67db407e930fc5de6d4a4ae0cd6fc106df)

2 months agoAvoid rare segfaults in 'check_matrix_pointers'
Eli Zaretskii [Sun, 23 Mar 2025 09:30:17 +0000 (11:30 +0200)]
Avoid rare segfaults in 'check_matrix_pointers'

* src/dispnew.c (check_window_matrix_pointers): No-op if the
window's frame not ready yet.  (Bug#77200)

(cherry picked from commit e20e8538610ed8b78e0b9f9cc3121c1102a8aaf0)

2 months agoConsistent wording in top-level headers in NEWS.19
Stephen Gildea [Sun, 23 Mar 2025 00:07:05 +0000 (17:07 -0700)]
Consistent wording in top-level headers in NEWS.19

* etc/NEWS.19: Put the word "Emacs" in front of each version number.
This change lets 'help-fns--first-release' parse the headers, which
produces more accurate "probably introduced at" versions from
'describe-function' and 'describe-variable'.

(cherry picked from commit aa12cebaa684d7b3ea7e131666d33bcc71b45625)

2 months agoReduce code duplication in ns_set_appearance
Stefan Kangas [Sat, 22 Mar 2025 21:41:53 +0000 (22:41 +0100)]
Reduce code duplication in ns_set_appearance

* src/nsterm.h (ns_set_appearance_1): Declare.
* src/nsterm.m (ns_set_appearance_1): Break out new function...
(ns_set_appearance): ...here.
* src/nsfns.m (Fx_create_frame): Use above new function.

(cherry picked from commit 92b373318d2401f98f0ad5590ef799904c96506f)

2 months agoEnsure .dir-locals-2.el behavior as documented (bug#75890)
shipmints [Sun, 16 Feb 2025 19:30:45 +0000 (14:30 -0500)]
Ensure .dir-locals-2.el behavior as documented (bug#75890)

* lisp/files.el
(dir-locals--all-files): New &optional 'base-el-only' argument.
(dir-locals--base-file): New function.
(dir-locals-find-file): 'locate-dominating-file' only for the base
.dir-locals.el.

* test/lisp/files-tests.el
(files-test-dir-locals-2-solo): New test.
* test/lisp/files-resources/dir-locals-2-solo: New test support.
(files-test-dir-locals-2-paired): New test.
* test/lisp/files-resources/dir-locals-and-2: New test support.

(cherry picked from commit 81c21d89ede8dfa664b7a3700acd7bf4c9fa54aa)

2 months agoAvoid rare segfaults due to crazy creation of new child frames
Eli Zaretskii [Sat, 22 Mar 2025 19:32:16 +0000 (21:32 +0200)]
Avoid rare segfaults due to crazy creation of new child frames

* src/dispnew.c (combine_updates, combine_updates_for_frame): Skip
frames and child frames that were not yet completely made.
(Bug#77046)

(cherry picked from commit 62368f93a5d2cf1b961626c705c032e15b1d5f43)

2 months agoMake isearch lazy-highlights non-sticky at both ends (bug#77121)
Sora Takai [Wed, 19 Mar 2025 14:50:38 +0000 (23:50 +0900)]
Make isearch lazy-highlights non-sticky at both ends (bug#77121)

Copyright-paperwork-exempt: yes
(cherry picked from commit 893c40c63e8e30eae6be577670612aa21768d312)

2 months agoRemove ctags program
Paul Eggert [Sat, 22 Mar 2025 18:19:41 +0000 (11:19 -0700)]
Remove ctags program

Remove our old ctags and suggest Universal Ctags instead.
This fixes a FIXME in lib-src/Makefile.in and speeds up compilation
quite a bit on my older CPU when I compile with --enable-gcc-warnings.
It also lessens installation and runtime footprint. (Bug#76322)
* .gitignore: Remove lib-src/ctags.
* admin/authors.el (authors-renamed-files-alist): Remove ctags.1.
* admin/check-man-pages: ctags.1 is no longer a special case.
* admin/quick-install-emacs (PUBLIC_LIBSRC_BINARIES): Remove ctags.
* cross/Makefile.in (LIBSRC_BINARIES): Remove lib-src/ctags.
* doc/man/ctags.1, lib-src/ctags.c: Remove.
* java/Makefile.in (CROSS_LIBSRC_BINS): Remove ctags.
* lib-src/Makefile.in (INSTALLABLES): Remove ctags${EXEEXT}.
(ctags${EXEEXT}): Remove.
* lib-src/etags.c (CTAGS): Remove.  All uses replaced by ...
(ctags): ... this new static var.
(STDIN): Remove macro.  All uses replaced by new STDIN_OPTION constant.
(CTAGS_OPTION, STDIN_OPTION): New contants.
(longopts): New --ctags option.
(ctags_default_C_help): New constant,
to override default_C_help at runtime.
(default_C_help): Now always the etags version.
(C_LANG_NAMES_INDEX): New macro.
(print_language_names): Do not assume etags.
(PROGRAM_NAME): Remove.  All uses removed.
(print_help): Document --ctags if PRINT_UNDOCUMENTED_OPTIONS_HELP.
(main): Support new --ctags option, and support all [ce]tags options.
* test/manual/etags/Makefile (CTAGS_PROG):
Now etags --ctags, since there is no longer a ctags.

(cherry picked from commit 25d757535884da71ace29fd80b8b24dd3a8f9017)

2 months ago; Another Tramp fix
Michael Albinus [Sat, 22 Mar 2025 16:49:53 +0000 (17:49 +0100)]
; Another Tramp fix

* lisp/net/tramp.el (tramp-skeleton-file-truename):
Remove possible trailing slash.

(cherry picked from commit 2658f4eab96aaad7f52245c2422bbfa51db9b207)

2 months agoFix usage of string data pointers in xfaces.c
Eli Zaretskii [Sat, 22 Mar 2025 16:45:38 +0000 (18:45 +0200)]
Fix usage of string data pointers in xfaces.c

* src/xfaces.c (tty_defined_color): Don't use SSDATA pointers
across calls to Lisp.  (Bug#77046)

(cherry picked from commit 9816c61c4876ac2acdc6d9efb73c4270846b5555)

2 months ago; Skip commit 1364bbc6a5cb8fd7816674c685bba8db7de8ada7
Eshel Yaron [Sun, 23 Mar 2025 19:25:32 +0000 (20:25 +0100)]
; Skip commit 1364bbc6a5cb8fd7816674c685bba8db7de8ada7

2 months ago; Fix last change (bug#76980)
Eli Zaretskii [Sat, 22 Mar 2025 12:14:22 +0000 (14:14 +0200)]
; Fix last change (bug#76980)

* lisp/window.el (window--state-normalize-buffer-name): Doc fix.

* doc/lispref/windows.texi (Window Configurations): Add indexing.

(cherry picked from commit 42e116bb1095f47cd0d57bbb6ee7b73d2d9f506e)

2 months ago'window-state-normalize-buffer-name' option for `uniquify' buffers
shipmints [Wed, 12 Mar 2025 16:14:50 +0000 (12:14 -0400)]
'window-state-normalize-buffer-name' option for `uniquify' buffers

If 'window-state-normalize-buffer-name' is non-nil, 'window-state-get'
will normalize stored buffer names, making them easier to restore for
users that use 'uniquify' buffer naming.
* doc/lispref/windows.texi (Window Configurations): Document
'window-state-normalize-buffer-name'.
* lisp/window.el (window-state-normalize-buffer-name): New defvar.
(window--state-normalize-buffer-name): New function.
(window--state-get-1): Call 'window--state-normalize-buffer-name'
rather than 'buffer-name'.
* etc/NEWS: Announce 'window-state-normalize-buffer-name'.
(Bug#76980)

(cherry picked from commit 4266514dc88345d5c1bc1ab6dd8576dd47caf57f)

2 months ago; Skip commit 1aebb026112016fb38ff458bd50c80be0f139538
Eshel Yaron [Sun, 23 Mar 2025 19:25:06 +0000 (20:25 +0100)]
; Skip commit 1aebb026112016fb38ff458bd50c80be0f139538

2 months agoDelete now unused constants in nsterm.h
Stefan Kangas [Sat, 22 Mar 2025 11:47:06 +0000 (12:47 +0100)]
Delete now unused constants in nsterm.h

* src/nsterm.h (NS_DUMPGLYPH_NORMAL, NS_DUMPGLYPH_CURSOR)
(NS_DUMPGLYPH_FOREGROUND, NS_DUMPGLYPH_MOUSEFACE): Delete now unused
constants.

(cherry picked from commit 20687ab61715889cb0670c9351983154e6620c1b)

2 months ago; Clean up comments in nsterm.h
Stefan Kangas [Sat, 22 Mar 2025 11:33:47 +0000 (12:33 +0100)]
; Clean up comments in nsterm.h

(cherry picked from commit 69013ed73d8fd5e8827335c3e1be47dc652905a6)