}
} else {
if($parent eq ""){
- $self->add_inter_wiki($wiki->config('script_name')."/$item?page=","$item");
+ $self->add_inter_wiki($wiki->config('script_name')."/$item?page=","$item","euc");
} else {
- $self->add_inter_wiki($wiki->config('script_name')."/$parent/$item?page=","$parent/$item");
+ $self->add_inter_wiki($wiki->config('script_name')."/$parent/$item?page=","$parent/$item","euc");
}
$prev = $item;
}
my $self = shift;
my $source = shift;
# ÊÌ̾¥ê¥ó¥¯
- if($source =~ /\[([^\[]+?)\|((http|https|ftp|mailto):[\w\.,%~^+\-%\/\?\(\)!\$&=:;\*#\@']*)\]\s*([\w\-]+)/
- || $source =~ /\[([^\[]+?)\|((file:[^\[\]]*))\]\s*([\w\-]+)/
- || $source =~ /\[([^\[]+?)\|((\/|\.\/|\.\.\/)+[\w\.,%~^+\-%\/\?\(\)!\$&=:;\*#\@']*)\]\s*([\w\-]+)/){
+ if ($source =~ /\[([^\[]+?)\|((http|https|ftp|mailto):[\w\.,%~^+\-%\/\?\(\)!\$&=:;\*#\@']*)\]\s*([\w\-]+)/
+ || $source =~ /\[([^\[]+?)\|((file:[^\[\]]*))\]\s*([\w\-]+)/
+ || $source =~ /\[([^\[]+?)\|((\/|\.\/|\.\.\/)+[\w\.,%~^+\-%\/\?\(\)!\$&=:;\*#\@']*)\]\s*([\w\-]+)/) {
my $label = $1;
my $url = $2;
my $enc = $4;
$self->add_inter_wiki($url,$label,$enc);
-
+ }
# ʸ»ú¥³¡¼¥É¤Î»ØÄê¤Ê¤·
- } elsif($source =~ /\[([^\[]+?)\|((http|https|ftp|mailto):[a-zA-Z0-9\.,%~^_+\-%\/\?\(\)!\$&=:;\*#\@']*)\]/
- || $source =~ /\[([^\[]+?)\|(file:[^\[\]]*)\]/
- || $source =~ /\[([^\[]+?)\|((\/|\.\/|\.\.\/)+[a-zA-Z0-9\.,%~^_+\-%\/\?\(\)!\$&=:;\*#\@']*)\]/){
+ elsif ($source =~ /\[([^\[]+?)\|((http|https|ftp|mailto):[a-zA-Z0-9\.,%~^_+\-%\/\?\(\)!\$&=:;\*#\@']*)\]/
+ || $source =~ /\[([^\[]+?)\|(file:[^\[\]]*)\]/
+ || $source =~ /\[([^\[]+?)\|((\/|\.\/|\.\.\/)+[a-zA-Z0-9\.,%~^_+\-%\/\?\(\)!\$&=:;\*#\@']*)\]/) {
my $label = $1;
my $url = $2;
- my $enc = "";
+ my $enc = "euc";
$self->add_inter_wiki($url,$label,$enc);
-
+ }
# Ǥ°Õ¤ÎURL¥ê¥ó¥¯
- } elsif($source =~ /\[([^\[]+?)\|(.+?)\]\s*([\w\-]+)/){
+ elsif ($source =~ /\[([^\[]+?)\|(.+?)\]\s*([\w\-]+)/) {
my $label = $1;
my $url = $2;
my $enc = $3;
$self->add_inter_wiki($url,$label,$enc);
-
+ }
# Ǥ°Õ¤ÎURL¥ê¥ó¥¯(ʸ»ú¥³¡¼¥É¤Î»ØÄê¤Ê¤·)
- } elsif($source =~ /\[([^\[]+?)\|(.+?)\]/){
+ elsif ($source =~ /\[([^\[]+?)\|(.+?)\]/) {
my $label = $1;
my $url = $2;
- my $enc = "";
+ my $enc = "euc";
$self->add_inter_wiki($url,$label,$enc);
}
my $self = shift;
my $str = shift;
- my @keywords = @{$self->{interwiki}};
+ return 0 if (not defined $str);
+
+ # $str ¤ÎÀèƬ¤Ë InterWikiName ¤Ë¤Ê¤ê¤¦¤ë½ñ¼°¤¬¤Ê¤±¤ì¤Ð¡¢µ¶¤òÊÖ¤·¤Æ½ªÎ»
+ return 0 if (not $str =~ /^\[\[/);
- foreach my $keyword (@keywords){
+ my @keywords = @{ $self->{interwiki} };
+
+ # ÄêµÁ¤µ¤ì¤¿Á´¤Æ¤Î InterWikiName ¤Ë¤Ä¤¤¤Æ·«¤êÊÖ¤¹¡£
+ foreach my $keyword (@keywords) {
my $label = $keyword->{quote};
- if($str =~ /\[\[$label:(.+?)\]\]/){
- $self->{g_pre} = $`;
- $self->{g_post} = $';
+ # ÊÌ̾¤Ê¤·¤Î InterWikiName
+ if ($str =~ /^\[\[$label:(.+?)\]\]/) {
+ $self->{g_post} = $';
my $enc = $keyword->{enc};
my $param = $1;
- $self->{g_label} = $keyword->{label}.":".$param;
- if($enc ne ""){
- &Jcode::convert(\$param,$enc);
- }
- $self->{g_url} = $keyword->{url}.Util::url_encode($param);
+ $self->{g_label} = $keyword->{label}.':'.$param;
+ &Jcode::convert(\$param, $enc);
+ $self->{g_url} = $keyword->{url}._url_encode($param);
return 1;
+ }
- } elsif($str =~ /\[\[([^\[]+?)\|$label:(.+?)\]\]/){
- $self->{g_pre} = $`;
- $self->{g_post} = $';
+ # ÊÌ̾¤¢¤ê¤Î InterWikiName
+ elsif ($str =~ /^\[\[([^\[]+?)\|$label:(.+?)\]\]/) {
+ $self->{g_post} = $';
$self->{g_label} = $1;
my $enc = $keyword->{enc};
my $param = $2;
- if($enc ne ""){
- &Jcode::convert(\$param,$enc);
- }
- $self->{g_url} = $keyword->{url}.Util::url_encode($param);
+ &Jcode::convert(\$param, $enc);
+ $self->{g_url} = $keyword->{url}._url_encode($param);
return 1;
}
}
return 0;
}
+sub _url_encode {
+ my $retstr = shift;
+ $retstr =~ s/([^ 0-9A-Za-z])/sprintf("%%%.2X", ord($1))/eg;
+ $retstr =~ tr/ /+/;
+ return $retstr;
+}
+
+
1;