Generate the rowcol diacrticis for Go as well

This commit is contained in:
Kovid Goyal
2023-03-03 14:39:38 +05:30
parent a7ed47575e
commit 1bf911a81b
3 changed files with 17 additions and 8 deletions

View File

@@ -532,17 +532,22 @@ def gen_wcwidth() -> None:
def gen_rowcolumn_diacritics() -> None:
# codes of all row/column diacritics
codes = []
with open("./rowcolumn-diacritics.txt", "r") as file:
with open("./rowcolumn-diacritics.txt") as file:
for line in file.readlines():
if line.startswith('#'):
continue
code = int(line.split(";")[0], 16)
codes.append(code)
with create_header('kitty/rowcolumn-diacritics.c') as p:
go_file = 'tools/utils/images/rowcolumn_diacritics.go'
with create_header('kitty/rowcolumn-diacritics.c') as p, create_header(go_file, include_data_types=False) as g:
p('#include "unicode-data.h"')
p('int diacritic_to_num(char_type code) {')
p('\tswitch (code) {')
g('package images')
g(f'var NumberToDiacritic = [{len(codes)}]rune''{')
g(', '.join(f'0x{x:x}' for x in codes) + ',')
g('}')
range_start_num = 1
range_start = 0
@@ -568,11 +573,7 @@ def gen_rowcolumn_diacritics() -> None:
p('\t}')
p('\treturn 0;')
p('}')
with open('kittens/icat/rowcolumn_diacritics.py', 'w') as f:
f.write('# generated by gen-wcwidth.py, do not edit\n\n')
strings_utf8 = ', '.join(repr(chr(c).encode('utf-8')) for c in codes)
f.write("rowcolumn_diacritics_utf8 = ({}) # noqa\n".format(strings_utf8))
subprocess.check_call(['gofmt', '-w', '-s', go_file])
parse_ucd()