File Coverage

blib/lib/Encode/Arabic/ArabTeX/ZDMG/RE.pm
Criterion Covered Total %
statement 17 46 36.9
branch 0 4 0.0
condition n/a
subroutine 6 8 75.0
pod 2 2 100.0
total 25 60 41.6


line stmt bran cond sub pod time code
1             # ################################################################### Otakar Smrz, 2003/01/23
2             #
3             # Encoding of Arabic: ArabTeX Notation by Klaus Lagally #####################################
4              
5             # $Id: RE.pm 143 2006-11-15 01:16:57Z smrz $
6              
7             package Encode::Arabic::ArabTeX::ZDMG::RE;
8              
9 2     2   28795 use 5.008;
  2         8  
  2         84  
10              
11 2     2   11 use strict;
  2         4  
  2         65  
12 2     2   15 use warnings;
  2         3  
  2         236  
13              
14             our $VERSION = do { q $Revision: 143 $ =~ /(\d+)/; sprintf "%4.2f", $1 / 100 };
15              
16              
17             sub import { # perform import as if Encode were used one level before this module
18 2     2   22 require Encode;
19 2         55 Encode->export_to_level(1, @_);
20             }
21              
22              
23 2     2   926 use Encode::Encoding;
  2         18549  
  2         59  
24 2     2   21 use base 'Encode::Encoding';
  2         2  
  2         1284  
25              
26             __PACKAGE__->Define('ZDMG-RE', 'ArabTeX-ZDMG-RE');
27              
28              
29             our (%encode_used, %decode_used, @shams, @qamar);
30              
31              
32             sub encode ($$;$$) {
33 0     0 1   my (undef, $text, $check, $mode) = @_;
34              
35 0 0         $_[1] = '' if $check; # this is what in-place edit needs
36              
37 0           require Encode;
38              
39 0           Encode::_utf8_off($text);
40              
41 0           return $text;
42             }
43              
44              
45             sub decode ($$;$) {
46 0     0 1   my (undef, $text, $check) = @_;
47              
48 0 0         $_[1] = '' if $check; # this is what in-place edit needs
49              
50 0           for ($text) {
51              
52 0           s/NY/n/g;
53 0           s/UA/u\x{0304}/g;
54 0           s/WA/w/g;
55 0           s/_a/a\x{0304}/g;
56              
57 0           s/N/n/g;
58 0           s/Y/a\x{0304}/g;
59 0           s/T/t/g;
60              
61             #s/y/j/g;
62              
63 0           s/\\cap\s+([\._\^]?)([a-zAIU])/$1\*$2/g;
64 0           s/\\cap\s+(['`])([a-zAIUEO])/\*$1\*$2/g;
65              
66 0           s/\.(\*?[hsdtz])/$1\x{0323}/g;
67 0           s/\.(\*?g)/$1\x{0307}/g;
68              
69 0           s/_(\*?[td])/$1\x{0331}/g;
70 0           s/_(\*?)h/$1\x{032E}/g;
71              
72             #s/_(\*?)h/$1ch/g;
73              
74 0           s/\^(\*?[gs])/$1\x{030C}/g;
75              
76             #s/\^(\*?s)/\\v{$1}/g;
77             #s/\^(\*?)g/$1d\\v{z}/g;
78              
79 0           s/(?
80 0           s/(?
81 0           s/\*([AIUEO])/$1\x{0304}/g;
82              
83 0           s/\*?'/\x{02BE}/g;
84 0           s/\*?`/\x{02BF}/g;
85              
86 0           s/\*([a-z])/\u$1/g;
87             }
88              
89 0           return $text;
90             }
91              
92              
93             1;
94              
95             __END__