From 5aaa61d842746a8a8a244859258f21836c6ac2a8 Mon Sep 17 00:00:00 2001 From: joey Date: Fri, 23 Feb 2007 12:37:00 +0000 Subject: web commit by HenrikBrixAndersen: Document issue and propose patch for inclusion --- .../Hyperestraier_search_plug-in_defective.mdwn | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 doc/bugs/Hyperestraier_search_plug-in_defective.mdwn (limited to 'doc/bugs/Hyperestraier_search_plug-in_defective.mdwn') 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 -- cgit v1.2.3