Skip to content

Latest commit

 

History

History
254 lines (153 loc) · 12.6 KB

CHANGELOG.md

File metadata and controls

254 lines (153 loc) · 12.6 KB

Changelog

All notable changes to this project will be documented in this file.

This project adheres to Semantic Versioning.

[0.5.7] - 2024-12-04

This release fixes extraction of entries with unicode filenames inside RAR archives

Issues: #44

Bug Fixes

  • (extract) unicode files on Linux (5e6b83d, #44)

    Unicode files being extracted to directories still caused issues on Linux.
    For example, if a file ❤️.txt was part of a RAR archive, extracting it to
    CWD or by providing a parent dir would fail. This commit adds extensive tests
    and fixes all those issues definitively.

Styling

  • (sys) function-based cfg for better readability (1d9e413)

[0.5.6] - 2024-09-01

This release fixes a reported Windows build error for different locales

Issues: #56

Bug Fixes

  • (dll) remove invalid unicode in code comment (7db15f7, #56)

    msvc compliler (under some windows system) complains about "undefined identifier Flags" due to invalid chars,
    for example, compile may fail under Windows 11 system which has locale for non-unicode app configured as Japanese or Korean or Chinese

Miscellaneous / Refactors

  • (dll) add patch for unicode removal (be073b4)
  • (release) link to issues and commits in changelog (e9c3101)

[0.5.5] - 2024-08-31

Re-release because 0.5.4 had a dependency mistake

Bug Fixes

  • correctly update unrar_sys version (a97112a)

[0.5.4] - 2024-08-31

This release fixes the long standing unicode filename bug on Linux, as well as as the recent tempdir bug on macOS.

Issues: #34, #44

Bug Fixes

  • unicode filenames on Linux (f3fb23d, #44)

    This bug caused CJK chars in filename to be stripped out on Linux. For example, /media/mydisk/fooにほん.rar would result in /media/mydisk/foo so the open will fail

    due to

        if (r->ArcNameW!=nullptr && *r->ArcNameW!=0)
          ArcName=r->ArcNameW;
        else
          CharToWide(AnsiArcName,ArcName);
    
        Data->Arc.Open(ArcName,FMF_OPENSHARED)

    in Data->Arc.Open, ArcName is converted with WideToChar causing the CJK bytes to get lost. So we pass it as AnsiArcName, so CharToWide is called first, causing to conversion to work.

Miscellaneous / Refactors

Testing

  • add test case to verify tempdir extraction is fixed (519956a, #34)

Documentation

  • add RAR 5.0 archive format doc (1df450f)

[0.5.3] - 2024-02-22

Minor release that adds opening archives in test mode

Features

Miscellaneous / Refactors

  • (unrar_sys) add Apache2 license to Cargo.toml (e002f23)

Documentation

  • (vendor) htm -> md (for viewing in browser) (c30e6d0)

Styling

[0.5.2] - 2023-11-11

Minor bug fix release that fixes builds on Windows targets adds minor performance improvements

Bug Fixes

  • (archive) dont strip parents in path methods (5ebac5e)

  • (unrar_sys) remove indirect dependency to MSVC comsupp library for windows-gnu target (f2adc58)

  • (unrar_sys) use winapi crate for all windows targets (fe6838a)

    chore(unrar_sys): link against static libstdc++ on windows-gnu targets
    chore(unrar_sys): fall back to C++14 (minimal version supported by MSVC)

Performance

  • (archive) use as_str instead of to_string_lossy where sensible (7c61362)

Miscellaneous / Refactors

  • (license) add Apache2 license #1 (fe9d57f)
  • (unrar_sys) upgrade DLL version to 6.24.0 (5d196bf)
  • (unrar_sys) add upgrade instructions and script (327b1c1)

Testing

  • use PathBuf to not fail on windows (5169021)

Documentation

  • (archive) add docs examples for Archive::break_open (015ffb1)
  • (unrar_sys) add vendor documentation (c087b73)

[0.5.1] - 2023-06-28

This release fixes a critical UB bug

Bug Fixes

  • (open_archive) fix NULL deref, pass valid pointer (db0d379)

Miscellaneous / Refactors

  • add test step for unrar_sys library (986de02)

Example

  • (unrar_sys) format lister example (da5f1a4)
  • (unrar_sys) fix windows build for lister example (9164631)

[0.5.0] - 2023-06-22

This is a milestone release that, among others, allows one to extract files directly into memory -- something people have been asking forever how to do.

I've also completely rewritten major parts of the library and am very proud of the way things are looking right now. Utilizing the typestate pattern, the library enforces correct usage at compile time, only exposing methods when they make sense (depending on a combination of open mode and current cursor position).

Before this release, the library was hard to use and it was not possible to skip some files in the archive while, for instance, extracting others. One operation had to be chosen for all files. That has changed now. However, the drawback is that iterating archives is now a bit harder since the Iterator trait is not implemented for archives that are opened in Process mode (since it's hard to enforce an operation at call-site).

Another major focus of this release was documentation: all API items are documented now except for very few exceptions. The crate docs also features a very extensible introduction as well.

Bug Fixes

  • (unrar_sys) fix broken code in example and test (ddbf0fe)
  • avoid endlessly returning errors in Iterator (46dd054)

Features

  • implement typestate pattern, completely rewrite major parts (b3ef161)
  • upgrade dependencies (4539125)
  • Archive::as_first_part returns self (0c25662)

Miscellaneous / Refactors

  • (dll) upgrade DLL version to 6.2.8 (598e273)
  • update author e-mail (3e40b8d)
  • update authors (edeb4bc)
  • add Github Actions workflow (b8f2139)
  • edition=2021, remove superfluous extern crates (901a28a)
  • edition=2021, remove superfluous extern crates (dcbad8e)
  • return Result<Option,E> instead of Option<Result<T,E>> (6bca25c)

Documentation

  • further improve crate-level docs (c5bb2bf)

Example

  • (read_named) rename example and print content (9b13543)

Styling

  • cargo fmt (0bf0d59)
  • use std::ptr::null/mut instead of 0 as * (d0e6547)