Go to file
Joey Hess d3b4c2dbd1 avoid potential infinite loop in smiley expansion
- In 3.05, ikiwiki began expanding templates in scan mode,
  for annoying, expensive, but ultimatly necessary reasons
  of correctness.
- Smiley processing has a bug: It inserts a span for the smiley,
  and then continues searching forward in the content for more,
  starting at $end_of_smiley+1. Which means it searches for smilies
  in the span too! And if it somehow finds one, we get an infinite loop
  here.
- This bug can, probably, only be tickled if a htmllink to
  show the smiley fails, because the smiley file doesn't exist,
  or because ikiwiki doesn't know about it. In that case,
  a link will be inserted to _create_ the missing page,
  and that link will include the smiley inside the <a></a>.
- When a template is expanded in scan mode, and it contains
  an inline, the sanitize hook is run during scan mode,
  which never happened before. That causes the smiley processor
  to run, before ikiwiki is, necessarily, aware that all
  the smiley files exist (depending on scan order). So
  it inserts creation links for them, and triggers the bug.

I've put in the simple fix of jumping forward past the inserted
span, and it does fix the problem. I will need to look in a bit
more detail into why an inline nested inside a template is
fully expanded during the scan pass -- that really shouldn't
be necessary, and it makes things much slower than they need
to be.
2009-03-08 18:49:34 -04:00
Bundle update deps and bundles 2009-02-12 13:15:23 -05:00
IkiWiki avoid potential infinite loop in smiley expansion 2009-03-08 18:49:34 -04:00
cpan
debian avoid potential infinite loop in smiley expansion 2009-03-08 18:49:34 -04:00
doc fix doc, prefix directives have been default for a while 2009-03-08 17:07:12 -04:00
plugins function injection overhaul 2008-10-21 17:57:19 -04:00
po Updated French translation (Jean-Luc Coulon). Closes: #518510 2009-03-06 13:36:44 -05:00
t Add noextension parameter to htmlize hooks to support, eg, Makefile. 2009-02-19 18:38:45 -05:00
templates make wmd comment support comment editing (I think) 2009-03-07 18:54:26 -05:00
underlays remove top-level directive page from basewiki 2008-12-24 16:29:31 -05:00
.gitignore
.perlcriticrc fix a common case typo 2008-08-12 15:48:44 -04:00
CHANGELOG
IkiWiki.pm Add noextension parameter to htmlize hooks to support, eg, Makefile. 2009-02-19 18:38:45 -05:00
Makefile.PL debhelper v7; rules file minimisation. 2009-02-15 20:12:16 -05:00
NEWS
README reformat 2008-09-09 20:24:59 -04:00
auto-blog.setup add blogspam to auto-blog 2009-01-16 22:42:30 -05:00
auto.setup remove hardlink settings from auto.setup files 2009-01-12 20:04:01 -05:00
docwiki.setup table: Find links in external files in scan pass. 2009-01-06 15:36:32 -05:00
gitremotes markdown fixes 2008-12-11 13:31:25 -05:00
ikiwiki-makerepo ikiwiki-makerepo: Fix injecting of empty mercurial and bzr repositories. Closes: #510518 2009-01-02 14:15:47 -05:00
ikiwiki-mass-rebuild
ikiwiki-transition fix moveprefs transition 2008-12-31 14:54:22 -05:00
ikiwiki-update-wikilist
ikiwiki-w3m.cgi
ikiwiki.in Fix unusual --setup --post-commit command line option combo. 2009-02-09 14:58:10 -05:00
mdwn2man
pm_filter typo 2009-02-04 13:45:54 -05:00
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.