Oliver Hamlet
5f9d15b2c9
Move lints config to Cargo config
2025-08-01 18:07:36 +01:00
Oliver Hamlet
e075010fbd
Deduplicate Cargo package fields
2025-08-01 18:07:33 +01:00
Oliver Hamlet
a2d90d781a
Fix repository in Cargo.toml
2025-08-01 18:07:24 +01:00
Oliver Hamlet
c65270891e
Fix CI badge in readme
2025-08-01 17:37:38 +01:00
Oliver Hamlet
93dd69a2c8
Add a release GitHub Actions workflow
...
For publishing to crates.io.
2025-08-01 17:37:25 +01:00
Oliver Hamlet
36a987f0b5
Fix clippy warnings
2025-07-20 11:33:26 +01:00
Oliver Hamlet
3c81bd50e2
Update Windows CI to windows-2025
...
windows-2019 will be fully retired by the end of June, and 2025 is the latest version.
2025-04-29 22:27:19 +01:00
Oliver Hamlet
cacf19c54f
Update versions and changelog for v5.3.2
2025-04-28 18:18:29 +01:00
Oliver Hamlet
8a5cf6d124
Update transitive dependencies
2025-04-28 18:18:28 +01:00
Oliver Hamlet
5131b31df4
Update to esplugin 6.1.3
2025-04-28 18:16:39 +01:00
Oliver Hamlet
6415ac9511
Write paths in errors as escaped ASCII text
2025-04-28 17:48:53 +01:00
Oliver Hamlet
b45ace0700
Improve FFI error message handling
2025-04-28 17:48:20 +01:00
Oliver Hamlet
dbbbcd58e5
Remove check that paths are inside game path
...
It didn't work correctly for OpenMW or for additional data paths, fixing it would be significantly more complicated, and it doesn't really add any value.
2025-04-27 18:37:40 +01:00
Oliver Hamlet
50d9d11b6b
Update metadata syntax version in readme
2025-04-27 07:23:35 +01:00
Oliver Hamlet
2e89521963
Fix description_contains for OpenMW plugins
2025-04-27 07:23:35 +01:00
Oliver Hamlet
2b37e15f2b
Run clippy in CI
2025-04-27 07:23:34 +01:00
Oliver Hamlet
9c4f9dcb5e
Deny a lot of extra lints and fix their errors
2025-04-26 10:10:48 +01:00
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