websetup: Fix utf-8 problems.
authorJoey Hess <joey@gnu.kitenet.net>
Sat, 9 Jan 2010 21:20:09 +0000 (16:20 -0500)
committerJoey Hess <joey@gnu.kitenet.net>
Sat, 9 Jan 2010 21:20:09 +0000 (16:20 -0500)
IkiWiki/Plugin/websetup.pm
debian/changelog
doc/bugs/utf-8_bug_in_websetup.pm.mdwn

index 9edd22d2625ddf474fc419d84b6bc544ba6c3270..75aa3681c2e68744f850b39f806cbbd329d55d97 100644 (file)
@@ -139,7 +139,11 @@ sub showfields ($$$@) {
                my $value=$config{$key};
 
                if ($info{safe} && (ref $value eq 'ARRAY' || ref $info{example} eq 'ARRAY')) {
-                       $value=[(ref $value eq 'ARRAY' ? @{$value} : ""), "", ""]; # blank items for expansion
+                       $value=[(ref $value eq 'ARRAY' ? map { Encode::encode_utf8($_) }  @{$value} : ""),
+                               "", ""]; # blank items for expansion
+               }
+               else {
+                       $value=Encode::encode_utf8($value);
                }
 
                if ($info{type} eq "string") {
@@ -290,7 +294,6 @@ sub showform ($$) {
                shift->(form => $form, cgi => $cgi, session => $session,
                        buttons => $buttons);
        });
-       IkiWiki::decode_form_utf8($form);
 
        my %fields=showfields($form, undef, undef, IkiWiki::getsetup());
        
@@ -308,6 +311,8 @@ sub showform ($$) {
                        $fields{$_}=$shown{$_} foreach keys %shown;
                }
        }
+
+       IkiWiki::decode_form_utf8($form);
        
        if ($form->submitted eq "Cancel") {
                IkiWiki::redirect($cgi, $config{url});
index 4f7c1a60ccfe59cac215bef7e7f312410908cad2..5d5cdd564ca69593170c27da8ce8b97e90fe422f 100644 (file)
@@ -6,6 +6,7 @@ ikiwiki (3.20100104) UNRELEASED; urgency=low
     are disabled.
   * comments: Fix permalinks for comments using new conflict-free filenames.
   * img: Support alignment of images with captions. (Giuseppe Bilotta)
+  * websetup: Fix utf-8 problems.
 
  -- Joey Hess <joeyh@debian.org>  Mon, 04 Jan 2010 12:53:24 -0500
 
index c3a5262cd76dd95e095366a785182eab26bec46a..debedb01c4773354e2ab652906ffdc6b592040cd 100644 (file)
@@ -4,6 +4,8 @@ I type chinese characters into the fields. After press "save setup" button the c
 
 I submit a patch that solve the problem for me.  --Lingo
 
+> Fully fixing it is slightly more complex, but now [[done]] --[[Joey]] 
+
 ----
 
     --- websetup.pm    2009-12-02 05:07:46.000000000 +0800