X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/34fff64e7b56f4f8cd99430f9f927d2a5d1e3619..2b31e0bed7cf4cef13d88af049b18c3731c32528:/IkiWiki/Plugin/table.pm

diff --git a/IkiWiki/Plugin/table.pm b/IkiWiki/Plugin/table.pm
index 2edd1eacd..7fea8ab1c 100644
--- a/IkiWiki/Plugin/table.pm
+++ b/IkiWiki/Plugin/table.pm
@@ -40,6 +40,9 @@ sub preprocess (@) {
 		# scan that file too.
 		return unless exists $params{file};
 
+		# Preprocess in scan-only mode.
+		IkiWiki::preprocess($params{page}, $params{page}, $params{data}, 1);
+
 		IkiWiki::run_hooks(scan => sub {
 			shift->(
 				page => $params{page},
@@ -47,9 +50,6 @@ sub preprocess (@) {
 			);
 		});
 
-		# Preprocess in scan-only mode.
-		IkiWiki::preprocess($params{page}, $params{page}, $params{data}, 1);
-
 		return;
 	}
 
@@ -135,6 +135,7 @@ sub split_csv ($$) {
 	my $csv = Text::CSV->new({ 
 		sep_char	=> $delimiter,
 		binary		=> 1,
+		decode_utf8 => 1,
 		allow_loose_quotes => 1,
 	}) || error("could not create a Text::CSV object");
 	
@@ -143,7 +144,7 @@ sub split_csv ($$) {
 	foreach my $line (@text_lines) {
 		$l++;
 		if ($csv->parse($line)) {
-			push(@data, [ map { decode_utf8 $_ } $csv->fields() ]);
+			push(@data, [ $csv->fields() ]);
 		}
 		else {
 			debug(sprintf(gettext('parse fail at line %d: %s'),