aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Do not treat ~nosuchuser as an absolute file namePaul Eggert2019-07-241-66/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Derived from Ken Brown’s patch (Bug#36502#97). * doc/lispref/files.texi (Relative File Names): * etc/NEWS: Document this. * src/fileio.c (user_homedir): New function. (Fexpand_file_name, file_name_absolute_p): Use it. (search_embedded_absfilename): Simplify via file_name_absolute_p. * test/src/fileio-tests.el (fileio-tests--no-such-user): New test.
* | | Port double-slash test to z/OSPaul Eggert2019-07-241-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * admin/merge-gnulib (GNULIB_MODULES): Add double-slash-root. Emacs was already using this Gnulib module indirectly, so this is merely noting that there is now a direct dependency. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. * src/fileio.c (search_embedded_absfilename): Use DOUBLE_SLASH_IS_DISTINCT_ROOT instead of (WINDOWSNT || CYGWIN). Simplify.
* | | Merge pdumper.c and alloc.c builtin symbol testsPaul Eggert2019-07-233-15/+15
| | | | | | | | | | | | | | | | | | | | | * src/alloc.c (c_symbol_p): Move from here ... * src/lisp.h (c_symbol_p): ... to here, and make it more portable to hypothetical platforms where pointers are wider than ptrdiff_t. * src/pdumper.c (dump_builtin_symbol_p): Use c_symbol_p.
* | | Improve pdumper doc; say unexec is deprecatedPaul Eggert2019-07-236-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | * src/fns.c (hashfn_user_defined): Make sure we always return a fixnum.Stefan Monnier2019-07-231-1/+1
| | |
* | | Support "%x" etc. formats on more floatsPaul Eggert2019-07-231-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/strings.texi (Formatting Strings): Document this. * src/editfns.c (styled_format): Support %o, %x, and %X on finite floats less than zero or greater than UINTMAX_MAX. * test/src/editfns-tests.el (format-%x-large-float) (read-large-integer, format-%o-negative-float): Adjust tests to match extended behavior. Rename the latter test from format-%o-invalid-float, since the float is no longer invalid. * test/src/editfns-tests.el (format-%x-large-float) (read-large-integer): Test this.
* | | Tweak performance of cmpfn_profilerPaul Eggert2019-07-221-2/+4
| | | | | | | | | | | | | | | * src/profiler.c (cmpfn_profiler): Improve performance when VECTORP (bt1) && EQ (bt1, bt2).
* | | Avoid overexposing fixnums for hash codesPaul Eggert2019-07-222-15/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following a suggestion by Stefan Monnier in: https://lists.gnu.org/r/emacs-devel/2019-07/msg00530.html * doc/lispref/hash.texi (Creating Hash, Defining Hash): * src/fns.c (Fsxhash_eq, Fsxhash_eql, Fsxhash_equal, Fmake_hash_table): Don’t insist that hash codes be fixnums, reverting the recent doc changes to the contrary. * src/bytecode.c (exec_byte_code): Special-case only the eq case, as the others aren’t worth tuning now that we treat bignum hashes like fixnums. * src/fns.c (hashfn_user_defined): If the hash code is a bignum, reduce its hash down to a fixnum.
* | | Do not pdump user-defined hashtabsPaul Eggert2019-07-223-1/+4
| | | | | | | | | | | | | | | | | | * src/pdumper.c (dump_hash_table_stable_p): Signal an error if a hash table has user-defined tests (Bug#36769). * src/fns.c (hashfn_user_defined): Now extern.
* | | Keep track of consing while GC’s inhibitedPaul Eggert2019-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | | * src/alloc.c (allow_garbage_collection): Do not discard the count of consing that occurred while GC was inhibited. Problem and initial fix reported by Pip Cet in: https://lists.gnu.org/r/emacs-devel/2019-07/msg00523.html
* | | Handle persistence of windows' scroll bar and fringes settings (Bug#36193)Martin Rudalics2019-07-224-220/+253
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/display.texi (Fringe Size/Pos): Document new argument PERSISTENT of 'set-window-fringes'. (Scroll Bars): Document new argument PERSISTENT of 'set-window-scroll-bars'. Mention that HORIZONTAL-TYPE must be 'bottom' to show a horizontal scroll bar on mini windows. * lisp/window.el (window-min-pixel-height): For mini windows the minimum height is one line. (window--min-size-1): Use value returned by 'window-min-pixel-height' when dealing with mini windows. (window--resize-mini-window): Try to handle horizontal scroll bars and size restrictions more accurately. (window--state-put-2): Handle persistence of scroll bar settings. * src/frame.c (make_frame): Allow horizontal scroll bars in mini windows. (adjust_frame_size): Drop PIXELWISE argument in 'resize_frame_windows' calls. * src/window.c (set_window_buffer): Don't override WINDOW's scroll bar and fringe settings when marked as persistent. (resize_frame_windows): Drop fourth argument PIXELWISE - SIZE is always specified in terms of pixels. Try to handle height of mini windows more accurately. (grow_mini_window, shrink_mini_window): Use body height of mini window when calculating expected height change. Take horizontal scroll bars into account. (struct saved_window): Two new members to handle persistence of window fringes and scroll bars. (Fset_window_configuration, save_window_save): Handle persistence of fringes and scroll bars. (set_window_fringes, set_window_scroll_bars): New arguments PERSISTENT. Make dimension checks more accurate. (Fset_window_fringes): New argument PERSISTENT. (Fwindow_fringes, Fwindow_scroll_bars): Add PERSISTENT to return values. (Fset_window_scroll_bars): New argument PERSISTENT. In doc-string mention that 'bottom' must be specified to get a horizontal scroll bar in mini windows. (compare_window_configurations): Add checks for persistence of fringes and scroll bars. * src/window.h (struct window): New boolean slots 'fringes_persistent' and 'scroll_bars_persistent'. (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Allow horizontal scroll bars for mini windows. (resize_frame_windows): Remove fourth argument of 'resize_frame_windows' in external declaration. * src/xdisp.c (resize_mini_window): Use box text height to tell whether mini window height changed. (set_horizontal_scroll_bar): Set mini window's horizontal scroll bar when its type is specified as 'bottom'. * etc/NEWS: Mention new options for 'set-window-fringes' and 'set-window-scroll-bars'.
* | | Fix lifetime error in previous patchPaul Eggert2019-07-213-5/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem reported by Pip Cet in: https://lists.gnu.org/r/emacs-devel/2019-07/msg00520.html * src/alloc.c (inhibit_garbage_collection): Use new function. (allow_garbage_collection): Accept intmax_t, not pointer. * src/eval.c (default_toplevel_binding, do_one_unbind) (backtrace_eval_unrewind, Fbacktrace__locals, mark_specpdl): Support SPECPDL_UNWIND_INTMAX. (record_unwind_protect_excursion): New function. * src/lisp.h (enum specbind_tag): New constant SPECPDL_UNWIND_INTMAX. (union specbinding): New member unwind_intmax.
* | | Speed up maybe_gc when GC is inhibitedPaul Eggert2019-07-211-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (allow_garbage_collection) (inhibit_garbage_collection): Temporarily bump consing_until_gc, to improve performance of maybe_gc while garbage collection is inhibited. Suggested by Stefan Monnier in: https://lists.gnu.org/r/emacs-devel/2019-07/msg00511.html
* | | Avoid integer overflow in hash table sizePaul Eggert2019-07-211-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | * src/fns.c (INDEX_SIZE_BOUND): Use a tighter bound. (maybe_resize_hash_table): Avoid integer overflow when checking for hash table size overflow. Fix confusion between INDEX_SIZE_BOUND (which is for the index vector) and hash table size. Fix typo in debugging message when ENABLE_CHECKING.
* | | Improve doc for hash tablesPaul Eggert2019-07-211-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/hash.texi (Creating Hash, Defining Hash): * src/fns.c (Fsxhash_eq, Fsxhash_eql, Fsxhash_equal): Say that hashes are fixnums. (Fmake_hash_table): Say that that an integer rehash-size should be a fixnum. * doc/lispref/hash.texi (Defining Hash): Say that hash and comparison functions should be consistent and pure, and should return quickly.
* | | pure_alloc returns cleared memoryPaul Eggert2019-07-211-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (pure_alloc): Clear any heap-allocated storage. This is simpler than auditing all the callers to make sure they don’t assume pure memory is cleared memory, and the performance implication is nonexistent except when Emacs is misconfigured. Also, add an assertion to catch caller misuse when pure space is exhausted.
* | | Fix expand-file-name for names starting with '~'Ken Brown2019-07-211-24/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/fileio.c: (file_name_absolute_no_tilde_p): New static function. (Fexpand_file_name): If the current buffer's default-directory starts with "~user" where "user" is not a valid user name, don't give the '~' a special meaning. Just treat the value of default-directory as a relative name. (Bug#36502) * test/src/fileio-tests.el (fileio-tests--relative-default-directory): Add a test.
* | | Tweak recent hash-table fixPaul Eggert2019-07-201-15/+12
| | | | | | | | | | | | | | | | | | | | | | | | * src/fns.c (maybe_resize_hash_table): Completely initialize the new ‘next’ vector before allocating more vectors, as this preserves locality a bit better and it’s safer not to leave an uninitialized Lisp object around. Use next_size instead of new_size to compute new index size.
* | | Fix crash if user test munges hash tablePaul Eggert2019-07-207-31/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/fns.c (restore_mutability) (hash_table_user_defined_call): New functions. (cmpfn_user_defined, hashfn_user_defined): Use them. (make_hash_table, copy_hash_table): Mark new hash table as mutable. (check_mutable_hash_table): New function. (Fclrhash, Fputhash, Fremhash): Use it instead of CHECK_IMPURE. * src/lisp.h (struct hash_table_test): User-defined functions now take pointers to struct Lisp_Hash_Table, not to struct hash_table_test. All uses changed. (struct Lisp_Hash_Table): New member ‘mutable’. * src/pdumper.c (dump_hash_table): Copy it. * test/src/fns-tests.el (test-hash-function-that-mutates-hash-table): New test, which tests for the bug.
* | | Simplify hashfn/cmpfn calling conventionPaul Eggert2019-07-2012-106/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/fns.c (cmpfn_eql, cmpfn_equal, cmpfn_user_defined) (hashfn_eq, hashfn_equal, hashfn_eql, hashfn_user_defined): * src/profiler.c (cmpfn_profiler, hashfn_profiler): Use new calling convention where the return value is a fixnum instead of EMACS_UINT. While we’re at it, put the hash table at the end, since that’s a bit simpler and generates better code (at least on the x86-64). All callers changed. * src/fns.c (hash_lookup): Store fixnum rather than EMACS_UINT. All callers changed. (hash_put): Take a fixnum rather than an EMACS_UINT. All callers changed. Remove unnecessary eassert (XUFIXNUM does it). * src/lisp.h (struct hash_table_test): Adjust signatures of cmpfn and hashfn.
* | | Inhibit GC after inhibit_garbage_collectionPaul Eggert2019-07-201-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this patch, there are unlikely ways that garbage collection could occur (sometimes causing undefined behavior) even when inhibit_garbage_collection is in effect. * src/alloc.c (garbage_collection_inhibited): New var. (pure_alloc): Increment it if pure space is exhausted, so that garbage_collect_1 no longer needs to inspect pure_bytes_used_before_overflow. (allow_garbage_collection): New function. (inhibit_garbage_collection): Increment the new variable rather than specbinding a user variable. (garbage_collect_1): Do not garbage collect if the new variable is set, rather than if pure_bytes_used_before_overflow is set.
* | | Simplify maybe_gc implementationPaul Eggert2019-07-202-42/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (consing_until_gc): New variable, replacing the combination of consing_since_gc and gc_relative_threshold. All uses changed. (byte_ct): Move decl here from lisp.h. (memory_full_cons_threshold): New an enum constant. (free_cons): Check for integer overflow in statistics calculation. * src/lisp.h (object_ct): Move decl here from alloc.c. (OBJECT_CT_MAX): New macro. (maybe_gc): Simplify accordingly.
* | | Rename ‘pure’ to ‘purecopy’Paul Eggert2019-07-205-12/+12
| | | | | | | | | | | | | | | | | | * src/lisp.h (struct Lisp_Hash_Table): Rename ‘pure’ member to ‘purecopy’, as the old name was quite confusing (it did not mean the hash table was pure). All uses changed.
* | | Fix hash table overallocation etc.Paul Eggert2019-07-201-58/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/fns.c (set_hash_key_and_value, set_hash_next) (set_hash_hash, set_hash_index): Remove. All uses removed. (maybe_resize_hash_table): Don’t update h->next until it’s known that all the allocations succeeded, to avoid trashing the hash table if memory is exhausted. Don’t overallocate the other vectors. Don’t output growth message if the hash table didn’t actually grow due to allocation failure. Assume C99 decls after statements.
* | | Merge from emacs-26Noam Postavsky2019-07-201-1/+5
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 150bdfe43a Handle completely undecoded input in term (Bug#29918) 021f32cca1 * doc/misc/forms.texi (Control File Format): Fix a doc error. 76538d09b7 Fix typo in package-alist docstring b2fde4b5e8 * doc/lispref/text.texi (Mode-Specific Indent): Fix a typo... 7e62778548 ; Another minor change in 'bidi-display-reordering's doc s... 4455ddbe56 Improve doc string of 'bidi-display-reordering' 34ee26dd93 Add warning to bidi-display-reordering doc string # Conflicts: # lisp/term.el # test/lisp/term-tests.el
| * | ; Another minor change in 'bidi-display-reordering's doc string.Eli Zaretskii2019-07-131-2/+2
| | |
| * | Improve doc string of 'bidi-display-reordering'Eli Zaretskii2019-07-131-1/+4
| | | | | | | | | | | | | | | * src/buffer.c (syms_of_buffer) <bidi-display-reordering>: Further doc fix.
| * | Add warning to bidi-display-reordering doc stringStefan Kangas2019-07-131-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This explanation was given by Eli Zaretskii on emacs-devel. For discussion, see: https://lists.gnu.org/archive/html/emacs-devel/2019-07/msg00294.html * src/buffer.c (syms_of_buffer): Add warning to doc string of bidi-display-reordering to explain that it should only be used for debugging.
* | | open-dribble-file doc string clarificationLars Ingebrigtsen2019-07-151-3/+6
| | | | | | | | | | | | | | | * src/keyboard.c (Fopen_dribble_file): Clarify when the file is closed, and when events are written to the file (bug#27996).
* | | Don't delete GnuTLS boot parameters too earlyRobert Pluim2019-07-151-3/+5
| | | | | | | | | | | | | | | | | | * src/process.c (connect_network_socket): Don't delete the GnuTLS boot parameters until after we've managed to connect at the IP level (bug#36660).
* | | Use correct colorspace for XBM imagesAlan Third2019-07-141-2/+2
| | | | | | | | | | | | | | | * src/nsimage.m ([EmacsImage setXBMColor:]): Use 'generic RGB' color space.
* | | ; Add comment to hash_table_rehash (Bug#36447)Stefan Monnier2019-07-141-0/+5
| | | | | | | | | | | | | | | | | | * src/fns.c (hash_table_rehash): Add a comment to explain that hash_table_rehash is not used in "normal" rehashing, but only in the rare case of rehashing on the first access to a preloaded hash-table.
* | | Fix recent changesEli Zaretskii2019-07-141-0/+1
| | | | | | | | | | | | * src/sysstdio.h: Include stdarg.h, for va_list.
* | | Avoid returning negative numbers from `hash-table-count'Pip Cet2019-07-131-1/+3
| | | | | | | | | | | | * src/fns.c (Fhash_table_count): Rehash argument if necessary.
* | | * src/lisp.h (struct Lisp_Hash_Table.count): Improve comment.Paul Eggert2019-07-131-1/+2
| | |
* | | Avoid interleaving stderr lines when shutting downPaul Eggert2019-07-132-17/+23
| | | | | | | | | | | | | | | | | | | | | | | | * 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 a better buffer size in emacs_perrorPaul Eggert2019-07-132-2/+7
| | | | | | | | | | | | | | | | | | * src/sysdep.c (emacs_perror): Since the buffer is for avoiding interleaving, size it via PIPE_BUF not BUFSIZ. * src/sysstdio.h (PIPE_BUF): Provide a default.
* | | Avoid interleaving stderr in dump_fingerprintPaul Eggert2019-07-133-11/+22
| | | | | | | | | | | | | | | | | | | | | | | | * src/fns.c (hexbuf_digest): New function, containing most of the old make_digest_string. (make_digest_string): Use it. * src/pdumper.c (dump_fingerprint): Rewrite to use a single fprintf call, to avoid interleaving on GNU/Linux.
* | | Avoid interleaving stderr in a few casesPaul Eggert2019-07-133-18/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/sysdep.c (buferr): New static var. (init_standard_fds) [_PC_PIPE_BUF]: Initialize it. (errstream, errputc, verrprintf, errwrite): New functions. (close_output_streams): Check buferr status too. * src/xdisp.c: Include sysstdio.h instead of stdio.h. (message_to_stderr, vmessage): Use the new functions to avoid interleaving stderr.
* | | Doc fix for Finteractive (only %s is allowed)Lars Ingebrigtsen2019-07-131-1/+3
| | | | | | | | | | | | | | | | | | * src/callint.c (Finteractive): Any other format spec than %s will bug out with "Format specifier doesn’t match argument type", so say explicitly that only %s is supported (bug#31314).
* | | plist-get/lax-plist-get doc fixLars Ingebrigtsen2019-07-131-7/+9
| | | | | | | | | | | | | | | | | | * src/fns.c (Fplist_get): Mention that comparison is done with eq (bug#31441). (Flax_plist_get): Refer to plist-get for details.
* | | Replace Vdead with tagged pointerPaul Eggert2019-07-124-35/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This speeds up ‘make compile-always’ by 0.1% on my platform. Suggested by Pip Cet in: https://lists.gnu.org/r/emacs-devel/2019-07/msg00257.html * src/.gdbinit (pwinx, pgx, xbuffer, xprintstr): Output dead_object () as "DEAD". * src/alloc.c (Vdead, DEADP): Remove. All uses replaced by dead_object () / deadp. (deadp): New function. (init_alloc_once_for_pdumper): Remove no-longer-needed initialization. * src/lisp.h (dead_object): New function.
* | | Avoid duplicate comparison in describe_map_comparePaul Eggert2019-07-113-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | * src/fns.c (string_version_cmp): New function. This has most of the old Fstring_version_lessp, with an assertion to make things a bit clearer. * src/fns.c (Fstring_version_lessp): * src/keymap.c (describe_map_compare): Use it (Bug#33237).
* | | Clarify the expand-file-name doc stringLars Ingebrigtsen2019-07-111-10/+16
| | | | | | | | | | | | | | | | | | * src/fileio.c (Fexpand_file_name): Clarify that "~" in NAME is expanded, and not just "~/". Also clarify that ~USER is not expanded if USER doesn't exist (bug#36490).
* | | Tweak the order keystrokes are sorted in keymap listingsLars Ingebrigtsen2019-07-111-2/+4
| | | | | | | | | | | | | | | | | | * src/keymap.c (describe_map_compare): Change the sorting order of keystrokes, so that we get the order <f1> <f2> <f11> instead of <f1> <f11> <f2> (bug#33237).
* | | Resurrect SVG support on MS-WindowsEli Zaretskii2019-07-111-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/image.c (syms_of_image) <Qgio> [HAVE_NTGUI]: New DEFSYM. (init_svg_functions) [LIBRSVG_CHECK_VERSION >= 2.32.0]: Load g_file_new_for_path and g_memory_input_stream_new_from_data from libgio, not from libglib. (Bug#35548) * lisp/term/w32-win.el (dynamic-library-alist): Add the libgio DLL.
* | | Avoid assertion violations when resize-mini-windows is nilEli Zaretskii2019-07-111-5/+5
| | | | | | | | | | | | | | | | | | | | | * src/xdisp.c (resize_mini_window): Always reset the mini-window's start point to the beginning of the buffer, even if resizing is not needed. This avoids assertion violations when resize-mini-windows is nil. (Bug#36595)
* | | Avoid functions deprecated in librsvg 2.45.1Paul Eggert2019-07-101-28/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/image.c (init_svg_functions) [WINDOWSNT]: Load the pre-2.32 or 2.32 functions, depending on LIBRSVG_CHECK_VERSION. (svg_load_image): In librsvg 2.32 or later, use g_memory_input_stream_new_from_data, g_file_new_for_path and rsvg_handle_new_from_stream_sync rather than the deprecated-in-2.45 rsvg_handle_write and rsvg_handle_close. From a patch by YAMAMOTO Mitsuharu (Bug#35548#11).
* | | * src/fileio.c: Fix bug#36431Stefan Monnier2019-07-091-30/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (decide_coding_unwind): Re-introduce. Move text back to the gap. Return the new `inserted` via the unwind_data. (Finsert_file_contents): Use it. Make sure `inserted` is always 0 when we jump straight to `notfound`. Don't insert the text in the buffer until we know it's properly decoded for the byteness of the buffer. * test/src/fileio-tests.el (fileio-tests--insert-file-interrupt): Allow insert-file-contents to return an empty buffer in case of non-local exit in set-auto-coding-function.
* | | Defend fingerprint against even-smarter LTOPaul Eggert2019-07-091-5/+7
| | | | | | | | | | | | | | | | | | | | | * src/pdumper.c (Fdump_emacs_portable, pdumper_load): Don’t cast volatile to non-volatile pointer, as that does not in general suffice to prevent a compiler from optimizing away memcmp and/or memcpy calls. Instead, copy the fingerprint by hand.