From: Ori Livneh Date: Sat, 27 Jun 2015 19:54:40 +0000 (-0700) Subject: Create a subdirectory for compatibility stubs X-Git-Tag: 1.31.0-rc.0~10933 X-Git-Url: https://git.cyclocoop.org/%7B%7B%20url_for%28?a=commitdiff_plain;h=8338476b8e0c57132a5b150f42ed47da95f370b9;p=lhc%2Fweb%2Fwiklou.git Create a subdirectory for compatibility stubs Instead of littering includes/ with stub back-compat aliases, house such classes in includes/compat/. Change-Id: I4c1b83e35c8d6c18777a4a3e17d81023915cfb7f --- diff --git a/autoload.php b/autoload.php index 917b022ea5..dcd8727264 100644 --- a/autoload.php +++ b/autoload.php @@ -202,9 +202,9 @@ $wgAutoloadLocalClasses = array( 'CategoryPage' => __DIR__ . '/includes/page/CategoryPage.php', 'CategoryPager' => __DIR__ . '/includes/specials/SpecialCategories.php', 'CategoryViewer' => __DIR__ . '/includes/CategoryViewer.php', - 'CdbException' => __DIR__ . '/includes/CdbCompat.php', - 'CdbReader' => __DIR__ . '/includes/CdbCompat.php', - 'CdbWriter' => __DIR__ . '/includes/CdbCompat.php', + 'CdbException' => __DIR__ . '/includes/compat/CdbCompat.php', + 'CdbReader' => __DIR__ . '/includes/compat/CdbCompat.php', + 'CdbWriter' => __DIR__ . '/includes/compat/CdbCompat.php', 'CgzCopyTransaction' => __DIR__ . '/maintenance/storage/recompressTracked.php', 'ChangePassword' => __DIR__ . '/maintenance/changePassword.php', 'ChangeTags' => __DIR__ . '/includes/changetags/ChangeTags.php', @@ -1307,7 +1307,7 @@ $wgAutoloadLocalClasses = array( 'UserloginTemplate' => __DIR__ . '/includes/templates/Userlogin.php', 'UserrightsPage' => __DIR__ . '/includes/specials/SpecialUserrights.php', 'UsersPager' => __DIR__ . '/includes/specials/SpecialListusers.php', - 'UtfNormal' => __DIR__ . '/includes/libs/normal/UtfNormal.php', + 'UtfNormal' => __DIR__ . '/includes/compat/normal/UtfNormal.php', 'UzConverter' => __DIR__ . '/languages/classes/LanguageUz.php', 'VFormHTMLForm' => __DIR__ . '/includes/htmlform/VFormHTMLForm.php', 'ValidateRegistrationFile' => __DIR__ . '/maintenance/validateRegistrationFile.php', diff --git a/includes/CdbCompat.php b/includes/CdbCompat.php deleted file mode 100644 index 0074cc96b0..0000000000 --- a/includes/CdbCompat.php +++ /dev/null @@ -1,45 +0,0 @@ -scopedProfileIn( $fname . '-defaults2' ); diff --git a/includes/compat/CdbCompat.php b/includes/compat/CdbCompat.php new file mode 100644 index 0000000000..0074cc96b0 --- /dev/null +++ b/includes/compat/CdbCompat.php @@ -0,0 +1,45 @@ + + * https://www.mediawiki.org/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * http://www.gnu.org/copyleft/gpl.html + * + * @file + * @ingroup UtfNormal + */ + +/** + * @defgroup UtfNormal UtfNormal + */ + +use UtfNormal\Validator; + +/** + * Unicode normalization routines for working with UTF-8 strings. + * Currently assumes that input strings are valid UTF-8! + * + * Not as fast as I'd like, but should be usable for most purposes. + * UtfNormal::toNFC() will bail early if given ASCII text or text + * it can quickly determine is already normalized. + * + * All functions can be called static. + * + * See description of forms at http://www.unicode.org/reports/tr15/ + * + * @deprecated since 1.25, use UtfNormal\Validator directly + * @ingroup UtfNormal + */ +class UtfNormal { + /** + * The ultimate convenience function! Clean up invalid UTF-8 sequences, + * and convert to normal form C, canonical composition. + * + * Fast return for pure ASCII strings; some lesser optimizations for + * strings containing only known-good characters. Not as fast as toNFC(). + * + * @param string $string a UTF-8 string + * @return string a clean, shiny, normalized UTF-8 string + */ + static function cleanUp( $string ) { + return Validator::cleanUp( $string ); + } + + /** + * Convert a UTF-8 string to normal form C, canonical composition. + * Fast return for pure ASCII strings; some lesser optimizations for + * strings containing only known-good characters. + * + * @param string $string a valid UTF-8 string. Input is not validated. + * @return string a UTF-8 string in normal form C + */ + static function toNFC( $string ) { + return Validator::toNFC( $string ); + } + + /** + * Convert a UTF-8 string to normal form D, canonical decomposition. + * Fast return for pure ASCII strings. + * + * @param string $string a valid UTF-8 string. Input is not validated. + * @return string a UTF-8 string in normal form D + */ + static function toNFD( $string ) { + return Validator::toNFD( $string ); + } + + /** + * Convert a UTF-8 string to normal form KC, compatibility composition. + * This may cause irreversible information loss, use judiciously. + * Fast return for pure ASCII strings. + * + * @param string $string a valid UTF-8 string. Input is not validated. + * @return string a UTF-8 string in normal form KC + */ + static function toNFKC( $string ) { + return Validator::toNFKC( $string ); + } + + /** + * Convert a UTF-8 string to normal form KD, compatibility decomposition. + * This may cause irreversible information loss, use judiciously. + * Fast return for pure ASCII strings. + * + * @param string $string a valid UTF-8 string. Input is not validated. + * @return string a UTF-8 string in normal form KD + */ + static function toNFKD( $string ) { + return Validator::toNFKD( $string ); + } + + /** + * Returns true if the string is _definitely_ in NFC. + * Returns false if not or uncertain. + * @param string $string a valid UTF-8 string. Input is not validated. + * @return bool + */ + static function quickIsNFC( $string ) { + return Validator::quickIsNFC( $string ); + } + + /** + * Returns true if the string is _definitely_ in NFC. + * Returns false if not or uncertain. + * @param string $string a UTF-8 string, altered on output to be valid UTF-8 safe for XML. + * @return bool + */ + static function quickIsNFCVerify( &$string ) { + return Validator::quickIsNFCVerify( $string ); + } +} diff --git a/includes/compat/normal/UtfNormalDefines.php b/includes/compat/normal/UtfNormalDefines.php new file mode 100644 index 0000000000..b8e44c7776 --- /dev/null +++ b/includes/compat/normal/UtfNormalDefines.php @@ -0,0 +1,186 @@ + + * https://www.mediawiki.org/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * http://www.gnu.org/copyleft/gpl.html + * + * @file + * @ingroup UtfNormal + */ + + +use UtfNormal\Utils; + +/** + * Return UTF-8 sequence for a given Unicode code point. + * + * @param $codepoint Integer: + * @return String + * @throws InvalidArgumentException if fed out of range data. + * @public + * @deprecated since 1.25, use UtfNormal\Utils directly + */ +function codepointToUtf8( $codepoint ) { + return Utils::codepointToUtf8( $codepoint ); +} + +/** + * Take a series of space-separated hexadecimal numbers representing + * Unicode code points and return a UTF-8 string composed of those + * characters. Used by UTF-8 data generation and testing routines. + * + * @param $sequence String + * @return String + * @throws InvalidArgumentException if fed out of range data. + * @private + * @deprecated since 1.25, use UtfNormal\Utils directly + */ +function hexSequenceToUtf8( $sequence ) { + return Utils::hexSequenceToUtf8( $sequence ); +} + +/** + * Take a UTF-8 string and return a space-separated series of hex + * numbers representing Unicode code points. For debugging. + * + * @fixme this is private but extensions + maint scripts are using it + * @param string $str UTF-8 string. + * @return string + * @private + */ +function utf8ToHexSequence( $str ) { + $buf = ''; + foreach ( preg_split( '//u', $str, -1, PREG_SPLIT_NO_EMPTY ) as $cp ) { + $buf .= sprintf( '%04x ', UtfNormal\Utils::utf8ToCodepoint( $cp ) ); + } + + return rtrim( $buf ); +} + +/** + * Determine the Unicode codepoint of a single-character UTF-8 sequence. + * Does not check for invalid input data. + * + * @param $char String + * @return Integer + * @public + * @deprecated since 1.25, use UtfNormal\Utils directly + */ +function utf8ToCodepoint( $char ) { + return Utils::utf8ToCodepoint( $char ); +} + +/** + * Escape a string for inclusion in a PHP single-quoted string literal. + * + * @param string $string string to be escaped. + * @return String: escaped string. + * @public + * @deprecated since 1.25, use UtfNormal\Utils directly + */ +function escapeSingleString( $string ) { + return Utils::escapeSingleString( $string ); +} diff --git a/includes/libs/normal/.gitignore b/includes/libs/normal/.gitignore deleted file mode 100644 index 5af0afa7fa..0000000000 --- a/includes/libs/normal/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/CompositionExclusions.txt -/DerivedNormalizationProps.txt -/NormalizationCorrections.txt -/NormalizationTest.txt -/UnicodeData.txt -/testdata diff --git a/includes/libs/normal/UtfNormal.php b/includes/libs/normal/UtfNormal.php deleted file mode 100644 index c9c05a0759..0000000000 --- a/includes/libs/normal/UtfNormal.php +++ /dev/null @@ -1,129 +0,0 @@ - - * https://www.mediawiki.org/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * http://www.gnu.org/copyleft/gpl.html - * - * @file - * @ingroup UtfNormal - */ - -/** - * @defgroup UtfNormal UtfNormal - */ - -use UtfNormal\Validator; - -/** - * Unicode normalization routines for working with UTF-8 strings. - * Currently assumes that input strings are valid UTF-8! - * - * Not as fast as I'd like, but should be usable for most purposes. - * UtfNormal::toNFC() will bail early if given ASCII text or text - * it can quickly determine is already normalized. - * - * All functions can be called static. - * - * See description of forms at http://www.unicode.org/reports/tr15/ - * - * @deprecated since 1.25, use UtfNormal\Validator directly - * @ingroup UtfNormal - */ -class UtfNormal { - /** - * The ultimate convenience function! Clean up invalid UTF-8 sequences, - * and convert to normal form C, canonical composition. - * - * Fast return for pure ASCII strings; some lesser optimizations for - * strings containing only known-good characters. Not as fast as toNFC(). - * - * @param string $string a UTF-8 string - * @return string a clean, shiny, normalized UTF-8 string - */ - static function cleanUp( $string ) { - return Validator::cleanUp( $string ); - } - - /** - * Convert a UTF-8 string to normal form C, canonical composition. - * Fast return for pure ASCII strings; some lesser optimizations for - * strings containing only known-good characters. - * - * @param string $string a valid UTF-8 string. Input is not validated. - * @return string a UTF-8 string in normal form C - */ - static function toNFC( $string ) { - return Validator::toNFC( $string ); - } - - /** - * Convert a UTF-8 string to normal form D, canonical decomposition. - * Fast return for pure ASCII strings. - * - * @param string $string a valid UTF-8 string. Input is not validated. - * @return string a UTF-8 string in normal form D - */ - static function toNFD( $string ) { - return Validator::toNFD( $string ); - } - - /** - * Convert a UTF-8 string to normal form KC, compatibility composition. - * This may cause irreversible information loss, use judiciously. - * Fast return for pure ASCII strings. - * - * @param string $string a valid UTF-8 string. Input is not validated. - * @return string a UTF-8 string in normal form KC - */ - static function toNFKC( $string ) { - return Validator::toNFKC( $string ); - } - - /** - * Convert a UTF-8 string to normal form KD, compatibility decomposition. - * This may cause irreversible information loss, use judiciously. - * Fast return for pure ASCII strings. - * - * @param string $string a valid UTF-8 string. Input is not validated. - * @return string a UTF-8 string in normal form KD - */ - static function toNFKD( $string ) { - return Validator::toNFKD( $string ); - } - - /** - * Returns true if the string is _definitely_ in NFC. - * Returns false if not or uncertain. - * @param string $string a valid UTF-8 string. Input is not validated. - * @return bool - */ - static function quickIsNFC( $string ) { - return Validator::quickIsNFC( $string ); - } - - /** - * Returns true if the string is _definitely_ in NFC. - * Returns false if not or uncertain. - * @param string $string a UTF-8 string, altered on output to be valid UTF-8 safe for XML. - * @return bool - */ - static function quickIsNFCVerify( &$string ) { - return Validator::quickIsNFCVerify( $string ); - } -} diff --git a/includes/libs/normal/UtfNormalDefines.php b/includes/libs/normal/UtfNormalDefines.php deleted file mode 100644 index b8e44c7776..0000000000 --- a/includes/libs/normal/UtfNormalDefines.php +++ /dev/null @@ -1,186 +0,0 @@ - - * https://www.mediawiki.org/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * http://www.gnu.org/copyleft/gpl.html - * - * @file - * @ingroup UtfNormal - */ - - -use UtfNormal\Utils; - -/** - * Return UTF-8 sequence for a given Unicode code point. - * - * @param $codepoint Integer: - * @return String - * @throws InvalidArgumentException if fed out of range data. - * @public - * @deprecated since 1.25, use UtfNormal\Utils directly - */ -function codepointToUtf8( $codepoint ) { - return Utils::codepointToUtf8( $codepoint ); -} - -/** - * Take a series of space-separated hexadecimal numbers representing - * Unicode code points and return a UTF-8 string composed of those - * characters. Used by UTF-8 data generation and testing routines. - * - * @param $sequence String - * @return String - * @throws InvalidArgumentException if fed out of range data. - * @private - * @deprecated since 1.25, use UtfNormal\Utils directly - */ -function hexSequenceToUtf8( $sequence ) { - return Utils::hexSequenceToUtf8( $sequence ); -} - -/** - * Take a UTF-8 string and return a space-separated series of hex - * numbers representing Unicode code points. For debugging. - * - * @fixme this is private but extensions + maint scripts are using it - * @param string $str UTF-8 string. - * @return string - * @private - */ -function utf8ToHexSequence( $str ) { - $buf = ''; - foreach ( preg_split( '//u', $str, -1, PREG_SPLIT_NO_EMPTY ) as $cp ) { - $buf .= sprintf( '%04x ', UtfNormal\Utils::utf8ToCodepoint( $cp ) ); - } - - return rtrim( $buf ); -} - -/** - * Determine the Unicode codepoint of a single-character UTF-8 sequence. - * Does not check for invalid input data. - * - * @param $char String - * @return Integer - * @public - * @deprecated since 1.25, use UtfNormal\Utils directly - */ -function utf8ToCodepoint( $char ) { - return Utils::utf8ToCodepoint( $char ); -} - -/** - * Escape a string for inclusion in a PHP single-quoted string literal. - * - * @param string $string string to be escaped. - * @return String: escaped string. - * @public - * @deprecated since 1.25, use UtfNormal\Utils directly - */ -function escapeSingleString( $string ) { - return Utils::escapeSingleString( $string ); -} diff --git a/maintenance/language/generateNormalizerDataAr.php b/maintenance/language/generateNormalizerDataAr.php index ac50d291e6..d029bf70b4 100644 --- a/maintenance/language/generateNormalizerDataAr.php +++ b/maintenance/language/generateNormalizerDataAr.php @@ -25,7 +25,7 @@ require_once __DIR__ . '/../Maintenance.php'; /** * Generates the normalizer data file for Arabic. - * For NFC see includes/libs/normal. + * For NFC see includes/compat/normal. * * @ingroup MaintenanceLanguage */ diff --git a/maintenance/language/generateNormalizerDataMl.php b/maintenance/language/generateNormalizerDataMl.php index 8580187d34..770a98c52d 100644 --- a/maintenance/language/generateNormalizerDataMl.php +++ b/maintenance/language/generateNormalizerDataMl.php @@ -25,7 +25,7 @@ require_once __DIR__ . '/../Maintenance.php'; /** * Generates the normalizer data file for Malayalam. - * For NFC see includes/libs/normal. + * For NFC see includes/compat/normal. * * @ingroup MaintenanceLanguage */