aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2012-01-15 16:39:13 -0400
committerJoey Hess <joey@kitenet.net>2012-01-15 16:39:13 -0400
commit1572c3c376df36ea09e27a1ea437e3a75cdf0f84 (patch)
tree10841cf0f4dadb83f35ed55df0286dac58f65469
parent1d356fdf8b826ac564d8e04d32785367f53e4556 (diff)
downloadikiwiki-1572c3c376df36ea09e27a1ea437e3a75cdf0f84.tar
ikiwiki-1572c3c376df36ea09e27a1ea437e3a75cdf0f84.tar.gz
attachment: Fix utf-8 display bug.
-rw-r--r--IkiWiki/Plugin/attachment.pm2
-rw-r--r--debian/changelog3
-rw-r--r--doc/bugs/UTF-8_in_attachment_filenames.mdwn12
3 files changed, 15 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/attachment.pm b/IkiWiki/Plugin/attachment.pm
index fd4096edf..5a180cd5c 100644
--- a/IkiWiki/Plugin/attachment.pm
+++ b/IkiWiki/Plugin/attachment.pm
@@ -272,6 +272,7 @@ sub attachments_save {
my @attachments;
my $dir=attachment_holding_location($form->field('page'));
foreach my $filename (glob("$dir/*")) {
+ $filename=Encode::decode_utf8($filename);
next unless -f $filename;
my $destdir=$config{srcdir}."/".
linkpage(IkiWiki::possibly_foolish_untaint(
@@ -345,6 +346,7 @@ sub attachment_list ($) {
my $dir=attachment_holding_location($page);
my $heldmsg=gettext("this attachment is not yet saved");
foreach my $file (glob("$dir/*")) {
+ $file=Encode::decode_utf8($file);
next unless -f $file;
my $base=IkiWiki::basename($file);
my $f=$loc.$base;
diff --git a/debian/changelog b/debian/changelog
index 9c4e83c2f..1eab184f5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,8 @@
ikiwiki (3.20120115) unstable; urgency=low
* Make backlink(.) work. Thanks, Giuseppe Bilotta.
- * Workaround discount's eliding of <style> blocks.
+ * mdwn: Workaround discount's eliding of <style> blocks.
+ * attachment: Fix utf-8 display bug.
-- Joey Hess <joeyh@debian.org> Sun, 15 Jan 2012 16:19:25 -0400
diff --git a/doc/bugs/UTF-8_in_attachment_filenames.mdwn b/doc/bugs/UTF-8_in_attachment_filenames.mdwn
index 6e79a4e06..07fff88d2 100644
--- a/doc/bugs/UTF-8_in_attachment_filenames.mdwn
+++ b/doc/bugs/UTF-8_in_attachment_filenames.mdwn
@@ -1,4 +1,9 @@
-I have ikiwiki_3.20111229 installed on Debian Squeeze (Perl 5.10.1, UTF-8 locale). The attachment plugin mangles UTF8-encoded attachment filenames if the name contains multibyte characters, e.g. "lää.png" becomes "lää.png". Apparently glob returns byte strings which are subject to implicit upgrading when concatenated with Perl strings. The following patch fixes the problem for me:
+I have ikiwiki_3.20111229 installed on Debian Squeeze (Perl 5.10.1, UTF-8
+locale). The attachment plugin mangles UTF8-encoded attachment filenames if
+the name contains multibyte characters, e.g. "lää.png" becomes "lää.png".
+Apparently glob returns byte strings which are subject to implicit
+upgrading when concatenated with Perl strings. The following patch fixes
+the problem for me:
----
@@ -13,3 +18,8 @@ I have ikiwiki_3.20111229 installed on Debian Squeeze (Perl 5.10.1, UTF-8 locale
foreach my $file (glob("$dir/*")) {
+ $file = Encode::decode_utf8($file);
next unless -f $file;
+
+> Seems it only mangled display of the just-uploaded attachment's filename,
+> the attachment was otherwise saved to disk with a valid UTF-8 name, and
+> doing other stuff with it also was ok. In any case, I applied your patch,
+> thanks. [[done]] --[[Joey]]