1.1 --- a/ImprovedTableParser.py Sun Feb 19 23:22:47 2012 +0100
1.2 +++ b/ImprovedTableParser.py Mon Feb 20 21:38:00 2012 +0100
1.3 @@ -3,6 +3,7 @@
1.4 MoinMoin - ImprovedTableParser library
1.5
1.6 @copyright: 2012 by Paul Boddie <paul@boddie.org.uk>
1.7 + @copyright: 2008 MoinMoin:FlorianKrupicka (redirectedOutput code)
1.8 @license: GNU GPL (v2 or later), see COPYING.txt for details.
1.9 """
1.10
1.11 @@ -265,9 +266,9 @@
1.12 """
1.13
1.14 try:
1.15 - return wikiutil.searchAndImportPlugin(request.cfg, "formatter", format or "text_plain")
1.16 + return wikiutil.searchAndImportPlugin(request.cfg, "formatter", format or "plain")
1.17 except wikiutil.PluginMissingError:
1.18 - return wikiutil.searchAndImportPlugin(request.cfg, "formatter", "text_plain")
1.19 + return wikiutil.searchAndImportPlugin(request.cfg, "formatter", "plain")
1.20
1.21 def formatText(text, request, fmt):
1.22
1.23 @@ -275,7 +276,28 @@
1.24
1.25 parser_cls = getParserClass(request, request.page.pi["format"])
1.26 parser = parser_cls(text, request, line_anchors=False)
1.27 - return request.redirectedOutput(parser.format, fmt, inhibit_p=True)
1.28 + old_fmt = request.formatter
1.29 + request.formatter = fmt
1.30 + try:
1.31 + return redirectedOutput(request, parser, fmt, inhibit_p=True)
1.32 + finally:
1.33 + request.formatter = old_fmt
1.34 +
1.35 +def redirectedOutput(request, parser, fmt, **kw):
1.36 +
1.37 + "A fixed version of the request method of the same name."
1.38 +
1.39 + buf = StringIO()
1.40 + request.redirect(buf)
1.41 + try:
1.42 + parser.format(fmt, **kw)
1.43 + if hasattr(fmt, "flush"):
1.44 + buf.write(fmt.flush(True))
1.45 + finally:
1.46 + request.redirect()
1.47 + text = buf.getvalue()
1.48 + buf.close()
1.49 + return text
1.50
1.51 # Sorting utilities.
1.52
1.53 @@ -347,8 +369,8 @@
1.54
1.55 "Convert 's' to plain text."
1.56
1.57 - fmt = getFormatterClass(request, "text_plain")(request)
1.58 - fmt.page = request.page
1.59 + fmt = getFormatterClass(request, "plain")(request)
1.60 + fmt.setPage(request.page)
1.61 return formatText(s, request, fmt)
1.62
1.63 converters = {