Go to file
Joey Hess 965f7310fe git: Fix handling of utf-8 filenames in recentchanges.
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?
2008-09-25 18:26:42 -04:00
Bundle typo 2008-06-12 14:54:28 -04:00
IkiWiki git: Fix handling of utf-8 filenames in recentchanges. 2008-09-25 18:26:42 -04:00
cpan
debian git: Fix handling of utf-8 filenames in recentchanges. 2008-09-25 18:26:42 -04:00
doc git: Fix handling of utf-8 filenames in recentchanges. 2008-09-25 18:26:42 -04:00
plugins add getsetup hook 2008-08-06 01:04:45 -04:00
po releasing version 2.65 2008-09-24 18:14:09 -04:00
t Add keepextension parameter to htmlize hook. (Willu) 2008-09-23 13:39:21 -04:00
templates multiple rename support is working 2008-09-23 19:21:05 -04:00
underlays replace subdir link with link to the one page from it we want 2008-09-12 16:22:22 -04:00
.gitignore update ignore 2008-07-26 23:04:54 -04:00
.perlcriticrc fix a common case typo 2008-08-12 15:48:44 -04:00
CHANGELOG
IkiWiki.pm Add keepextension parameter to htmlize hook. (Willu) 2008-09-23 13:39:21 -04:00
Makefile.PL listdirectives: Enable use of the directives underlay. 2008-09-11 18:46:32 -04:00
NEWS
README reformat 2008-09-09 20:24:59 -04:00
auto.setup put monotone dir name munging code in auto.setup 2008-08-22 21:19:53 -04:00
docwiki.setup wrappers option is not needed, obsolete 2008-07-27 16:39:25 -04:00
ikiwiki-makerepo put monotone dir name munging code in auto.setup 2008-08-22 21:19:53 -04:00
ikiwiki-mass-rebuild fix two build bugs 2008-06-13 13:05:44 -04:00
ikiwiki-transition add a guard against multiple cgi or rcs wrappers 2008-08-05 21:02:18 -04:00
ikiwiki-update-wikilist add new wiki to wikilist 2008-07-27 16:01:29 -04:00
ikiwiki-w3m.cgi
ikiwiki.in allow setup file to enable verbose mode 2008-09-23 13:24:20 -04:00
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.