aboutsummaryrefslogtreecommitdiffstats
path: root/src/lread.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove vla.hPaul Eggert2026-02-131-1/+0
| | | | | | | | Uses of <vla.h>’s macro VLA_ELEMS were removed some time ago. * admin/merge-gnulib (GNULIB_MODULES): Remove vla. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. * lib/vla.h: Remove. * src/fns.c, src/lread.c: Do not include <vla.h>.
* Remove struct Lisp_ObjfwdHelmut Eller2026-02-121-1/+1
| | | | | | | | | | * src/lisp.h (struct Lisp_Objfwd): Deleted. (struct Lisp_Fwd): Replace it with objvar field. (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_LISP_NOPROX): Use the field. * src/lread.c (defvar_lisp): Updated as needed. * src/pdumper.c (dump_field_fwd): Use the field. * src/data.c (XOBJVAR): Renamed and updated from XOBJFWD. (do_symval_forwarding, store_symval_forwarding): Use it.
* Introduce a struct Lisp_FwdHelmut Eller2026-02-121-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This contains the type and an union of Lisp_Objfwd, Lisp_Intfwd etc. lispfwd is now a pointer to a struct Lisp_Fwd; the void *fwdptr field is gone. * src/lisp.h (struct Lisp_Fwd): New. (Lisp_Intfwd, Lisp_Boolfwd, Lisp_Objfwd, Lisp_Buffer_Objfwd) (Lisp_Kboard_Objfwd): The type is in in Lisp_Fwd. (lispwfd): Is now a pointer to struct Lisp_Fwd. (SYMBOL_BLV, SET_SYMBOL_FWD, XFWDTYPE, BUFFER_OBJFWDP): Update accordingly. (defvar_lisp, defvar_lisp_nopro, defvar_bool, defvar_int) (defvar_kboard): These all take now a Lisp_Fwd. (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT) (DEFVAR_KBOARD): Update for new types. * src/lread.c (defvar_int, defvar_bool, defvar_lisp_nopro) (defvar_lisp, defvar_kboard): Update for new types. * src/pdumper.c (dump_field_fwd, dump_blv): Update accordingly. (dump_fwd_int, dump_fwd_bool, dump_fwd_obj, dump_fwd_buffer_obj) (dump_fwd): Deleted. * src/buffer.c (DEFVAR_PER_BUFFER, defvar_per_buffer, buffer_local_value) (set_buffer_internal_1): Update accordingly for new types. * src/data.c (XBOOLFWD, XKBOARD_OBJFWD, XFIXNUMFWD, XOBJFWD, boundp) (store_symval_forwarding, swap_in_global_binding) (swap_in_symval_forwarding, find_symbol_value, set_internal) (default_value, set_default_internal, make_blv, Fmake_local_variable): Update accordingly.
* ; * src/lread.c (Feval_buffer): Fix typo in docstring.Michael Albinus2026-01-031-1/+1
|
* ; Add 2026 to copyright years.Sean Whitton2026-01-011-1/+1
|
* December 2025 spelling fixesPaul Eggert2025-12-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the fixes are to continue to use American rather than British spelling. * doc/misc/modus-themes.org (my-modus-themes-engraved-faces): Fix misspelled ‘:foreground’s. * etc/themes/modus-themes.el (modus-themes-faces): Fix misspelled ‘modus-themes-bold’. * lisp/emacs-lisp/rx.el (rx--normalize-char-pattern): Rename from rx--normalise-char-pattern. (rx--optimize-or-args): Rename from rx--optimise-or-args. * lisp/frame.el (frame--special-parameters): Fix misspelled "right-divider-width". * lisp/net/tramp.el (tramp-fingerprint-prompt-regexp): Use American spelling “centered”, to match current libfprintf. * lisp/org/org-fold-core.el (org-fold-core--optimize-for-huge-buffers): Rename from org-fold-core--optimise-for-huge-buffers. (org-fold-core-update-optimization): Rename from org-fold-core-update-optimisation, leaving an alias behind. (org-fold-core-remove-optimization): Rename from org-fold-core-remove-optimisation, leaving an alias behind. * lisp/org/org.el (org-advertized-archive-subtree): This alias is now obsolete. * lisp/play/zone.el (zone-ignored-buffers): Fix misspelling of ‘zone--buffer-encrypted-p’. * lisp/progmodes/csharp-mode.el (csharp-ts-mode-faces): Fix misspelling of ‘csharp’ group. * lisp/vc/vc.el (vc-clonable-backends-custom-type): Rename from vc-cloneable-backends-custom-type, leaving an alias behind. * test/lisp/emacs-lisp/bytecomp-tests.el: (bytecomp-tests--warn-arity-non-compiled-callee): Rename from bytecomp-tests--warn-arity-noncompiled-callee. (bytecomp-test-defface-spec): Reword a deliberate misspelling of “default” that is so common I don’t want it to pollute the spelling dictionary. * test/lisp/emacs-lisp/package-vc-tests.el: (package-vc-tests-preserve-artifacts): Rename from package-vc-tests-preserve-artifacts. * test/lisp/eshell/em-prompt-tests.el: (em-prompt-test/forward-backward-paragraph-1): Reword a deliberate misspelling of “goodbye” that is so common I don’t want it to pollute the spelling dictionary.
* (load-history, lisp-directory): Don't `file-truename`Stefan Monnier2025-11-051-1/+1
| | | | | | | | | | | | | | | | | | This fixes problems in some cases of out-f-tree builds (bug#79694, bug#62099, bug#64806). The use of true names in `load-history` dates back to to commits 33d74677e739 and 6bb6da3ec173 by Alan Mackenzie <acm@muc.de> in May 24 2006, but that was reverted by Paul Eggert's commit dff4f9c759f5 on Sep 18 2019. * lisp/startup.el (command-line): Don't `file-truename` `lisp-directory`. * src/lread.c (syms_of_lread) <load-history>: Adjust docstring, to reflect the fact that the files there aren't "true names". * doc/lispref/loading.texi (Hooks for Loading): Adjust accordingly. Also massage the text to reflect the fact that nowadays features are more common than file names as arguments to `with-eval-after-load`.
* Prevent shorthand inheritance when loading .elc files (bug#79485)João Távora2025-10-231-0/+7
| | | | | | | | | | | | | | Loading .elc files doesn't go through 'load-with-code-conversion' as usual, but since these files are still 'read', we must still take care to bind read-symbol-shorthands to nil around that. The process is simpler than in 'load-with-code-conversion' because .elc files cannot have read-symbol-shorthands cookies, so the binding is always to nil. If we don't do this, the symbols in the .elc will be subject to shorthand manipulation if there's an active binding in the recursive load stack. * src/lread.c (readevalloop): Bind read-symbol-shorthands to nil. (syms_of_lread): Add Qread_symbol_shorthands.
* ; * src/lread.c (from_buffer_p): New abstraction.Mattias Engdegård2025-08-211-2/+8
|
* Signal end-of-file with more correct dataSpencer Baugh2025-08-191-12/+16
| | | | | | | | | | | | | end_of_file_error previously always signaled end-of-file with load-true-file-name if that was non-nil (and a string). However, this might be the wrong thing to do; for example, if a file being loaded calls read on a buffer. * src/lread.c (end_of_file_error): <source>: New argument; check it to determine what data to signal with. (bug#68546) (read_char_escape, read_char_literal, read_string_literal) (skip_space_and_comments, read0): Pass source to end_of_file_error.
* Refactor reader to use readbuf_t in more placesMattias Engdegård2025-07-301-98/+68
| | | | | | | | | | Simplify the code by using the already existing dynamic string buffer type. This is a refactoring; performance isn't measurably affected. * src/lread.c (grow_read_buffer): Dissolve into... (readbuf_grow): ...here, simplifying the code. (add_char_to_buffer): Check for growth before adding char, not after. (read_integer, read_string_literal): Use readbuf_t.
* Move keyboard input functions from lread.c to keyboard.cMattias Engdegård2025-07-301-270/+0
| | | | | | | | | | | | These have nothing to do with the Lisp reader at all. Suggested by Lynn Winebarger (bug#79035). * src/lread.c (read_filtered_event, Fread_char, Fread_event) (Fread_char_exclusive, Qascii_character): Move... * src/keyboard.c: ...here. * test/src/lread-tests.el (test-inhibit-interaction): Move... * test/src/keyboard-tests.el (keyboard-inhibit-interaction): ...here.
* Check for end-of-file when reading character escapes (bug#79097)Mattias Engdegård2025-07-251-0/+2
| | | | | * src/lread.c (read_char_escape): Add check. * test/src/lread-tests.el (lread-char-escape-eof): New test.
* Speed up unintern, and fix symbol shorthand edge case (bug#79035)Mattias Engdegård2025-07-191-65/+49
| | | | | | | | | | Don't do a full lookup if the argument is a symbol, and only compute the hash index once. Fix a bug that occurred when there is another symbol whose shorthand is equal to the true name of the symbol being removed. * src/lread.c (Funintern): Rewrite for speed and correctness. (oblookup_last_bucket_number, oblookup): Remove now unused variable. * test/src/lread-tests.el (lread-unintern): New test.
* Remove the variable load-convert-to-unibyteMattias Engdegård2025-07-191-25/+8
| | | | | | | | | It has been ineffective since 2002. Suggested by Lynn Winebarger. * src/lread.c (Fload, readevalloop_1, readevalloop, Feval_buffer) (Feval_region, syms_of_lread): Remove the variable and its propagation. * etc/NEWS: Announce.
* Unintern Qget_file_char and Qget_emacs_mule_file_charMattias Engdegård2025-07-101-3/+10
| | | | | | | | These symbols are used in the reader as special constants and can't be passed from Lisp (Emacs would crash). * src/lread.c (syms_of_lread): Unintern. (init_source): Use BASE_EQ.
* Speed up low-level parts of the reader and refactorMattias Engdegård2025-07-101-392/+415
| | | | | | | | | | | | | | | | | | | | | | | | | | | Inspect the given 'readcharfun' source once, before using it, instead of for each character read. This moves a bunch of branches away from the critical path, with separate functions for different source types. Replace some preprocessor macros with functions. * src/lread.c (READCHAR, UNREAD, READCHAR_REPORT_MULTIBYTE) (FROM_FILE_P): Remove; use corresponding functions instead. All callers adapted. (source_t): New struct that takes the place of the `readcharfun` and `readbyte` arguments in many places. (init_source) (source_buffer_get, source_buffer_unget) (source_marker_get, source_marker_unget) (source_string_get, source_string_unget) (source_file_get, source_file_unget) (source_function_get, source_function_unget) (from_file_p, unreadbyte_from_file): New. (readbyte_from_stdio): Replace `readbyte_from_file`. (readchar, unreadchar): Rewrite. (lisp_file_lexical_cookie, readevalloop, read_internal_start): Create a source_t for use during reading. All signatures and functions called adapted. (read_char_escape): Remove check for an error that can no longer occur.
* ; * src/lread.c (read_internal_start): Simplify.Mattias Engdegård2025-07-091-11/+3
| | | | This removes code that became dead in the non-recursive reader reform.
* Cheaper char counting when reading symbolsMattias Engdegård2025-07-071-4/+2
| | | | * src/lread.c (read0): Strength reduction.
* Refactor buffering code in the Lisp readerMattias Engdegård2025-07-071-71/+77
| | | | | | | | | | | Abstract the buffering in the reader with a struct and plain functions instead of rather unhygienic preprocessor macros. * src/lread.c (READ_AND_BUFFER, INVALID_SYNTAX_WITH_BUFFER): Removed, replaced with... (readbuf_t, readbuf_grow, add_char_to_buffer, read_and_buffer) (invalid_syntax_with_buffer): ...these new functions and struct. (read0): Use new code instead of old preprocessor macros.
* ; * src/lread.c (skip_lazy_string): more precise commentMattias Engdegård2025-07-071-2/+2
| | | | The bool vector compat hack is there for a bug in Emacs 19 only.
* Read non-ASCII chars from unibyte string sources as raw bytesMattias Engdegård2025-07-071-0/+2
| | | | | | | Previously, latin-1 was incorrectly assumed (bug#70988). * src/lread.c (readchar): Convert to raw byte. * test/src/lread-tests.el (lread-unibyte-string-source): New test.
* Read characters from functions as multibyteMattias Engdegård2025-07-071-0/+3
| | | | | | | Previously, latin-1 was incorrectly assumed (bug#70988). * src/lread.c (readchar): Set multibyte flag. * test/src/lread-tests.el (lread-function-source): New test.
* Speed up loading modulesLin Sun2025-05-241-1/+17
| | | | | | | * src/lread.c (get-load-suffixes): Don't try loading modules with suffixes from 'jka-compr-load-suffixes', since loading of compressed shared libraries is not supported (so attempt to look for them is just waste of cycles). (Bug#78416.)
* ; Fix documentation of a recent commitEli Zaretskii2025-05-241-6/+7
| | | | | | | | | | * etc/NEWS: * doc/lispref/loading.texi (How Programs Do Loading): Document the new variable and function. * src/lread.c (load-path-filter-function): * lisp/startup.el (load-path-filter-cache-directory-files) (load-path-filter--cache): Doc fixes.
* Add load-path-filter-function and use it to optimize loadingSpencer Baugh2025-05-231-2/+18
| | | | | | | | | | | | | | When there are many directories on load-path, the part of load which searches load-path can become very slow. By filtering load-path up front to only contain directories which are likely to contain the searched-for file, load becomes much faster. This can be set in early-init.el for maximum effect. * lisp/startup.el (load-path-filter--cache) (load-path-filter-cache-directory-files): Add. * src/lread.c (Fload): Call load-path-filter-function. (syms_of_lread): Add load-path-filter-function.
* * src/lread.c (read0): Don't allow radix 0 or 1.Mattias Engdegård2025-05-171-1/+1
| | | | This was just a silly mistake introduced in Emacs 29. Found by Pip Cet.
* Avoid warnings about 'lexical-binding' in 'eval-buffer'Eli Zaretskii2025-05-031-5/+11
| | | | | | * src/lread.c (Feval_buffer): Don't emit a lexbind warning if the buffer already has a local value of 'lexical-binding'. Doc fix. (Bug#77883)
* Avoid name clashes with static GnuTLSPaul Eggert2025-04-191-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Work around a bug in GnuTLS 3.7.11 and earlier: when built statically, its mistakenly exports symbols hash_lookup and hash_string, which collide with Emacs symbols of the same name, preventing temacs from linking statically. Problem reported by Greg A. Woods (Bug#77476). Because GnuTLS never uses hash_lookup or hash_string this issue ordinarily doesn’t seem to prevent temacs from linking to GnuTLS on GNU/Linux, as it’s linked dynamically and the dynamic linker never needs to resolve references to either symbol. However, I suppose a clash or bug could occur even with dynamic linking if Emacs later loads a module that uses either symbol. Although GnuTLS should be fixed, Emacs should link statically to current and older GnuTLS versions in the meantime, and it should avoid potential problems with dynamic linking. Renaming the two clashing names is an easy way to do this. For consistency with the new name for hash_lookup, also rename hash_lookup_with_hash and hash_lookup_get_hash. * src/fns.c (hash_find_with_hash): Rename from hash_lookup_with_hash. (hash_find): Rename from hash_lookup. (hash_find_get_hash): Rename from hash_lookup_get_hash. (hash_char_array): Rename from hash_string. All uses changed.
* ; * src/lread.c (get_lexical_binding): Fix coding style.Po Lu2025-04-081-6/+9
|
* (Fload, Feval_buffer): Emit a warning when lexbind is unset (bug#74145)Stefan Monnier2025-04-071-10/+20
| | | | | | | | | | This emits a warning at run-time rather than at compile time. * src/lread.c (get_lexical_binding): New function. (Fload, Feval_buffer): Use it. (syms_of_lread): New var `internal--get-default-lexical-binding-function`. * lisp/files.el: Set it. (internal--get-default-lexical-binding): New function.
* Merge from origin/emacs-30Sean Whitton2025-03-121-3/+3
|\ | | | | | | | | | | | | | | 894b0e3a2fe ; Adapt comment in tramp.el cc87717fa07 Add keyword placeholder to tramp.el 7d0d61d8549 Rewrite ERT manual introduction b2f124f2a88 ; cperl-mode.el: Don't misinterpret exec_fcn as keyword exec 59d1aac49df Document return values of the various read-* functions
| * Document return values of the various read-* functionsEli Zaretskii2025-03-091-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/textmodes/string-edit.el (read-string-from-buffer): * lisp/simple.el (read-from-kill-ring, read-shell-command) (read-signal-name): * lisp/replace.el (read-regexp-case-fold-search): * lisp/auth-source.el (read-passwd): * lisp/subr.el (read-key, read-number): * lisp/minibuffer.el (read-file-name, read-no-blanks-input): * lisp/international/mule-cmds.el (read-multilingual-string): * lisp/language/japan-util.el (read-hiragana-string): * lisp/files-x.el (read-file-local-variable) (read-file-local-variable-mode, read-file-local-variable-value): * lisp/faces.el (read-face-font, read-face-name): * lisp/simple.el (read-extended-command): * lisp/env.el (read-envvar-name): * lisp/files.el (read-directory-name): * lisp/faces.el (read-color): * lisp/international/mule-diag.el (read-charset): * lisp/emacs-lisp/map-ynp.el (read-answer): * src/coding.c (Fread_coding_system) (Fread_non_nil_coding_system): * src/minibuf.c (Fread_command, Fread_from_minibuffer): * src/lread.c (Fread_char, Fread_char_exclusive, Fread_event): Doc fixes.
| * Update copyright year to 2025Stefan Kangas2025-01-021-1/+1
| | | | | | | | Run "TZ=UTC0 admin/update-copyright".
* | ; Grammar fixes for "native-compiled"Stefan Kangas2025-02-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Prefer "native-compiled" to "native compiled". The adjective "native-compiled" with the hyphen is generally more consistent with the typical pattern in English, especially when the compound modifies a noun (e.g., "native-compiled code"). 2. Prefer "natively compiled" to "natively-compiled". The adverb "natively" modifies "compiled", and it is standard not to hyphenate an adverb + adjective combination when the adverb ends in -ly (e.g., "code that is natively compiled"). For example, note that we say "high-speed internet" but "highly performant code". * Makefile.in (dest): * configure.ac (HAVE_NATIVE_COMP): * doc/emacs/building.texi (Lisp Libraries): * doc/lispref/compile.texi (Native Compilation) (Native-Compilation Functions, Native-Compilation Variables): * doc/lispref/functions.texi (What Is a Function, Declare Form): * doc/lispref/loading.texi (How Programs Do Loading, Library Search): * etc/NEWS: * etc/NEWS.28: * etc/NEWS.29: * etc/NEWS.30: * lisp/emacs-lisp/comp-common.el (native-comp-never-optimize-functions) (comp-function-type-spec): * lisp/emacs-lisp/comp-cstr.el: * lisp/subr.el (locate-eln-file): * src/comp.c (SETJMP_NAME, syms_of_comp): * src/data.c (Fsubrp, Fnative_comp_function_p, Fsubr_native_lambda_list): * src/lread.c (Fload): * src/pdumper.c (dump_do_dump_relocation): * test/src/comp-tests.el (lambda-return2): Avoid grammatically incorrect variations on "natively compiled" and "native-compiled". (Bug#56727)
* | (lexical-binding): Allow changing the default value (bug#74145)Stefan Monnier2025-02-181-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/loadup.el: Preserve (default-toplevel-value 'lexical-binding). * src/lread.c (Fload, Feval_buffer): Obey (default-toplevel-value 'lexical-binding). * doc/lispintro/emacs-lisp-intro.texi (Lexical vs Dynamic Binding Example): Use the lexical dialect also for the dynamic scoping example. * doc/lispref/edebug.texi (Edebug Eval): Remove long-obsolete mention of Edebug support for `lexical-let`.
* | Avoid crashes in lread.c when invalid characters are readPip Cet2025-02-141-5/+7
| | | | | | | | | | | | | | | | | | | | * src/lread.c (readchar): Don't crash for non-fixnum return values. (read_filtered_event): Don't crash for invalid symbol properties. (Fread_char): (Fread_char_exclusive): (character_name_to_code): Check 'FIXNUMP' before using 'XFIXNUM'. (read_char_escape): Crash on invalid Lisp-supplied data when ENABLE_CHECKING; otherwise, signal an error.
* | Merge branch 'scratch/no-purespace' into 'master'Stefan Kangas2025-02-011-27/+19
|\ \
| * | Pure storage removal: Remove purecopy hash table flagPip Cet2024-12-121-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-liqsp/comp.el (comp--jump-table-optimizable): Adjust comment. * src/category.c (hash_get_category_set): * src/emacs-module.c (syms_of_module): * src/fns.c (make_hash_table): Remove 'purecopy' flag and update docstring. (Fmake_hash_table): Ignore ':purecopy' argument. * src/frame.c (make_frame): * src/image.c (xpm_make_color_table_h): * src/lisp.h (struct Lisp_Hash_Table): Drop 'purecopy' flag. * src/pdumper.c (dump_hash_table): Don't dump 'purecopy' flag. * src/print.c (print_object): Don't print 'purecopy' flag * src/json.c (json_parse_object): * src/lread.c (readevalloop, read_internal_start): * src/pgtkterm.c (syms_of_pgtkterm): * src/profiler.c (export_log): * src/xfaces.c (syms_of_xfaces): * src/xterm.c (syms_of_xterm): Adjust calls to 'make_hash_table'.
| * | Pure storage removal: Replace calls to removed functionsPip Cet2024-12-121-23/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (string_bytes, pin_string, valid_lisp_object_p) (process_mark_stack, survives_gc_p, syms_of_alloc): * src/androidterm.c (android_term_init): Replace call to 'build_pure_c_string'. * src/buffer.c (init_buffer_once, syms_of_buffer): * src/bytecode.c (exec_byte_code): * src/callint.c (syms_of_callint): * src/callproc.c (syms_of_callproc): * src/category.c (Fdefine_category): * src/coding.c (syms_of_coding): * src/comp.c (Fcomp__compile_ctxt_to_file0) (maybe_defer_native_compilation, syms_of_comp): * src/data.c (Fsetcar, Fsetcdr, Fdefalias, Faset, syms_of_data): * src/dbusbind.c (syms_of_dbusbind): * src/doc.c (Fsnarf_documentation): * src/emacs-module.c (syms_of_module): * src/eval.c (Finternal__define_uninitialized_variable) (Fdefconst_1, define_error, syms_of_eval): * src/fileio.c (syms_of_fileio): * src/fns.c (Ffillarray, Fclear_string, check_mutable_hash_table): * src/fontset.c (syms_of_fontset): * src/frame.c (make_initial_frame): * src/haikufns.c (syms_of_haikufns): * src/intervals.c (create_root_interval): * src/keyboard.c (syms_of_keyboard): * src/keymap.c (Fmake_sparse_keymap, Fset_keymap_parent) (store_in_keymap, syms_of_keymap): * src/lisp.h: * src/lread.c (Fload, read0, intern_c_string_1, define_symbol) (Fintern, defsubr, syms_of_lread): * src/pdumper.c (Fdump_emacs_portable): * src/pgtkfns.c (syms_of_pgtkfns): * src/pgtkterm.c (syms_of_pgtkterm): * src/process.c (syms_of_process): * src/search.c (syms_of_search): * src/sqlite.c (syms_of_sqlite): * src/syntax.c (syms_of_syntax): * src/treesit.c (syms_of_treesit): * src/w32fns.c (syms_of_w32fns): * src/xdisp.c (syms_of_xdisp): * src/xfaces.c (syms_of_xfaces): * src/xfns.c (syms_of_xfns): * src/xftfont.c (syms_of_xftfont): * src/xterm.c (syms_of_xterm): Remove calls to 'PURE_P', 'CHECK_IMPURE', 'Fpurecopy', and replace calls to 'build_pure_c_string', 'pure_list', 'pure_listn', etc., by impure equivalents.
* | | Fix unlikely eassert failure in invalid_radix_integerPaul Eggert2025-01-261-3/+3
| | | | | | | | | | | | | | | * src/lread.c (invalid_radix_integer): Simplify by using sprintf with a big-enough buffer.
* | | Replace call[1-8] with callnStefan Kangas2025-01-191-16/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the introduction of the 'calln' macro, the 'call1', 'call2', ..., 'call8' macros are just aliases for the former. This is slightly misleading and potentially unhelpful. The number of arguments N can also easily go out-of-synch with the used alias callN. There is no reason not to replace these aliases with using 'calln' directly. To reduce the risk for mistakes, the tool Coccinelle was used to make these changes. See <https://coccinelle.gitlabpages.inria.fr/website/>. * src/alloc.c, src/androidvfs.c, src/androidfns.c, src/buffer.c: * src/callint.c, src/callproc.c, src/casefiddle.c, src/charset.c: * src/chartab.c, src/cmds.c, src/coding.c, src/composite.c: * src/data.c, src/dbusbind.c, src/dired.c, src/doc.c: * src/emacs.c, src/eval.c, src/fileio.c, src/filelock.c: * src/fns.c, src/frame.c, src/gtkutil.c, src/haikufns.c: * src/haikumenu.c, src/image.c, src/insdel.c, src/intervals.c: * src/keyboard.c, src/keymap.c, src/lisp.h, src/lread.c: * src/minibuf.c, src/nsfns.m, src/nsselect.m, src/pgtkfns.c: * src/pgtkselect.c, src/print.c, src/process.c, src/sort.c: * src/syntax.c, src/textconv.c, src/textprop.c, src/undo.c: * src/w32fns.c, src/window.c, src/xfaces.c, src/xfns.c: * src/xmenu.c, src/xselect.c, src/xterm.c: Replace all uses of 'call1', 'call2', ..., 'call8' with 'calln'.
* | | Update copyright year to 2025Paul Eggert2025-01-011-1/+1
| | | | | | | | | | | | Run "TZ=UTC0 admin/update-copyright".
* | | unintern: Drop support for obsolete calling conventionStefan Kangas2024-12-171-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/subr.el (unintern): * src/lread.c (Funintern): Drop support for old calling convention, obsolete since 23.3. * test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-escape): Don't use obsolete calling convention.
* | | ; Fix indentation problemStefan Kangas2024-12-161-1/+1
|/ /
* | Merge from origin/emacs-30Eli Zaretskii2024-11-231-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 74a972cace6 Skip proced refine tests on Darwin c50ce03afc1 ; Fix recent additions to the manuals c818c5bbafd ; * lisp/term/w32-win.el (tree-sitter--library-abi): Decl... b71d3b2f52f ; Better clarify function types in C-h f (bug#73626) 59b3eae481d ; Introduce type specifiers to the elisp manual (bug#73626) 83fc3cf53a4 Future-proof loading tree-sitter library on MS-Windows 3eb30186825 ; Improve documentation of 'category' in display-buffer a... 4d80c4f4858 ; More accurate documentation of 'set-mark-command' 70dd5705e11 Fix overriding 'c-ts-mode' by 'c-mode' 331610aef05 ; Improve vc-dir help-echo 9c484d51012 ; Avoid assertion violations in "temacs -Q" 8dc9dfdc381 lisp/progmodes/c-ts-mode.el: Demote loading c-ts-mode as ... 426bce8a675 ; In PROBLEMS mention issue with .Xresources on Gnome des...
| * ; Avoid assertion violations in "temacs -Q"Eli Zaretskii2024-11-181-1/+1
| | | | | | | | * src/lread.c (build_load_history): Use Fequal to compare strings.
* | Merge from origin/emacs-30Sean Whitton2024-10-241-0/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | f5451b6a066 ; Improve comment from last change 09e05f7ee4d Document and-let* vs. when-let* usage convention b7a375f5c49 Fix error when splicing Eshell globs and a glob expands t... 2289e162268 * etc/package-keyring.gpg: Update expiration and add new key 48024096fea Avoid crashes when scrolling images under winner-mode c35d6ba9f07 ; * doc/lispref/display.texi (Fontsets): Clarify wording. 88a1a32fc57 ; * doc/lispref/display.texi (Fontsets): Fix typo. 6be47058cd7 ; Add indexing for 'use-default-font-for-symbols' 681f70ea04a * src/lread.c (READ_AND_BUFFER): Reject negative chars (b... ac4151e0023 * test/Makefile.in: Do not show emacs-module-tests.log by... 4e0cb960dbd Fix 'php-ts-mode': better indentation and font locking
| * * src/lread.c (READ_AND_BUFFER): Reject negative chars (bug#73914).Eli Zaretskii2024-10-201-0/+2
| |
* | Prefer static_assert to verifyStefan Kangas2024-08-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Although static_assert is C11-specific, and Emacs remains on C99, it has been backported to older compilers by Gnulib. Gnulib has already changed to prefer static_assert, and we can do the same. * lib-src/asset-directory-tool.c (main_2): * src/alloc.c (BLOCK_ALIGN, aligned_alloc, lisp_align_malloc) (vectorlike_nbytes, allocate_pseudovector): * src/android.c (android_globalize_reference, android_set_dashes): * src/android.h: * src/androidfont.c (androidfont_draw, androidfont_text_extents): * src/androidvfs.c: * src/bidi.c (BIDI_CACHE_MAX_ELTS_PER_SLOT, bidi_find_bracket_pairs): * src/buffer.c (init_buffer_once): * src/casefiddle.c (do_casify_multibyte_string): * src/dispnew.c (scrolling_window, scrolling): * src/editfns.c (styled_format): * src/emacs-module.c (module_extract_big_integer): * src/fileio.c (Fdo_auto_save): * src/fns.c (next_almost_prime, hash_string): * src/fringe.c (init_fringe): * src/keyboard.h (kbd_buffer_store_event_hold): * src/keymap.c: * src/lisp.h (memclear, reduce_emacs_uint_to_hash_hash, modiff_incr): * src/lread.c (skip_lazy_string): * src/pdumper.c (dump_bignum, Fdump_emacs_portable) (dump_do_dump_relocation, pdumper_load): * src/process.c (make_process, Fmake_process, connect_network_socket): * src/regex-emacs.c: * src/sort.c (tim_sort): * src/sysdep.c (init_random, SSIZE_MAX): * src/thread.c: * src/timefns.c (trillion_factor): * src/unexelf.c: * src/xterm.c (x_send_scroll_bar_event): Prefer static_assert to Gnulib verify. Remove import of verify.h, except when used for other reasons.