1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-06 14:22:31 -07:00
Commit graph

41232 commits

Author SHA1 Message Date
Paul Eggert
41bf865329 Clean up and simplify image-type setup
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.
2019-05-17 18:43:28 -07:00
Paul Eggert
d4868b2bee Tune reading of radix integers
This improves the performance of (read "%xFF") by about 25%
on my platform.
* src/lread.c: Include <vla.h>, so that we can better document
buffer sizes of arguments.
(invalid_radix_integer_format, stackbufsize): New constants.
(free_contents): Remove.  All uses removed.
(invalid_radix_integer): New function.
(read_integer): New arg STACKBUF.  Assume radix is in range.
All uses changed.  Use STACKBUF to avoid calling malloc in the
usual case.  Use grow_read_buffer to simplify.
(read1): Tune.  Improve quality of diagnostic when
MOST_POSITIVE_FIXNUM < radix <= EMACS_INT_MAX.
2019-05-15 10:27:55 -07:00
Glenn Morris
5fe9375a51 Merge from origin/emacs-26
02bee78 Let dir locals for more specific modes override those from less
b1235f9 Improve documentation of Hexl mode
32d1813 Fix description of (move-to-column <n> t) when column <n> is ...
0397b7c ; Fix smtpmail-stream-type docstring
7dab3ee Recognize single quote attribute values in nxml and sgml (Bug...
e4cde42 Disable extra display of &#10; in nxml-mode (Bug#32897)
ca14dd1 Fix nxml-get-inside (Bug#32003)
e7ab351 Fix positioning client buffer as instructed by emacsclient

# Conflicts:
#	lisp/files.el
#	lisp/textmodes/sgml-mode.el
2019-05-14 17:18:18 -07:00
YAMAMOTO Mitsuharu
9b28a5083e Avoid artifacts in ftx and ftcr font backend drivers
* src/ftcrfont.c (ftcrfont_open):
* src/ftfont.c (ftfont_open2): Make font->height equal to sum of font->ascent
and font->descent.  Respect :minspace property.
(ftfont_open2): Remove redundant assignment.
(syms_of_ftfont) <QCminspace>: New DEFSYM.
2019-05-14 10:17:16 +09:00
Paul Eggert
967711995e Fix broken build on m68k
The GCC + valgrind fix caused the m68k build to fail (Bug#35711).
Simplify string allocation a bit to make similar problems less
likely in the future.
* src/alloc.c (sdata, SDATA_NBYTES, SDATA_DATA) [GC_CHECK_STRING_BYTES]:
Use the same implementation as with !GC_CHECK_STRING_BYTES,
as the special case is no longer needed.
(SDATA_ALIGN): New constant.
(SDATA_SIZE): Remove this macro, replacing with ...
(sdata_size): ... this new function.  All uses changed.
Properly account for sizes and alignments even in the m68k case,
and even if GC_CHECK_STRING_BYTES is not defined.
2019-05-13 12:43:39 -07:00
Alexander Gramiak
616ce44ac5 Convert Free_Pixmap macro into terminal hook
* src/termhooks.h (terminal) [HAVE_WINDOW_SYSTEM]: New terminal hook
free_pixmap.

* src/image.c: Replace Free_Pixmap with free_pixmap.

* src/msdos.h (FRAME_X_DISPLAY):
* src/nsgui.h (Display):
* src/nsterm.h (FRAME_NS_DISPLAY, FRAME_X_DISPLAY, FRAME_X_SCREEN)
(FRAME_X_VISUAL):
* src/w32term.h (FRAME_X_DISPLAY): Remove unused X-compatibility
macros and typedefs.

* src/nsterm.m:
* src/w32term.c:
* src/xterm.c: Implement and set free_pixmap hook.
2019-05-10 17:26:12 -06:00
Alexander Gramiak
6bfc5fc6c4 Remove display member of glyph_string
This member has little value even on X, and it leaks internal backend
details to the glyph_string struct.

* src/dispextern.h (glyph_string): Remove X display member.

* src/xdisp.c (init_glyph_string): Remove initialization of display.

* src/xfont.c (xfont_draw):
* src/xterm.c: Use FRAME_X_DISPLAY (s->f) instead of display member.
2019-05-10 17:26:12 -06:00
Alan Mackenzie
32d181326a Fix description of (move-to-column <n> t) when column <n> is inside a tab
This fixes bug #35647.  State that when indent-tabs-mode is non-nil, spaces
are inserted before the tab rather than the tab being replaced by spaces.

* doc/lispref/text.texi (columns)
* src/indent.c (move-to-column): Make the above documentation amendment.
2019-05-09 16:27:03 +00:00
Paul Eggert
caa28f031b Port LIBRSVG_CHECK_VERSION fix to picky cpp
* src/image.c (LIBRSVG_CHECK_VERSION): Define to yield false
if it isn’t already defined.
(svg_load_image): Port to C preprocessors that check the
syntax of the entire preprocessing expression before
evaluating any of it.
2019-05-08 08:38:15 -07:00
Glenn Morris
8b789755b4 Merge from origin/emacs-26
1c6484e (origin/emacs-26) Fix incorrect cloning of eieio-instance-inh...
37436fe Fix cloning of eieio-named objects (Bug#22840)
fb65a36 Fix ibuffer-unmark-backward synopsis (bug#35572)
f77bd2b ; * src/lisp.h (DEFSYM): Fix inaccurate comment.
3b86e0b Clarify handling of long options (Bug#24949)
04340a8 Improve documentation of the daemon and emacsclient
3e29de2 * etc/NEWS.24: Belatedly announce delete-consecutive-dups.
2019-05-08 07:51:48 -07:00
Eli Zaretskii
04f9e0b516 Fix compilation with old versions of librsvg
* src/image.c (svg_load_image): Use LIBRSVG_CHECK_VERSION only
if it's defined; it isn't in old versions of librsvg.
2019-05-08 16:03:08 +03:00
Eli Zaretskii
cd8a1d6bfd Add an assertion to xdisp.c
* src/xdisp.c (display_mode_element): Add an assertion where
we assume that 'string' returned by decode_mode_spec is always
either a Lisp string or nil.
2019-05-08 09:29:20 +03:00
Paul Eggert
504f8e551f Pacify GCC 9.1
* src/intervals.c (set_intervals_multibyte_1): Omit unused temps.
* src/xdisp.c (display_mode_element): Use !NILP instead of
STRINGP.  This convinces GCC we’re not dereferencing a
possibly-null pointer, and should be a bit faster anyway.
2019-05-07 12:28:10 -07:00
Stefan Monnier
32cf07819a * src/marker.c (buf_bytepos_to_charpos): Re-add the CHAR_HEAD_P assertion
This assertion was removed in 1c349c6230
because the assumption was invalid during set_intervals_multibyte_1.
So we change set_intervals_multibyte_1 to solve the problem in the same
way as in the rest of Fset_buffer_multibyte, which actually simplifies
the code.

* src/buffer.c (advance_to_char_boundary): Not static any more.
* src/buffer.h (advance_to_char_boundary): Add prototype.
* src/intervals.c (set_intervals_multibyte_1): Use it.
2019-05-07 13:41:54 -04:00
Basil L. Contovounesios
c972da907d Clarify what constitutes an event (bug#35238)
* doc/lispref/commands.texi (Input Events): Specify that events are
non-nil and remove vestiges of bug#10190.
* doc/lispref/os.texi (Recording Input): Document optional argument
of recent-keys.
* lisp/subr.el (eventp): Check that the car of conses is non-nil.
* etc/NEWS: Announce it as an incompatible change.
* src/keyboard.c (Frecent_keys): Clarify that returned "events" are
not real events.
2019-05-07 18:00:20 +01:00
Eli Zaretskii
e10d08df7e Fix 'load-average' on MS-Windows
* src/w32.c (getloadavg): Always return at least one element
of the array.
2019-05-07 17:48:32 +03:00
Stefan Monnier
c31823a51b Make combine-after-change-calls work in the common case again
* src/insdel.c (signal_after_change): Allow combine_after_change_calls
even when syntax-ppss-flush-cache is on before-change-functions.
2019-05-06 14:58:20 -04:00
Eli Zaretskii
f77bd2b4ed ; * src/lisp.h (DEFSYM): Fix inaccurate comment. 2019-05-06 21:52:19 +03:00
Stefan Monnier
6309131349 * lisp/custom.el: Avoid adding vars to load-history multiple times
Avoid the abuse of (eval `(defvar ...)) which tends to end up
adding redundant entries in `load-history`, as discussed in
https://lists.gnu.org/r/help-gnu-emacs/2019-03/msg00237.html

(custom-initialize-default): Don't add to load-history.
(custom-declare-variable): Use internal--define-uninitialized-variable
and only add the var to load-history once.  Do it before calling
`initialize` so the special-variable-p flag is set.

* src/eval.c (Finternal__define_uninitialized_variable): New function.
(Fdefvar, Fdefconst): Use it.
(syms_of_eval): Defsubr' it.
2019-05-06 12:37:00 -04:00
Paul Eggert
926a394997 Use simpler way to print function pointers
The module code can’t possibly work on weird platforms where
function pointers are wider than data pointers, so there’s no need
to bother with the stackoverflow-like approach that is intended
only for portability to such platforms.  Besides, the
stackoverflow-like approach does not work well on weird platforms
where CHAR_BIT is not a multiple of 4.
* src/lisp.h (pMx): New macro.
* src/print.c (data_from_funcptr) [HAVE_MODULES]: New function.
(print_vectorlike) [HAVE_MODULES]: Use it.
(print_object): Make sure buf is big enough for this.
2019-05-05 17:40:55 -07:00
Jimmy Aguilar Mena
cca81f22d9 Fixed fill-column-indicator face removing background.
*lisp/faces.el: Removed background in default fill-column-indicator
 face.
*src/xdisp.c: fill-column-indicator face merged with saved face.
2019-05-05 16:59:25 +02:00
Jimmy Aguilar Mena
a336300ccf ;Corrected display-fill-column-indicator mode.
Small corrections in the documentation and code format to merge into master.
2019-05-05 16:27:37 +02:00
Jimmy Aguilar Mena
5b842bd782 *src/xdisp.c: Fixed fill column indicator position in terminal mode. 2019-05-05 16:27:37 +02:00
Jimmy Aguilar Mena
491e145f96 display-fill-column-indicator interface corrections
*lisp/display-fill-column-indicator.el: Fixed character selection for
the indicator based in the current faces. Extended condition to set
display-fill-column-indicator-character in graphical displays.

*src/xdisp.c: Fixed some long lines.
2019-05-05 16:27:37 +02:00
Jimmy Aguilar Mena
18ea7605c0 ;Small changes in the documentation
*src/xdisp.c: Fixed docstring for display-fill-column-indicator-column
*etc/NEWS: Concordance fix in the display-fill-column-indicator part.
*doc/emacs/display.texi: Name mismatch fix.
2019-05-05 16:27:37 +02:00
Jimmy Aguilar Mena
c34f00b58c Fixed fill-column-indicator for continuation lines
*src/xdisp.c: Grouped the test conditions for
display-fill-column-indicator mode in a macro to simplify future
modifications.
2019-05-05 16:27:37 +02:00
Jimmy Aguilar Mena
ab4619e7c3 Display-fill-column-indicator NEWS info.
*etc/NEWS: Added information about the fill-column-indicator mode.
*lisp/faces.el: Added a face for the display fill column indicator.
2019-05-05 16:27:37 +02:00
Jimmy Aguilar Mena
245dff16e3 Start display-fill-column-indicator-mode. 2019-05-05 16:27:37 +02:00
Eli Zaretskii
d45d5c339c Avoid compiler warning in print.c
* src/print.c (print_vectorlike): Don't use %hh, as that is
not portable enough; we don't yet assume a C99-compliant
library.
2019-05-05 17:17:24 +03:00
Eli Zaretskii
708d117a85 Avoid crashes in read_integer
* src/lread.c (read_integer): Always allocate a buffer, since
we need to use it even when the radix is invalid.  (Bug#35576)
2019-05-05 17:06:01 +03:00
Philipp Stephani
b5aeb86a7e Avoid suppressing -Wcast-function-type warning.
GCC special-cases the type ‘void (*)(void)’ to not emit warnings when
cast, see
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wcast-function-type.
Make use of this to remove a warning suppression.

* src/dynlib.h: Use void (*)(void) as generic function pointer type.

* src/emacs-module.c: Remove warning suppression.
2019-05-05 01:56:15 +02:00
Philipp Stephani
9684296a5d Refactoring: Factor out a function to set an mpz_t from a Lisp int.
* src/bignum.h (mpz_set_integer): New function.

* src/emacs-module.c (module_make_big_integer): Use it.
2019-05-04 23:31:40 +02:00
Philipp Stephani
1242a63671 Avoid undefined behavior when printing function pointers.
* src/print.c (print_vectorlike): Don’t pass a function pointer to
‘snprintf’, as that is undefined behavior.  Instead, print the
individual bytes making up the function pointer.
2019-05-04 23:04:24 +02:00
Paul Eggert
37963ed499 Fix bytecode optimization typo
Problem reported by Simon Frankau (Bug#35562).
* src/bytecode.c (exec_byte_code): Fix typo when optimizing varset.
2019-05-04 10:17:09 -07:00
Eli Zaretskii
5d3030910f Minor fix in .gdbinit
* src/.gdbinit (xprintsym): Don't attempt to print the
symbol's name if it is not yet set.  This happens with
built-in symbols at the beginning of 'main'.
2019-05-04 19:19:58 +03:00
Eli Zaretskii
a90ad22973 ; * src/minibuf.c (Fread_buffer): Doc fix. (Bug#35361) 2019-05-04 12:47:03 +03:00
Eli Zaretskii
e93d651b49 ; * src/xfaces.c (merge_face_ref): Improve commentary. 2019-05-04 09:52:11 +03:00
Paul Eggert
da3897abf1 Pacify librsvg 2.45.1 and later
* src/image.c (svg_load_image): Pacify librsvg 2.45.1 and later,
and add a FIXME comment about the deprecated librsvg functions.
2019-05-03 12:17:31 -07:00
Paul Eggert
74e17c23ae Simplify xd_signature to pacify GCC 9
* src/dbusbind.c (xd_signature): Use simpler way to set up
the subsignature.  This also pacifies GCC 9 on Fedora 30 x86-64.
2019-05-03 12:17:31 -07:00
Alexander Gramiak
9ae94ebdfa Refactor update_window_begin and update_window_end hooks
Bug#35464.

* src/dispnew.c (gui_update_window_begin, gui_update_window_end): New
procedures implementing common functionality.

* src/nsterm.m: (ns_update_window_begin, ns_update_window_end):
* src/xterm.c: (x_update_window_begin, x_update_window_end): Remove in
favor of only using the new generic versions.

* src/w32term.c: (w32_update_window_begin, w32_update_window_end):
Remove duplicated and unused code.
2019-05-02 21:16:43 -06:00
Paul Eggert
325f51c84d Fix decode-time/encode-time roundtrip on macOS
* src/timefns.c (Fencode_time): Ignore DST flag when the zone is
numeric or is a cons, as the doc string says it’s ignored in that
case, and not ignoring it causes encode-time to not invert
decode-time on some platforms (Bug#35502).
* test/src/timefns-tests.el (encode-time-dst-numeric-zone):
New test.
2019-04-30 10:47:17 -07:00
Paul Eggert
6ae0a50bc8 Disable __attribute__ ((cold)) on MinGW
* src/conf_post.h (ATTRIBUTE_COLD) [__MINGW32__]:
Define to empty on this platform.
2019-04-29 12:27:46 -07:00
Glenn Morris
7c7ee1dd52 Merge from origin/emacs-26
c26d452 (origin/emacs-26) * src/macfont.m (macfont_shape): Use conven...
140e7f8 Recommend using font-lock-face over face (Bug#35044)
7cb5364 Check if mouse_face_overlay was deleted (Bug#35273)

# Conflicts:
#	src/macfont.m
2019-04-29 09:12:53 -07:00
Paul Eggert
82ba72ad7a Replace ‘/* FALLTHROUGH! */’ with ‘break;’
* src/data.c (set_internal, set_default_internal):
Replace obsolescent /* FALLTHROUGH! */ comments with ‘break;’,
as ‘FALLTHROUGH;’ is not needed here.
2019-04-29 08:40:01 -07:00
Eli Zaretskii
3c513f3f62 Avoid compilation warnings in w32.c
* src/w32.c (unsetenv, readlink): Use memcpy instead of
strncpy, to avoid a compiler warning about calculating the
bound of the copy.
2019-04-29 18:18:51 +03:00
YAMAMOTO Mitsuharu
c26d452ae1 * src/macfont.m (macfont_shape): Use convenient LGLYPH_NEW. 2019-04-29 07:31:45 +09:00
Paul Eggert
9469d58ebe Update from GMP
* admin/update-copyright (updatable_files):
Don’t update copyright year on files copied from GMP, so that
they’re identical to upstream.
* src/mini-gmp.c, src/mini-gmp.h: Copy from GMP development
versions as of 2019-01-01 20:15:39 UTC.
2019-04-28 13:17:30 -07:00
Philipp Stephani
4d97e1a9ea Export major version of latest Emacs supported by emacs-module.h.
This is useful if module authors want to support multiple versions of
emacs-module.h.

* configure.ac (emacs_major_version): Define substitution.

* src/emacs-module.h.in (EMACS_MAJOR_VERSION): Define macro.

* doc/lispref/internals.texi (Module Initialization): Document
EMACS_MAJOR_VERSION preprocessor macro.

* test/data/emacs-module/mod-test.c (emacs_module_init): Verify
behavior of EMACS_MAJOR_VERSION.
2019-04-28 20:08:25 +02:00
Philipp Stephani
88c91f53df * src/emacs-module.c (funcall_module): Add a nontrivial assertion 2019-04-28 17:40:41 +02:00
Eli Zaretskii
6b6a6f06b4 Fix names of functions in last commit
* src/coding.h (build_string_from_utf8): Rename from
build_utf8_string.  All callers changed.
* src/coding.c (make_string_from_utf8): Rename from
make_utf8_string.  All callers changed.
2019-04-28 17:14:39 +03:00