Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DocCat PDF support and filter/pdf.pl



さとうふみやすです。

At Thu, 15 Mar 2001 18:40:42 JST,
NOKUBI Takatsugu wrote:
> >> filter/msword.pl の filter_doccat() をパクったのですが、
> >> $cfile のファイルを一時ファイル ($tmpfile2) にコピーしているのは
> >> 何故なんでしょうか? > 作者

>   filter_doccat 回りは多分広瀬さんだと思うのですが、何故なんでしょうね...

    system("$wordconvpath -o e $tmpfile2 > $tmpfile");

するときに、

    system("$wordconvpath -o e $cfile > $tmpfile");

だと $cfile にシェルの特殊文字が入っていると具合が悪いから
なのかなと想像しましたが違いますかね。この場合の system() は
/bin/sh (Windows は?) を起動して -c で起動すると記憶しているので、
シェルを介さない方法 (copy()) で安全な名前のファイルにコピーして
いるのかと?!

どうせ、

    {
        my $fh = util::efopen("< $tmpfile");
        $$cont = util::readfile($fh);
    }

としているんで、コピーせずに

    my $fh = new IO::File("$wordconvpath -o e $cfile|");
    $$cont = util::readfile($fh);

でいいのかも…あっ…これでもシェルが起動されるのかな?
うーん。あとで調べます。シェルが介されるようだったら、
シェルを介さずにコマンドの起動してその出力を取り込めるような
関数を作りますが、いかがでしょうか。シェルが絡むと嫌なことが多々
あるので、そんな関数は以前から作ろうと思ってましたし。

-- 
SATOH Fumiyasu - <fumiya@xxxxxxxxxxxxxx>, <fumiya@xxxxxxxxxxx>
THRUST Co., Ltd. @ Fujisawa, Kanagawa, Japan - http://www.net-thrust.com/
Samba-JP, aka `Samba Users Group Japan'      - http://www.samba.gr.jp/
Apache-JP(?), aka `Japan Apache Users Group' - http://www.apache.or.jp/