blob: fc4a23444cc68b08915c37b75f7de99b60f9c5df [file] [log] [blame]
Bram Moolenaare178ba32020-05-17 14:59:47 +02001#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Unicode::UCD qw( charprop );
7
8STDOUT->autoflush(1);
9
10sub iswide
11{
12 my ( $cp ) = @_;
13
14 my $width = charprop( $cp, "East_Asian_Width" ) or return;
15 return $width eq "Wide" || $width eq "Fullwidth";
16}
17
18my ( $start, $end );
19foreach my $cp ( 0 .. 0x1FFFF ) {
20 iswide($cp) or next;
21
22 if( defined $end and $end == $cp-1 ) {
23 # extend the range
24 $end = $cp;
25 next;
26 }
27
28 # start a new range
29 printf " { %#04x, %#04x },\n", $start, $end if defined $start;
30
31 $start = $end = $cp;
32}
33
34printf " { %#04x, %#04x },\n", $start, $end if defined $start;