Mercurial > repo
diff bin/rot13 @ 11109:0aef5f39601f
<Jafet> ` mv bin/rot13{,_stdin} && echo \'print_args_or_input "$@" | rot13_stdin\' >bin/rot13 && chmod +x bin/rot13
author | HackBot |
---|---|
date | Fri, 21 Jul 2017 12:38:28 +0000 |
parents | 8f3c7e3a6f51 |
children | ea74d235ff72 |
line wrap: on
line diff
--- a/bin/rot13 Fri Jul 21 12:36:10 2017 +0000 +++ b/bin/rot13 Fri Jul 21 12:38:28 2017 +0000 @@ -1,29 +1,1 @@ -#!/usr/bin/env python - -import re, sys, unicodedata as U -def tr(c): - m = re.match(r'(.*\bLATIN\b.*\bLETTER )([A-Z])\b(.*)', U.name(c, '')) - if m: - p, q, r = m.groups() - n = ord(q) - ord('A') - try: - return U.lookup(p + chr(ord('A') + (n + 13) % 26) + r) - except KeyError: - return c - return c - -def tr2(c): - d = tr(c) - if d != c: - return d - else: - cs = [unichr(int(x, 16)) for x in U.decomposition(c).split()] - ds = [tr(x) for x in cs] - if cs != ds: - return u''.join(ds) - else: - return c - -for c in unicode(sys.stdin.read(), 'utf8'): - sys.stdout.write(tr2(c).encode('utf8')) - +print_args_or_input "$@" | rot13_stdin