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