summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/bugs/Hyperestraier_search_plug-in_defective.mdwn43
1 files changed, 43 insertions, 0 deletions
diff --git a/doc/bugs/Hyperestraier_search_plug-in_defective.mdwn b/doc/bugs/Hyperestraier_search_plug-in_defective.mdwn
new file mode 100644
index 000000000..3ccdf8e2c
--- /dev/null
+++ b/doc/bugs/Hyperestraier_search_plug-in_defective.mdwn
@@ -0,0 +1,43 @@
+The map() function used in the hyperestraier search plug-in doesn't work as intended as ilustrated by this simple script:
+
+#!/usr/bin/perl -w
+use strict;
+my @foo = (
+ [ qw/foo bar baz/ ],
+ [ qw/fee faa fum/ ],
+ );
+# similar to current ikiwiki code (defective):
+my @bar = map { "/path/to/$_" foreach @{$_} } @foo;
+# this works:
+#my @bar = map { map { "/path/to/$_" } @{$_} } @foo;
+foreach (@bar) {
+ print "$_\n";
+}
+
+Expected output:
+/path/to/foo
+/path/to/bar
+/path/to/baz
+/path/to/fee
+/path/to/faa
+/path/to/fum
+
+Current output:
+Useless use of string in void context at perl-map.pl line 10.
+
+The patch below fixes this issue:
+
+--- IkiWiki/Plugin/search.pm.orig Thu Feb 1 23:52:03 2007
++++ IkiWiki/Plugin/search.pm Thu Feb 1 23:52:41 2007
+@@ -64,8 +64,9 @@
+ debug(gettext("updating hyperestraier search index"));
+ estcmd("gather -cm -bc -cl -sd",
+ map {
+- Encode::encode_utf8($config{destdir}."/".$_)
+- foreach @{$renderedfiles{pagename($_)}};
++ map {
++ Encode::encode_utf8($config{destdir}."/".$_)
++ } @{$renderedfiles{pagename($_)}};
+ } @_
+ );
+ estcfg(); \ No newline at end of file