Seems that the problem is that once the \nnn coming from git is converted to a single character, decode_utf8 decides that this is a standalone character, and not part of a multibyte utf-8 sequence, and so does nothing. I tried playing with the utf-8 flag, but that didn't work. Instead, use decode("utf8"), which doesn't have the same qualms, and successfully decodes the octets into a utf-8 character. Rant: Think for a minute about fact that any and every program that parses git-log, or git-show, etc output to figure out what files were in a commit needs to contain this snippet of code, to convert from git-log's wacky output to a regular character set: if ($file =~ m/^"(.*)"$/) { ($file=$1) =~ s/\\([0-7]{1,3})/chr(oct($1))/eg; } (And it's only that "simple" if you don't care about filenames with embedded \n or \t or other control characters.) Does that strike anyone else as putting the parsing and conversion in the wrong place (ie, in gitweb, ikiwiki, etc, etc)? Doesn't anyone who actually uses git with utf-8 filenames get a bit pissed off at seeing \xxx\xxx instead of the utf-8 in git-commit and other output? |
||
---|---|---|
Bundle | ||
IkiWiki | ||
cpan | ||
debian | ||
doc | ||
plugins | ||
po | ||
t | ||
templates | ||
underlays | ||
.gitignore | ||
.perlcriticrc | ||
CHANGELOG | ||
IkiWiki.pm | ||
Makefile.PL | ||
NEWS | ||
README | ||
auto.setup | ||
docwiki.setup | ||
ikiwiki-makerepo | ||
ikiwiki-mass-rebuild | ||
ikiwiki-transition | ||
ikiwiki-update-wikilist | ||
ikiwiki-w3m.cgi | ||
ikiwiki.in | ||
mdwn2man | ||
pm_filter | ||
wikilist |
README
Use ./Makefile.PL to generate a Makefile, "make" will build the documentation wiki and a man page, and "make install" will install ikiwiki. All other documentation is in the ikiwiki documentation wiki, which is also available online at <http://ikiwiki.info/> A few special variables you can set while using the Makefile: PROFILE=1 turns on profiling for the build of the doc wiki. (Uses Devel::Profile) NOTAINT=0 turns on the taint flag in the ikiwiki program. (Not recommended unless your perl is less buggy than mine -- see http://bugs.debian.org/411786) There are also other variables supported by MakeMaker, including PREFIX, INSTALL_BASE, and DESTDIR. See ExtUtils::MakeMaker(3). In particular, INSTALL_BASE is very useful if you want to install ikiwiki to some other location, as it configures it to see the perl libraries there. See `doc/tips/nearlyfreespeech.mdwn` for an example of using this to install ikiwiki and its dependencies in a home directory.