UTF-8 to Shift JIS wrapper for old 32-bit Windows compilers.
Go to file
Luke Street 9120080eb5
Support MWCC 4.1+ series compilers (#1)
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.
2024-10-27 16:18:43 -06:00
.github/workflows Support MWCC 4.1+ series compilers (#1) 2024-10-27 16:18:43 -06:00
src Support MWCC 4.1+ series compilers (#1) 2024-10-27 16:18:43 -06:00
.gitignore Initial commit 2023-09-07 00:27:47 -04:00
Cargo.lock Support MWCC 4.1+ series compilers (#1) 2024-10-27 16:18:43 -06:00
Cargo.toml Support MWCC 4.1+ series compilers (#1) 2024-10-27 16:18:43 -06:00
LICENSE-APACHE Cleanup & add README, LICENSE, CI config 2023-09-07 16:29:18 -04:00
LICENSE-MIT Cleanup & add README, LICENSE, CI config 2023-09-07 16:29:18 -04:00
README.md Cleanup & add README, LICENSE, CI config 2023-09-07 16:29:18 -04:00
rustfmt.toml Initial commit 2023-09-07 00:27:47 -04:00

README.md

sjiswrap Build Status

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

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.