look for fancy dashes byte-wise, rather than literally
Karen Etheridge [Wed, 4 Sep 2013 20:47:26 +0000 (13:47 -0700)]
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.

Makefile.PL
lib/local/lib.pm

index 9632385..3d9252c 100644 (file)
@@ -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
index 2e477e6..0ae0969 100644 (file)
@@ -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