Make version specification option to work on Windows #948
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Windows上で、-v と -v: オプションが動作するようにしました。
src/libeval.scm
Windowsでは、拡張子を付けないと glob に失敗するため対応した。
そして、sys-exec (execvp) ではなく sys-fork-and-exec (CreateProcess) を使うようにした。
そして、起動したプロセスの終了を待って、終了コードを返すようにした。
src/paths.c
Windows 用の get_install_dir() を、Linux と同様にした。
Linux 用の get_install_dir() を、1箇所修正した。
(dir と dir1 のところ。ないと思いますが、もしこれで逆に不具合が出たら、連絡ください…)
あと、現状、get_install_dir() が4個あって、
3個目のもの (旧Mac用?) は、$PREFIX/lib/gauche-$ABI/$VERSION/$ARCH に非対応だと思う。
(-v: オプションができたので、ビルドできないということはないと思うが…)
<テスト>
とりあえず main.c の maybe_invoke_other_version() の同一バージョンチェックを外し、
gosh -v0.9.13 で、以下の2個のプロセスが起動することを確認しました。
C:\Program Files\Gauche\bin\gosh.exe
C:\Program Files\Gauche\lib\gauche-0.98\0.9.13\x86_64-w64-mingw32\gosh.exe
以下の内容が正しい位置を指していることを確認しました。
mintty上で、以下が動作することを確認しました。