hb-unicode-encode revision ed459bfb63c58b59fc0dbe25021c396e8ef8683c
1ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod#!/usr/bin/python 2ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod 3ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbodimport sys 4ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbodimport re 5ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod 6ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahboddef encode (s): 7ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod s = re.sub (r"[<+>\\uU]", " ", s) 8ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod s = re.sub (r"0[xX]", " ", s) 9ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod return u''.join (unichr (int (x, 16)) for x in re.split ('[, \n]', s) if len (x)) 10ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod 11ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbodif __name__ == '__main__': 12ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod 13ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod if len (sys.argv) == 1 or ('--stdin' in sys.argv and len (sys.argv) != 2): 14ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod print "Usage:\n %s UNICODE_CODEPOINTS...\nor:\n %s --stdin" % (sys.argv[0], sys.argv[0]) 15ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod sys.exit (1) 16ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod 17ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod if '--stdin' in sys.argv: 18ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod sys.argv.remove ('--stdin') 19ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod for line in sys.stdin.readlines (): 20ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod print encode (line) 21ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod else: 22ed459bfb63c58b59fc0dbe25021c396e8ef8683cBehdad Esfahbod print encode (','.join (sys.argv[1:])) 23