summaryrefslogtreecommitdiff
path: root/serialized
diff options
context:
space:
mode:
Diffstat (limited to 'serialized')
-rw-r--r--serialized/Makefile28
-rw-r--r--serialized/serialize.php95
2 files changed, 24 insertions, 99 deletions
diff --git a/serialized/Makefile b/serialized/Makefile
index 062155b6..c7e75063 100644
--- a/serialized/Makefile
+++ b/serialized/Makefile
@@ -1,7 +1,7 @@
-
-SPECIAL_TARGETS=Utf8Case.ser
+SPECIAL_TARGETS=Utf8Case.ser normalize-ar.ser normalize-ml.ser first-letters-root.ser
ALL_TARGETS=$(SPECIAL_TARGETS)
DIST_TARGETS=$(SPECIAL_TARGETS)
+UNICODE_VERSION=6.0.0
.PHONY: all dist clean
@@ -13,6 +13,26 @@ dist: $(DIST_TARGETS)
clean:
rm -f $(ALL_TARGETS)
-Utf8Case.ser : ../includes/normal/Utf8Case.php
- php serialize.php -o $@ $<
+Utf8Case.ser: UnicodeData.txt
+ php ../maintenance/language/generateUtf8Case.php
+
+normalize-ar.ser: UnicodeData.txt
+ php ../maintenance/language/generateNormalizerDataAr.php
+
+normalize-ml.ser:
+ php ../maintenance/language/generateNormalizerDataMl.php
+
+first-letters-root.ser: allkeys.txt ucd.all.grouped.xml
+ php ../maintenance/language/generateCollationData.php
+
+UnicodeData.txt:
+ wget http://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/UnicodeData.txt
+
+allkeys.txt:
+ wget http://www.unicode.org/Public/UCA/$(UNICODE_VERSION)/allkeys.txt
+
+ucd.all.grouped.xml: ucd.all.grouped.zip
+ unzip ucd.all.grouped.zip ucd.all.grouped.xml
+ucd.all.grouped.zip:
+ wget http://www.unicode.org/Public/$(UNICODE_VERSION)/ucdxml/ucd.all.grouped.zip
diff --git a/serialized/serialize.php b/serialized/serialize.php
deleted file mode 100644
index 766c1a51..00000000
--- a/serialized/serialize.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-/**
- * Serialize variables found in input file and store the result in the
- * specified file.
- *
- * 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
- */
-
-if ( !defined( 'MEDIAWIKI' ) ) {
- $wgNoDBParam = true;
- $optionsWithArgs = array( 'o' );
- require_once __DIR__ .'/../maintenance/commandLine.inc';
-
- $stderr = fopen( 'php://stderr', 'w' );
- if ( !isset( $args[0] ) ) {
- fwrite( $stderr, "No input file specified\n" );
- exit( 1 );
- }
- if ( wfIsWindows() ) {
- $files = array();
- foreach ( $args as $arg ) {
- $files = array_merge( $files, glob( $arg ) );
- }
- if ( !$files ) {
- fwrite( $stderr, "No files found\n" );
- }
- } else {
- $files = $args;
- }
-
- if ( isset( $options['o'] ) ) {
- $out = fopen( $options['o'], 'wb' );
- if ( !$out ) {
- fwrite( $stderr, "Unable to open file \"{$options['o']}\" for output\n" );
- exit( 1 );
- }
- } else {
- $out = fopen( 'php://stdout', 'wb' );
- }
-
- $vars = array();
- foreach ( $files as $inputFile ) {
- $vars = array_merge( $vars, getVars( $inputFile ) );
- }
- fwrite( $out, serialize( $vars ) );
- fclose( $out );
- exit( 0 );
-}
-
-//----------------------------------------------------------------------------
-
-function getVars( $_gv_filename ) {
- require $_gv_filename;
- $vars = get_defined_vars();
- unset( $vars['_gv_filename'] );
-
- # Clean up line endings
- if ( wfIsWindows() ) {
- $vars = unixLineEndings( $vars );
- }
- return $vars;
-}
-
-function unixLineEndings( $var ) {
- static $recursionLevel = 0;
- if ( $recursionLevel > 50 ) {
- global $stderr;
- fwrite( $stderr, "Error: Recursion limit exceeded. Possible circular reference in array variable.\n" );
- exit( 2 );
- }
-
- if ( is_array( $var ) ) {
- ++$recursionLevel;
- $var = array_map( 'unixLineEndings', $var );
- --$recursionLevel;
- } elseif ( is_string( $var ) ) {
- $var = str_replace( "\r\n", "\n", $var );
- }
- return $var;
-}