diff -ur v44/ezmd.py v45/ezmd.py --- v44/ezmd.py 2020-01-24 12:06:55.000000000 +0900 +++ v45/ezmd.py 2020-02-15 11:15:17.000000000 +0900 @@ -693,12 +693,28 @@ macro_dic_update(buf) return + def make_name(s, dv_name): + lst = s.strip().split('\n') + if not lst: + return dv_name + s = lst[0] + if not all( map( lambda c: ord(c) < 128, s ) ): + return dv_name + s = s.replace(' ', '_') + names = list( map( lambda hd_name: hd_name[2], hd_names ) ) + i = 2 + while s in names: + s += '_{}'.format(i) + i += 1 + return s + if mode in heads: buf = lst_strip(buf) buf = cut_empty(buf) s = ''.join(buf) (h_i, n) = ( int(mode[1:]), len(hd_names) ) name = 'c_{}_{}'.format(h_i, n) + name = make_name( s, name ) outbuf.append( tag_new( mode, {}, tag_new('a', {'name': name}, s) ) ) hd_names.append( (h_i, n, name, s) )