diff options
author | Mark Shoulson <mark@kli.org> | 2016-04-05 21:24:17 -0400 |
---|---|---|
committer | Mark Shoulson <mark@kli.org> | 2017-02-19 19:41:09 -0500 |
commit | 8e32370163610583f66e80f2e0d130bbb531991b (patch) | |
tree | adb46bc2d36a5620fdfb96abd0d875d536c8a032 /gentrans2.pl | |
parent | Add parens.compose. (diff) | |
download | dotXCompose-8e32370163610583f66e80f2e0d130bbb531991b.tar.gz dotXCompose-8e32370163610583f66e80f2e0d130bbb531991b.tar.bz2 dotXCompose-8e32370163610583f66e80f2e0d130bbb531991b.zip |
Add modletters, for modifier letters; not necessarily useful for everyone.
Diffstat (limited to 'gentrans2.pl')
-rwxr-xr-x | gentrans2.pl | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/gentrans2.pl b/gentrans2.pl new file mode 100755 index 0000000..2c83b22 --- /dev/null +++ b/gentrans2.pl @@ -0,0 +1,60 @@ +#!/usr/bin/perl -p +BEGIN { binmode(STDOUT, ":utf8"); + binmode(STDIN, ":utf8"); + +%specials = ('%' => 'percent', + '-' => 'minus', + '_' => 'underscore', + '>' => 'greater', + '<' => 'less', + ',' => 'comma', + '.' => 'period', + '$' => 'dollar', + '!' => 'exclam', + '?' => 'question', + '+' => 'plus', + '/' => 'slash', + '#' => 'numbersign', + '@' => 'at', + '|' => 'bar', + '`' => 'grave', + '~' => 'asciitilde', + '^' => 'asciicircum', + '(' => 'parenleft', + ')' => 'parenright', + '[' => 'bracketleft', + ']' => 'bracketright', + "'" => 'apostrophe', + '\\' => 'backslash', + ':' => 'colon', + ';' => 'semicolon', + '=' => 'equal', + ' ' => '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>/; + s({([][[:alnum:] _+:;%@>=`<,.^\$+#()?!/|'\\~-]+)})(splitup($1))e; + if (length($1) > 7) { + $_=$hold; + s/^<MM>/### <MM>/; + } +} |