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