Luke Street
9120080eb5
This implements support for MWCC 4.1+ (aka GC 3.0a3 and above). Notable changes: - Hook `CreateFileMappingA` / `MapViewOfFile`: These compilers use these functions rather than `ReadFile` for headers. - Hook `MultiByteToWideChar`: This function's behavior changed in Windows 2000 SP4 / Windows XP, and certain compiler versions rely on the old behavior. This fully reimplements it for CP-932 with the legacy behavior. - Explicitly fail on invalid UTF-8 inputs. Add a warning log when the Shift JIS output is invalid. |
||
---|---|---|
.github/workflows | ||
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md | ||
rustfmt.toml |
README.md
sjiswrap
UTF-8 to Shift JIS wrapper for old 32-bit Windows compilers.
When the wrapped executable reads a text file, it will be encoded from UTF-8 to Shift JIS on the fly.
Encoded file extensions:
.c
.cc
.cp
.cpp
.cxx
.h
.hh
.hp
.hpp
.hxx
Usage
Download the latest release from here.
$ sjiswrap.exe <exe> [args...]
Building
$ cargo build --target i686-pc-windows-msvc --release
For smaller binaries:
$ cargo +nightly build -Z build-std=std,panic_abort --target i686-pc-windows-msvc --release
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.