KENT-WEB サポートコーナー 過去ログ [ 0098 ]


記事No: 464
投稿日: 2007/05/05(Sat) 23:29:03
タイトルWebForumの強制改行の仕様
ID情報: toshiki
投稿者: としき
URLhttp://www.hinocatv.ne.jp/~toshiki/bbs.html

ども、こんにちは。
こちらのサポートフォーラムに書き込むのは数年ぶりのことだと
思います。サイトのトップページに

> ・ご意見・ご感想・リクエスト等のメールは歓迎いたします。

とあったので KENT さんに直メールしたところ、この手の話は
こちらに書き込んでほしいという事でしたので書かせていただ
きます。


標記についてなんですが、v4.5 のころは、&decode の中身は
こんなルーチンになっていました。

(1)強制改行が指定されている場合は、fold.pl で強制改行実施
 →改行実施後は各行末に <br> タグをつける
(2)次に、投稿メッセージ本文の改行符号を、全て<br>タグに変換

しかし、v4.52 では、以下のようなルーチンになっています。

(1)投稿メッセージ本文の改行符号を、全て <br> タグに変換
(2)次いで、fold.pl で強制改行実施
 →改行実施後は各行末に <br> タグをつける

この結果、不具合が混入したようです。
それは、<br> タグの途中で強制改行が行われてしまう可能性が
出てきてしまったことで、これは v4.8 で修正が行われました。
結果、次のようなルーチンになっています。

(1)投稿メッセージ内の改行符号を全て \t に変換
(2)次いで、fold.pl で強制改行実施
 →改行実施後は各行末に \t をつける
(3)メッセージ本文内の \t を <br> タグに変換

これは現在の v5.02 にも引き継がれております。


さて、v4.8 での改修の結果、メッセージ本文内に \t を含める
ことができなくなったという副作用がありますが、そもそもこの
コードはあまり含まれる事がないので大した問題ではないと思い
ます。表計算ソフトからブラウザに複数セルを貼りつけると、
このコードが含まれてしまうことがあるようなので、そういう
使い方をする人だと問題かもしれませんが。
あと、v4.5 までのルーチンとそれ以降のルーチンで、もう一つ、
非常に大きく異なる部分があります。WebForum に同梱されている
バージョンの fold.pl では、指定した長さに満たない文字数で
改行符号が出てくると、そこまでを改行済として返してくれるの
ですが、\t は改行符号とはみなさず、長い1行として強制改行
が行われてしまうのです。

例えば10桁で強制改行すると指定した場合で、1行目が5桁、
2行目が15桁の書き込みがあったとします。つまり、書き込み
を行う側のブラウザでは、以下のような形で投稿ボタンを押すと
します。

+-----------------------
|12345
|123456789012345
|
|
+-----------------------

wforum.cgi が受け取るデータは、以下のような感じになるはず
です。

12345\n123456789012345\n

v4.5 では、内部で以下のようになります。

(1)後
12345\n1234567890<br>12345\n

(2)後
12345<br>1234567890<br>12345<br>

ところが、v4.8 以降では、内部で以下のようになります。

(1)後
12345\t123456789012345\t

(2)後
12345\t1234\t5678901234\t5\t

(3)後
12345<br>1234<br>5678901234<br>5<br>



さて、KENT さんにお願いしたいのは、この強制改行のロジックを
v4.5 までのものに戻してはいただけないか、ということです。
もしかしたら fold.pl のバージョンに依存する問題なのかもしれ
ないのですが、それであれば fold.pl の対応するバージョンの
配布をお願いしたい、ということでもあります。
以上、なにとぞご検討方よろしくお願いいたします。


[検索ページ]