-
Notifications
You must be signed in to change notification settings - Fork 215
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
pdfmakerからの子プロセス呼び出しを、ベタ文字列ではなく、なるべく配列で渡す #1091
Conversation
そうですね、これは変更してしまってよいかと思います。 |
あー、でもtexoptionsとかが空白区切りで複数オプション渡すのは大丈夫なんでしたっけ…? |
それ心配になったんだけど、ちゃんと通ってるっぽいんですよね。capture2eで何かをやってるのかなぁと想像。そもそも呼び出し側は*argsで渡してるだけなので、capture2e側で何かをやっていないともともとの単一文字列の時点で何かあったのでは?という気が。 |
と思ったけどやっぱなんか効いてないかな… |
ふむ、やっぱダメですね…。オプションのほうは単純にスペース区切りだけでは済まなそうなので難しい…。なんかライブラリないかなぁ。 |
とりあえず |
Shellwords.split https://docs.ruby-lang.org/ja/latest/class/Shellwords.html#S_SPLIT を使うとよいですか? |
ほう、そのようなものが…。とりあえずYAML由来のオプションはまだ |
shellwordsはだいぶ昔のバージョンでも使えるようなので、shellwords.splitを使うようにしてみました。 |
いろいろ手元の制作で使ってみて問題なさそうでした。 |
顕在化するのはWindowsくらいだとは思うけど、
スペース入りのコマンドパスだったときにエラーになるのをたぶん避けられるよう、texcommandやdvicommandなどを*args型で渡すようにしてみました。
コマンドオプションまわりは複数でも文字列でそのまま渡しちゃっているのですが、Open3.capture2eのほうで良きに計らってくれてるんですね。