Commit graph

1041 commits

Author SHA1 Message Date
Basil L. Contovounesios
f9080e9bc0 Always unset lisp_data when freeing images
Historically only the GIF code did this (since it stores animation
metadata in lisp_data), and recently the WebP code followed suit.
The benefit of clearing lisp_data is not 100% clear (to me:
bug#66221#41), but it probably can't hurt, so do it unconditionally
for all image types to simplify conditional compilation and avoid
warnings (bug#80266).

* src/image.c (image_clear_image): Set lisp_data to nil.
[HAVE_GIF || HAVE_WEBP] (gif_clear_image):
[HAVE_IMAGEMAGICK] (imagemagick_clear_image): Remove, replacing all
uses with image_clear_image.
2026-01-28 10:29:46 +01:00
Po Lu
53305372d0 ; Avoid warnings when neither GIF nor WebP are supported
* src/image.c (gif_clear_image): Render contingent on HAVE_GIF
|| HAVE_WEBP.
2026-01-27 11:01:35 +08:00
Eli Zaretskii
3dbddb4497 Fix image.c compilation when HAVE_GIF is not defined
* src/image.c (gif_clear_image): Make it available for other image
types.  (Bug#80266)
2026-01-26 18:33:59 +02:00
Basil L. Contovounesios
72c53dcb13 Improve (WebP) image animation
This adds support for animations with heterogeneous frame durations
without sacrificing CPU (bug#47895), and plugs a memory leak in and
speeds up WebP animations (bug#66221).

* lisp/image.el (image-animate): No need to stash
image-multi-frame-p data here, as image-animate-timeout now
refetches it for each animation frame.
(image-show-frame): Fetch image-multi-frame-p anew when checking
bounds; a cached value risks going stale.  This is not on the hot
path for animations, and is mainly used when framewise stepping
through an animation interactively.
(image-animate-timeout): Fetch current frame duration anew but do so
before image-show-frame to ensure an image cache hit (bug#47895,
bug#66221).  Include time taken by local arithmetic in
'time-to-load-image'.  Update commentary.

* src/image.c (parse_image_spec): Simplify using FIXNATP.
(filter_image_spec): Remove check for :animate-multi-frame-data as
it is no longer used by image.el.
[HAVE_ANIMATION && HAVE_GIF] (struct gif_anim_handle):
[HAVE_ANIMATION && HAVE_WEBP] (struct webp_anim_handle): New
structures formalizing animation cache handles, and allowing for
more than two custom fields per image type.
(struct anim_cache): Replace generic handle and temp pointers with a
union of gif_anim_handle and webp_anim_handle.  All uses updated.
Update destructor signature accordingly.
(anim_create_cache): Use xzalloc to zero-initialize both integer and
pointer fields.  Initialize frames, width, height to -1 for
consistency with index.  Mark as ATTRIBUTE_MALLOC.
(anim_prune_animation_cache): Check whether destructor (not handle)
is null before calling it.
(gif_clear_image): Note in commentary that WebP also uses it.
(gif_destroy): Free pixmap here now that prune_anim_cache no longer
does it automatically.  Remove unused gif_err variable.
(gif_load): Avoid UB from casting destructor to a different type.
Don't redundantly check for null before xfree.  Change default frame
delay from 15fps to t, which image-multi-frame-p will translate into
image-default-frame-delay, which the user can control.
[HAVE_WEBP && WINDOWSNT] (init_webp_functions): Reconcile library
definitions with current webp_load implementation.
(webp_destroy): Free owned copy of input WebP bitstream contents.
(webp_load): Ownership of both input and decoded memory is a
function of :data vs :file and animated vs still.  Make this and
transfers of ownership to animation cache clearer by using distinct
copy/view variables.  Also make resource freeing clearer by using a
single unconditional cleanup and exit path.  Check animation cache
early to avoid rereading bitstream and reparsing headers on each
call.  Remove redundant call to WebPGetInfo since WebPGetFeatures
does the same thing.  Check more libwebpdemux return values for
failure and fix file name reported in error messages.  Remove unset
local variable 'file'.  If requested :index is ahead, fast-forward
instead of restarting from first frame.  If requested :index is
behind, reset animation decoder to first frame instead of deleting
and recreating it.  Reuse animation decoder's own WebPAnimInfo and
WebPDemuxer instance instead of creating and deleting a separate
WebPDemuxer.  Fix leak when copying :data to animation cache.  Fix
frame duration calculation, and return each frame's own duration now
that image.el supports it.  Return t as a default frame duration, as
per gif_load.  Consistently use WebPBitstreamFeatures to simplify
control flow.  Don't pollute lisp_data image-metadata for still
images with animation-related properties.
(image_types) [HAVE_WEBP]: Use gif_clear_image to clear lisp_data
for consistency with GIF code.
(syms_of_image): Remove QCanimate_multi_frame_data; no longer used.
2026-01-24 19:37:30 +01:00
Basil L. Contovounesios
db413c9da7 Improve animation cache documentation
* doc/lispref/display.texi (Image Cache): Document animation cache
argument that clear-image-cache gained in Emacs 29 (bug#56546,
bug#66221).

* lisp/image.el (image-animate-timeout): Note limitation of
clear-image-cache with ImageMagick.

* src/image.c (Fclear_image_cache): Rename animation-cache argument
to animation-filter and expand its description for clarity.
(struct anim_cache, anim_create_cache, image_prune_animation_caches):
Improve commentary.
(mark_image_cache): Replace stale commentary that referred to
forall_images_in_image_cache with description of mark_image_cache.
[HAVE_IMAGEMAGICK] (struct animation_cache): Mention lack of
clear-image-cache support in commentary.
2026-01-24 19:37:30 +01:00
Paul Eggert
58b9ac601e Avoid overflows in image size calculations
Problem reported by Basil L. Contovounesios (bug#66221#89).
* src/image.c (image_size_in_bytes, image_frame_cache_size):
Use intptr_t for sizes of collections of objects.
(struct anim_cache.byte_size, gif_load, Fimage_cache_size):
Use intmax_t for sizes of either files or objects.
2026-01-17 11:12:00 -08:00
Yavor Doganov
cc3e6f368f NS: Add native image support for HEIF, SVG and WEBP on GNUstep
* src/nsimage.m (ns_can_use_native_image_api): Handle HEIF, SVG
and WEBP image types on GNUstep.
* src/image.c (syms_of_image): Add conditional native image
support for HEIF, SVG and WEBP on GNUstep.  (Bug#80101)
2026-01-17 14:06:29 +02:00
Basil L. Contovounesios
6287637ccd Various housekeeping in image.c
* doc/lispref/display.texi (Customizing Bitmaps): Fix grammar.
(XBM Images): Fix reference to incorrect number of properties.
(Multi-Frame Images, Other Image Types): Mention multi-frame WebP
support.

* src/image.c: Don't include pdumper.h; it hasn't been needed since
commit of 2019-05-17 "Clean up and simplify image-type setup".  Fix
some commentary.
(image_pix_container_create_from_bitmap_data): Remove no longer used
frame parameter (bug#80191); this continues from commit of
2022-11-25 "Remove unused parameter from
image_create_pix_container".  All callers updated.
(x_create_xrender_picture, initialize_image_type): Simplify.
(xbm_image_p): Remove redundant conditional branch.  Update
commentary.
2026-01-16 14:03:45 +02:00
Basil L. Contovounesios
8b27802256 Fix off-by-one error in native_image_p
* src/image.c (native_image_format): Make array size explicit, to
help keep it consistent with its later fmt descriptor copy.
(native_image_p): Parse the correct number of keywords (bug#80191).
2026-01-16 14:00:08 +02:00
Sean Whitton
c31f6adc31 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
Alan Third
9f5d17cd72 Move CSS into the SVG wrapper
This allows CSS to be used with librsvg < 2.48.

* src/image.c (svg_load_image): Move CSS construction and include
"color".  Also append the CSS passed in by the user rather than
replacing it.
2025-07-10 17:54:33 +01:00
Alan Third
4d145d08da Change foreground color handling for SVG files (bug#77841)
* etc/images/checkbox-mixed.svg:
* etc/images/checked.svg:
* etc/images/conceal.svg:
* etc/images/down.svg:
* etc/images/gnus/gnus-pointer.svg:
* etc/images/left.svg:
* etc/images/outline-close.svg:
* etc/images/outline-open.svg:
* etc/images/radio-checked.svg:
* etc/images/radio-mixed.svg:
* etc/images/radio.svg:
* etc/images/reveal.svg:
* etc/images/right.svg:
* etc/images/symbols/check-mark_16.svg:
* etc/images/symbols/chevron_down_16.svg:
* etc/images/symbols/chevron_left_16.svg:
* etc/images/symbols/chevron_right_16.svg:
* etc/images/symbols/chevron_up_16.svg:
* etc/images/symbols/cross_16.svg:
* etc/images/symbols/cross_circle_16.svg:
* etc/images/symbols/cross_circle_fill_16.svg:
* etc/images/symbols/dot_large_16.svg:
* etc/images/symbols/dot_medium_16.svg:
* etc/images/symbols/dot_small_16.svg:
* etc/images/symbols/heart_16.svg:
* etc/images/symbols/heart_fill_16.svg:
* etc/images/symbols/heart_half_16.svg:
* etc/images/symbols/menu_16.svg:
* etc/images/symbols/minus_16.svg:
* etc/images/symbols/minus_circle_16.svg:
* etc/images/symbols/minus_circle_fill_16.svg:
* etc/images/symbols/plus_16.svg:
* etc/images/symbols/plus_circle_16.svg:
* etc/images/symbols/plus_circle_fill_16.svg:
* etc/images/symbols/star_16.svg:
* etc/images/symbols/star_fill_16.svg:
* etc/images/symbols/star_half_16.svg:
* etc/images/unchecked.svg:
* etc/images/up.svg: Set 'fill' color to 'currentcolor'.
* etc/images/symbols/README: Add explanation of change to instructions.
* src/image.c: Remove setting of the 'fill' color in the default SVG
stylesheet.
2025-07-10 17:54:33 +01:00
Paul Eggert
c8eed90eb4 Avoid name clashes with static GnuTLS
Work around a bug in GnuTLS 3.7.11 and earlier: when built
statically, its mistakenly exports symbols hash_lookup and
hash_string, which collide with Emacs symbols of the same name,
preventing temacs from linking statically.  Problem reported by
Greg A. Woods (Bug#77476).

Because GnuTLS never uses hash_lookup or hash_string this issue
ordinarily doesn’t seem to prevent temacs from linking to GnuTLS
on GNU/Linux, as it’s linked dynamically and the dynamic linker
never needs to resolve references to either symbol.  However, I
suppose a clash or bug could occur even with dynamic linking if
Emacs later loads a module that uses either symbol.

Although GnuTLS should be fixed, Emacs should link statically to
current and older GnuTLS versions in the meantime, and it should
avoid potential problems with dynamic linking.  Renaming the two
clashing names is an easy way to do this.  For consistency with
the new name for hash_lookup, also rename hash_lookup_with_hash
and hash_lookup_get_hash.

* src/fns.c (hash_find_with_hash): Rename from hash_lookup_with_hash.
(hash_find): Rename from hash_lookup.
(hash_find_get_hash): Rename from hash_lookup_get_hash.
(hash_char_array): Rename from hash_string.
All uses changed.
2025-04-19 19:31:26 -07:00
Kazuhiro Ito
64b3ad5c76 Avoid defining unneeded variables on Cygw32
lisp/term/w32-win.el contained definitions of variables which
were not used on Cygw32.  It is now to split into two files,
common part and Windows native build specific part. The latter
is a new file, lisp/term/w32-nt.el.
* src/image.c (Qlibpng_version, Qlibgif_version)
(Qlibjpeg_version): Don't define on Cygw32 build.
* src/treesit.c (Qtree_sitter__library_abi): Ditto.

* lisp/term/w32-win.el (dynamic-library-alist, libpng-version)
(libgif-version, libjpeg-version, libgnutls-version)
(tree-sitter--library-abi, gui-backend-set-selection)
(gui-backend-get-selection, gui-backend-selection-owner-p)
(gui-selection-exists-p): Moved to lisp/term/w32-nt.el.
* lisp/term/w32-nt.el: New file, separated Windows native build
specific part from lisp/term/w32-win.el.
* lisp/loadup.el: Load term/w32-nt.el on Windows native build.
(Bug#75926)
2025-03-06 16:04:51 +02:00
Stefan Kangas
702cb123fa ; Fix typos 2025-02-22 14:48:29 +01:00
Stefan Kangas
bf97946d7d Merge branch 'scratch/no-purespace' into 'master' 2025-02-01 04:56:52 +01:00
Paul Eggert
c50e8c2424 Prefer make_formatted_string in svg_load_image
* src/image.c (svg_load_image): Prefer make_formatted_string to
snprintf, as this simplifies the code and does not truncate the
resulting string arbitrarily.
2025-01-26 23:05:51 -08:00
Paul Eggert
028fae9661 Simplify building of color names in image.c
* src/image.c (make_color_name): New function.
(image_background, image_build_heuristic_mask, png_load_body): Use it.
2025-01-26 23:05:51 -08:00
Paul Eggert
f885806fdf Simplify make_formatted_string API
From a suggestion by Pip Cet.
* src/alloc.c (make_formatted_string): Omit first argument,
to simplify the calling convention.  All callers changed.
* src/doprnt.c (doprnt): Also support %u.  Update doc.
2025-01-26 23:05:50 -08:00
Stefan Kangas
d3ada49a37 Minor image_error related cleanups
* src/image.c (image_create_x_image_and_pixmap_1): Avoid temporary
variable by passing the value directly to image_error.
(tiff_handler): Prefer image_error to add_to_log for local
consistency.
2025-01-22 23:42:13 +01:00
Paul Eggert
8ff7338fdd When debugging image.c, abort if silent truncation
* src/image.c (image_build_heuristic_mask, png_load_body):
Abort if snprintf truncated.  (If truncation is not possible
here we should use sprintf instead, as that simplifies
automatic runtime checking.)
2025-01-21 22:31:00 -08:00
Stefan Kangas
cdcfffd50a Prefer snprintf to sprintf in image.c
* src/image.c (image_background, image_build_heuristic_mask)
(png_load_body): Prefer snprintf to sprintf.
2025-01-22 00:49:50 +01:00
Pip Cet
d7bdaa4170 Handle unknown units provided by the rsvg library (bug#75712)
* src/image.c (svg_css_length_to_pixels): Restructure so GCC warns
about new enum members.  Add case for RSVG_UNIT_CH.  Warn about
unknown units discovered at runtime.
2025-01-21 19:04:11 +00:00
Stefan Kangas
251e3d2654 Replace call[1-8] with calln
Since the introduction of the 'calln' macro, the 'call1', 'call2', ...,
'call8' macros are just aliases for the former.  This is slightly
misleading and potentially unhelpful.  The number of arguments N can
also easily go out-of-synch with the used alias callN.  There is no
reason not to replace these aliases with using 'calln' directly.

To reduce the risk for mistakes, the tool Coccinelle was used to make
these changes.  See <https://coccinelle.gitlabpages.inria.fr/website/>.

* src/alloc.c, src/androidvfs.c, src/androidfns.c, src/buffer.c:
* src/callint.c, src/callproc.c, src/casefiddle.c, src/charset.c:
* src/chartab.c, src/cmds.c, src/coding.c, src/composite.c:
* src/data.c, src/dbusbind.c, src/dired.c, src/doc.c:
* src/emacs.c, src/eval.c, src/fileio.c, src/filelock.c:
* src/fns.c, src/frame.c, src/gtkutil.c, src/haikufns.c:
* src/haikumenu.c, src/image.c, src/insdel.c, src/intervals.c:
* src/keyboard.c, src/keymap.c, src/lisp.h, src/lread.c:
* src/minibuf.c, src/nsfns.m, src/nsselect.m, src/pgtkfns.c:
* src/pgtkselect.c, src/print.c, src/process.c, src/sort.c:
* src/syntax.c, src/textconv.c, src/textprop.c, src/undo.c:
* src/w32fns.c, src/window.c, src/xfaces.c, src/xfns.c:
* src/xmenu.c, src/xselect.c, src/xterm.c:
Replace all uses of 'call1', 'call2', ..., 'call8' with 'calln'.
2025-01-19 14:29:41 +01:00
Paul Eggert
fb434b8516 Always define image_compute_scale
* src/image.c (image_compute_scale): Define even if
! (defined HAVE_IMAGEMAGICK || defined HAVE_NATIVE_TRANSFORMS),
because it is always used.  Needed in platforms that lack all
those image libraries.
2025-01-18 23:28:11 -08:00
Paul Eggert
4da38c6321 Update copyright year to 2025
Run "TZ=UTC0 admin/update-copyright".
2025-01-01 07:39:17 +00:00
Alan Third
691c161a81 Make image cache aware of image-scaling-factor (bug#74725)
* src/dispextern.h (struct image): Add scale so it can be compared in
search_image_cache.
* src/image.c (search_image_cache): Calculate the scale factor and
compare with the cached value.
(image_compute_scale): Compute the image's scale factor and optionally
store it in the image struct.
(compute_image_size): Move scale calculation code into
image_compute_scale and use it.
2024-12-28 12:36:58 +00:00
Pip Cet
afd61deaae Pure storage removal: Remove purecopy hash table flag
* lisp/emacs-liqsp/comp.el (comp--jump-table-optimizable): Adjust
comment.
* src/category.c (hash_get_category_set):
* src/emacs-module.c (syms_of_module):
* src/fns.c (make_hash_table): Remove 'purecopy' flag and update
docstring.
(Fmake_hash_table): Ignore ':purecopy' argument.
* src/frame.c (make_frame):
* src/image.c (xpm_make_color_table_h):
* src/lisp.h (struct Lisp_Hash_Table): Drop 'purecopy' flag.
* src/pdumper.c (dump_hash_table): Don't dump 'purecopy' flag.
* src/print.c (print_object): Don't print 'purecopy' flag

* src/json.c (json_parse_object):
* src/lread.c (readevalloop, read_internal_start):
* src/pgtkterm.c (syms_of_pgtkterm):
* src/profiler.c (export_log):
* src/xfaces.c (syms_of_xfaces):
* src/xterm.c (syms_of_xterm): Adjust calls to 'make_hash_table'.
2024-12-12 22:48:12 +01:00
Eli Zaretskii
3993dcca82 Merge from origin/emacs-30
f65de1019d Fix the version of librsvg API change
43c4a06ffc ; Fix grammar in Emacs user manual
6bca138d60 Fix latest test for dabbrev-expand
2024-12-07 09:16:18 -05:00
Manuel Giraud
f65de1019d Fix the version of librsvg API change
* src/image.c (init_svg_functions, svg_load_image): The first
official version that introduces
'rsvg_handle_get_pixbuf_and_error' is 2.59.0 not 2.58.0.
(Bug#74606)
2024-12-02 18:23:28 +02:00
Manuel Giraud
8cd4ab7abd Do not use libjpeg quantization (bug#74476)
* src/image.c (jpeg_load_body): Remove libjpeg quantization.
2024-12-02 10:43:35 +00:00
Yuan Fu
4afd1eca36
Merge from emacs-30
cf4f1387a6 ; Update tree-sitter manual
3c7687c1dd Allow passing nil to treesit-node-match-p (bug#74612)
748b19e56e Update to version 2.58 of librsvg API (bug#74606)
4c67f636c0 Fix decoding of non-ASCII email attachments
bd8a6f70fb Prevent "Selecting deleted buffer" error with dabbrev-expand
0a753603a5 ; (dictionary-search-interface): Fix bug#74511.
2024-12-01 17:52:16 -08:00
Manuel Giraud
748b19e56e Update to version 2.58 of librsvg API (bug#74606)
* src/image.c (init_svg_functions): Declare new function.
(svg_load_image): Use it.
2024-12-01 16:51:55 +02:00
Cecilio Pardo
4e8bf2977e Support :transform-smoothing on images (MS-Windows) (bug#57166)
* src/dispextern.h (struct image): Add field 'smoothing' for
NTGUI.
* src/image.c (image_set_transform): Assign the 'smoothing'
field of the image struct.
* src/w32gdiplus.h: Add references to more GDI+ functions.
* src/w32image.c (gdiplus_init): Add references to more GDI+
functions.
* src/w32term.c (w32_draw_image_foreground): If the image is
marked for smoothing and GDI+ is available, draw it with GDI+
bilinear interpolation.
* etc/NEWS: New entry for this change.
2024-11-05 14:37:07 +02:00
Pip Cet
dc2cdd3683 Explicitly include stdlib.h in src/image.c (Bug#72929)
* src/image.c: Add include.
2024-09-01 15:37:48 +00:00
Stefan Kangas
73277a4097 Fix integer overflow when reading XPM
* src/image.c (xpm_str_to_int): New function.
(xpm_load_image): Replace sscanf with strtol, to correctly handle
integer overflow when reading a malformed XPM file.  (Bug#72245)
2024-09-01 13:17:41 +02:00
Paul Eggert
3b24ac5388 Don’t ignore -Wclobbered in image.c
This fix is also prompted by Emacs bug#71744.
* src/image.c: Do not ignore -Wclobbered.
(png_load_body): Fix violations of the C standard, where setjmp
clobbered c.  Move mask_img decl to pacify GCC.
(jpeg_load_body): Don’t make fp volatile; solve that problem in a
better way, via a new fp_volatile local.  Fix violations of the C
standard, where setjmp clobbered mgr, img, and ximg.  If __GNUC__
&& !__clang__, add useless assignments to pacify GCC.
2024-08-16 21:16:36 -07:00
Eli Zaretskii
c3c27a919c Merge from origin/emacs-30
88e1ec22f2 Update to Org 9.7.9
1ae2f00447 Fix edge-case with 'which-key-dont-use-unicode' setter
68a5f1f7d1 NS: prevent makeKeyWindow warnings (bug#69525)
59a895ec49 ; * .gitignore: Add lisp/eshell/esh-groups.el.
5c08cd4e7c ; * doc/emacs/cmdargs.texi (Initial Options): Fix last ch...
309d0a7186 Add PROBLEMS entry for bug#72303
87389f9ff9 ; Improve documentation of 'line-prefix' and 'wrap-prefix'.
268a2d10fc Improve documentation of '--init-directory' command-line ...
c27055a938 ; cperl-mode.el: Fix fontification of flip-flop (Bug#72296)
fcd4e4c895 ; * admin/MAINTAINERS: Add myself for maintaining some ar...
fdc133e97f Fix bug in server.el introduced by 0d7d835902
af527051cd ; * admin/MAINTAINERS: Remove Nicolas Petton.
7170282a59 lisp/minibuffer.el (completion--sifn-requote): Fix bug#72176
68906f184c * admin/notes/spelling: Update note.
9eea6be5ab Don't produce invalid XML with multi-line commenting style
b97786d9f6 ; * etc/NEWS: Entry for 'gnus-summary-limit-to-age' (bug#...
a799661566 Standardize possessive apostrophe usage in manuals, docs,...
67faaead75 Don't refer to obsolete finder group "wp"

# Conflicts:
#	etc/NEWS
2024-07-27 04:27:53 -04:00
Stefan Kangas
a799661566 Standardize possessive apostrophe usage in manuals, docs, and comments
See the note in admin/notes/documentation.
Ref: https://lists.gnu.org/r/emacs-devel/2012-02/msg00649.html
2024-07-25 03:35:18 +02:00
Andrea Corallo
df25bd12fc Merge from savannah/emacs-30
976416bebe Fix some function type declaration
23549d7175 * src/image.c (gui_put_x_image): Avoid memory leak.
cb633820c1 ; * doc/misc/use-package.texi (Getting Started): Fix word...
2024-07-24 15:49:23 +02:00
Po Lu
23549d7175 * src/image.c (gui_put_x_image): Avoid memory leak. 2024-07-24 20:13:01 +08:00
Po Lu
135ce96f1e Merge from savannah/emacs-30
3a76354e09 Adapt last change to non-NS systems
2024-07-24 12:01:02 +08:00
Po Lu
3a76354e09 Adapt last change to non-NS systems
* src/image.c (xpm_load_image): Also check whether mask_img is
NULL.
2024-07-24 11:59:53 +08:00
Po Lu
e673492f74 Merge from savannah/emacs-30
b5543c54bf Fix NULL pointer dereferences in xpm_load_image
2024-07-24 11:58:29 +08:00
Po Lu
b5543c54bf Fix NULL pointer dereferences in xpm_load_image
* src/image.c (x_destroy_x_image): Correct test condition.
(xpm_load_image): Do not release image data if it is still to be
created.
2024-07-24 11:57:28 +08:00
Po Lu
db40b65825 Merge from savannah/emacs-30
1ee8579eb7 Fix bug#72255
05629d3af0 Delete redundant "a.k.a." in use-package.texi
c7609464f7 Document (use-package 'emacs) declarations
de9f9add13 Improve 'emacs-news-view-mode' menus and bindings
7588e1f8a9 ; * src/xdisp.c (Fformat_mode_line): Doc fix.
2074e94c3b Fix disappearing bar cursor on Hebrew text (bug#72230)
1aaadc8aec Fix DocView with DVI files
c1382257aa ; Fix typo in use-package.texi
caf7426f0c FIx spurious fontification of variable in Java Mode
9b426e15ab Correctly typeset nil and t in texinfo
f050b9c503 Fix Tramp IPv6 handling in tests
46b192c04b Update to Org 9.7.8-5-gfdf0e0
87f41b937b Fix Ftreesit_parser_create
2024-07-24 11:41:58 +08:00
Po Lu
1ee8579eb7 Fix bug#72255
* src/image.c (struct image_type): Minor grammatical
corrections.
(image_destroy_x_image): [HAVE_NS]: Do not release
Emacs_Pix_Containers, which are identical to Emacs_Pixmaps and
consequently always released with the `struct image'.
(bug#72255)
2024-07-24 11:39:07 +08:00
Stefan Kangas
fcb4d89aaa Prefer memcpy to strcpy in image.c
* src/image.c (lookup_image, xpm_cache_color)
(imagemagick_create_cache): Prefer 'memcpy' to 'strcpy'.
2024-07-16 04:12:35 +02:00
Stefan Kangas
72ba45e274 Restrict loop variable scope in xpm_str_to_color_key
* src/image.c (xpm_str_to_color_key): Restrict scope of
loop variable.
2024-07-16 04:12:34 +02:00
Eli Zaretskii
ce13eee5ab ; * src/image.c (free_image_cache): Add assertion. (Bug#71929) 2024-07-12 09:39:39 +03:00