projects
/
chise
/
perl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
change regular expression in &de_er
[chise/perl.git]
/
Chise_utils
/
Chise_utils.pm
diff --git
a/Chise_utils/Chise_utils.pm
b/Chise_utils/Chise_utils.pm
index
1c2aca0
..
5967978
100644
(file)
--- a/
Chise_utils/Chise_utils.pm
+++ b/
Chise_utils/Chise_utils.pm
@@
-234,12
+234,15
@@
sub get_chars_for{
sub de_er{
my($er)=@_;
my($output_char,$atr,$value);
sub de_er{
my($er)=@_;
my($output_char,$atr,$value);
+ my($prefix,$suffix);
+ $er=~/^(amp|&)?(.+?)(;)?$/
+ and $prefix=$1,$er=$2,$suffix=$3;
+ $prefix or $prefix="",$suffix or $suffix="";
if($er=~/^\d+$/){
if($er=~/^\d+$/){
- # only for debug.
$output_char=pack("U",$er);
}elsif($er=~/^U[\+\-]([a-fA-F\d]+)/){
$output_char=pack("U",hex($1));
$output_char=pack("U",$er);
}elsif($er=~/^U[\+\-]([a-fA-F\d]+)/){
$output_char=pack("U",hex($1));
- }elsif($er=~/(?:I\-)?($er_prefix_re)\-?([0-9a-fA-F]+)/){
+ }elsif($er=~/^(?:I\-)?($er_prefix_re)\-?([0-9a-fA-F]+)$/){
($atr,$value)=($1,$2);
unless($er_alias{$atr}=~/daikanwa|gt/){
$value=hex($value);
($atr,$value)=($1,$2);
unless($er_alias{$atr}=~/daikanwa|gt/){
$value=hex($value);
@@
-247,9
+250,9
@@
sub de_er{
($output_char)=&get_chars_matching($er_alias{$atr},$value);
}
if($output_char){
($output_char)=&get_chars_matching($er_alias{$atr},$value);
}
if($output_char){
- return $output_char;
+ return $output_char;
}else{
}else{
- return $er;
+ return $prefix.$er.$suffix;
}
}
}
}