From 7f5bc4e96e7e6c9ffbcf5ef402b7ac5f113517c1 Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Wed, 8 Apr 2015 13:45:05 +0100
Subject: [PATCH] Issue #2397225 by Chi, ufku: Drupal.formatPlural  does not
 work

---
 core/misc/drupal.js | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/core/misc/drupal.js b/core/misc/drupal.js
index 70ac77dd94e3..b1b4125d4b3d 100644
--- a/core/misc/drupal.js
+++ b/core/misc/drupal.js
@@ -214,26 +214,29 @@ if (window.jQuery) {
    * @ingroup sanitization
    */
   Drupal.formatString = function (str, args) {
+    // Keep args intact.
+    var processedArgs = {};
     // Transform arguments before inserting them.
     for (var key in args) {
       if (args.hasOwnProperty(key)) {
         switch (key.charAt(0)) {
           // Escaped only.
           case '@':
-            args[key] = Drupal.checkPlain(args[key]);
+            processedArgs[key] = Drupal.checkPlain(args[key]);
             break;
           // Pass-through.
           case '!':
+            processedArgs[key] = args[key];
             break;
           // Escaped and placeholder.
           default:
-            args[key] = Drupal.theme('placeholder', args[key]);
+            processedArgs[key] = Drupal.theme('placeholder', args[key]);
             break;
         }
       }
     }
 
-    return Drupal.stringReplace(str, args, null);
+    return Drupal.stringReplace(str, processedArgs, null);
   };
 
   /**
-- 
GitLab