Commit Graph
52 Commits
Author SHA1 Message Date
Oliver Hamlet 733d14cd4c Fix Display output for ComparisonOperator::NotEqual 2025-04-26 00:09:26 +01:00
Oliver Hamlet a574a2c98b Fix compiling for platforms that don't have memory map support in pelite 2025-04-25 18:51:29 +01:00
Oliver Hamlet 332a636bf1 Update versions and changelog for v5.3.1 2025-03-26 18:41:24 +00:00
Oliver Hamlet 638c233815 Add description and repository metadata to Cargo.toml 2025-03-26 18:33:57 +00:00
Oliver Hamlet 906198e599 Update versions and changelog for v5.3.0 2025-03-26 18:11:37 +00:00
Oliver Hamlet 537718766b Recover from poisoning of internal cache locks
Since they only contain cached values, it's reasonable to overwrite the
value with a new empty map and go from there.

This doesn't affect the lock used in the FFI layer because that protects
caller-provided state, and it doesn't change the function return types
to avoid breaking backwards compatibility.
2025-03-26 18:11:37 +00:00
Oliver Hamlet f7d9947fa4 Add Send, Sync and 'static bounds to Error variant 2025-02-26 19:45:59 +00:00
Oliver Hamlet 08749f51ad Add more derived traits to enums and structs 2025-02-26 19:45:33 +00:00
Oliver Hamlet da95554781 Update versions and changelog for v5.2.0 2025-02-20 17:48:23 +00:00
Oliver Hamlet f8cc7de5f8 Support line breaks in condition string whitespace 2025-02-20 17:47:55 +00:00
Oliver Hamlet f7ba01a46b Update versions and changelog for v5.1.0 2025-02-16 09:13:51 +00:00
Oliver Hamlet 2367403cad Use correct dir order for OpenMW when evaluating dir entries
I don't think this actually matters since evaluation just returns true and only exits early on success, but if the evaluator has side effects then it could matter.
2025-02-16 09:13:51 +00:00
Oliver Hamlet 174ba55c95 Add description_contains() condition function
It evaluates to true if the plugin description contains text that matches the given regex.
2025-02-15 22:38:18 +00:00
Oliver Hamlet f84083da52 Add filename_version() condition function
Unlike the other functions it will always evaluate to false if the version cannot be extracted from any filenames.
2025-02-15 21:27:39 +00:00
Oliver Hamlet 30e3ed9c86 Add file_size() function
It evaluates to false if the file doesn't exist.
2025-02-15 18:28:39 +00:00
Oliver Hamlet bae9e8b630 Update versions and changelog for v5.0.0 2025-02-01 18:56:44 +00:00
Oliver Hamlet d3da4528d3 Recognise OpenMW .omwscripts plugins
This doesn't really have any effect, as since ghosting is disabled for OpenMW the extension is only checked when evaluating a version() function, and .omwscripts plugins don't have a version field, so there's no reason for that version() call to exist in the first place.
2025-02-01 18:56:44 +00:00
Oliver Hamlet 7bf005118e Don't treat any OpenMW plugin as a master
Master-flagged plugins are not forced to load before other plugins in OpenMW.
2025-02-01 18:33:30 +00:00
Oliver Hamlet d7f5455cd0 Swap out some libc type aliases with std::ffi equivalents
Unfortunately std::ffi::c_size_t is currently experimental, and if I
define c_size_t = usize myself then cbindgen doesn't recognise it
properly and makes c_size_t a typedef of uintptr_t instead of just
replacing it with size_t.
2025-02-01 17:58:12 +00:00
Oliver Hamlet d9c453a857 Use c_int instead of i32 in error types
To match the types used by the actual error mappers. c_int is a type alias of i32 on the platforms that this library is used on, so there's no practical difference.
2025-02-01 17:58:12 +00:00
Oliver Hamlet 000c9971c2 Improve running CMake in CI 2025-01-29 18:38:32 +00:00
Oliver Hamlet 08639a1e8f Fix path handling for OpenMW
- Disable support for plugin ghosting for OpenMW, it's not clear if it's useful and it increases complexity.
- Search additional data paths in reverse order.
2025-01-29 18:38:32 +00:00
Oliver Hamlet a8f9a5734a Make Error and GameType enums non-exhaustive
So that it's not a breaking change to add more variants in the future.
2025-01-29 18:38:24 +00:00
Oliver Hamlet 9e2aa0cf9c Add support for OpenMW .omwaddon and .omwgame plugins 2025-01-29 18:38:24 +00:00
Oliver Hamlet f357fa48a3 Add is_executable() function
To guard against calling product_version() or version() on (non-plugin) files that unexpectedly aren't executables, e.g. Starfield.exe from the Microsoft Store.
2025-01-28 18:17:57 +00:00
Oliver Hamlet 784af50540 Update nom from 7.1.3 to 8.0.0 2025-01-27 20:06:23 +00:00
Oliver Hamlet 18150b76c1 Make integration test a unit test
I don't know why I implemented it as an integration test.
2025-01-19 14:03:10 +00:00
Oliver Hamlet 94d663bd4e Force-install cbindgen in CI 2025-01-14 18:21:20 +00:00
Oliver Hamlet 3d9ac4cfc2 Address clippy warnings in test code 2025-01-14 18:12:31 +00:00
Oliver Hamlet eb48d09283 Apply clippy --fix changes 2025-01-14 18:12:14 +00:00
Oliver Hamlet 13600ba188 Apply clippy suggestion 2025-01-14 18:11:47 +00:00
Oliver Hamlet deb8d39800 Migrate to the ubuntu-24.04 GitHub Actions runner
The ubuntu-20.04 runner is due to be deprecated on 2025-02-01 and
unsupported by 2025-04-01.

