Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

msys の utf8 対応、および非windows環境で相対パスで起動すると run68.ini が読めない問題の修正 #4

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

yosshin4004
Copy link

run68mac の問題を修正しましたので、プルリクを作成いたしました。
もし差支えなければ取り込んでいただけないでしょうか。
よろしくお願いいたします。

・msys の utf8 対応

これまでの run68mac の実装では、X68K コマンドから出力される文字列は SJIS で、
run68 自身が出力する文字列は UTF8 になっていました。
msys のコンソールはこれを SJIS -> UTF8 変換しようとして、文字化けを起こしていました。

msys 上で utf8 対応を正しく行う方法を調べた結果、コンソール出力はすべて SJIS とし、
mintty に UTF8 変換させるのが現状可能な妥当な方法ということがわかりました。
ipconfig などの windows コマンドが SJIS で出してくるので、msys は(苦肉の策として)
このスタイルを採用しているようです。run68 もこの仕組みに乗ることで文字化け問題を解決できます。

これを踏まえ、以下の2点を修正を適用しました。

1)msys ビルドルールから iconv の処理を除去(CMakeLists.txt の修正のみで可能)
2)run68mac の msys ビルドの、実行ファイル内文字列を SJIS 化(コンパイルオプション指定のみで可能)

・windows 以外の環境で run68 を相対パス起動すると run68.ini が認識できない問題の修正

WSL 上で run68 を相対パス起動すると run68.ini が認識できないという報告がありました。
linux でも同様の問題が再現していました。
mac は未確認ですが linux と同様の問題が発生していると考えられます。

run68 の実装を確認したところ、windows 以外の環境で ini ファイルのパス文字列作成部に問題がありました。

この問題を修正するため、以下の2点を修正を適用しました。
1)argv[0] 由来の文字列を、ディレクトリ名部分とファイル名部分に分離する
2)ini ファイル名にディレクトリ名を結合して ini ファイルのパスとする

具体的な内容はコード差分をご参照下さい。

linux/WSL/msys 上で動作確認が取れています。mac は手元に環境がないため未確認です。

@kg68k kg68k mentioned this pull request Jul 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant