summaryrefslogtreecommitdiff
path: root/src/emacs.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge from origin/emacs-27Glenn Morris2020-08-181-6/+10
|\ | | | | | | | | cf0ee6f49b ; spelling fixes 16f4f26632 Fix startup working dir bug on NeXTSTEP
| * Fix startup working dir bug on NeXTSTEPPaul Eggert2020-08-131-6/+10
| | | | | | | | | | * src/emacs.c (main) [NS_IMPL_COCOA]: Update emacs_wd after a NS GUI chdirs successfully (Bug#42836).
* | Add xwidget support for macOSSungbin Jo2020-08-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-authored-by: Jaesup Kwak <veshboo@gmail.com> * configure.ac: Allow '--with-xwidgets' for "${NS_IMPL_COCOA}". * etc/NEWS: Mention new feature. * etc/TODO: Remove done TODO to implement xwidget in NeXTstep port. * lisp/xwidget.el (xwidget-webkit-clone-and-split-below) (xwidget-webkit-clone-and-split-right): New procedures. (xwidget-webkit-callback): Remove call to 'xwidget-webkit-adjust-size-to-window' as adjusting xwidget size is handled in 'x_draw_xwidget_glyph_string'. (xwidget-webkit-enable-plugins): New variable. * nextstep/templates/Info.plist.in: Add 'NSAppTransportSecurity'. * src/Makefile.in: Add nsxwidget.o for compilation. * src/emacs.c (main): Move conditional call to 'syms_of_xwidget'. * src/nsterm.m (ns_draw_glyph_string): Add case for 'XWIDGET_GLYPH'. (note_mouse_movement mouseMoved): Make it easy to resize window by dragging mode-line or vertical separator adjacent to large glyph. * src/nsxwidget.h src/nsxwidget.m: Newly added files, xwidget webkit backend for macOS Cocoa. * src/xwidget.c (Fmake_xwidget, xwidget_init_view) (x_draw_xwidget_glyph_string, xwidget_is_web_view) (Fxwidget_webkit_goto_uri, Fxwidget_webkit_zoom, Fxwidget_resize) (Fxwidget_size_request, Fdelete_xwidget_view, xwidget_end_redisplay) (kill_buffer_xwidgets): Add macOS Cocoa specific functions and code with 'NS_IMPL_COCOA' and guard GTK specific functions and code with 'USE_GTK'. (x_draw_xwidget_glyph_string): Handle adjusting xwidget size. * src/xwidget.h (xwidget, xwidget_view): Add macOS Cocoa specific fields with 'NS_IMPL_COCOA' and guard GTK specific fields with USE_GTK.
* | Rehash hash tables eagerly after loading a dumpPip Cet2020-08-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This simplifies code, and helps performance in some cases (Bug#36597). * src/lisp.h (hash_rehash_needed_p): Remove. All uses removed. (hash_rehash_if_needed): Remove. All uses removed. (struct Lisp_Hash_Table): Remove comment about rehashing hash tables. * src/pdumper.c (thaw_hash_tables): New function. (hash_table_thaw): New function. (hash_table_freeze): New function. (dump_hash_table): Simplify. (dump_hash_table_list): New function. (hash_table_contents): New function. (Fdump_emacs_portable): Handle hash tables by eager rehashing. (pdumper_load): Restore hash tables. (init_pdumper_once): New function.
* | Drop support for -fcheck-pointer-boundsPaul Eggert2020-08-041-1/+0
| | | | | | | | | | | | | | | | | | | | | | GCC has removed the -fcheck-pointer bounds option, and the Linux kernel has also removed support for Intel MPX, so there’s no point to keeping this debugging option within Emacs. * src/bytecode.c (BYTE_CODE_THREADED): * src/lisp.h (DEFINE_LISP_SYMBOL, XSYMBOL, make_lisp_symbol): Assume __CHKP__ is not defined. * src/ptr-bounds.h: Remove. All uses of ptr_bounds_clip, ptr_bounds_copy, ptr_bounds_init, ptr_bounds_set removed.
* | Merge from origin/emacs-27Glenn Morris2020-07-201-0/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cd93debc60 (origin/emacs-27) Merge branch 'emacs-27' of git.savannah.... 2c0c613ec5 Document prefix arg effects for 'epa-mail-{sign,encrypt}' 551123e0b2 * etc/NEWS: Correct description of :client-certificate change 05c4329cf5 Revert "Fix filename completion in shell mode buffers" de68572742 Improve documentation of 'bookmark-bmenu-mode' fd85e70be7 Update systems using GnuTLS certificate files 0d4ba1c2b2 Improve documentation of 'kill-emacs' b3bbd4fd00 Improve documentation of 'display-raw-bytes-as-hex' f50d79af6b Correct descriptions of init file e325d2638c Fix interrupt-process on MS-Windows d24e56a5e4 Revert "* doc/misc/flymake.texi (An annotated example back... # Conflicts: # etc/NEWS
| * Improve documentation of 'kill-emacs'Eli Zaretskii2020-07-171-0/+2
| | | | | | | | | | | | * doc/lispref/os.texi (Killing Emacs): * src/emacs.c (Fkill_emacs): Document what non-integer, non-string argument to 'kill-emacs' means. (Bug#42400)
* | Merge from origin/emacs-27Paul Eggert2020-06-011-1/+4
|\ \ | |/ | | | | 0260d2d2db Don't call 'mbrtowc' on WINDOWSNT
| * Don't call 'mbrtowc' on WINDOWSNTEli Zaretskii2020-06-011-1/+4
| | | | | | | | | | * src/emacs.c (using_utf8): Don't call 'mbrtowc' on WINDOWSNT systems, as it's not available on Windows 9X.
| * Redo RCS Id for pdumperPaul Eggert2020-05-211-0/+5
| | | | | | | | | | | | | | | | * lisp/version.el: Don’t put an RCS Id style string into the executable via purecopy, as this does not work with the pdumper. * src/emacs.c (RCS_Id): New constant, for 'ident'. (cherry picked from commit 3d1bcfba5e21b29be8669aa2a8f27b344c9e02fd)
* | Redo RCS Id for pdumperPaul Eggert2020-05-181-0/+5
| | | | | | | | | | | | * lisp/version.el: Don’t put an RCS Id style string into the executable via purecopy, as this does not work with the pdumper. * src/emacs.c (RCS_Id): New constant, for 'ident'.
* | Remove ancient OS X process-connection-type handlingGlenn Morris2020-03-051-1/+0
| | | | | | | | | | | | | | * src/process.c (init_process_emacs) [DARWIN_OS]: Remove process-connection-type special-casing for OS X < 10.3 (ie pre-2003). Ref https://lists.gnu.org/r/emacs-devel/2005-01/msg00741.html
* | Fix macOS/GNUstep compilation warningsAlan Third2020-03-021-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/nsfns.m (handlePanelKeys): Unused function. * src/nsterm.m (ns_set_appearance): ([EmacsView initFrameFromEmacs:]): Use EmacsWindow type instead of NSWindow. (ns_clip_to_row): Unused function. (ns_dumpglyphs_stretch): Remove unused variable. (ns_term_init): ([EmacsWindow setAppearance]): Only compile on macOS. (ns_mouse_position): Make sure f is initialised on GNUstep. * src/emacs.c (main): Move allocation of autorelease pool to before first use.
* | Propagate NSLocale into Emacs betterPaul Eggert2020-01-261-9/+3
| | | | | | | | | | * src/emacs.c (main): Call ns_init_locale before using the environment variable that ns_init_locale sets up (Bug#39248).
* | Simplify locale setupPaul Eggert2020-01-231-40/+30
|/ | | | | | | | | | | | | | Stop exporting Vprevious_system_time_locale and Vprevious_system_messages_locale to Elisp. I did that export by mistake in 1999, and the Elisp variables have never been used. Simplifying this cruft should make it easier to fix Bug#39248. * etc/NEWS: Mention this. * src/emacs.c (main): Simplify locale initialization. (synchronize_locale): Simplify. (Vprevious_system_time_locale, Vprevious_system_messages_locale): Now static variables not visible to Lisp, and defined only if HAVE_SETLOCALE. (Vprevious_system_messages_locale): Define only if LC_MESSAGES.
* Update copyright year to 2020Paul Eggert2020-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
* Fix typo that broke GNU/Linux unexec buildPaul Eggert2019-12-131-1/+0
| | | | | | | * src/emacs.c (Fdump_emacs): Remove stray closing brace that breaks the build when configured with --with-dumping=unexec on GNU/Linux. (Apparently everybody is using pdumper now.) I introduced the bug in 2019-07-09T00:50:39Z!eggert@cs.ucla.edu.
* Make .pdmp file more reproduciblePaul Eggert2019-11-191-2/+1
| | | | | | | | | | Problem reported by Ulrich Müller <https://lists.gnu.org/r/emacs-devel/2019-11/msg00757.html> and diagnosed by Andreas Schwab <https://lists.gnu.org/r/emacs-devel/2019-11/msg00774.html>. * src/sysdep.c (maybe_disable_address_randomization): Disable ASLR if any kind of dumping, instead of merely if unexec dumping. Omit first arg for simplicity; all uses changed.
* Update some URLsPaul Eggert2019-09-231-5/+1
| | | | | | | | | | | | | | | | | This mostly changes http: to https: in URLs. It also updates some URLs that have moved, removes some URLs that no longer work, recommends against using procmail (procmail.org no longer works), and removes some mentions of the no-longer-existing Gmane, LPF and VTW. It doesn't update all URLs, just the ones I had time for. * GNUmakefile (help): * admin/admin.el (manual-doctype-string): * admin/charsets/Makefile.in (${charsetdir}/ALTERNATIVNYJ.map): * admin/charsets/mapconv: * lisp/net/soap-client.el (soap-create-envelope): * lisp/org/org.el (org-doi-server-url): * lisp/textmodes/bibtex.el (bibtex-generate-url-list): Prefer https: to http: un URLs.
* Omit some overenthusiastic file-truename callsPaul Eggert2019-09-181-5/+9
| | | | | | | | | | | | | | | | | Problem reported by Tino Calancha (Bug#37445). * src/emacs.c (init_cmdargs): Call file-truename only if needed, i.e., if invocation-directory ends in "/i386/" on WINDOWSNT. * src/lread.c (readevalloop): If the sourcename is not absolute, make it absolute. There is no need to convert non-absolute files into truenames, since absolute files are not converted into truenames. (init_lread): Do not convert source-directory into a truename at startup. There is no need to do so in a dumped Emacs since an absolute file name suffices. The source directory might not even exist any more, or might have been replaced by an interloper who takes advantage of the truename calculation. (syms_of_lread): Remove Qfile_truename; no longer needed.
* Improve reporting of I/O, access errorsPaul Eggert2019-09-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signal an error for file-oriented errors that are not tame errors like ENOENT and ENOTDIR (Bug#37389). Do this for primitives exposed to Lisp; the lower level internal C API merely makes errno values available to higher-level C code. * doc/lispref/files.texi (Testing Accessibility) (File Attributes, Extended Attributes): Do not say that the functions return nil when the return value cannot be determined. * etc/NEWS: Mention the change. * src/dired.c (Ffile_attributes): Fix doc string confusion about opening a file vs getting its attributes. (file_attributes): Signal serious errors. * src/fileio.c (check_existing, check_executable) (check_writable): Remove. All callers changed to use check_file_access or file_access_p. (file_access_p, file_metadata_errno, file_attribute_errno) (file_test_errno, check_file_access, check_emacs_readlinkat): New functions. * src/fileio.c (Ffile_executable_p, Ffile_readable_p) (Ffile_name_case_insensitive_p, Frename_file, Ffile_exists_p): (Ffile_symlink_p, Ffile_directory_p) (Ffile_accessible_directory_p, Ffile_regular_p) (Ffile_selinux_context, Ffile_acl, Ffile_modes) (Ffile_newer_than_file_p, Fset_visited_file_modtime) (Ffile_system_info): * src/filelock.c (unlock_file, Ffile_locked_p): * src/lread.c (Fload): Signal serious errors. * src/fileio.c (Ffile_writable_p): Remove unnecessary CHECK_STRING. (emacs_readlinkat): Now static. * src/filelock.c (current_lock_owner, lock_if_free): Return a positive errno on error, and the negative of the old old value on success. All callers changed. * src/lread.c (openp): Propagate serious errno values to caller.
* Remove obsolete Lint directivesPaul Eggert2019-09-161-1/+0
| | | | | | | | | | | | | Most of the directives were wrong anyway. Apparently traditional lint hasn’t been used to check Emacs for years. * src/callint.c (Finteractive): * src/cm.c (evalcost): * src/emacs.c (main): * src/eval.c (call1, call2, call3, call4, call5, call6, call7, call8): * src/fns.c (concat2, concat3, nconc2): * src/term.c (calculate_ins_del_char_costs): Omit ARGSUSED comments. * src/eval.c (call1): Omit VARARGS comment.
* Improve checking of pdump load failuresPaul Eggert2019-09-111-106/+76
| | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (memory_full): Just report "memory exhausted" if failure occurs during initialization, since fancier recovery schemes are not likely to work when not initialized. * src/emacs.c (dump_error_to_string): Accept int, not enum pdumper_load_result, since the result might not fit in the enum. Use strerror if it was derived from errno. This is for better diagnostics of pdump load failures. (load_pdump_find_executable): Return char *, not enum. 2nd arg is now pointer to buffer size, rather than pointer to pointer to buffer. All callers changed. Use Emacs allocator since they should now be OK even during early startup. Use check_executable instead access, to use effective rather than real permissions. (load_pdump): Return void since callers ignore result. Use int where enum could be too narrow. Use heap rather than stack for possibly-long string. Prefer ptrdiff_t to size_t. * src/fileio.c (check_executable): Now extern. * src/pdumper.c (pdumper_load): Return int that may have errno added to it, for better diagnostics when loads fail.
* Check instead of relying on NOTREACHEDPaul Eggert2019-08-311-2/+1
| | | | | | | | | | | | | | | | NOTREACHED was designed for traditional lint decades ago, and _Noreturn now normally subsumes its function. In the one case in Emacs where NORETURN might help and _Noreturn does not, check for NOTREACHED instead of assuming it. * lib-src/etags.c (main): * src/xterm.c (x_connection_closed): Remove NOTREACHED after a call to a _Noreturn function, as NOTREACHED is no longer needed there. Also, one of the NOTREACHEDs was misplaced, which defeated traditional lint checking anyway. * lib-src/pop.c (pop_getline): Redo so as to not need NOTREACHED. * src/emacs.c (main): Use eassume (false) rather than NOTREACHED, so that running with ENABLE_CHECKING catches any internal error causing the toplevel Frecursive_edit to return.
* Improve pdumper doc; say unexec is deprecatedPaul Eggert2019-07-231-3/+3
| | | | | | | | | | | Say that pdumping cannot redump unless -batch is used. Say that the traditional unexec dumping method is by default not available, and is deprecated. Don't call dump files "portable", as dump files are not any more portable than the Emacs executables themselves. Just call them "dump files". Similar, prefer "portable dumper" (since the dumper code is portable) to "portable dumping" (since the dump file is not). Be more systematic about calling them "dump files" instead of "dumped images" or whatnot.
* Avoid interleaving stderr lines when shutting downPaul Eggert2019-07-131-16/+22
| | | | | | | | * src/emacs.c (shut_down_emacs) [!DOS_NT]: Avoid interleaving to stderr in the usual case, by using a single write and by appending a newline. * src/sysdep.c (emacs_backtrace) [HAVE_BACKTRACE_SYMBOLS_FD]: Omit newline since shut_down_emacs now does that.
* Use fewer locks when accessing stdioPaul Eggert2019-07-081-37/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c, src/bidi.c, src/emacs-module.c, src/pdumper.c: * src/regex-emacs.c, src/unexhp9k800.c, src/unexmacosx.c: * src/widget.c, src/xdisp.c, src/xselect.c, src/xterm.c: Include sysstdio.h instead of stdio.h, to avoid locking stdio streams in many cases. * src/alloc.c (test_setjmp): * src/bidi.c (bidi_dump_cached_states): * src/cm.c (calccost): * src/dispnew.c (init_display_interactive): * src/emacs.c (main): * src/image.c (convert_mono_to_color_image): * src/minibuf.c (read_minibuf_noninteractive): * src/nsfont.m (ns_descriptor_to_entity) (ns_dump_glyphstring): * src/nsterm.h (NSTRACE_MSG_NO_DASHES): * src/nsterm.m (ns_mouse_position) (sendEvent:, keyDown:, performDragOperation:): * src/pdumper.c (dump_fingerprint, print_paths_to_root_1): * src/print.c (debug_print): * src/regex-emacs.c (debug_putchar, print_fastmap) (print_partial_compiled_pattern, print_compiled_pattern) (print_double_string, regex_compile): * src/term.c (vfatal): * src/unexhp9k800.c (read_header): * src/unexmacosx.c (unexec_error): * src/widget.c (EmacsFrameInitialize): * src/xdisp.c (message_to_stderr, vmessage, dump_glyph_row) (Fdump_glyph_matrix, Fdump_frame_glyph_matrix, dump_glyph_string): * src/xfaces.c (Fdump_colors, Fdump_face): * src/xselect.c (x_clipboard_manager_error_2): * src/xterm.c (x_initialize): * src/xwidget.c (WEBKIT_FN_INIT): Prefer unlocked calls like fputs to locked calls like fprintf. * src/charset.c (read_hex): * src/cm.c (cmputc, cmcheckmagic): * src/dispnew.c (update_frame, update_frame_with_menu) (update_frame_1, Fsend_string_to_terminal, Fding) (bitch_at_user): * src/emacs.c (main, Fdump_emacs): * src/emacs-module.c (module_abort): * src/fileio.c (Fdo_auto_save): * src/image.c (slurp_file) (png_read_from_file, png_load_body, our_stdio_fill_input_buffer): * src/keyboard.c (record_char, kbd_buffer_get_event) (handle_interrupt): * src/lread.c (readbyte_from_stdio, read1): * src/minibuf.c (read_minibuf_noninteractive): * src/print.c (printchar_to_stream, strout) (Fredirect_debugging_output): * src/sysdep.c (reset_sys_modes, close_output_streams) (procfs_ttyname, procfs_get_total_memory): * src/term.c (tty_ring_bell, tty_send_additional_strings) (tty_set_terminal_modes, tty_reset_terminal_modes) (tty_update_end, tty_clear_end_of_line, tty_write_glyphs) (tty_write_glyphs_with_face, tty_insert_glyphs) (tty_menu_activate): * src/xfaces.c (Fx_load_color_file): Simplify by using ordinary calls like putc to explicitly-unlocked calls like putc_unlocked, since the ordinary calls are now unlocked anyway. * src/emacs.c (main, Fdump_emacs): * src/pdumper.c (Fdump_emacs_portable): Coalesce adjacent printfs. * src/nsterm.h: Include sysstdio.h as this file’s macros rely on it. * src/regex-emacs.c (print_compiled_pattern): Omit redundant fflush. * src/sysstdio.h: Include unlocked-io.h. (clearerr_unlocked, feof_unlocked, ferror_unlocked) (fflush_unlocked, fgets_unlocked, fputc_unlocked) (fputs_unlocked, fread_unlocked, fwrite_unlocked) (getc_unlocked, getchar_unlocked, putc_unlocked) (putchar_unlocked): Remove these macros; now done by unlocked-io.h. * src/xwidget.c: Include sysstdio.h.
* Remove printmax_t etc.Paul Eggert2019-07-071-2/+3
| | | | | | | | | | | | printmax_t etc. were needed only for platforms that lacked support for printing intmax_t. These platforms are now so obsolete that they are no longer practical porting targets. * src/image.c (gs_load): Fix unlikely buffer overrun discovered while making these changes. It was introduced in 2011-07-17T00:34:43!eggert@cs.ucla.edu. * src/lisp.h (printmax_t, uprintmax_t, pMd, pMu, pMx): Remove. All uses replaced by their standard counterparts intmax_t, uintmax_t, PRIdMAX, PRIuMAX, PRIxMAX.
* Don’t ignore stderr failure when ADDRESS_SANITIZERPaul Eggert2019-07-061-20/+0
| | | | | | | * src/emacs.c (close_output_streams): Move from here ... * src/sysdep.c: ... to here, where it really belongs anyway. When ADDRESS_SANITIZER, fflush stderr and check for ferror, to catch stderr output errors even in this case.
* Fix invoking Emacs via a symlink on CygwinKen Brown2019-06-271-1/+1
| | | | * src/emacs.c (load_pdump) [CYGWIN]: Strip ".exe" suffix.
* Support invoking Emacs via a symlink on MS-WindowsEli Zaretskii2019-06-261-0/+2
| | | | | | | | * src/w32.c (w32_my_exename): Resolve symlinks in the executable name, to support searching for the pdumper file when the executable is found via a symlink. * src/emacs.c (load_pdump): Add a comment about symlink resolution on Windows.
* Avoid some strlen work, primarily via strnlenPaul Eggert2019-06-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * admin/merge-gnulib (GNULIB_MODULES): Add strnlen. * lib-src/etags.c (find_entries): * src/emacs.c (main): * src/nsmenu.m (parseKeyEquiv:): * src/nsterm.m (ns_xlfd_to_fontname): * src/term.c (vfatal): Prefer !*X to !strlen (X). * lib-src/etags.c (pfnote, add_regex): * lib-src/pop.c (pop_open): * lib-src/update-game-score.c (main): * lwlib/lwlib.c (lw_separator_p): * src/doprnt.c (doprnt): * src/emacs.c (main): * src/inotify.c (inotifyevent_to_event): * src/keyboard.c (menu_separator_name_p, parse_tool_bar_item): * src/sysdep.c (get_current_dir_name_or_unreachable): * src/xdisp.c (store_mode_line_string): Use strnlen to avoid unnecessary work with strlen. * lib-src/etags.c (Prolog_functions, prolog_pr) (Erlang_functions, erlang_func): Prefer ptrdiff_t to size_t when either will do. (prolog_pr, erlang_func): New arg LASTLEN, to avoid unnecessary strlen call. All callers changed. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. * lib/strnlen.c, m4/strnlen.m4: New files, copied from Gnulib. * lwlib/lwlib.c (lw_separator_p): * src/json.c (json_has_prefix): Use strncmp to avoid unecessary work with strlen + memcmp. * src/process.c (set_socket_option): Use SBYTES instead of strlen.
* Fix MS-Windows build as followup to pdumper executable lookupEli Zaretskii2019-06-241-1/+25
| | | | | | | | | | | | | | * src/w32.c (w32_my_exename): New function. * src/w32.h (w32_my_exename): Add prototype. * src/emacs.c (load_pdump_find_executable) [WINDOWSNT]: Find the actual file name of the program without looking along PATH, by calling w32_my_exename. * nt/mingw-cfg.site (ac_cv_func_canonicalize_file_name) (ac_cv_func_realpath, gl_cv_func_realpath_works): Disable testing. * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_canonicalize-lgpl): Set to true.
* Fix pdumper executable-finding codeDaniel Colascione2019-06-241-25/+137
| | | | | | * src/emacs.c: (load_pdump_find_executable): New function. (load_pdump): Use it.
* Fix locating pdump by symlinkDaniel Colascione2019-06-231-12/+15
| | | | | | | | | | | * admin/merge-gnulib (GNULIB_MODULES): Add canonicalize-lgpl module * build-aux/config.guess, build-aux/gitlog-to-changelog, build-aux/update-copyright, lib/canonicalize-lgpl.c, lib/gnulib.mk.in, lib/malloca.c, lib/malloca.h, lib/pathmax.h, m4/canonicalize.m4, m4/double-slash-root.m4, m4/gnulib-comp.m4, m4/malloca.m4, my/pathmax.4: copy from GNUlib or regenerate from update * src/emacs.c: find dump by canonical path
* Clean up and simplify image-type setupPaul Eggert2019-05-171-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | This also fixes an unlikely hang involving a circular image description. * src/dispextern.h (struct image.type): Now pointer-to-const. * src/image.c (struct image_type.init) [!WINDOWSNT]: Omit. (IMAGE_TYPE_INIT): New macro. (image_types): Now a small array-of-const, not a pointer. (CACHE_IMAGE_TYPE): Remove; the code’s simpler without it. (ADD_IMAGE_TYPE): Remove this macro, replacing with ... (add_image_type): ... this equivalent function. All uses changed. (define_image_type): Remove. All uses removed. (valid_image_p): Use FOR_EACH_TAIL_SAFE to avoid Emacs hanging if the user creates a circular description of an image. (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type) (gif_type, imagemagick_type, svg_type, gs_type): Remove; now done by image_types. (init_imagemagick_functions): Remove decl of nonexistent function. (gs_clear_image): Remove; all uses replaced by image_clear_image. (initialize_image_type): New function, which captures a lot of the previously-scattered WINDOWSNT ifdefs. (lookup_image_type): Use it. (reset_image_types): Remove. All uses removed. (syms_of_image): Don’t worry about ignoring image_types for pdumper, since it’s a constant now.
* Simplify thread initialization and GCPaul Eggert2019-04-241-1/+0
| | | | | | | | | | | | | * src/lisp.h (PVECHEADERSIZE): New macro. (XSETPVECTYPESIZE): Use it. * src/search.c (syms_of_search): No need to initialize or staticpro last_thing_searched or saved_last_thing_searched, as the thread code arranges for initialization and GC. * src/thread.c (main_thread): Initialize statically. (Fmake_mutex, Fmake_condition_variable, Fmake_thread): Use ALLOCATE_ZEROED_PSEUDOVECTOR rather than zeroing by hand. (mark_one_thread): No need to mark Lisp_Object members. (init_main_thread, init_threads_once): Remove. All uses removed.
* Merge from origin/emacs-26Glenn Morris2019-04-211-1/+1
|\ | | | | | | | | | | | | | | 037970f Document insert-image-file's return value (Bug#32978) 598b45a Autoload cua-toggle-rectangle-mark (Bug#34947) 95bd56d Tell xclip not to expect job-control under eshell (Bug#35257) 9997bbb ; * src/emacs.c: Fix typo in comment (Bug#35320). a4ad7be Fix off-by-one-link error in image--set-property
| * ; * src/emacs.c: Fix typo in comment (Bug#35320).Noam Postavsky2019-04-191-1/+1
| |
* | Mark _Noreturn error functions as coldPaul Eggert2019-04-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On my platform this made ‘make compile-always’ 1.3% faster. Suggested by Alex Gramiak in: https://lists.gnu.org/r/emacs-devel/2019-04/msg00684.html * configure.ac (nw): Don’t use -Wsuggest-attribute=cold. * lib-src/make-docfile.c (write_globals): Mark noreturn functions as cold. * src/callproc.c (exec_failed): * src/data.c (wrong_length_argument, wrong_type_argument): * src/emacs-module.c (module_abort): * src/emacs.c (terminate_due_to_signal): * src/eval.c (unwind_to_catch): * src/image.c (my_png_error, my_error_exit): * src/json.c (json_out_of_memory, json_parse_error): * src/keyboard.c (quit_throw_to_read_char, user_error): * src/lisp.h (die, wrong_type_argument, wrong_choice) (args_out_of_range, args_out_of_range_3, circular_list) (buffer_overflow, memory_full, buffer_memory_full) (string_overflow, xsignal, xsignal0, xsignal1, xsignal2) (xsignal3, signal_error, overflow_error, error, verror) (nsberror, report_file_errno, report_file_error) (report_file_notify_error, terminate_due_to_signal) (emacs_abort, fatal): * src/lread.c (load_error_old_style_backquotes) (end_of_file_error, invalid_syntax): * src/pdumper.c (error_unsupported_dump_object): * src/puresize.h (pure_write_error): * src/search.c (matcher_overflow): * src/sound.c (sound_perror, alsa_sound_perror): * src/sysdep.c (handle_arith_signal): * src/systime.h (time_overflow): * src/term.c (maybe_fatal, vfatal): * src/textprop.c (text_read_only): * src/timefns.c (invalid_time_zone_specification) (time_error, invalid_hz): * src/xterm.c (x_connection_closed): Use AVOID instead of _Noreturn void, so that it’s marked cold. * src/conf_post.h (__has_attribute_cold) [!__has_attribute]: New macro. (ATTRIBUTE_COLD): New macro. * src/frame.h (WINDOW_SYSTEM_RETURN): Add ATTRIBUTE_COLD. * src/lisp.h (AVOID): New macro. * src/xterm.c: Omit unnecessary static decls, so that we needn’t worry about which functions should be marked cold. (x_io_error_quitter): Mark as cold.
* | Merge from origin/emacs-26Glenn Morris2019-04-121-2/+7
|\ \ | |/ | | | | | | | | | | | | | | 818a68b * etc/HISTORY: Update for Emacs 26.2 release. e04aa5a ; ChangeLog.3 update 8297e97 * etc/AUTHORS: Update. 8582936 Improve documentation of 'read-command' dc81c05 ; * CONTRIBUTE: Mention where to ask for the copyright assign... b77723a Fix an outdated URL in a comment
| * Fix an outdated URL in a commentEli Zaretskii2019-04-111-2/+7
| | | | | | | | | | * src/emacs.c: Fix reference to Cocoa CoreFoundation Release Notes. (Bug#35225)
* | Fix misuses of NULL when talking about the NUL characterStefan Monnier2019-03-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/subr.el (inhibit-null-byte-detection): Make it an obsolete alias. * src/coding.c (setup_coding_system): Use new name. (detect_coding): Rename null_byte_found => nul_byte_found. (detect_coding_system): Use new name. Rename null_byte_found => nul_byte_found. (Fdefine_coding_system_internal): Use new name. (syms_of_coding): Rename inhibit-null-byte-detection to inhibit-nul-byte-detection. * src/w16select.c (get_clipboard_data): null_char => nul_char. * src/json.c (check_string_without_embedded_nuls): Rename from check_string_without_embedded_nulls. (Fjson_parse_string): Adjust accordingly. * src/coding.h (enum define_coding_undecided_arg_index) (enum coding_attr_index): ...null_byte... => ...nul_byte.... * lisp/info.el (info-insert-file-contents, Info-insert-dir): * lisp/international/mule.el (define-coding-system): * lisp/vc/vc-git.el (vc-git--call): * doc/lispref/nonascii.texi (Lisp and Coding Systems): Use the new name.
* | Unbreak the Cygw32 buildEli Zaretskii2019-02-101-1/+3
| | | | | | | | | | * src/emacs.c (main) [HAVE_NTGUI]: Remove code that is only for WINDOWSNT or condition it on WINDOWSNT. (Bug#34409)
* | Minor fix for unexec builds.Eli Zaretskii2019-02-071-2/+5
| | | | | | | | | | * src/emacs.c (main): Fix assertions and logic for pdump loading in builds that can both unexec and pdump.
* | ; Simplify last change.Eli Zaretskii2019-02-071-5/+1
| |
* | Avoid segfaults on MS-Windows in enexec'ed EmacsEli Zaretskii2019-02-071-10/+16
| | | | | | | | | | * src/emacs.c (main) [WINDOWSNT]: Fix logic of using dynamic heap in unexec case. (Bug#34277)
* | Unbreak interactive invocation of temacs on MS-WindowsEli Zaretskii2019-02-061-2/+2
| | | | | | | | | | * src/emacs.c (main) [WINDOWSNT]: Allow to invoke temacs interactively without the --temacs= option.
* | Prevent segfault in bootstrap-emacs on MinGWEli Zaretskii2019-02-021-1/+3
| | | | | | | | | | * src/emacs.c (main) [WINDOWSNT]: Fix logic of determining by argv[0] whether to use the static heap. (Bug#34277)
* | Rename CANNOT_DUMP to HAVE_UNEXECPaul Eggert2019-02-011-23/+21
| | | | | | | | | | | | | | * configure.ac (CANNOT_DUMP): Remove. All uses removed, or changed to the negative of with_unexec. (HAVE_UNEXEC): New macro. All uses of CANNOT_DUMP changed to the negative of this macro.