The ubuntu-24.04 runner doesn't include cbindgen so install it using
apt.
2025-01-13 20:39:59 +00:00
Oliver Hamlet 6b793f25bd Update versions and changelog for v4.0.2 2024-10-08 10:15:17 +01:00
Oliver Hamlet 317dd58d0d Update versions and changelog for v4.0.1 2024-06-28 17:49:22 +01:00
Oliver Hamlet b2fa93f134 Refactor CI workflow 2024-06-28 17:44:52 +01:00
Oliver Hamlet 54f9541c34 Update esplugin to 6.0.0 2024-06-28 17:25:47 +01:00
Oliver Hamlet 458841ce45 Update version numbers and changelog for v4.0.0 2024-05-02 20:54:56 +01:00
Oliver Hamlet c21391568c Add context to Error::ParsingIncomplete 2024-05-02 20:54:56 +01:00
Oliver Hamlet 848747e07c Update dependencies 2024-05-02 20:30:47 +01:00
Oliver Hamlet 97f366f7b9 Update esplugin to v5.0.1 2024-05-02 20:29:07 +01:00
Oliver Hamlet df88090a5d Update to Rust's 2021 edition
This means that the winapi sub-dependency is built with fewer features.
2024-05-02 19:55:52 +01:00
Oliver Hamlet c508533d4b Remove the ffi-headers feature
Rely on a separate cbindgen instance instead, which is less self-contained but more practical.
2024-04-30 23:29:31 +01:00
Oliver Hamlet adeac2317c Update GitHub Actions
To address deprecation warnings.
2024-04-30 22:58:41 +01:00
Oliver Hamlet 3af0ac5773 Commit Cargo.lock
This will allow deterministic builds in CI and is now the recommended approach (and cargo new no longer adds it to .gitignore).
2024-04-30 22:45:59 +01:00
Oliver Hamlet 922a8f9e7d Update version numbers and changelog for v3.1.0 2023-09-05 18:49:13 +01:00
Oliver Hamlet 30c140eb4d Add support for Starfield
As far as loot-condition-interpreter is concerned, it's not really any
different from Fallout 4.
2023-09-05 18:48:44 +01:00
Oliver Hamlet d8af231b99 Fix only lowercase plugin extensions being recognised
.esp, .esm, .esl and those plus .ghost suffixes are now matched
case-insensitively.
2023-08-26 09:43:29 +01:00
Oliver Hamlet 1043c21572 Update version numbers and changelog for v3.0.0 2023-08-18 17:39:24 +01:00
Oliver Hamlet 04ee63b5cf Fix benchmarks 2023-08-18 17:28:00 +01:00
Oliver Hamlet 86fee1892e Remove support for the "LOOT" alias 2023-08-17 23:39:26 +01:00
Oliver Hamlet 2b95f26727 Fix Windows FFI build
Looks like the Rust standard library now links against ntdll too.
2023-06-25 14:22:52 +01:00
Oliver Hamlet 3f05d6ad8a Update links to testing-plugins repo 2023-06-25 14:03:03 +01:00