-my @request = grep { defined } map {
- $_ ? (resolve_alias($_) or print("Encoding $_ unknown") && ()) : ();
+my @request = map {
+ if (my $input = $_) {
+ my %row = (offset => 0);
+ my $endpoint = 255;
+ if ($input =~ s/^--//) {
+ $row{offset} = $endpoint > 160 ? 160 : 48;
+ }
+ elsif ($input =~ s/^-//) {
+ $row{offset} = $endpoint > 128 ? 128 : 32;
+ }
+ if ($input =~ s/-$//) {
+ $endpoint = $row{offset} ? $row{offset} < 160 ? 159 : 191 : 127;
+ }
+ if ($row{set} = resolve_alias($input)) {
+ if ($row{set} eq 'Internal') {
+ $row{table} = ' 'x512;
+ $row{set} = 'Unicode BMP';
+ }
+ elsif ($row{set} eq 'utf-8-strict') {
+ $row{table} = undef;
+ $row{set} = 'UTF-8';
+ }
+ else {
+ $row{table} = decode($row{set}, pack 'C*', $row{offset} .. $endpoint);
+ }
+ }
+ else {
+ print "<p>Encoding $input unknown</p>\n";
+ }
+ \%row;
+ }
+ else {
+ ();
+ }