| #!/bin/sh | 
 | #See http://www.unicode.org/reports/tr44/ | 
 | # | 
 | #Me Enclosing_Mark  an enclosing combining mark | 
 | #Mn Nonspacing_Mark a nonspacing combining mark (zero advance width) | 
 | #Cf Format          a format control character | 
 | # | 
 | UNICODEWIDTH_H=../unicode_width.h | 
 | if ! test -d unicode; then | 
 | 	mkdir unicode | 
 | fi && | 
 | ( cd unicode && | 
 | 	if ! test -f UnicodeData.txt; then | 
 | 		wget http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt | 
 | 	fi && | 
 | 	if ! test -f EastAsianWidth.txt; then | 
 | 		wget http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt | 
 | 	fi && | 
 | 	if ! test -d uniset; then | 
 | 		git clone https://github.com/depp/uniset.git | 
 | 	fi && | 
 | 	( | 
 | 		cd uniset && | 
 | 		if ! test -x uniset; then | 
 | 			autoreconf -i && | 
 | 			./configure --enable-warnings=-Werror CFLAGS='-O0 -ggdb' | 
 | 		fi && | 
 | 		make | 
 | 	) && | 
 | 	UNICODE_DIR=. && export UNICODE_DIR && | 
 | 	cat >$UNICODEWIDTH_H <<-EOF | 
 | 	static const struct interval zero_width[] = { | 
 | 		$(uniset/uniset --32 cat:Me,Mn,Cf + U+1160..U+11FF - U+00AD | | 
 | 		  grep -v plane) | 
 | 	}; | 
 | 	static const struct interval double_width[] = { | 
 | 		$(uniset/uniset --32 eaw:F,W) | 
 | 	}; | 
 | 	EOF | 
 | ) |