summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2009-02-20 22:54:16 +0100
committermkanat%bugzilla.org <>2009-02-20 22:54:16 +0100
commit90ae4269f6b8b528e45fe8aee3fa6f5d0b1f102b (patch)
tree0c8d561a623ad995bb69eca45e8d8288bc72572e /contrib
parent4192ccfd0318d1772df6ff58ad06966ddd0c5449 (diff)
downloadbugzilla-90ae4269f6b8b528e45fe8aee3fa6f5d0b1f102b.tar.gz
bugzilla-90ae4269f6b8b528e45fe8aee3fa6f5d0b1f102b.tar.xz
Bug 431201: recode.pl crash when trying to convert 2.16 database to 3.0.3 schema
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=mkanat
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/recode.pl16
1 files changed, 6 insertions, 10 deletions
diff --git a/contrib/recode.pl b/contrib/recode.pl
index 713465be7..f7ba034ac 100755
--- a/contrib/recode.pl
+++ b/contrib/recode.pl
@@ -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