aboutsummaryrefslogtreecommitdiffstats
path: root/lib-src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Pacify clang -Wunused-resultPaul Eggert9 days1-10/+5
| | | | | Problem reported by badli al rashid (bug#80512). * lib-src/make-docfile.c (scan_c_stream): Avoid a tricky ungetc+getc.
* Revert "Extend emacs server protocol for empty arguments"Sean Whitton2026-02-081-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts this change: Author: Andreas Schwab <schwab@linux-m68k.org> AuthorDate: Sun Feb 8 12:34:02 2026 +0100 Extend emacs server protocol for empty arguments An empty argument is represented by &0. On the receiving side, &0 is replaced by nothing. * lisp/server.el (server-unquote-arg): Replace "&0" by nothing. (server-quote-arg): Produce "&0" for an empty string. * lib-src/emacsclient.c (quote_argument): Produce "&0" for an empty string. (unquote_argument): Replace "&0" by nothing. (Bug#80356) The bug in question was already fixed by this change: Author: Sean Whitton <spwhitton@spwhitton.name> AuthorDate: Fri Nov 7 12:33:21 2025 +0000 Don't discard empty string arguments from emacsclient * lisp/server.el (server--process-filter-1): Don't discard empty string arguments from emacsclient. (server-eval-args-left): * doc/emacs/misc.texi (emacsclient Options): * etc/NEWS: Document the change.
* Extend emacs server protocol for empty argumentsAndreas Schwab2026-02-081-1/+5
| | | | | | | | | | | An empty argument is represented by &0. On the receiving side, &0 is replaced by nothing. * lisp/server.el (server-unquote-arg): Replace "&0" by nothing. (server-quote-arg): Produce "&0" for an empty string. * lib-src/emacsclient.c (quote_argument): Produce "&0" for an empty string. (unquote_argument): Replace "&0" by nothing. (Bug#80356)
* ; Add 2026 to copyright years.Sean Whitton2026-01-0118-19/+19
|
* make-docfile preferring streqPaul Eggert2025-12-141-9/+9
| | | | | * lib-src/make-docfile.c (main, add_global, compare_globals): Prefer streq to strcmp where either will do.
* Support nested parens in make-docfile argsPaul Eggert2025-12-141-2/+3
| | | | | | * lib-src/make-docfile.c (scan_c_stream): Allow nested parens. E.g., ‘(Lisp_Object XXX (force))’ for the identifier ‘force’, where XXX is a macro. This is for future changes.
* Fix make-docfile strncmp typoPaul Eggert2025-12-141-1/+1
| | | | | * lib-src/make-docfile.c (write_c_args): Don’t mishandle the identifiers ‘v’, ‘vo’, and ‘voi’.
* Improve make-docfile.c for C23Paul Eggert2025-12-141-6/+5
| | | | | | | * lib-src/make-docfile.c (write_c_args): Don’t diagnose “()”. In C23 it’s equivalent to (void), and it works fine (albeit with less type-checking) in older C. Omit first arg, which is no longer needed. Caller changed.
* Fix some make-docfile core dumpsPaul Eggert2025-12-141-10/+18
| | | | | | | | | | This bit me when I ran ‘make’ with typos in the Emacs source. * lib-src/make-docfile.c (struct rcsoc_state.buf_lim): New member. (read_c_string_or_comment): Initialize it. (put_char, scan_c_stream): Check for buffer overflow. (scan_c_stream): Output a diagnostic rather than aborting when the buffer overflows.
* Fix mis-declarations of non-const functionsPaul Eggert2025-11-191-2/+12
| | | | | | | | | | | | | | | | | | | | | | Problem for mpz_get_d_rounded reported by Helmut Eller in: https://lists.gnu.org/r/emacs-devel/2025-11/msg00795.html * lib-src/make-docfile.c (DEFUN_pure): New constant. (write_globals, scan_c_stream): Support "attributes: pure". * src/bignum.h (mpz_get_d_rounded): * src/data.c (Fsymbolp, Fmodule_function_p, Fintegerp, Fnumberp): * src/lisp.h (bignum_to_double, bignum_to_intmax) (bignum_to_uintmax, bignum_bufsize): Now pure, not const, since they depend on current state. For example, Fsymbolp now inspects symbols_with_pos_enabled, and the bignum functions inspect bignum contents in memory. * src/data.c (Feq): * src/xfaces.c (Fface_attribute_relative_p): No longer const, since they might abort when debugging. * src/pdumper.h (pdumper_object_p, pdumper_cold_object_p) (pdumper_find_object_type, pdumper_object_p_precise): These are not const functions. But there is no need to declare them to be pure, either, as they’re inline so the compiler can figure it out.
* Update from Gnulib by running admin/merge-gnulibPaul Eggert2025-11-042-14/+0
| | | | | | | | | | | | | * admin/merge-gnulib (GNULIB_MODULES): Add stringeq. With current Gnulib it is already present as in indirect dependency; listing it here because Emacs now depends on it directly. * lib-src/ebrowse.c, lib-src/etags.c: (streq): Remove, as Gnulib defines this now. * lib/fseterr.c, lib/fseterr.h, lib/issymlink.c, lib/issymlink.h: * lib/issymlinkat.c, lib/stdio-consolesafe.c, lib/string.c: * m4/fseterr.m4, m4/gettext_h.m4, m4/stringeq.m4: New files from Gnulib. * src/conf_post.h (tzfree) [__ANDROID_API__ >= 35]: Remove.
* Port varargs macros better to C99Paul Eggert2025-06-271-55/+64
| | | | | | | | | C99 prohibits passing zero args to macro’s ‘...’. * lib-src/seccomp-filter.c (RULE0): New macro, which is like RULE except with zero args. All zero-arg uses of RULE changed to RULE0. * src/comp.c (compile_function, Fcomp__init_ctxt, syms_of_comp): Change ‘CALLN (Fmake_hash_table)’ to ‘Fmake_hash_table (0, NULL)’, since CALLN requires at least two args in C99.
* ; Fix warnings in MinGW buildsEli Zaretskii2025-06-141-3/+4
| | | | | | | | * src/w32fns.c (msh_mousewheel): Declare. * src/treesit.c (treesit_debug_print_linecol): Fix format specifiers. * lib-src/pop.c (pfn_getaddrinfo, pfn_freeaddrinfo): Now static.
* Support sub-second file time-stamps on MS-WindowsEli Zaretskii2025-05-111-12/+30
| | | | | | | | | | * nt/inc/sys/stat.h (struct stat): New members for nsec part of file times. * lib-src/ntlib.c (convert_time): * src/w32.c (convert_time): Accept an additional argument TIME_NSEC and set it to the sub-second part of time. All callers changed.
* Merge from origin/emacs-30Eli Zaretskii2025-04-301-4/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | cc5b1a01a2c ; * doc/misc/efaq-w32.texi (Location of init file): Fix a... 6c2aaedfceb Fix compilation errors in emacsclient.c with MinGW GCC 15 d56e5ba97ee ; * etc/DEBUG: Add link to GCC bug #78685. 80cbd1e31cc ; Fix key notation in Introduction to Emacs Lisp 1224e5fd961 ; * lisp/files.el (revert-buffer-restore-functions): Doc ... 79e7eeb3296 ; Improve documentation of 'format-time-string' 2838b64fc8b ; * lisp/textmodes/text-mode.el (text-mode-variant): Fix ... 9adb05422ea ; Improve obsolescence of 'text-mode-variant' 4858d818488 ; * lisp/files.el (revert-buffer-restore-functions): Doc ... 2a8e223b8d7 ; Mention early-init file in Emacs FAQ for Windows 14c707b42d9 ; Isearch: Fix key bindings in docstrings
| * Fix compilation errors in emacsclient.c with MinGW GCC 15Eli Zaretskii2025-04-301-4/+9
| | | | | | | | | | | | | | * lib-src/emacsclient.c (set_fg, get_wc): Declare using actual function signatures. (w32_give_focus): Cast return value of 'GetProcAddress' to correct pointer types. (Bug#78160)
| * ; Delete troff markers from ChangeLog filesemacs-30.1-rc1Stefan Kangas2025-02-201-1/+1
| |
| * Fix copyright years by handStefan Kangas2025-01-021-1/+1
| | | | | | | | These are dates that admin/update-copyright did not update.
| * Update copyright year to 2025Stefan Kangas2025-01-0218-18/+19
| | | | | | | | Run "TZ=UTC0 admin/update-copyright".
* | Fix seccomp-filter for newer Linux kernelsWerner Fink2025-04-191-1/+12
| | | | | | | | | | | | * lib-src/seccomp-filter.c (MAP_DROPPABLE): Define if undefined. (main): Use MAP_DROPPABLE flag. Allow `tcgetattr' call of glibc on physical terminal devices. (Bug#77232)
* | Fix etags for Ruby module definitions with ::Laurent Stacul2025-04-031-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: In Ruby we can define a nested module/class the safe way (in the sense, if the parent module does not exist, it will define it: module M module N end end If M already exists, we can also write: module M::N; end With the later notation, the tag generated by etags will be M::N. When browsing the code, using xref-find-definitions when the point is on N, will not be able to find the definition of N because the implicit tag name is M::N. This is the same problem with nested classes or even some rare allowed definitions like explicitely defining a module/class from the global namespace: class ::A; end Solution: We need to give an explicit tag name. To achieve this, on module/class definition we truncate the name to the last found column. * lib-src/etags.c (Ruby_functions): Support "::" in module definitions. * test/manual/etags/README: Update instructions. * test/manual/etags/ruby-src/test1.ru: Add identifiers with "::". * test/manual/etags/CTAGS.good: * test/manual/etags/CTAGS.good_crlf: * test/manual/etags/CTAGS.good_update: * test/manual/etags/ETAGS.good_1: * test/manual/etags/ETAGS.good_2: * test/manual/etags/ETAGS.good_3: * test/manual/etags/ETAGS.good_4: * test/manual/etags/ETAGS.good_5: * test/manual/etags/ETAGS.good_6: * test/manual/etags/ETAGS.good_7: Adapt expected results to the change. (Bug#77421) Copyright-paperwork-exempt: yes
* | Remove ctags programPaul Eggert2025-03-223-73/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Fix capitalization ELisp -> ElispSean Whitton2025-03-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (libgccjit_not_found_err) (libgccjit_dev_not_found_err): * doc/emacs/buffers.texi (List Buffers): * doc/lispref/elisp.texi (Tree-sitter C API): * doc/lispref/functions.texi (What Is a Function): * doc/lispref/parsing.texi (Parsing Program Source) (Tree-sitter C API): * doc/misc/gnus.texi (The Gnus Registry): * etc/DEBUG: * etc/NEWS: * etc/NEWS.25: * etc/NEWS.26: * etc/NEWS.28: * etc/NEWS.30: * etc/TODO: * lib-src/emacsclient.c (print_help_and_exit): * lisp/auth-source.el (auth-source-search): * lisp/cedet/semantic/bovine/el.el (emacs-lisp-mode): * lisp/cedet/semantic/wisent/comp.el (wisent-automaton-lisp-form): * lisp/cedet/srecode/el.el (srecode-semantic-apply-tag-to-dict): * lisp/editorconfig.el (editorconfig-get-local-variables-functions): * lisp/emacs-lisp/bindat.el (bindat-type): * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): * lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure): * lisp/emacs-lisp/cl-macs.el (cl--labels-convert): * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs) (lisp-fill-paragraphs-as-doc-string): * lisp/emacs-lisp/macroexp.el (macroexp--fgrep): * lisp/emacs-lisp/oclosure.el (cconv--interactive-helper): * lisp/emacs-lisp/re-builder.el: * lisp/erc/erc-button.el (erc-emacswiki-lisp-url): * lisp/help-fns.el (help-fns--describe-function-or-command-prompt): * lisp/menu-bar.el (menu-bar-search-documentation-menu): * lisp/net/tramp-message.el (tramp-debug-font-lock-keywords): * lisp/org/org-capture.el (org-capture): * lisp/org/org.el (org-category, org-todo): * lisp/org/ox.el (org-export-async-start): * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): * lisp/progmodes/peg.el (peg-translate-exp): * lisp/progmodes/ruby-ts-mode.el: * lisp/woman.el (woman-mode, woman-parse-numeric-arg): * src/chartab.c (map_char_table_for_charset): * src/fns.c (extract_data_from_object): * src/frame.c (do_switch_frame): * src/keyboard.c (make_lispy_event): * test/lisp/emacs-lisp/cl-macs-tests.el (cl-&key-arguments): * test/lisp/emacs-lisp/shortdoc-tests.el (shortdoc-help-fns-examples-function-test): * test/manual/etags/c-src/emacs/src/keyboard.c (make_lispy_event): Fix capitalization ELisp -> Elisp.
* | ; * lib-src/make-fingerprint.c: Fix copyright year.Stefan Kangas2025-01-091-2/+1
| | | | | | | | This file is new with the portable dumper.
* | Fix copyright years by handPaul Eggert2025-01-011-1/+1
| | | | | | | | These are dates that admin/update-copyright did not update.
* | Update copyright year to 2025Paul Eggert2025-01-0118-18/+18
| | | | | | | | Run "TZ=UTC0 admin/update-copyright".
* | Fix etags tagging by multiline regexpsEli Zaretskii2024-10-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | * lib-src/etags.c (regex_tag_multiline): Fix off-by-one error in determining the end of the tag matched by a multiline regexp. (Bug#73771) * test/manual/etags/ETAGS.good_4: * test/manual/etags/ETAGS.good_5: * test/manual/etags/ETAGS.good_6: Adjust test results to the above change.
* | New command-line options for 'etags'Eli Zaretskii2024-10-081-15/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds '--no-fallback-lang' and '--no-empty-file-entries' options, and their opposites '--fallback-lang' and '--empty-file-entries'. * lib-src/etags.c (fallback_lang, empty_files): New toggles. (main): Initialize them to 'true'. (longopts) [!CTAGS]: Add the '--(no-)fallback-lang' and '--(no-)empty-file-entries' options. (find_entries): If 'fallback_lang' is false, don't attempt Fortran and C/C++ fallbacks. (print_help): Add help for new options. (main): If 'empty_files' is false, don't output file entries for files that have no tags. (Bug#73484) * doc/emacs/maintaining.texi (Create Tags Table): * etc/NEWS: * doc/man/etags.1: Document the new options. * test/manual/etags/Makefile (check): Add test for new options. * test/manual/etags/ETAGS.good_7: New file.
* | * lib-src/etags.c (C_entries): Fix assertion violation.Eli Zaretskii2024-10-071-1/+4
| |
* | Use c-ctype.h in lib-srcPaul Eggert2024-09-173-10/+10
| | | | | | | | | | | | | | | | | | | | This fixes some unlikely bugs and removes the temptation of using ctype.h. Although some uses were correct, many weren't. * lib-src/ebrowse.c: Include c-ctype.h, not ctype.h. * lib-src/emacsclient.c: Include c-ctype.h, not ctype.h. * lib-src/update-game-score.c: Include c-ctype.h, not ctype.h. All uses changed.
* | Provide a modified xref backend for TeX buffersDavid Fussner2024-09-141-15/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In addition to providing a new `xref' backend, the patch also improves the general handling of expl3 syntax. Expl3 is the next-generation LaTeX specification, and has for some time been available by default in the LaTeX kernel. The new syntax co-exists in many files with the standard LaTeX2e syntax, so we try at least minimally to separate the way modes handle the two specifications, both to reduce visually-disturbing interference between them and also to improve the `xref' backend. (Bug#53749) * lib-src/etags.c (TeX_commands): Improve parsing of commands in TeX buffers. (TEX_defenv): Expand list of commands to tag by default in TeX buffers. (TeX_help): * doc/emacs/maintaining.texi (Tag Syntax): Document new tagged commands. (Identifier Search): Add note about semantic-symref-filepattern-alist, auto-mode-alist, and xref-find-references. * lisp/textmodes/tex-mode.el (tex-font-lock-suscript): Test for underscore in expl3 files and regions, disable subscript face there. (tex-common-initialization): Set up xref backend for in-tree TeX modes. Detect expl3 files, and in others set up a list of expl3 regions. (tex-expl-buffer-parse): New function called in previous. (tex-expl-buffer-p): New variable to hold the result of previous. (tex-expl-region-set): New function added to 'syntax-propertize-extend-region-functions' hook. (tex-expl-region-list): New variable to hold the result of previous. (tex--xref-backend): New function to identify the xref backend. (tex--thing-at-point, tex-thingatpt--beginning-of-symbol) (tex-thingatpt--end-of-symbol, tex--bounds-of-symbol-at-point): New functions to return 'thing-at-point' for xref backend. (tex-thingatpt-exclude-chars): New variable to do the same. (xref-backend-identifier-at-point): New TeX backend method to provide symbols for processing by xref. (xref-backend-identifier-completion-table) (xref-backend-identifier-completion-ignore-case) (xref-backend-definitions, xref-backend-apropos): Placeholders to call the standard 'etags' xref backend methods. (xref-backend-references): Wrapper to call the default xref backend method, finding as many relevant files as possible and using a bespoke syntax-propertize-function when required. (tex--collect-file-extensions, tex-xref-syntax-function): Helper functions for previous. (tex-find-references-syntax-table, tex--buffers-list) (tex--xref-syntax-fun, tex--old-syntax-function): New variables for the same.
* | Prefer static_assert to verifyStefan Kangas2024-08-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge from savannah/emacs-30Po Lu2024-08-202-3/+3
|\ \ | |/ | | | | | | | | | | d6726e6dfc7 Further fix of reading and writing profiler data 30b2fae77b7 * Makefile.in (PREFERRED_BRANCH): Update to emacs-30. 5397808e5bc ; Eliminate more C++ comments 1463434907e ; Eliminate C++ comments and typo
| * ; Eliminate more C++ commentsPo Lu2024-08-171-1/+1
| | | | | | | | | | | | | | | | * lib-src/movemail.c: * nt/preprep.c (main): * src/unexw32.c (unexec): Convert C++-style comments to C.
| * ; Eliminate C++ comments and typoPo Lu2024-08-171-2/+2
| | | | | | | | | | * lib-src/etags.c (Rust_entries): Eliminate C++ comments and typo.
* | Fix finding tags by 'etags' in Java source codeEli Zaretskii2024-08-181-36/+40
| | | | | | | | | | | | | | | | * lib-src/etags.c (C_entries): A comma is not special inside class parameters <..>. (Bug#72402) (hash, in_word_set): Regenerated after adding "@SuppressWarnings" to wordlist[]. This avoids missing tags preceded by "@SuppressWarnings".
* | Port better to NFS unlinkPaul Eggert2024-08-152-2/+2
|/ | | | | | | | | | | | | I found this problem while looking into Bug#72641. * lib-src/etags.c (do_move_file): * lib-src/update-game-score.c (unlock_file): * src/androidvfs.c (android_hack_asset_fd_fallback): * src/filelock.c (current_lock_owner): Treat unlink as successful if it fails because the file wasn’t there. This can happen with some NFS implementations, due to its retrying over the network to get at-least-once semantics. Although most of Emacs’s calls to unlink were already doing this, a few instances were not.
* Support --no-window-system option in emacsclientEli Zaretskii2024-06-121-1/+3
| | | | | * lib-src/emacsclient.c (print_help_and_exit, longopts): Add '--no-window-system' alias for -t. (Bug#71509)
* Restore functionality on Android 2.2Po Lu2024-06-121-29/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * java/Makefile.in (install_temp): Do not compress directory-tree and generate such files in a special format that stores file sizes. * lib-src/asset-directory-tool.c (struct directory_tree): New field st_size. (need_file_size): New variable. (main_1, main_2, main): Write file sizes before sibling offsets if `--api-8' is specified. * src/android-asset.h (struct android_asset_manager): New field open. (struct android_asset): New field name. (AAssetManager_fromJava): Load AssetManager#open. (AAssetManager_open): If a directory tree has already been loaded, search for a matching asset and load its size thence, to avoid the requirement of an AssetFileDescriptor. (AAsset_close): Don't assume asset->fd exists. Release asset->name. (AAsset_getLength): Likewise. (android_asset_create_stream): If asset->name exists, call AssetManager#open, in order to open compressed files. * src/androidvfs.c (OLD_ANDROID_ASSETS): Define to 1 on API 8. (android_extract_long, android_scan_directory_tree): Mark arguments as const. Adjust offsets when OLD_ANDROID_ASSETS. (android_is_directory, android_init_assets, android_afs_readdir): Likewise. * src/lread.c (lread_fstat): Define to sys_fstat, not fstat.
* Pacify gcc -Wmissing-variable-declarationsPaul Eggert2024-05-112-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | This is a new warning diagnostic in GCC 14. * lib-src/etags.c (mercury_heuristics_ratio): * src/pgtkselect.c, src/xselect.c (selection_request_stack): * src/xselect.c (outstanding_transfers): * src/xterm.c (pending_selection_requests) (x_dnd_waiting_for_motif_finish_display): Now static. * lib-src/make-docfile.c (close_emacs_globals): Arrange for lispsym to be declared with extern first, when compiling lread.c. * src/alloc.c (gdb_make_enums_visible) [__GNUC__]: * src/emacs.c (RCS_Id): * src/keyboard.c (stop_character): * src/print.c (print_output_debug_flag): Now declared with extern first. * src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN) [MAIN_PROGRAM]: Arrange for ID to be declared extern first. * src/lisp.h (garbage_collection_inhibited): * src/xterm.h (x_frame_parm_handlers): Declare here, so that its interface is properly checked. Other decls removed.
* ; * lib-src/emacsclient.c (local_sockname): Whitespace.Eli Zaretskii2024-05-071-1/+1
|
* Simplify Emacs server detection on AndroidPo Lu2024-05-071-2/+28
| | | | | | * lib-src/emacsclient.c (set_local_socket) [HAVE_ANDROID]: Do not consider XDG_RUNTIME_DIR or test the ownership or accessibility of TMPDIR.
* etags: work around GCC bug 114882Paul Eggert2024-04-301-0/+6
| | | | | | * lib-src/etags.c: Ignore -Wanalyzer-use-of-uninitialized-value. This applies to the whole source file, not just to areas where GCC has bugs, as it was too tricky to ignore more selectively.
* etags: fix #line parsing (\\", long lines)Paul Eggert2024-04-301-11/+11
| | | | | | * lib-src/etags.c (readline): Don’t mishandle lines like ‘#line 1 "a//"’, which has an escaped backslash before ‘"’. Don’t mishandle lines so long that sscanf overflows %n.
* Simplify etags.c by omitting a macroPaul Eggert2024-04-301-25/+23
| | | | | | | * lib-src/etags.c (xnew): Remove. All uses removed. xnew was confusing, as sometimes it was used with n=1, sometimes with Type=char, and it’s easier just to use xmalloc or xnmalloc.
* rcs2log now groks add-log-time-zone rulePaul Eggert2024-04-121-2/+2
| | | | | | * lib-src/rcs2log (extractTZ): Adjust to renaming of change-log-time-zone-rule to add-log-time-zone rule, by allowing either spelling.
* Port to GNU Make 03ecd94488b85adc38746ec3e7c2a297a522598ePaul Eggert2024-02-081-2/+2
| | | | | | | | | | Problem reported by Collin Funk (Bug#68996). * GNUmakefile (.): New macro. (help): Use ‘$.’ instead of ‘$ ’. * cross/verbose.mk.android, src/verbose.mk.in (.): New macro. (AM_V_AR, AM_V_CC, AM_V_CXX, AM_V_CCLD, AM_V_CXXLD, AM_V_GEN): Use ‘$.’ instead of ‘$ ’. * lib-src/Makefile.in (install): Use ‘$.’ instead of ‘$ ’.
* Be more systematic about parens in C source codePaul Eggert2024-01-202-5/+5
| | | | | | | | | Be more systematic about putting space before paren in calls, and in avoiding unnecessary parentheses in macros. This was partly inspired by my wading through gcc -E output while debugging something else, and seeing too many parens. This patch does not change the generated .o files on my platform.
* ; Add 2024 to copyright yearsPo Lu2024-01-021-1/+1
|
* Merge from savannah/emacs-29Po Lu2024-01-0217-18/+18
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dc4e6b13296 ; Update copyright years in more files 64b37776318 ; Run set-copyright from admin.el 8e1c56ae467 ; Add 2024 to copyright years # Conflicts: # doc/misc/modus-themes.org # doc/misc/texinfo.tex # etc/NEWS # etc/refcards/ru-refcard.tex # etc/themes/modus-operandi-theme.el # etc/themes/modus-themes.el # etc/themes/modus-vivendi-theme.el # lib/alloca.in.h # lib/binary-io.h # lib/c-ctype.h # lib/c-strcasecmp.c # lib/c-strncasecmp.c # lib/careadlinkat.c # lib/cloexec.c # lib/close-stream.c # lib/diffseq.h # lib/dup2.c # lib/filemode.h # lib/fpending.c # lib/fpending.h # lib/fsusage.c # lib/getgroups.c # lib/getloadavg.c # lib/gettext.h # lib/gettime.c # lib/gettimeofday.c # lib/group-member.c # lib/malloc.c # lib/md5-stream.c # lib/md5.c # lib/md5.h # lib/memmem.c # lib/memrchr.c # lib/nanosleep.c # lib/save-cwd.h # lib/sha1.c # lib/sig2str.c # lib/stdlib.in.h # lib/strtoimax.c # lib/strtol.c # lib/strtoll.c # lib/time_r.c # lib/xalloc-oversized.h # lisp/auth-source-pass.el # lisp/emacs-lisp/lisp-mnt.el # lisp/emacs-lisp/timer.el # lisp/info-look.el # lisp/jit-lock.el # lisp/loadhist.el # lisp/mail/rmail.el # lisp/net/ntlm.el # lisp/net/webjump.el # lisp/progmodes/asm-mode.el # lisp/progmodes/project.el # lisp/progmodes/sh-script.el # lisp/textmodes/flyspell.el # lisp/textmodes/reftex-toc.el # lisp/textmodes/reftex.el # lisp/textmodes/tex-mode.el # lisp/url/url-gw.el # m4/alloca.m4 # m4/clock_time.m4 # m4/d-type.m4 # m4/dirent_h.m4 # m4/dup2.m4 # m4/euidaccess.m4 # m4/fchmodat.m4 # m4/filemode.m4 # m4/fsusage.m4 # m4/getgroups.m4 # m4/getloadavg.m4 # m4/getrandom.m4 # m4/gettime.m4 # m4/gettimeofday.m4 # m4/gnulib-common.m4 # m4/group-member.m4 # m4/inttypes.m4 # m4/malloc.m4 # m4/manywarnings.m4 # m4/mempcpy.m4 # m4/memrchr.m4 # m4/mkostemp.m4 # m4/mktime.m4 # m4/nproc.m4 # m4/nstrftime.m4 # m4/pathmax.m4 # m4/pipe2.m4 # m4/pselect.m4 # m4/pthread_sigmask.m4 # m4/readlink.m4 # m4/realloc.m4 # m4/sig2str.m4 # m4/ssize_t.m4 # m4/stat-time.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/stdio_h.m4 # m4/stdlib_h.m4 # m4/stpcpy.m4 # m4/strnlen.m4 # m4/strtoimax.m4 # m4/strtoll.m4 # m4/time_h.m4 # m4/timegm.m4 # m4/timer_time.m4 # m4/timespec.m4 # m4/unistd_h.m4 # m4/warnings.m4 # nt/configure.bat # nt/preprep.c # test/lisp/register-tests.el