]> git.joonet.de Git - adminer.git/commitdiff
Revert "Unuse binary characters"
authorJakub Vrana <jakub@vrana.cz>
Thu, 27 Sep 2012 04:45:04 +0000 (21:45 -0700)
committerJakub Vrana <jakub@vrana.cz>
Thu, 27 Sep 2012 04:45:04 +0000 (21:45 -0700)
This reverts commit f3c59bb3a55761056b3ba65853f18fcccdddc101.

adminer/include/functions.inc.php
compile.php

index b164f8a195e8e1f734977f2e3fde1c9871683956..b047726e6c0e578f8680b9bbdacc33cb3447081f 100644 (file)
@@ -978,13 +978,3 @@ function lzw_decompress($binary) {
        }
        return $return;
 }
-
-// used in compiled version
-function latin_binary($s) {
-       return preg_replace_callback('~ (.)~', 'latin_binary_callback', $s);
-}
-
-// used in compiled version
-function latin_binary_callback($match) {
-       return chr(ord($match[1]) - 48); // 48 = ord('0')
-}
index 24f9872d4be7acda85609169df266766d5ec4e99..e8da3b76a6a3b0276d40dbeccedbf9dc7375132c 100755 (executable)
@@ -8,12 +8,12 @@ function add_apo_slashes($s) {
        return addcslashes($s, "\\'");
 }
 
-function binary_latin($s) {
-       return preg_replace_callback('~[\0- ]~', 'binary_latin_callback', $s);
-}
-
-function binary_latin_callback($match) {
-       return ' ' . chr(ord($match[0]) + ord('0'));
+function add_quo_slashes($s) {
+       $return = $s;
+       $return = addcslashes($return, "\n\r\$\"\\");
+       $return = preg_replace('~\0(?![0-7])~', '\\\\0', $return);
+       $return = addcslashes($return, "\0");
+       return $return;
 }
 
 function remove_lang($match) {
@@ -114,8 +114,8 @@ function put_file_lang($match) {
                                $translation_ids[$lang_ids[$key]] = implode("\t", (array) $val);
                        }
                }
-               $return .= "
-               case '$lang': \$compressed = '" . add_apo_slashes(binary_latin(lzw_compress(implode("\n", $translation_ids)))) . "'; break;";
+               $return .= '
+               case "' . $lang . '": $compressed = "' . add_quo_slashes(lzw_compress(implode("\n", $translation_ids))) . '"; break;';
        }
        $translations_version = crc32($return);
        return '$translations = &$_SESSION["translations"];
@@ -127,7 +127,7 @@ if (!$translations) {
        switch ($LANG) {' . $return . '
        }
        $translations = array();
-       foreach (explode("\n", lzw_decompress(latin_binary($compressed))) as $val) {
+       foreach (explode("\n", lzw_decompress($compressed)) as $val) {
                $translations[] = (strpos($val, "\t") ? explode("\t", $val) : $val);
        }
 }
@@ -272,7 +272,7 @@ function compile_file($match) {
        if ($match[2]) {
                $file = call_user_func($match[2], $file);
        }
-       return "latin_binary('" . add_apo_slashes(binary_latin($file)) . "')";
+       return '"' . add_quo_slashes($file) . '"';
 }
 
 $project = "adminer";