namazu-ml(avocado)


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

Re: invalid dbname on the CGI mode



清水@住友林業です。

Mon, 28 Sep 1998 23:45:16 +0900 に、
Satoru Takabayashi <ccsatoru@xxxxxxxxxxxxxxxxxx> さんは書きました ;

> まさか本当にうまくいくとは思っていませんでした ;-)。

瓢箪から駒、でしょうか?

 
> ということは OS/2 の場合は上の処理を行えばいいわけですね。副作用は
> ないですか?  今度は英数字のファイル名がおかしくなるとか…。

NetNews や RFC や社内 Web のディレクトリをブン回して数百ファイルを
mknmz に掛けてみましたが、ファイル名は大丈夫です。

ただ、最近気が付いたのですが、FRAMESET の起点となる文書を、オプション
 -u を付けて mknmz に掛けるとワーニングが出ますね。で、<NOFRAMES> が
ないからかと思って修正してみたのですが、それでも同じでした。これは、
<BODY> 〜 </BODY> がないから、でしょうか

# 社内では Netscape3.01 / 4.05 以外は使わせない、ということにして
# いるもので、つい、<NOFRAMES> がない文書が蔓延する (^^;

また、SSI だけの文書(HTML ヘッダからボディまで、SSI で呼び出された
スクリプト側で作成してしまうもの)でも、同じメッセージが出ます。

やはり、 <BODY> 〜 </BODY> がないからでしょうか。


-- 該当する文書の引用 ここから --

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<HTML>
<HEAD>
<TITLE>情報システム部</TITLE>
<LINK REV="made" HREF="mailto:kshimz@xxxxxxxxx">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-2022-jp">
<META HTTP-EQUIV="reply-to" CONTENT="kshimz@xxxxxxxxx">
<META NAME="Author" CONTENT="Kazuyoshi SHIMIZU">
</HEAD>

<FRAMESET COLS="30%,*">
  <FRAME NAME="LIST"   SRC="/infosys/list.html">
  <FRAME NAME="DETAIL" SRC="/infosys/layout.html">
  
</FRAMESET>

</HTML>

-- 引用 ここまで --

以上の文書を

 %mknmz -uk w:\infosys 

とすると、以下のワーニングが出ます。

 4 /W%7C/infosys/index.html
 Use of uninitialized value at H:\BIN/mknmz.cmd line 981.
 Use of uninitialized value at H:\BIN/mknmz.cmd line 981.


で、mknmz.cmd とは、mknmz.pl の頭に OS/2 用の呼び出しコマンドを付加
したもので、981行目は、uuencode の読み飛ばしルーチンの中にあるのです
が、エディタで行番号を見ると空行なので、その前後の文にある、

 $uuin 

あたりを指して「Use of uninitialized value」と言っているような感じが
します。

-- mknmz.cmd line 967 - 989 --

        $uuin = 1, next if $line =~ /^begin [0-7]{3,4} \S+$/;
        if ($line =~ /^end$/){
            $uuin = 0,next if $uuin;
        }else{
            # ここで、ord の値は 32-95 の範囲に
            $uuord = 32 if ($uuord = ord($line)) == 96;

            # uunumb = 38 の行が loop の外に出ていると、
            # 一般の行で 63 文字の行があったら誤動作してしまう
            $uunumb = (length($line)==63)? 37: 38;

            if ((32 <= $uuord && $uuord < 96) &&
                length($line) <= 63 &&
                (4 * int($uuord / 3) == length($line) + $uunumb)){
ここ →
                if ($uuin == 1 || $uuin == $uuord){
                    next if $line =~ /^[\x20-\x60]+$/;
                } else {
		    # beginから始まっていないものは厳しくしよう [05/22/1998]
                    $uuin = $uuord, next if $line =~ /^M[\x21-\x60]+$/;
                }
            }
        }

--

以上、よろしくお願いします。

end
--
  住友林業株式会社  情報システム部   清水 和佳
 
  TEL: +81-3-5322-6672  FAX: +81-3-5322-6658  Niftyserve: XLW01034
  e-mail: <kshimz@xxxxxxxxx>