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

pdfmakerからの子プロセス呼び出しを、ベタ文字列ではなく、なるべく配列で渡す #1091

Merged
merged 4 commits into from
Aug 8, 2018

Conversation

kmuto
Copy link
Owner

@kmuto kmuto commented Jul 29, 2018

顕在化するのはWindowsくらいだとは思うけど、

スペース入りのコマンドパスだったときにエラーになるのをたぶん避けられるよう、texcommandやdvicommandなどを*args型で渡すようにしてみました。

コマンドオプションまわりは複数でも文字列でそのまま渡しちゃっているのですが、Open3.capture2eのほうで良きに計らってくれてるんですね。

@takahashim
Copy link
Collaborator

そうですね、これは変更してしまってよいかと思います。

@takahashim
Copy link
Collaborator

あー、でもtexoptionsとかが空白区切りで複数オプション渡すのは大丈夫なんでしたっけ…?

@kmuto
Copy link
Owner Author

kmuto commented Jul 29, 2018

それ心配になったんだけど、ちゃんと通ってるっぽいんですよね。capture2eで何かをやってるのかなぁと想像。そもそも呼び出し側は*argsで渡してるだけなので、capture2e側で何かをやっていないともともとの単一文字列の時点で何かあったのでは?という気が。

@kmuto
Copy link
Owner Author

kmuto commented Jul 29, 2018

と思ったけどやっぱなんか効いてないかな…

@kmuto
Copy link
Owner Author

kmuto commented Jul 29, 2018

ふむ、やっぱダメですね…。オプションのほうは単純にスペース区切りだけでは済まなそうなので難しい…。なんかライブラリないかなぁ。

@kmuto
Copy link
Owner Author

kmuto commented Jul 29, 2018

とりあえず/s+/で区切ってみましたが… uplatex, lualatex, dvipdfmxの範囲でオプションにスペースを使うことはなさそう。mendex系でスペース区切りのパスが入っちゃうとダメですが、この解析は難しい…。

@takahashim
Copy link
Collaborator

Shellwords.split https://docs.ruby-lang.org/ja/latest/class/Shellwords.html#S_SPLIT を使うとよいですか?

@kmuto
Copy link
Owner Author

kmuto commented Jul 29, 2018

ほう、そのようなものが…。とりあえずYAML由来のオプションはまだ\s+分割のままですが、mendexのスタイルおよび辞書ファイルについてはパスに空白があっても耐えられるようにしてみました。

@kmuto
Copy link
Owner Author

kmuto commented Jul 30, 2018

shellwordsはだいぶ昔のバージョンでも使えるようなので、shellwords.splitを使うようにしてみました。
また、パラメータがnilだったときの耐性を少し持たせました。

@kmuto
Copy link
Owner Author

kmuto commented Aug 8, 2018

いろいろ手元の制作で使ってみて問題なさそうでした。
マージします。

@kmuto kmuto merged commit d00b9cb into master Aug 8, 2018
@kmuto kmuto deleted the system-with-array branch August 8, 2018 07:19
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.

2 participants