From 640f866829801b875b902787ba461ca3719e44e0 Mon Sep 17 00:00:00 2001 From: Pragmatic Software Date: Thu, 23 Mar 2023 18:20:22 -0700 Subject: [PATCH] applets/unicode.pl: limit `U+XXXX..U+XXXX` range to 100 characters --- applets/unicode.pl | 21 ++++++++++++++++++--- lib/PBot/VERSION.pm | 2 +- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/applets/unicode.pl b/applets/unicode.pl index 73d154cd..1d5ae0ae 100755 --- a/applets/unicode.pl +++ b/applets/unicode.pl @@ -11,7 +11,7 @@ use strict; use Encode; if (not @ARGV) { - print "Usage: unicode | | -s \n"; + print "Usage: unicode | | -s \n"; exit; } @@ -25,14 +25,29 @@ if ($args =~ s/^-s\s+//) { $search = 1; } +if ($args =~ /^(u\+[^.]+)\s*\.\.\s*(.*)$/i) { + my ($from, $to) = ($1, $2); + + $from =~ s/u\+//i; + $to =~ s/u\+//i; + + $from = hex $from; + $to = hex $to; + + if ($to > 0 && $to - $from > 100) { + print "Range limited to 100 characters.\n"; + exit; + } +} + my $result; if ($args =~ /^u\+/i) { - $result = `unicode --color=off \Q$args\E`; + $result = `unicode --max=100 --color=off \Q$args\E`; } elsif ($search) { $result = `unicode -r --max=100 --color=off \Q$args\E --format 'U+{ordc:04X} {pchar} {name};\n'`; } else { - $result = `unicode -s --color=off \Q$args\E --format 'U+{ordc:04X} ({utf8}) {pchar} {name} Category: {category} ({category_desc}) {opt_unicode_block}{opt_unicode_block_desc}{mirrored_desc}{opt_combining}{combining_desc}{opt_decomp}{decomp_desc};\n'`; + $result = `unicode -s --max=100 --color=off \Q$args\E --format 'U+{ordc:04X} ({utf8}) {pchar} {name} Category: {category} ({category_desc}) {opt_unicode_block}{opt_unicode_block_desc}{mirrored_desc}{opt_combining}{combining_desc}{opt_decomp}{decomp_desc};\n'`; } print "$result\n"; diff --git a/lib/PBot/VERSION.pm b/lib/PBot/VERSION.pm index ebb33e2b..f3ccd20d 100644 --- a/lib/PBot/VERSION.pm +++ b/lib/PBot/VERSION.pm @@ -25,7 +25,7 @@ use PBot::Imports; # These are set by the /misc/update_version script use constant { BUILD_NAME => "PBot", - BUILD_REVISION => 4639, + BUILD_REVISION => 4640, BUILD_DATE => "2023-03-23", };