From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
Date: Thu, 6 Mar 1997 07:55:25 +0000 (+0000)
Subject: Fix quotewords
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=8f80bccadb089a9fee3b2cbbfe9eb0aa4b7eac40;p=p5sagit%2Fp5-mst-13.2.git

Fix quotewords

Subject: Re: Fix for ::SUPER with UNIVERSAL

In <199703052319.SAA32568@rio.atlantic.net>, Chip Salzenberg writes:
:Cute.  It turns out that FileHandle and IO::Handle were okay, but the
:handling of ::SUPER (which is used by IO::Handle::new) was broken in
:the face of UNIVERSAL.
:
:Here's a patch.
That fixes it.
Here's one back - I think Text::ParseWords->quotewords is more broken than
this, but it's a start.

p5p-msgid: 199703060755.HAA15060@crypt.compulink.co.uk
---

diff --git a/lib/Text/ParseWords.pm b/lib/Text/ParseWords.pm
index f86c8c2..f2e1514 100644
--- a/lib/Text/ParseWords.pm
+++ b/lib/Text/ParseWords.pm
@@ -95,12 +95,12 @@ sub quotewords {
     while (length($_)) {
 	$field = '';
 	for (;;) {
-            $snippet = '';
-	    if (s/^"(([^"\\]|\\[\\"])*)"//) {
+	    $snippet = '';
+	    if (s/^"(([^"\\]|\\.)*)"//) {
 		$snippet = $1;
                 $snippet = "\"$snippet\"" if ($keep);
 	    }
-	    elsif (s/^'(([^'\\]|\\[\\'])*)'//) {
+	    elsif (s/^'(([^'\\]|\\.)*)'//) {
 		$snippet = $1;
                 $snippet = "'$snippet'" if ($keep);
 	    }