- if ($input =~ m{ \A u ([0-9a-f]+) (?:-([0-9a-f]+))? \z }ix) {
- my $start = hex($1) << ($2 ? 4 : 8);
- my $end = $2 ? (hex($2) << 4) + $row{cols} - 1 : $start + 255;
- $row{table} = join '', map { chr } $start .. $end;
+ if ($input eq '') {
+ $row{offset} = delete $row{startpoint};
+ $row{set} = 'Unicode characters';
+ my $block = $row{offset} >> 8;
+ $row{endpoint} ||= ($block + 1 << 8) - 1;
+ $block == ($row{endpoint} >> 8) or undef $block;
+
+ $row{table} = join '', map { chr } $row{offset} .. $row{endpoint};