From 20ef3e3c5b7cae918e35fc9c0b906848ce01564b Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Sun, 12 May 2013 22:59:28 +0200 Subject: [PATCH] Clarify usage of addcslashes --- src/Composer/Json/JsonManipulator.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Composer/Json/JsonManipulator.php b/src/Composer/Json/JsonManipulator.php index 9dde207ff..331ac680d 100644 --- a/src/Composer/Json/JsonManipulator.php +++ b/src/Composer/Json/JsonManipulator.php @@ -72,6 +72,7 @@ class JsonManipulator if (isset($data[$type][$package])) { // update existing link $packageRegex = str_replace('/', '\\\\?/', preg_quote($package)); + // addcslashes is used to double up backslashes since preg_replace resolves them as back references otherwise, see #1588 $links = preg_replace('{"'.$packageRegex.'"(\s*:\s*)'.self::$JSON_STRING.'}i', addcslashes(JsonFile::encode($package).'${1}"'.$constraint.'"', '\\'), $links); } else { if (preg_match('#^\s*\{\s*\S+.*?(\s*\}\s*)$#', $links, $match)) {