]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 431201: recode.pl crash when trying to convert 2.16 database to 3.0.3 schema
authormkanat%bugzilla.org <>
Fri, 20 Feb 2009 21:55:10 +0000 (21:55 +0000)
committermkanat%bugzilla.org <>
Fri, 20 Feb 2009 21:55:10 +0000 (21:55 +0000)
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=mkanat

contrib/recode.pl

index 713465be76c3a778dc4c26dd94b146cae561a6e4..f7ba034aca25558debb14e329f879ca1b7789e00 100755 (executable)
@@ -149,16 +149,9 @@ if ($switch{'guess'}) {
         my $root = ROOT_USER;
         print STDERR <<EOT;
 Using --guess requires that Encode::Detect be installed. To install
-Encode::Detect, first download it from:
+Encode::Detect, run the following command:
 
-  http://search.cpan.org/dist/Encode-Detect/
-
-Then, unpack it into its own directory and run the following commands
-in that directory, as $root:
-
-  ./Build.PL
-  ./Build
-  ./Build install
+  $^X install-module.pl Encode::Detect
 
 EOT
         exit;
@@ -248,7 +241,10 @@ foreach my $table ($dbh->bz_table_list_real) {
 
             while (my @result = $sth->fetchrow_array) {
                 my $data = shift @result;
-                my $digest = md5_base64($data);
+                # Wide characters cause md5_base64() to die.
+                my $digest_data = utf8::is_utf8($data) 
+                                  ? Encode::encode_utf8($data) : $data;
+                my $digest = md5_base64($digest_data);
 
                 my @primary_keys = reverse split(',', $pk);
                 # We copy the array so that we can pop things from it without