aboutsummaryrefslogtreecommitdiff
path: root/emojitrans2.pl
blob: 3b98ad20c36f99ff9275d042ee0baa456c667a7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/perl -p 
BEGIN { binmode(STDOUT":utf8");
binmode(STDIN":utf8");
 
%specials = ('%' => 'percent',
     '-' => 'minus',
     '>' => 'greater',
     '<' => 'less',
     ',' => 'comma',
     '.' => 'period',
     '$' => 'dollar',
     '!' => 'exclam',
     '?' => 'question',
     '+' => 'plus',
     '/' => 'slash',
     '#' => 'numbersign',
     '@' => 'at',
     '|' => 'bar',
     '~' => 'asciitilde',
     '^' => 'asciicircum',
     '(' => 'parenleft',
     ')' => 'parenright',
     '[' => 'bracketleft',
     ']' => 'bracketright',
     "'" => 'apostrophe',
     '\\' => 'backslash',
     ':' => 'colon',
     ';' => 'semicolon',
     ' ' => 'space',
);
 
sub splitup {
    my $arg=shift;
    local $_;
    my @out;
    my $rv;
    return "\{$arg\}" if length($arg) > 7;
    @out=split //$arg;
    $rv="";
    for (@out) {
$_ = $specials{$_// $_;
$rv .= " <$_>";
    }
    return $rv;
}
 
}
 
unless (/^#/) {
    my $hold=$_;
    s/<MM>/<Multi_key> <Multi_key>/;
    s({([][[:alnum:] _+:;%@><,.^\$+#()?!/|'\\~-]+)})(splitup($1))e;
    if (length($1) > 7) {
$_=$hold;
s/^<MM>/### <MM>/;
    }
}