From: Karen Etheridge Date: Wed, 4 Sep 2013 20:47:26 +0000 (-0700) Subject: look for fancy dashes byte-wise, rather than literally X-Git-Tag: 1.008012~11 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2Flocal-lib.git;a=commitdiff_plain;h=5eff9c2438093d9f72e3359178acc747882d890a look for fancy dashes byte-wise, rather than literally If someone (e.g. me!) slaps in a 'use utf8;' into the old version of the document, then the check would always fail. This way we will catch the character even if 'use utf8' is added later. --- diff --git a/Makefile.PL b/Makefile.PL index 9632385..3d9252c 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -45,7 +45,8 @@ BEGIN { # dashes, it's better to die loudly telling the user exactly what happened # so they don't make the same mistake again rather than being the only # program in the universe that works with them. - if(grep { /−/ } @ARGV) { + # the fancy dash is U+2212 or \xE2\x88\x92 + if(grep { /\xE2\x88\x92/ } @ARGV or grep { /−/ } @ARGV) { die <<'DEATH'; WHOA THERE! It looks like you've got some fancy dashes in your commandline! These are *not* the traditional -- dashes that software recognizes. You diff --git a/lib/local/lib.pm b/lib/local/lib.pm index 2e477e6..0ae0969 100644 --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -29,7 +29,8 @@ sub import { my %arg_store; for my $arg (@args) { # check for lethal dash first to stop processing before causing problems - if ($arg =~ /−/) { + # the fancy dash is U+2212 or \xE2\x88\x92 + if ($arg =~ /\xE2\x88\x92/ or $arg =~ /−/) { die <<'DEATH'; WHOA THERE! It looks like you've got some fancy dashes in your commandline! These are *not* the traditional -- dashes that software recognizes. You