RetroArch/tasks
Jesse Talavera-Greenberg cbf49a0b77
XDelta patch support (Take 2) (#15915)
* Add xdelta in deps

* Include <assert.h> in xdelta3.h

- Otherwise the static_assert calls can fail

* Build xdelta3 in Makefile.common

* Add xdelta support to the softpatching infrastructure

- The patching itself isn't fully implemented yet

* Adjust how xdelta3.h checks the sizes of some types

- Now checks max values instead of relying on autotools

* Add some enums that were excluded by the cherry-pick

* Remove stray whitespace

* Adjust SIZE macros in xdelta3.h

- Move them outside the XD3_USE_LARGEFILE64 block
- Add more SIZE declarations
- Make SIZEOF_UNSIGNED_LONG_LONG contingent on the presence of ULLONG_MAX

* Reintegrate xdelta support

* Enable support for xdelta's secondary compressors

- Necessary for some patches

* Fix some format specifiers

* Remove unnecessary files from xdelta

* Include xdelta3.h with a relative path

* Add xdelta3 headers to HEADERS variable

* Gate Xdelta support behind HAVE_XDELTA

- HAVE_XDELTA is on by default
- HAVE_PATCH is still required for HAVE_XDELTA to be meaningful
- Support is mostly contingent on the availability of LZMA
- Anything modern should be okay
- Legacy platforms (e.g. DOS) may need to have Xdelta support disabled
- At least until some other solution can be found

* Disable HAVE_XDELTA on platforms where the build recently failed

- These come from looking at the failed builds on GitHub
- These are guesses, and may turn out to be wrong

* Fix a potential memory leak

- Whoops, looks like I need to call two cleanup functions
- xd3_close_stream exists separately from xd3_free_stream

* Split the --help printout for --xdelta into its own strlcat call

- GCC was complaining about #ifdefs within macro arguments being non-portable

* Fix some incorrect printf format specifiers

* Modify Xdelta to adhere to C89

- It's mostly using RetroArch's INLINE macro instead of the inline keyword

* Slight cleanups

* Remove a stray comma that was hindering C89 builds

* Add XDelta support to CHANGES.md

* Change how the xdelta patch's name is computed

- To be in line with other recent refactoring

* Fix an incorrect merge

- Whoops, this part was from before I figured out how to get the size of a patched file

* Explain the song-and-dance behind computing a patched file's size

* Define some XDelta3-related constants to 0 on 32-bit platforms

* Adjust some Xdelta-related macro definitions

- Exclude the encoder, since we're not making patches
- Move some #defines to after inclusion of <stdint.h>, to fix undefined behavior
- Remove _WIN32_WINNT overrides, since they were for code that we're not using

* Fix Xdelta support

* Wrap an encoder-only function in `#if XD3_ENCODER`
2023-11-23 20:19:07 -08:00
..
task_audio_mixer.c Cleanup header includes 2022-12-05 15:10:19 +01:00
task_audio_mixer.h Fixes --disable-menu 2021-10-15 14:32:07 +02:00
task_autodetect_blissbox.c Reduce strlcat calls where possible 2023-06-19 06:00:10 +02:00
task_autodetect.c input_device_info - slim down - we don't need config_path and some of 2023-08-30 08:34:21 +02:00
task_bluetooth.c Remove asserts 2023-01-09 00:51:05 +01:00
task_cloudsync.c Fix ios-vulkan-ppsspp, and a small cloud save fix (#15801) 2023-10-15 05:45:03 -07:00
task_content_disc.c - Safer code - use strlcpy where possible instead of manual character 2023-06-20 16:33:55 +02:00
task_content.c XDelta patch support (Take 2) (#15915) 2023-11-23 20:19:07 -08:00
task_content.h Add 'Standalone Cores' menu (#13655) 2022-02-22 19:23:48 +01:00
task_core_backup.c Make sure core_info_find is called first before using the data struct 2023-07-15 16:00:48 +02:00
task_core_updater.c Reduce char arrays - 2023-06-19 18:16:40 +02:00
task_database_cue.c Replace more strlcat calls 2023-07-16 18:07:49 +02:00
task_database_cue.h (database) Added serial scanning for PS2 (#14566) 2022-10-30 17:21:48 +01:00
task_database.c - Safer code - use strlcpy where possible instead of manual character 2023-06-20 16:33:55 +02:00
task_decompress.c Rewrite some strlcat calls to strlcpy 2023-06-20 13:21:26 +02:00
task_file_transfer.c If we already know the length of the string, use strldup instead. 2022-08-25 16:31:54 +02:00
task_file_transfer.h Cleanup 2020-08-24 14:35:25 +02:00
task_http.c Cloud Sync (#15548) 2023-08-04 09:20:50 +02:00
task_image.c Use flags for some structs instead of tons of bools - less state/variables to bookkeep, 2022-10-06 06:53:13 +02:00
task_manual_content_scan.c Fix --disable-menu errors 2023-08-14 23:36:19 +02:00
task_menu_explore.c Get rid of some useless wrapper functions 2023-05-28 17:56:28 +02:00
task_movie.c Enqueue replay record/playback until next frame (#15751) 2023-10-04 00:53:51 -07:00
task_netplay_find_content.c Rename all local variables for retro_system_info to sysinfo 2023-07-15 07:45:20 +02:00
task_netplay_lan_scan.c Removed credits - requested by author 2022-11-01 21:40:13 +01:00
task_netplay_nat_traversal.c Cleanup header includes 2022-12-05 15:10:19 +01:00
task_overlay.c Explicit typecasts to bool 2023-08-16 17:10:59 +02:00
task_patch.c XDelta patch support (Take 2) (#15915) 2023-11-23 20:19:07 -08:00
task_pl_thumbnail_download.c Prevent directory creation on bogus thumbnail downloads (#15634) 2023-08-21 23:07:38 -07:00
task_playlist_manager.c Replace more strlcat calls 2023-07-16 18:07:49 +02:00
task_powerstate.c reorder structs, alignment 2020-08-15 00:35:15 +02:00
task_powerstate.h Fix header include - should have been relative 2021-11-05 00:09:45 +01:00
task_save.c increase chunk size for reads/writes under emscripten (#15845) 2023-10-31 07:18:45 -07:00
task_screenshot.c Rename all local variables for retro_system_info to sysinfo 2023-07-15 07:45:20 +02:00
task_steam.c Reduce some char arrays which are too big 2023-06-19 17:31:50 +02:00
task_translation.c Fix: request builder for the AI Service (#15879) 2023-11-06 10:52:17 -08:00
task_wifi.c Rewinding code should not be a forced built-in dependency 2023-03-17 16:08:41 +01:00
tasks_internal.h XDelta patch support (Take 2) (#15915) 2023-11-23 20:19:07 -08:00