#┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃■(SS)C−BOARDライブラリ(とほほ改ver1.0) #┠────────────────────────────────────── #┃分類し切れなかった関数が含まれています。 #┃ #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ package ETC; #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ オプションリンク #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub option_link { my $r_str = shift; my $no = shift; return(&search_link(&number_link(&tree_link($r_str, $no),$no))); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ オプションリンク解除 #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub option_unlink { my $r_str = shift; return(&search_unlink(&number_unlink(&tree_unlink($r_str)))); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ 記事番号リンク #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub number_link { my $r_str = shift; my $no = shift; my $base = qq|[\x23$1]<\/a>| : qq|[\x23$1]|/egmo;#とほほ修正(記事タイトルリンクアンカーにリンク) return($r_str); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ 記事番号リンク解除 #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub number_unlink { my $r_str = shift; my $base = qq|\Q\[\x23\1\]<\/a>/[\x23$1]/gmo; return($r_str); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ 記事番号ツリーリンク #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub tree_link { my $r_str = shift; my $no = shift; my $base = qq|[\x23T$1]<\/a>| : qq|[\x23T$1]|/egmo; return($r_str); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ 記事番号ツリーリンク解除 #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub tree_unlink { my $r_str = shift; my $base = qq|\Q\[\x23T\1\]<\/a>/[\x23T$1]/gmo; return($r_str); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ 検索リンク #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub search_link { my $r_str = shift; require './lib/cgi.pl'; my $base = qq|[\x23?$1]<\/a>|/egmox; return($r_str); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ 検索リンク解除 #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub search_unlink { my $r_str = shift; require './lib/cgi.pl'; my $base = qq|\Q\[\x23\?([^\]]+)\]<\/a>) /(${&CGI::url_decode(\($word = $2))} eq $3) ? "[\x23?$3]": $1/egmox; return($r_str); } #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ 完全一致/後方一致/前方一致/部分一致 #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub name_matching { my $name = shift; my $master = shift; my $mode = shift; $name =~ s/(?: | )+//g; $master =~ s/(?: | )+//g; my $ret_val = 0; if ($mode == 0) { # 完全一致 if ($name eq $master) { $ret_val = 1; } } elsif ($mode == 1) { # 部分一致 if (index($name, $master) >= 0) { $ret_val = 1; } } elsif ($mode == 2) { # 前方一致 if (index($name, $master) == 0) { $ret_val = 1; } } elsif ($mode == 3) { # 後方一致 if (rindex($name, $master) == (length($name)-length($master))) { $ret_val = 1; } } else { # エラー } return($ret_val); } 1; # $Id: etc.pl,v 1.1.1.3 2002/04/04 08:15:00 N.Hirai Exp $;