aboutsummaryrefslogtreecommitdiffstats
path: root/src/conf_post.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ; Add 2026 to copyright years.Sean Whitton2026-01-011-1/+1
|
* Remove no-longer needed MALLOC_0_IS_NONNULL macro.Paul Eggert2025-12-091-2/+0
| | | | | * src/conf_post.h (MALLOC_0_IS_NONNULL): Remove. Gnulib no longer needs this.
* Fix MinGW build broken by integration of 'stdio-consolesafe'Eli Zaretskii2025-11-181-1/+1
| | | | | | | | | | * src/conf_post.h: Avoid redirecting '*printf' functions if 'OMIT_CONSOLESAFE' is defined to 1. * nt/cmdproxy.c: * nt/ddeclient.c: Define 'OMIT_CONSOLESAFE' to 1 to avoid redirecting '*printf functions' to stdio-consolesafe replacements. * nt/Makefile.in (LIBS_ADDPM): Add -lgnu to link 'addpm' against Gnulib. (Bug#79855)
* Workaround for MSVCRT stdio on MS-Windows for CJK localesEli Zaretskii2025-11-161-0/+38
| | | | | | | | | | | | MSVCRT implementation of stdio functions which output characters one by one fails for CJK double-byte encodings. Gnulib provides replacement functions which work around those bugs. This change makes Emacs and lib-src programs use the replacements when Emacs is linked against MSVCRT. * src/conf_post.h (fwrite, fprintf, printf, vfprintf, vprintf) [WINDOWSNT]: Redirect to Gnulib replacements when Emacs is linked against MSVCRT (as opposed to UCRT). Suggested by Bruno Haible <bruno@clisp.org>.
* Fix the Android portPo Lu2025-11-051-11/+0
| | | | | | | | * configure.ac (gl_cv_onwards_func_tzalloc): Don't disable on Android SDK 35. * src/conf_post.h (tzalloc): Don't override Gnulib-selected identifier on Android SDK 35.
* Update from Gnulib by running admin/merge-gnulibPaul Eggert2025-11-041-3/+3
| | | | | | | | | | | | | * 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.
* Disable Gnulib’s non-Gregorian calendarsPaul Eggert2025-07-291-2/+3
| | | | | | | | | | | | | | | Prepare for the next Gnulib merge by disabling the optional support for non-Gregorian calendars recently added to Gnulib’s nstrftime module. This would be tricky to integrate with Emacs, as Emacs has its own (much fancier) calendar system, one that at least for the Persian calendar sometimes disagrees with Gnulib’s, and it’s likely not worth the trouble of reconciling the conflicts. * src/conf_post.h (SUPPORT_NON_GREG_CALENDARS_IN_STRFTIME): New macro, defined to false. * admin/merge-gnulib (GNULIB_MODULES): nstrftime → nstrftime-limited. (AVOIDED_MODULES): Add localcharset. Near the end, also remove the files lib/calendar-ethiopian.h, lib/calendar-persian.h, lib/calendar-thai.h, lib/calendars.h.
* Fix compilation on Android 35 and on TermuxPo Lu2025-05-061-0/+11
| | | | | | | | | * configure.ac (gl_cv_onwards_func_tzalloc): Define to "future OS version" on Android API 35 and later. Detect posix_spawn* by means of gl_CHECK_FUNCS_ANDROID. * src/conf_post.h (tzalloc, tzfree): Define to non-conflicting names on Android 35 and later.
* Merge branch 'scratch/no-purespace' into 'master'Stefan Kangas2025-02-011-34/+1
|\
| * ; Remove some references to deleted filesStefan Kangas2025-01-091-1/+1
| | | | | | | | | | | | | | * admin/MAINTAINERS: * admin/authors.el (authors-public-domain-files): * admin/find-gc.el (find-gc-source-files): * src/conf_post.h: Remove some references to deleted files.
| * Pure storage removal: Main partPip Cet2024-12-121-33/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (pure, PUREBEG, purebeg, pure_size) (pure_bytes_used_before_overflow, pure_bytes_used_lisp) (pure_bytes_used_non_lisp): Remove definitions. (init_strings): Make empty strings impure. (cons_listn): Drop 'cons' argument. (pure_listn): Remove function. (init_vectors): Allocate zero vector manually to avoid freelist issues. (pure_alloc, check_pure_size, find_string_data_in_pure) (make_pure_string, make_pure_c_string, pure_cons, make_pure_float) (make_pure_bignum, make_pure_vector, purecopy_hash_table): Remove functions. (purecopy): Reduce to hash consing our argument. (init_alloc_once_for_pdumper): Adjust to lack of pure space. (pure-bytes-used): Adjust docstring to mark as obsolete. (purify-flag): Keep for hash consing, but adjust docstring. * src/bytecode.c: * src/comp.c: Don't include "puresize.h". * src/conf_post.h (SYSTEM_PURESIZE_EXTRA): Remove definition. * src/data.c (pure_write_error): Remove function. * src/deps.mk: Remove puresize.h dependency throughout. * src/emacs.c: * src/fns.c: * src/intervals.c: * src/keymap.c: Don't include "puresize.h". * src/lisp.h (struct Lisp_Hash_Table): Adjust comment. (pure_listn, pure_list, build_pure_c_string): Remove. * src/w32heap.c (FREEABLE_P): Don't do use 'dumped_data'. (malloc_before_dump, realloc_before_dump, free_before_dump): Remove functions. * src/w32heap.h: Adjust prototype. * lisp/loadup.el: * lisp/startup.el: Remove purespace code.
| * Unexec removal: Remove HYBRID_MALLOC supportPip Cet2024-12-121-25/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gmalloc.c (gdefault_morecore): Remove HYBRID_MALLOC code. (allocated_via_gmalloc, hybrid_malloc, hybrid_calloc, hybrid_free_1) (hybrid_free, hybrid_aligned_alloc, hybrid_realloc): Remove functions. * msdos/sed1v2.inp: * msdos/sedlibmk.inp: * src/alloc.c (GC_MALLOC_CHECK, USE_ALIGNED_ALLOC) (refill_memory_reserve, aligned_alloc): * src/emacs.c (main): * src/lastfile.c (my_edata): * src/lisp.h: * src/ralloc.c: * src/sysdep.c (get_current_dir_name_or_unreachable): * src/xdisp.c (decode_mode_spec): Remove HYBRID_MALLOC conditions. * configure.ac (hybrid_malloc, HYBRID_MALLOC): Remove variables and dependent code. * src/conf_post.h (hybrid_malloc, hybrid_calloc, hybrid_free) (hybrid_aligned_alloc, hybrid_realloc): Remove conditional prototypes. * src/Makefile.in (HYBRID_MALLOC): Remove variable. (base_obj): Remove sheap.o (LIBEGNU_ARCHIVE): * lib/Makefile.in (libgnu_a_OBJECTS): Remove libegnu.a support.
| * Unexec removal: Main partPip Cet2024-12-121-24/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Remove unexec-specific parts. (EMACS_CONFIG_FEATURES): Always report that we do not have the UNEXEC feature. (AC_ECHO): No longer display a line about the unexec feature. * lisp/loadup.el: * lisp/startup.el: Remove unexec-specific code. * src/Makefile.in (base_obj): Drop 'UNEXEC_OBJ'. * src/alloc.c (staticvec): Never initialize this variable. (BLOCK_ALIGN): Always allow large blocks. (mmap_lisp_allowed_p): Remove unexec-specific code. * src/buffer.c (init_buffer): * src/conf_post.h (ADDRESS_SANITIZER): * src/emacs.c (load_pdump, main): Remove unexec-specific code. (Fdump_emacs): Remove function. (syms_of_emacs): Remove 'Fdump_emacs'. * src/lastfile.c: Remove unexec-specific code. * src/lisp.h (gflags): Remove unexec-specific flags. (will_dump_p, will_bootstrap_p, will_dump_with_unexec_p) (dumped_with_unexec_p, definitely_will_not_unexec_p): Remove or adjust predicates. (SUBR_SECTION_ATTRIBUTE): Remove unexec-specific definition. * src/pdumper.c (Fdump_emacs_portable): Remove unexec-specific warning. * src/process.c (init_process_emacs): Remove !unexec condition * src/sysdep.c (maybe_disable_address_randomization): Adjust comment. (init_signals): * src/timefns.c (init_timefns): Remove unexec-specific code. * src/w32heap.c (report_temacs_memory_usage): Remove function. * src/w32heap.h: Adjust comment. * src/w32image.c (globals_of_w32image): Remove unexec-specific code.
* | Update copyright year to 2025Paul Eggert2025-01-011-1/+1
| | | | | | | | Run "TZ=UTC0 admin/update-copyright".
* | Don’t include stdlib.h from conf_post.hPaul Eggert2024-12-261-49/+0
| | | | | | | | | | | | | | | | | | | | | | This is brittle, as evinced by the recent problem with lib/stdlib.c. * src/conf_post.h: Move potential inclusion of stdlib.h and redefinitions of malloc, free, realloc, aligned_alloc, and calloc from here ... * src/lisp.h: ... to here. Do not redefine the symbols if UNEXMACOS_C is defined. * src/unexmacosx.c: Do not undef malloc, realloc, free. (UNEXMACOS_C): New symbol, to prevent lisp.h from defining them.
* | Let Gnulib deal with MB_CUR_MAXPaul Eggert2024-12-261-10/+0
| | | | | | | | | | | | | | | | | | | | | | Recent Gnulib should work around the Android NDK 16 MB_CUR_MAX bug, so Emacs no longer needs to worry about it. * configure.ac (gl_STDLIB_H): Remove, to stop overriding Gnulib. * configure.ac (__ctype_get_mb_cur_max) (emacs_cv_broken_mb_cur_max, REPLACEMENT_MB_CUR_MAX): * src/conf_post.h (MB_CUR_MAX): Remove, as Gnulib does this now.
* | Enable TTY child frames on MS-DOSPo Lu2024-12-201-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/conf_post.h (ENOTSUP): Define to ENOSYS as msdos.h once did. (IFTODT): Copy definition from Gnulib. * src/dispnew.c (is_tty_frame): Also test FRAME_MSDOS_P. * src/frame.c (tty_child_pos_param, tty_child_size_param): Export functions. * src/msdos.c (mouse_get_xy, mouse_moveto, mouse_pressed): Offset mouse positions by those of the selected frame. (it_face_override): New function. (IT_set_face): New argument F. Load FACE_ID from its face cache. (IT_write_glyphs): Track the frames on which glyphs were generated and apply faces from their individual face caches. (IT_write_glyphs_with_face): New function. (tty_draw_row_with_mouse_face): Reimplement in line with tty.c and eliminate an obsolete optimization. (IT_clear_end_of_line, IT_clear_screen): Load faces from the cache of the provided frame. (IT_set_frame_parameters): Adjust frame geometry and garbage frames after geometry parameters change as a child frame. (BUILD_CHAR_GLYPH): Accept new parameter F. (IT_menu_display): Offset cursor positions by those of the selected frame. * src/msdos.h (ENOTSUP): Move to conf_post.h for Gnulib. * src/xdisp.c (redisplay_internal): Redisplay MSDOS frames unconditionally as with terminal frames.
* | Fix the DJGPP buildPo Lu2024-12-181-0/+7
|/ | | | | | | | * msdos/sedlibmk.inp (LIB_SELINUX, USE_SELINUX_SELINUX_H): Define to 0. * src/conf_post.h (_GL_DIT_NOTDIR, ENOTSUP) [MSDOS]: Define to appropriate values.
* ; Update from GnulibPo Lu2024-09-051-12/+0
| | | | | | | * configure.ac: * src/conf_post.h: Remove workarounds now rendered redundant by Gnulib.
* Port to Android 35Po Lu2024-09-041-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Temporary workaround for Gnulib bug. Verify that the provided android.jar corresponds to Android 35, or any later version. * cross/ndk-build/Makefile.in (NDK_BUILD_SO_LDFLAGS): New variable. * cross/ndk-build/ndk-resolve.mk (NDK_LOCAL_A_NAMES_$(LOCAL_MODULE)): Define to NDK_BUILD_SO_LDFLAGS by default to enable building binaries with support for 16 kb page sizes. * java/AndroidManifest.xml.in: Target SDK 35. * java/INSTALL (16KB PAGE SIZES): New section. Replace references to Android 34 with 35. * java/org/gnu/emacs/EmacsActivity.java (onCreate): Restore pre-SDK 35 inset-relative placement. * java/org/gnu/emacs/EmacsFillPolygon.java (perform): Suppress deprecation warnings, and document why. * m4/ndk-build.m4 (ndk_INIT, ndk_LATE): Check for and enable toolchain support for 16 KB page sizes, if available. (ndk_CONFIG_FILES): Export linker options so derived. * src/conf_post.h [__ANDROID_API__ < 35]: Include system time.h and redefine timezone_t to rpl_timezone_t, so that the Gnulib replacement may not conflict with the useless OS type.
* Fix the MS-DOS buildPo Lu2024-02-151-0/+4
| | | | | | | | * configure.ac (REQUIRE_GNUISH_STRFTIME_AM_PM): Move definition to... * src/conf_post.h (REQUIRE_GNUISH_STRFTIME_AM_PM): ...conf_post.h.
* Be more systematic about parens in C source codePaul Eggert2024-01-201-3/+3
| | | | | | | | | 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.
* Merge from savannah/emacs-29Po Lu2024-01-021-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * ; Add 2024 to copyright yearsPo Lu2024-01-021-1/+1
| |
* | Merge from origin/emacs-29Eli Zaretskii2023-12-091-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0f361cc985d ; Minor copyedits in description of ':box' face property 46fe7a17f53 Fix dragging mode line on text terminals with a mouse (bu... 12daf386f37 ; * doc/lispref/processes.texi (Network): Fix wording and... 037d858dc1a (rust-ts-mode): Set electric-indent-chars dc9b733ab88 js-ts-mode: Highlight function parameters inside destruct... 4a72f13bdfb js-ts-mode: Highlight property shorthands in assignments 83ed9018ede (js--treesit-font-lock-settings): Highlight parameters in... ad0f87bb4c3 (js--treesit-font-lock-settings): Remove some duplicates 71c5f3694fd ; Another fix of doc string of 'message-mail-user-agent' ... 04a39353bae ; * lisp/gnus/message.el (message-mail-user-agent): Doc f... 82ddcf37ec6 ; * doc/lispref/files.texi (Changing Files): Fix last cha... 89068516b3e Don't claim to signal an error when deleting a nonexistin... 4fd254e1830 * lisp/indent.el (indent-rigidly): Improve prompt (bug#67... 5f923ff1a6a ; Fix typos a1f88963f5d rust-ts-mode--comment-docstring: Handle block doc comments a547b0e2e83 rust-ts-mode--comment-docstring: Fix/improve the previous...
| * ; Fix typosStefan Kangas2023-12-031-1/+1
| |
* | Remove workarounds for lib/boot-time.o failuresPo Lu2023-08-141-34/+0
| | | | | | | | | | | | * configure.ac (UTMP_H_DEFINES_BOOT_TIME): * src/conf_post.h [__ANDROID__]: Delete workarounds, now that Gnulib has been corrected.
* | ; * src/conf_post.h: Fix typo.Po Lu2023-08-131-5/+5
| |
* | ; * src/conf_post.h: Fix typo.Po Lu2023-08-131-0/+1
| |
* | Temporary fixes for the Android buildPo Lu2023-08-131-0/+33
| | | | | | | | | | | | * configure.ac: * src/conf_post.h [__ANDROID__]: Define substitutes for functions used by Gnulib that are occasionally absent.
* | * src/conf_post.h: Avoid macro redeclaration.Po Lu2023-03-061-0/+1
| |
* | Port to broken Android NDK versionPo Lu2023-03-041-0/+9
|/ | | | | | | | | * configure.ac: Check for __ctype_get_mb_cur_max. Then see if MB_CUR_MAX is defined to it, and define REPLACEMENT_MB_CUR_MAX if so and it does not link. * java/INSTALL: Update documentation. * src/conf_post.h (MB_CUR_MAX): Define replacement if necessary.
* ; Add 2023 to copyright years.Eli Zaretskii2023-01-011-1/+1
|
* Port better to C23 bool+true+false keywordsPaul Eggert2022-09-281-5/+1
| | | | | | | | | | | | | | | | | | | | C23 is adding the C++ keywords bool, true, and false; prefer them to <stdbool.h> if they are available. * admin/merge-gnulib (GNULIB_MODULES): Add stdbool, which emulates C23 on pre-C23 platforms. (AVOIDED_MODULES): Remove stdbool; Gnulib has renamed this module to stdbool-c99 and nobody uses it so it does not need to be avoided. * m4/c-bool.m4: New file, from Gnulib stdbool module. * lib-src/seccomp-filter.c, src/conf_post.h, src/dynlib.h: * src/emacs-module.c, src/nsterm.m, src/systhread.h: * test/src/emacs-module-resources/mod-test.c: Use the C23 style and use bool without including <stdbool.h>. The Gnulib stdbool module causes config.h to include stdbool.h on pre-C23 platforms. * src/emacs-module.h.in: Don’t include <stdbool.h> if C23 or later, or if it has already been included.
* Use BASE_EQ instead of EQ where obviously safeMattias Engdegård2022-06-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (deadp): * src/buffer.c (reset_buffer_local_variables, candidate_buffer) (Fkill_buffer, Fbuffer_swap_text, Fmake_overlay, Fmove_overlay): * src/callint.c (Fcall_interactively): * src/coding.c (decode_coding_object, encode_coding_object) (code_convert_region, Ffind_operation_coding_system): * src/comp.c (Fcomp_el_to_eln_rel_filename): * src/conf_post.h (RE_TRANSLATE_P): * src/data.c (Fkill_local_variable, Fash, expt_integer): * src/dired.c (file_name_completion): * src/dispnew.c (set_window_cursor_after_update, update_frame_1) (Fframe_or_buffer_changed_p): * src/doc.c (Fdocumentation, Fdocumentation_property) (default_to_grave_quoting_style): * src/editfns.c (Fconstrain_to_field, save_excursion_save) (save_excursion_restore, Fngettext): * src/eval.c (Fautoload, un_autoload, specbind): * src/fileio.c (Fmake_temp_file_internal): * src/fns.c (string_char_to_byte, string_byte_to_char) (Fnthcdr, Fnreverse): * src/indent.c (vmotion): * src/inotify.c (add_watch): * src/keyboard.c (command_loop_1, read_char) (read_char_minibuf_menu_prompt): * src/lread.c (oblookup): * src/macfont.m (macfont_descriptor_entity, macfont_open): * src/minibuf.c (Finnermost_minibuffer_p, Ftry_completion) (Ftest_completion): * src/nsfns.m (ns_set_icon_name): * src/pdumper.c (dump_queue_dequeue): * src/pgtkfns.c (pgtk_set_icon_type, pgtk_set_icon_name): * src/process.c (Faccept_process_output): * src/textprop.c (set_text_properties): * src/w32fns.c (w32_set_icon_type, w32_set_icon_name): * src/w32select.c (validate_coding_system): * src/window.c (decode_next_window_args, window_loop) (save_window_save): * src/xdisp.c (wset_redisplay): * src/xfaces.c (Fx_family_fonts, resolve_face_name) (gui_supports_face_attributes_p): * src/xfns.c (x_set_icon_type, x_set_icon_name): * src/xselect.c (clean_local_selection_data): Use BASE_EQ instead of EQ where it is obvious that neither argument can be a symbol with properties or at least one argument is a non-symbol.
* Do not include <attribute.h> from <config.h>Paul Eggert2022-03-081-10/+9
| | | | | | | | | | | | This is because mod-test.c shouldn’t use source code from lib, but it does need to include <config.h>. * lib-src/ebrowse.c, lib-src/emacsclient.c, lib-src/etags.c: * lib-src/make-docfile.c, lib-src/movemail.c: * lib-src/seccomp-filter.c, src/dynlib.h, src/lisp.h: * src/syssignal.h, src/sysstdio.h, src/systhread.h, src/tparam.h: Include <attribute.h>. * src/conf_post.h: Do not include <attribute.h>. All uses of attribute.h macros replaced with their _GL_ equivalents.
* Fix the MS-DOS portPo Lu2022-02-241-0/+6
| | | | | * msdos/sedlibmk.inp: * src/conf_post.h [MSDOS]: Update for recent gnulib.
* Fix the DJGPP portPo Lu2022-02-111-0/+14
| | | | | | | | | | * config.bat: * msdos/sed1v2.inp: * msdos/sedlibmk.inp: Update for present Emacs. * src/Makefile.in (MAKE_PDUMPER_FINGERPRINT): Fix indentation to not confuse sed*.inp. * src/conf_post.h [MSDOS]: Define some things gnulib wants.
* Silence macOS vfork deprecation warningsMattias Engdegård2022-02-101-0/+13
| | | | | | | | | | | The vfork system call exists and works in macOS 11.6 but the compiler gives a deprecation message; silence it, because the performance is still better than that of plain fork. See discussion at https://lists.gnu.org/archive/html/emacs-devel/2022-02/msg00260.html * src/conf_post.h (VFORK): New #define. * src/callproc.c (emacs_spawn): * src/sysdep.c (sys_subshell): Use it.
* ; Add 2022 to copyright years.Eli Zaretskii2022-01-011-1/+1
|
* Port unused decls to C2xPaul Eggert2021-10-031-1/+0
| | | | | * src/conf_post.h (ATTRIBUTE_UNUSED): Remove. All uses replaced by MAYBE_UNUSED, and moved to start as needed for C2x.
* Clean up the fix for unexec build on GNU/LinuxEli Zaretskii2021-05-201-1/+30
| | | | | | | | | | | | | | | * src/conf_post.h [HYBRID_MALLOC || DARWIN_OS && HAVE_UNEXEC]: Include <stdlib.h> here, before redirecting 'malloc' and friends to their hybrid_* and unexec_* equivalents. #undef malloc and friends before redefining. Provide prototypes for the replacements. Suggested by Paul Eggert <eggert@cs.ucla.edu>. * src/gmalloc.c [HYBRID_MALLOC]: Remove declarations of 'malloc' and friends, as they are now redundant: we include <stdlib.h> in conf_post.h before redefining 'malloc' etc., and that provides prototypes from system headers. * configure.ac (HYBRID_MALLOC): Remove kludge to avoid replacement of 'free' by Gnulib. (Bug#36649)
* Work around __has_attribute bug in clang 3.4Paul Eggert2021-01-221-1/+3
| | | | | | * src/conf_post.h (HAS_ATTRIBUTE): * src/emacs-module.h.in (EMACS_ATTRIBUTE_NONNULL): Port to clang 3.4 and earlier.
* Update copyright year to 2021Paul Eggert2021-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright".
* Fix typos in recent attribute.h simplificationPaul Eggert2020-05-051-4/+5
| | | | | | | | | Problem reported by Andreas Schwab in: https://lists.gnu.org/r/emacs-devel/2020-05/msg00650.html * src/conf_post.h (HAS_ATTR_no_sanitize): Define to false in case cpp is picky, fixing a longstanding glitch here. (ATTRIBUTE_NO_SANITIZE_ADDRESS, ATTRIBUTE_NO_SANITIZE_UNDEFINED): Use HAS_ATTRIBUTE, not __has_attribute.
* Simplify by using attribute.h macrosPaul Eggert2020-05-031-75/+25
| | | | | | | | | | | | | | | | | | attribute.h is partly designed for C2X forward compatibility, since C2X will add some standard attributes. Using its macros should help insulate Emacs from C2X teething problems. * src/conf_post.h: Include attribute.h. (HAS_ATTRIBUTE, HAS_FEATURE): Rename from __has_attribute and __has_feature, to avoid polluting the builtin namespace. All uses changed. (ATTRIBUTE_COLD, ATTRIBUTE_FORMAT, FALLTHROUGH, ATTRIBUTE_CONST) (ATTRIBUTE_PURE, ATTRIBUTE_UNUSED, ATTRIBUTE_MAY_ALIAS) (ATTRIBUTE_MALLOC, ATTRIBUTE_ALLOC_SIZE) (ATTRIBUTE_RETURNS_NONNULL): Remove, as attribute.h does this now. (NO_INLINE, EXTERNALLY_VISIBLE, ARG_NONNULL, ATTRIBUTE_UNUSED): Simplify by defining in terms of attribute.h macros. * src/systhread.h (ATTRIBUTE_WARN_UNUSED_RESULT): Remove. All uses replaced by attribute.h’s NODISCARD.
* Prefer inline functions in character.hPaul Eggert2020-04-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | In character.h, replace macros with inline functions or enums when this is easy. This improves maintainability and on my platform (Fedora 31 x86-64, gcc -O2) improved CPU performance very slightly (0.3%) on ‘make compile-always’. * src/buffer.h (SANE_TAB_WIDTH, CHARACTER_WIDTH): Move here from character.h, and make them inline functions. Tune CHARACTER_WIDTH so that ASCII_CHAR_WIDTH is no longer needed. (sanitize_tab_width, sanitize_char_width): Move here from character.h. * src/character.h (MAX_CHAR, MAX_UNICODE_CHAR, MAX_1_BYTE_CHAR) (MAX_2_BYTE_CHAR, MAX_3_BYTE_CHAR, MAX_4_BYTE_CHAR) (MAX_5_BYTE_CHAR, MIN_MULTIBYTE_LEADING_CODE) (MAX_MULTIBYTE_LEADING_CODE, MAX_MULTIBYTE_LENGTH): Now enum constants instead of macros. * src/character.h (CHAR_BYTES): Redo to avoid conditional branches. (CHAR_BYTE8_P, BYTE8_TO_CHAR, UNIBYTE_TO_CHAR, CHAR_TO_BYTE8) (CHAR_TO_BYTE_SAFE, CHAR_BYTE8_HEAD_P, CHARACTERP) (CHECK_CHARACTER, CHECK_CHARACTER_CAR, CHECK_CHARACTER_CDR) (CHAR_PRINTABLE_P, CHAR_BYTES, CHAR_LEADING_CODE, BYTE8_STRING) (LEADING_CODE_P, TRAILING_CODE_P, CHAR_HEAD_P) (BYTES_BY_CHAR_HEAD): Now inline functions instead of macros. (ASCII_CHAR_WIDTH): Remove; no longer used. * src/conf_post.h (ATTRIBUTE_PURE): New macro. * src/lisp.h (char_table_ref): Use it, for better inlining. * src/fns.c (base64_decode_1): Add now-necessary casts.
* Improve inlining when compiling with -OgPaul Eggert2020-04-071-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | * src/conf_post.h (EXTERN_INLINE) [!EMACS_EXTERN_INLINE]: Make it static inline, not merely static. This is a worthwhile performance improvement on my two platforms A and B (see below). On my platform A this change improves user+system CPU performance of ‘make compile-always’ by 52% on an -Og build, and by 1.4% on the default -O2 build. On my platform B this improves the same benchmark by 41% on an -Og build, and by -0.8% on the default -O2 build. That "-0.8%" is a small negative for this change, and I recall that it is why I didn't make this change earlier. However, Platform B uses an older GCC so we needn't worry overmuch about this small negative. With this change the performance advantage of -O2 over -Og has dropped on platform A; formerly -O2 was 87% faster than -Og, and now it is only 25% faster. On platform B the performance advantage of -O2 over -Og has dropped from being 62% faster to being 14% faster. Platform A is GCC 9.3.1 20200317 (Red Hat 9.3.1-1) on Fedora 31 x86-64 (AMD Phenom II X4 910e, circa 2010). Platform B is GCC (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 on Ubuntu 18.04.4 (Intel Xeon E3-1225 V2, circa 2012). This patch was inspired by a suggestion by Andrea Corallo in: https://lists.gnu.org/r/emacs-devel/2020-04/msg00263.html
* Pacify GCC 9.2.1 20190927 -O3Paul Eggert2020-03-041-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | Original problem report by N. Jackson in: https://lists.gnu.org/r/emacs-devel/2020-03/msg00047.html I found some other warnings when I used gcc, and fixed them with this patch. * lib-src/etags.c: Include verify.h. (xnmalloc, xnrealloc): Tell the compiler that NITEMS is nononnegative and ITEM_SIZE is positive. * src/conf_post.h (__has_attribute_returns_nonnull) (ATTRIBUTE_RETURNS_NONNULL): New macros. * src/editfns.c (Fuser_full_name): Don’t assume Fuser_login_name returns non-nil. * src/intervals.c (rotate_right, rotate_left, update_interval): * src/intervals.h (LENGTH, LEFT_TOTAL_LENGTH, RIGHT_TOTAL_LENGTH): Use TOTAL_LENGTH0 or equivalent on intervals that might be null. * src/intervals.h (TOTAL_LENGTH): Assume arg is nonnull. (TOTAL_LENGTH0): New macro, with the old TOTAL_LENGTH meaning. (make_interval, split_interval_right): Add ATTRIBUTE_RETURNS_NONNULL. * src/pdumper.c (dump_check_dump_off): Now returns void, since no caller uses the return value. Redo assert to pacify GCC. (decode_emacs_reloc): Add a seemingly-random eassume to pacify GCC. Ugly, and I suspect due to a bug in GCC.
* Update copyright year to 2020Paul Eggert2020-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright $(git ls-files)".