Changeset 111695 in spip-zone


Ignore:
Timestamp:
Sep 26, 2018, 7:28:09 PM (7 months ago)
Author:
cedric@…
Message:

Fix https://core.spip.net/issues/4132 : une fonction escape/unescape avec de la croute pour echapper sans risque ni failure et ne pas casser le code JS qu'on compresse

Location:
_core_/plugins/compresseur
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/compresseur/lib/JavascriptPacker/class.JavaScriptPacker.php

    r104354 r111695  
    725725        function _escape($string, $escapeChar) {
    726726                if ($escapeChar) {
    727                         $this->buffer = $escapeChar;
    728727                        return preg_replace_callback(
    729728                                '/\\' . $escapeChar . '(.)' .'/',
     
    738737// https://code.spip.net/@_escapeBis
    739738        function _escapeBis($match) {
    740                 $this->_escaped[] = $match[1];
    741                 return $this->buffer;
     739                $this->_escaped[] = $match[0];
     740                return "@@@@AVECDELACROUTE".(count($this->_escaped)-1)."@@@@";
    742741        }
    743742
     
    746745        function _unescape($string, $escapeChar) {
    747746                if ($escapeChar) {
    748                         $regexp = '/'.'\\'.$escapeChar.'/';
    749                         $this->buffer = array('escapeChar'=> $escapeChar, 'i' => 0);
     747                        $regexp = '/@@@@AVECDELACROUTE(\d+)@@@@/';
    750748                        return preg_replace_callback
    751749                        (
     
    760758        }
    761759// https://code.spip.net/@_unescapeBis
    762         function _unescapeBis() {
    763                 if (isset($this->_escaped[$this->buffer['i']])
    764                         && $this->_escaped[$this->buffer['i']] != '')
    765                 {
    766                          $temp = $this->_escaped[$this->buffer['i']];
    767                 } else {
    768                         $temp = '';
    769                 }
    770                 $this->buffer['i']++;
    771                 return $this->buffer['escapeChar'] . $temp;
     760        function _unescapeBis($r) {
     761                return $this->_escaped[$r[1]];
    772762        }
    773763
  • _core_/plugins/compresseur/paquet.xml

    r111680 r111695  
    22        prefix="compresseur"
    33        categorie="performance"
    4         version="1.13.7"
     4        version="1.13.8"
    55        etat="stable"
    66        compatibilite="[3.3.0-dev;3.3.*]"
Note: See TracChangeset for help on using the changeset viewer.