aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge from origin/emacs-27Glenn Morris2020-04-116-26/+121
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | fd27685c1e (origin/emacs-27) ; * doc/lispref/keymaps.texi (Extended M... 6057d79a4e * doc/lispref/keymaps.texi (Extended Menu Items): Tweak :k... 17a1bb5a03 Fix redisplay when scrolling under redisplay-dont-pause 90321f595c Fix face extension in pulse.el 36c42d2a30 * doc/misc/tramp.texi (Bug Reports): Avoid line breaks in ... d5750af151 Avoid assertion violation in intervals.c 18d1bc0a09 Improve documentation of 'jit-lock-contextually' 08486f4cae Speed up 'resize-mode' child frames a little f451ef9308 ; * etc/NEWS: Mention 'executing-macro' in removed vars. c49d379f17 Fix some problems with moving and resizing child frames # Conflicts: # etc/NEWS
| * Fix redisplay when scrolling under redisplay-dont-pauseEli Zaretskii2020-04-101-0/+4
| | | | | | | | | | | | | | | | | | * src/dispnew.c (update_window): Reset the window's 'must_be_updated_p' flag if the window's update was completed without interruption. This fixes redisplay glitches when 'redisplay-dont-pause' is nil, at least on MS-Windows, because 'expose_window' doesn't redraw the exposed rectangle when the window's 'must_be_updated_p' flag is set.
| * Avoid assertion violation in intervals.cEli Zaretskii2020-04-091-1/+1
| | | | | | | | | | | | | | | | | | | | * src/intervals.c (delete_interval): Allow negative values of LENGTH (i). This happens when delete_interval is called from set_intervals_multibyte_1, because the caller zeroes out the total_length field of the interval to be deleted. See https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg00131.html for more details. See also a related old discussion at https://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00399.html.
| * Speed up 'resize-mode' child frames a littleDmitry Gutov2020-04-081-8/+16
| | | | | | | | | | | | * src/gtkutil.c (xg_frame_set_char_size): Skip resizing if the target dimensions are unchanged for child frames with 'resize-mode' resize policy as well.
| * Fix some problems with moving and resizing child framesMartin Rudalics2020-04-064-25/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (1) Provide new option 'x-gtk-resize-child-frames' which allows to either hide a child frame during resizing or asks GTK to resize it "immediately". This is needed because desktops like GNOME shell otherwise won't allow resizing child frames at all. (2) Do not try to synchronize the position of a child frame after moving it. Needed because the present implementation introduces a 0.5 secs delay which makes dragging child frames virtually impossible with Lucid and Motif toolkits on desktops like GNOME shell that use invisible outer frame borders. For further information see the thread starting with https://lists.gnu.org/archive/html/emacs-devel/2020-01/msg00343.html * src/frame.c (syms_of_frame): New symbol Qxg_frame_set_char_size_4. * src/gtkutil.c (xg_frame_set_char_size): Hide child frame during resizing when 'x-gtk-resize-child-frames' equals 'hide'. * src/xfns.c (x_set_parent_frame, Fx_create_frame): Set gtk_container_resize_mode to GTK_RESIZE_IMMEDIATE for child frames when'x-gtk-resize-child-frames' equals 'resize-mode'. (Fx_gtk_debug): New function to toggle interactive GTK debugging from within Emacs. (syms_of_xfns): New symbols Qhide and Qresize_mode. (x-gtk-resize-child-frames): New option that allows to resize child frames on desktops like GNOME shell (with the mutter WM) that otherwise refuse to resize them. * src/xterm.c (x_set_offset): Don't x_sync_with_move for child frames, it makes moving child frames virtually impossible with the Lucid and Motif toolkits.
* | Set last-coding-system-used upon ASCII conversion bypass (bug#40407)Mattias Engdegård2020-04-091-5/+9
| | | | | | | | | | | | | | | | Spotted by Kazuhiro Ito. * src/coding.c (code_convert_string): Set Vlast_coding_system if appropriate. * test/src/coding-tests.el (coding-nocopy-ascii): Add test.
* | Fix display of boxed header-lineEli Zaretskii2020-04-091-1/+4
| | | | | | | | | | * src/xdisp.c (init_iterator): Set IT->face_box_p flag for a boxed mode/header/tab line. (Bug#40521)
* | Fix ASCII-only conversion logic (bug#40407)Mattias Engdegård2020-04-091-29/+17
| | | | | | | | | | | | | | | | | | | | | | To sidestep conversion altogether when EOL conversion applies, we must either be encoding a string without NL, or decoding without CR. * src/coding.c (string_ascii_p): Revert to a pure predicate. (code_convert_string): Fix logic. Don't use uninitialised ascii_p (removed). Use memchr to detect CR or LF in string when needed. * test/src/coding-tests.el (coding-nocopy-ascii): Update tests to include encodings with explicit EOL conversions.
* | Don't crash with invalid argument in check-coding-systems-regionMattias Engdegård2020-04-091-1/+4
| | | | | | | | | | | | | | * src/coding.c (Fcheck_coding_systems_region): Don't crash if the third arg contains something that isn't a coding system. * test/src/coding-tests.el (coding-check-coding-systems-region): New test.
* | Don't rely on copying in {EN,DE}CODE_FILEMattias Engdegård2020-04-092-3/+3
| | | | | | | | | | | | | | | | | | | | Callers of ENCODE_FILE and DECODE_FILE should not assume that these functions always return a new string (bug#40407). * src/w32fns.c (Fw32_shell_execute): * src/w32proc.c (Fw32_application_type): Sink taking the address of a Lisp string past GC points. Copy values returned from ENCODE_FILE before mutating them.
* | Fix decoding of ASCII strings with embedded CR charactersEli Zaretskii2020-04-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | * src/coding.c (string_ascii_p): Return a negative value if an all-ASCII string STR includes the CR character, otherwise a positive value. (code_convert_string): If the string is ASCII, but includes CR characters, use the fast path only if EOL doesn't need to be decoded. (Bug#40519) * test/src/coding-tests.el (coding-nocopy-ascii): Add more tests for bug#40519.
* | Fix decoding ASCII strings with embedded CR charactersEli Zaretskii2020-04-091-11/+26
| | | | | | | | | | | | | | | | | | | | | | | | * src/coding.c (string_ascii_p): Return a negative value if an all-ASCII string STR includes the CR character, otherwise a positive value. (code_convert_string): If the string is ASCII, but includes CR characters, use the fast path only if EOL doesn't need to be decoded. (Bug#40519) * test/src/coding-tests.el (coding-nocopy-ascii): Add tests for bug#40519.
* | Revert my KEY_OPS_CFLAGS change to src/Makefile.inPaul Eggert2020-04-071-5/+2
| | | | | | | | | | | | | | | | Now that -Og inlining has been improved this is no longer helpful. * src/Makefile.in (KEY_OPS_CFLAGS): Remove. All uses removed. This improved CPU performance of ‘make compile-always’ by 5% on my platform, which was gcc -Og, GCC 9.3.1 20200317 (Red Hat 9.3.1-1), Fedora 31 x86-64 (AMD Phenom II X4 910e, circa 2010).
* | 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 in xpm_scanPaul Eggert2020-04-061-2/+3
| | | | | | | | | | * src/image.c (xpm_scan): Redo a loop for clarity. This also pacifies --enable-gcc-warnings (GCC 9.3.1 x86-64 with -Og).
* | * src/coding.c (code_convert_string): Fix type mismatches.Paul Eggert2020-04-051-2/+2
| |
* | Fix a recent change in bignum.cEli Zaretskii2020-04-051-1/+1
| | | | | | | | | | * src/bignum.c (check_int_nonnegative): Fix a recent change. Reported by Glenn Morris <rgm@gnu.org>.
* | Merge from origin/emacs-27Glenn Morris2020-04-053-9/+5
|\ \ | |/ | | | | | | | | | | | | | | | | | | 6de20c7eab (origin/emacs-27) Fix syntax error in man page. f8607d3c03 Handle filling of indented ChangeLog function entries 7e78f0d1b2 Fix void-variable n-reb in re-builder (Bug#40409) 452d776a5d Fix small bug in copy_string_contents. fa823653ff Fix invocations of gpg from Gnus d4f51d0a2e Don't draw GTK's internal border and tab bar on top of eac... 38731d504e ; * src/buffer.c (syms_of_buffer) <inhibit-read-only>: Doc... 44ac9e48bb Tweak htmlfontify's generated output
| * Fix small bug in copy_string_contents.Philipp Stephani2020-04-031-1/+1
| | | | | | | | | | | | * src/emacs-module.c (module_copy_string_contents): Fix incorrect variable use. In this branch 'lisp_str_utf8' is always nil, so it makes little sense to add it as error data.
| * Don't draw GTK's internal border and tab bar on top of each otherMartin Rudalics2020-04-031-4/+0
| | | | | | | | | | | | * src/xterm.c (x_clear_under_internal_border): For GTK builds have 'margin' count in the height of the tab bar to avoid that tab bar and internal border are drawn on top of each other.
| * ; * src/buffer.c (syms_of_buffer) <inhibit-read-only>: Doc fix.Eli Zaretskii2020-04-031-4/+4
| |
* | Avoid expensive recoding for ASCII identity cases (bug#40407)Mattias Engdegård2020-04-051-1/+26
| | | | | | | | | | | | | | | | | | | | Optimise for the common case of encoding or decoding an ASCII-only string using an ASCII-compatible coding, for file names in particular. * src/coding.c (string_ascii_p): New function. (code_convert_string): Return the input string for ASCII-only inputs and ASCII-compatible codings. * test/src/coding-tests.el (coding-nocopy-ascii): New test.
* | Fix inverted NOCOPY encode/decode parameter (bug#40407)Mattias Engdegård2020-04-051-1/+1
| | | | | | | | | | | | | | | | | | | | In {encode,decode}-coding-string, the NOCOPY parameter had the opposite effect to what was intended and documented. This 18 year old bug (introduced in 4031e2bf0a) only affected calls with CODING-SYSTEM being nil. * src/coding.c (code_convert_string): Correct use of NOCOPY. * test/src/coding-tests.el (coding-nocopy-trivial): New test.
* | Improve integer range checkingPaul Eggert2020-04-0516-205/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/bignum.c (check_integer_range, check_uinteger_max) (check_int_nonnegative): New functions. * src/frame.c (check_frame_pixels): New function. (Fset_frame_height, Fset_frame_width, Fset_frame_size): Use it. * src/lisp.h (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): Remove these macros. Unless otherwise specified, all callers replaced by calls to check_integer_range, check_uinteger_range, check_int_nonnegative. * src/frame.c (gui_set_right_divider_width) (gui_set_bottom_divider_width): * src/nsfns.m (ns_set_internal_border_width): * src/xfns.c (x_set_internal_border_width): Using check_int_nonnegative means these functions no longer incorrectly reject negative bignums; they treat them as 0, just like negative fixnums.
* | * src/lisp.h: Update overly-optimistic comment.Paul Eggert2020-04-051-2/+2
| |
* | Avoid SAFE_ALLOCA in Fstring, Funibyte_stringPaul Eggert2020-04-041-24/+15
| | | | | | | | | | | | * src/character.c (Fstring, Funibyte_string): Redo to avoid the need for a temporary array allocation and then a copying from that array to the destination.
* | Default gcc -Og to inlining key opsPaul Eggert2020-04-042-11/+18
| | | | | | | | | | | | | | | | | | | | Problem reported by Martin Rudalics in: https://lists.gnu.org/r/emacs-devel/2020-04/msg00195.html * configure.ac (DEFINE_KEY_OPS_AS_MACROS): Define if -Og. * src/Makefile.in (KEY_OPS_CFLAGS): New macro. (EMACS_CFLAGS): Use it. * src/lisp.h (DEFINE_KEY_OPS_AS_MACROS): Let the gcc command line specify it. Remove use of undocumented INLINING macro.
* | Make make-{network,serial}-process handle :coding nil consistentlyRobert Pluim2020-04-031-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The handling of :coding nil was different between make-{network,serial}-process and make-{pipe}process. Now they all handle :coding nil as if :coding had not been specified. * process.c (Fmake_serial_process) (set_network_socket_coding_system): Use plist-get to check if :coding has been specified instead of plist-member, to ensure that ":coding nil" does not override coding-system-for-{read,write}. * network-stream-tests.el (check-network-process-coding-system-bind) (check-network-process-coding-system-no-override) (check-network-process-coding-system-override): New tests. * etc/NEWS: Describe change in make-network-process and make-serial-process :coding behavior.
* | Allow negative line width for :box face attributeAlexandre Adolphe2020-04-017-202/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Separate values for box line width and height and allow both to be negative which makes the visual width and height of the boxed string unchanged (Bug#13011). * doc/lispref/display.texi (Face Attributes): Modify :box attribute description to reflect the new possibilities. * lisp/cus-face.el (custom-face-attributes): Set box attribute to get two integer to set vertical and horizontal width and modify pre-filter to accept dotted list of two int as valid box attribute. * src/dispextern.h (face): Use two int for box horizontal and vertical line width. * src/nsfont.m (nsfont_draw): Use new face attributes. * src/nsterm.m (ns_draw_box, ns_draw_relief): Support separated horizontal and vertical box line width. (ns_dumpglyphs_box_or_relief, ns_maybe_dumpglyphs_background) (ns_dumpglyphs_image, ns_draw_glyph_string_foreground) (ns_draw_composite_glyph_string_foreground): Use new face attributes. * src/w32term.c (w32_draw_box_rect, w32_draw_relief_rect): Support separated horizontal and vertical box line width. (x_draw_glyph_string_background, x_draw_glyph_string_foreground) (x_draw_composite_glyph_string_foreground) (x_draw_glyphless_glyph_string_foreground, x_draw_glyph_string_box) (x_draw_image_foreground, x_draw_image_relief) (w32_draw_image_foreground_1, x_draw_image_glyph_string): Use new face attributes. * src/xfaces.c (Sinternal_set_lisp_face_attribute, realize_x_face): Accept box attribute as a list of two ints. * src/xdisp.c (estimate_mode_line_height, produce_image_glyph) (produce_xwidget_glyph, x_produce_glyphs): Use new face attributes. * src/xterm.c (x_draw_box_rect, x_draw_relief_rect): Support separated horizontal and vertical box line width. (x_draw_glyph_string_background, x_draw_glyph_string_foreground) (x_draw_composite_glyph_string_foreground) (x_draw_glyphless_glyph_string_foreground, x_draw_glyph_string_box) (x_draw_image_foreground, x_draw_image_relief, x_draw_image_foreground_1) (x_draw_image_glyph_string): Use new face attributes.
* | Fix compilation with CHECK_STRUCTSAndreas Schwab2020-04-011-1/+1
| | | | | | | | * src/pdumper.c (dump_buffer): Update hash of struct buffer.
* | Remove `all_buffers` and the associated `next` field of buffersStefan Monnier2020-03-314-126/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (enum mem_type): Remove MEM_TYPE_BUFFER. (allocate_buffer): Allocate like any other pseudovector. Don't register on `all_buffers` any more. (live_buffer_holding, live_buffer_p): Delete functions. (mark_maybe_object, valid_lisp_object_p): Don't pay attention to MEM_TYPE_BUFFER any more. (garbage_collect): Only compact the live buffers. (mark_buffer): Mark the undo_list of dead buffers here. (mark_object): Buffers are normal pseudovectors now. (sweep_buffers): Don't do the actual sweep here, just cleanup the markers and only for live buffers. * src/buffer.c (all_buffers): Remove variable. (Fkill_buffer): Don't check indirect dead buffers. Set the undo_list before we remove ourselves from the list of live buffers. (Fbuffer_swap_text, Fset_buffer_multibyte): Don't check indirect dead buffers. (init_buffer_once): Don't set `all_buffers`. (init_buffer): Don't map new memory for dead buffers. * src/buffer.h (struct buffer): Remove `next` field. (FOR_EACH_BUFFER): Remove macro. * src/pdumper.c (dump_buffer): Don't dump the `next` field.
* | Merge from origin/emacs-27Glenn Morris2020-03-302-5/+8
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | c6e0981b96 (origin/emacs-27) * lisp/image/image-converter.el: Fix cus... 461bd9cc20 Fix url-cookie.el for lexical binding f3ccfb1926 ; * src/decompress.c: Fix comment style. 1af03e7e92 ; * src/xfaces.c (syms_of_xfaces): Fix wording and typo. 93945fcd19 ; * test/lisp/calc/calc-tests.el: Fix mistake in last commit ee47e00f4e Don't suggest setting face-remapping-alist to a literal (B... c2b8ce4439 Calc: don't treat nil as an integer (bug#40155) e1f0e08922 * lisp/files.el (directory-files-recursively): Doc fix. (... 02b3820315 Document how to disable Tramp file archives
| * ; * src/decompress.c: Fix comment style.Eli Zaretskii2020-03-291-3/+3
| |
| * ; * src/xfaces.c (syms_of_xfaces): Fix wording and typo.Eli Zaretskii2020-03-291-3/+3
| |
| * Don't suggest setting face-remapping-alist to a literal (Bug#39812)Noam Postavsky2020-03-281-2/+5
| | | | | | | | | | * src/xfaces.c (syms_of_xfaces) <face-remapping-alist>: Use copy-tree in the costring example code, and note why.
* | Avoid assertion violation at startup in pdumped EmacsEli Zaretskii2020-03-301-11/+0
| | | | | | | | | | | | | | | | | | * src/buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Remove the assertion that ensured all buffers in pdumped Emacs have non-NULL pointer to buffer text. That was false when Emacs was pdumped with killed buffer(s) in the all_buffers linked list. See https://lists.gnu.org/archive/html/emacs-devel/2020-03/msg00800.html for more details.
* | Stop using newly-deprecated dosname Gnulib modulePaul Eggert2020-03-281-1/+1
| | | | | | | | | | | | | | | | | | Code is supposed to use the filename module now. * admin/merge-gnulib (GNULIB_MODULES): Replace dosname with filename. * lib/dosname.h: Remove this forwarding stub. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. * lib-src/emacsclient.c, src/fileio.c: Include filename.h instead of dosname.h.
* | Use ATTRIBUTE_CONST for some bignum functionsPaul Eggert2020-03-272-5/+5
| | | | | | | | | | | | | | * src/bignum.h (mpz_get_d_rounded): * src/lisp.h (bignum_to_double, bignum_to_intmax) (bignum_to_uintmax, bignum_bufsize): Declare as ATTRIBUTE_CONST.
* | Treat out-of-range positions consistentlyPaul Eggert2020-03-2714-164/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a position argument to get-byte etc. is an out-of-range integer, treat it the same regardless of whether it is a fixnum or a bignum. * src/buffer.c (fix_position): New function. * src/buffer.c (validate_region): * src/character.c (Fget_byte): * src/coding.c (Ffind_coding_systems_region_internal) (Fcheck_coding_systems_region): * src/composite.c (Ffind_composition_internal): * src/editfns.c (Fposition_bytes, Fchar_after, Fchar_before) (Finsert_buffer_substring, Fcompare_buffer_substrings) (Fnarrow_to_region): * src/fns.c (Fsecure_hash_algorithms): * src/font.c (Finternal_char_font, Ffont_at): * src/fringe.c (Ffringe_bitmaps_at_pos): * src/search.c (search_command): * src/textprop.c (get_char_property_and_overlay): * src/window.c (Fpos_visible_in_window_p): * src/xdisp.c (Fwindow_text_pixel_size): Use it instead of CHECK_FIXNUM_COERCE_MARKER, so that the code is simpler and treats bignums consistently with fixnums. * src/buffer.h (CHECK_FIXNUM_COERCE_MARKER): Define here rather than in lisp.h, and reimplement in terms of fix_position so that it treats bignums consistently with fixnums. * src/lisp.h (CHECK_FIXNUM_COERCE_MARKER): Move to buffer.h. * src/textprop.c (validate_interval_range): Signal with original bounds rather than modified ones.
* | Refactor and fix typo in CHECK_*_COERCE_MARKERPaul Eggert2020-03-262-52/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | * src/data.c (check_integer_coerce_marker) (check_number_coerce_marker): New functions. Also, fix a typo in the former, by having it use Qinteger_or_marker_p not Qnumber_or_marker_p. (arithcompare, floatop_arith_driver, bignum_arith_driver) (arith_driver, Fplus, Fminus, Ftimes, Fquo, Frem, Fmod) (minmax_driver, Flogand, Flogior, Flogxor, Fadd1, Fsub1): Use them in place of the similarly-named macros. * src/lisp.h (CHECK_NUMBER_COERCE_MARKER) (CHECK_INTEGER_COERCE_MARKER): Remove; no longer used.
* | Add a module function to open a file descriptor connected to a pipe.Philipp Stephani2020-03-264-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A common complaint about the module API is that modules can't communicate asynchronously with Emacs. While it isn't possible to call arbitrary Emacs functions asynchronously, writing to a pipe should always be fine and is a pretty low-hanging fruit. This patch implements a function that adapts an existing pipe process. That way, users can use familiar tools like process filters or 'accept-process-output'. * src/module-env-28.h: Add 'open_channel' module function. * src/emacs-module.c (module_open_channel): Provide definition for 'open_channel'. (initialize_environment): Use it. * src/process.c (open_channel_for_module): New helper function. (syms_of_process): Define necessary symbol. * test/src/emacs-module-tests.el (module/async-pipe): New unit test. * test/data/emacs-module/mod-test.c (signal_system_error): New helper function. (signal_errno): Use it. (write_to_pipe): New function running in the background. (Fmod_test_async_pipe): New test module function. (emacs_module_init): Export it. * doc/lispref/internals.texi (Module Misc): Document new module function. * doc/lispref/processes.texi (Asynchronous Processes): New anchor for pipe processes. * etc/NEWS: Document 'open_channel' function.
* | Remove COERCE_MARKERPaul Eggert2020-03-261-8/+2
| | | | | | | | | | | | * src/xdisp.c (COERCE_MARKER): Remove. All uses replaced by Fmarker_position; this is simpler as the macro was invoked only on markers.
* | line-beginning-position args can be bignumsPaul Eggert2020-03-251-9/+17
| | | | | | | | | | * src/editfns.c (Fline_beginning_position, Fline_end_position): Do not restrict integer arguments to fixnums.
* | Fix integer overflow in internal_self_insertPaul Eggert2020-03-251-1/+4
| | | | | | | | | | * src/cmds.c (internal_self_insert): Avoid undefined behavior on integer overflow by using saturated add.
* | Fix integer overflow in forward-pointPaul Eggert2020-03-251-10/+0
| | | | | | | | | | | | * lisp/subr.el (forward-point): Rewrite in Lisp and move here ... * src/cmds.c (Fforward_point): ... from here. This fixes an integer overflow bug with (forward-point most-positive-fixnum).
* | Pacify --enable-gcc-warnings for lock_filePaul Eggert2020-03-251-15/+9
| | | | | | | | | | * src/filelock.c (lock_file): Pacify gcc -Wmaybe-uninitialized after recent change to this function.
* | Merge from origin/emacs-27Glenn Morris2020-03-233-3/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | d66331aea4 (origin/emacs-27) Don't build the Gnulib 'utimens' module ... f2351a689b Add Harfbuzz dependency 8944310d7c Don't signal during backtrace unrewind (Bug#40088) 8709aaddd8 Fix a couple of problems in changelog generating functions 9ab85f087f Fix cl-concatenate (Bug#40180) 561e9fb91b Improve documentation of project.el commands b28a9a6cc3 Make svg images with links valid 7515252cce * lisp/tab-line.el (tab-line-new-button-show): New defcustom. # Conflicts: # etc/NEWS # nt/gnulib-cfg.mk
| * Don't signal during backtrace unrewind (Bug#40088)Noam Postavsky2020-03-223-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | backtrace_eval_unrewind is used to temporarily reverse let-bindings (it's called with a positive argument to reverse bindings, and then a negative argument to re-apply them) by backtrace--locals and backtrace-eval. For the SPECPDL_LET_DEFAULT and SPECPDL_LET_LOCAL cases (which occur for let-bindings on buffer-local variables), the code calls Fdefault_value and Fbuffer_local_value on the symbol. For symbols which are unbound at top-level, the first (with positive argument) call to backtrace_eval_unrewind will set the symbol's value to unbound (putting the current value in the specpdl's "old value" slot). On the second (with negative argument) call, backtrace_eval_unrewind attempts to retrieve the symbol's value with Fdefault_value or Fbuffer_local_value, but that raises a void-variable signal. This interrupts the restoration of the let-bindings, so any other variables more recent on the stack will now have the wrong value. * src/data.c (default_value): Make non-static. * src/lisp.h: Declare it. * src/eval.c (backtrace_eval_unrewind): Replace the calls to Fdefault_value and Fbuffer_local_value with default_value and buffer_local_value, respectively. The latter do exactly the same as the former, except if the symbol's value is Qunbound they just return it instead of signaling void-variable.
* | Merge from origin/emacs-27Glenn Morris2020-03-231-1/+1
|\ \ | |/ | | | | | | bed04c502c Use correct registry name for windows-1251 charset 1aa1529301 ERC: Update maintainer address
| * Use correct registry name for windows-1251 charsetRobert Pluim2020-03-191-1/+1
| | | | | | | | | | | | * src/ftfont.c (fc_charset_table): The registry to use to lookup windows-1251 charset is microsoft-cp1251, not windows-1251. (Bug#40097)