*行頭にスラッシュを一個だけ書いた行が処理されない [#p36d859f]

-ページ: BugTrack
-投稿者: [[ぱんだ]]
-優先順位: 普通
-状態: 完了
-カテゴリー: 本体バグ
-投稿日: 2002-08-04 (日) 11:19:11
-バージョン: 

**メッセージ [#vf3e93bf]
[[雑談]]で出た話なんですが。
[[雑談>official:雑談/2]]で出た話なんですが。
html.phpのconvert_html中で、
 if(!preg_match("/^\/\/(.*)/",$line,$comment_out) && $table != 0)
ここでは、行頭スラッシュ2個のときに$comment_outを設定している(行頭スラッシュ1個の時には$comment_outは空)にもかかわらず、
 // 行頭書式かどうかの判定
 $line_head = substr($line,0,1);
 if($line_head == ' ' || 
 ... snip ...
 $line_head == '/'
ここでは、「行頭にスラッシュが一個あれば」の条件で処理を開始し、
最後に
 else if(strlen($comment_out) != 0)
で実際のコメント処理を行っています。
行頭スラッシュ一個の行は、この流れに乗せると
$comment_outがセットされないのに行頭スラッシュがあるので
if(strlen($comment_out) != 0)を含むどの条件にも引っかからずに捨てられてしまう…ということになってしまいます。

で、改善案ですが。
  		// 行頭書式かどうかの判定
  		$line_head = substr($line,0,1);
  		if($line_head == ' ' || 
  			$line_head == ':' || 
  			$line_head == '>' || 
  			$line_head == '-' || 
  			$line_head == '+' || 
  			$line_head == '|' || 
  			$line_head == '*' || 
  			$line_head == '#' || 
 -			$line_head == '/'
 +			$comment_out != ''
または
 +			strlen($comment_out) != 0
としたらどうでしょうか。
----

//#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.094 sec.

OSDN