Modify ↓
Opened 17 years ago
Closed 17 years ago
#6260 closed defect (fixed)
National characters in InterTrac links
Reported by: | Owned by: | Christian Boos | |
---|---|---|---|
Priority: | normal | Milestone: | 0.11 |
Component: | wiki system | Version: | devel |
Severity: | minor | Keywords: | intertrac |
Cc: | Branch: | ||
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
If InterTrac link contains national characters preview page do not rendering. Error report:
Oops… Trac detected an internal error: KeyError: u'\u041e' If you think this should work you can reproduce the problem, you should consider reporting this to the Trac team. Before you do that, though, please first try searching for similar issues, as it is quite likely that this problem has been reported before. For questions about installation and configuration of Trac, please try the mailing list instead of filing a ticket. Otherwise, please ==== How to Reproduce ==== While doing a POST operation on `/wiki/WikiStart`, Trac issued an internal error. ''(please provide additional details here)'' Request parameters: {{{ {'__FORM_TOKEN': u'40c5276a84f28a0e23fd5b7c', 'action': u'edit', 'comment': u'', 'editrows': u'20', 'page': u'WikiStart', 'preview': u'Preview Page', 'scroll_bar_pos': u'0', 'text': u'= \u041c\u0438\u0440\u043d\u044b\u0439 - \u043e\u0441\u0435\u043d\u044c 2007 =\r\n\u0441\u043c. [mo:wiki:WikiStart \u041c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f]\r\n\r\n * [SystemOverview \u041e\u0431\u0437\u043e\u0440 \u0441\u0438\u0441\u0442\u0435\u043c\u044b]\r\n * [RequrinetClassification \u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439]\r\n * [RequestStages \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0437\u0430\u044f\u0432\u043a\u0438]\r\n * [FormsRequirements \u041e\u0431\u0449\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0444\u043e\u0440\u043c\u0430\u043c]\r\n * [LandsRequirements \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0435 \u0443\u0447\u0430\u0441\u0442\u043a\u0430]\r\n * [RequestRequirements \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0435 \u0437\u0430\u044f\u0432\u043a\u0438]\r\n * [BillRequirements \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430]\r\n== \u0422\u0435\u043a\u0443\u0449\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 ==\r\n * [report:1 \u0412\u0441\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0438\u043a\u0435\u0442\u044b]\r\n * [report:9 \u0422\u0438\u043a\u0435\u0442\u044b \u043f\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c]\r\n * [report:10 \u041c\u043e\u0438 \u0442\u0438\u043a\u0435\u0442\u044b]\r\n== \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f ==#dev\r\n\u0441\u043c. [mo:wiki:\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u0438\u0421\u0438\u0441\u0442\u0435\u043c\u044b \u041c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f], [mc:wiki:MainApp#dev \u041a\u043b\u0438\u0435\u043d\u0442\u044b \u0438 \u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b]\r\n * [DevEntities \u0421\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438]\r\n== \u0414\u043b\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0438 ==#for_help\r\n * [LandActions \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u0443\u0447\u0430\u0441\u0442\u043a\u043e\u043c]\r\n * [TechDoc \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442]\r\n', 'version': u'17'} }}} ==== System Information ==== || '''Trac''' || `0.11dev-r6079` || || '''Python''' || `2.5.1 (r251:54863, Oct 5 2007, 13:36:32) ` [[br]] `[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)]` || || '''setuptools''' || `0.6c7` || || '''SQLite''' || `3.4.2` || || '''pysqlite''' || `2.3.4` || || '''Genshi''' || `0.5dev-r766` || || '''Subversion''' || `1.4.4 (r25188)` || ==== Python Traceback ==== {{{ Traceback (most recent call last): File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/web/main.py", line 381, in dispatch_request dispatcher.dispatch(req) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/web/main.py", line 213, in dispatch data, content_type) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/web/chrome.py", line 601, in render_template return stream.render(method, doctype=doctype) File "build/bdist.linux-i686/egg/genshi/core.py", line 172, in render return encode(generator, method=method, encoding=encoding) File "build/bdist.linux-i686/egg/genshi/output.py", line 45, in encode output = u''.join(list(iterator)) File "build/bdist.linux-i686/egg/genshi/output.py", line 274, in __call__ for kind, data, pos in stream: File "build/bdist.linux-i686/egg/genshi/output.py", line 526, in __call__ for kind, data, pos in stream: File "build/bdist.linux-i686/egg/genshi/output.py", line 632, in __call__ for kind, data, pos in chain(stream, [(None, None, None)]): File "build/bdist.linux-i686/egg/genshi/output.py", line 466, in __call__ for ev in stream: File "build/bdist.linux-i686/egg/genshi/core.py", line 273, in _ensure for event in stream: File "build/bdist.linux-i686/egg/genshi/core.py", line 273, in _ensure for event in stream: File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/web/chrome.py", line 631, in _strip_accesskeys for kind, data, pos in stream: File "build/bdist.linux-i686/egg/genshi/core.py", line 273, in _ensure for event in stream: File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/web/chrome.py", line 620, in _generate for kind, data, pos in stream: File "build/bdist.linux-i686/egg/genshi/core.py", line 273, in _ensure for event in stream: File "build/bdist.linux-i686/egg/genshi/core.py", line 273, in _ensure for event in stream: File "build/bdist.linux-i686/egg/genshi/filters/transform.py", line 598, in _unmark for mark, event in stream: File "build/bdist.linux-i686/egg/timingandestimationplugin/tande_filters.py", line 59, in __call__ for mark, event in stream: File "build/bdist.linux-i686/egg/genshi/filters/transform.py", line 624, in __call__ for mark, event in stream: File "build/bdist.linux-i686/egg/genshi/filters/transform.py", line 594, in _mark for event in stream: File "build/bdist.linux-i686/egg/genshi/core.py", line 273, in _ensure for event in stream: File "build/bdist.linux-i686/egg/genshi/filters/transform.py", line 598, in _unmark for mark, event in stream: File "build/bdist.linux-i686/egg/timingandestimationplugin/tande_filters.py", line 59, in __call__ for mark, event in stream: File "build/bdist.linux-i686/egg/genshi/filters/transform.py", line 624, in __call__ for mark, event in stream: File "build/bdist.linux-i686/egg/genshi/filters/transform.py", line 594, in _mark for event in stream: File "build/bdist.linux-i686/egg/genshi/template/base.py", line 521, in _include for event in stream: File "build/bdist.linux-i686/egg/genshi/template/markup.py", line 279, in _match ctxt)) File "build/bdist.linux-i686/egg/genshi/template/base.py", line 521, in _include for event in stream: File "build/bdist.linux-i686/egg/genshi/template/markup.py", line 239, in _strip event = stream.next() File "build/bdist.linux-i686/egg/genshi/template/base.py", line 496, in _exec for event in stream: File "build/bdist.linux-i686/egg/genshi/template/base.py", line 473, in _eval result = data.evaluate(ctxt) File "build/bdist.linux-i686/egg/genshi/template/eval.py", line 144, in evaluate return eval(self.code, _globals, {'data': data}) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/templates/wiki_edit.html", line 68, in <Expression u'wiki_to_html(context, page.text)'> ${wiki_to_html(context, page.text)} File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 1020, in format_to_html return HtmlFormatter(ctx, wikidom).generate(escape_newlines) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 979, in generate Formatter(self.context).format(self.wikidom, out, escape_newlines) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 790, in format result = re.sub(self.wikiparser.rules, self.replace, line) File "re.py", line 142, in sub return _compile(pattern, 0).sub(repl, string, count) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 735, in replace replacement = self.handle_match(fullmatch) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 731, in handle_match return internal_handler(match, fullmatch) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 329, in _lhref_formatter return self._make_link(ns, target, match, label) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 342, in _make_link return self._make_intertrac_link(ns, target, label) or \ File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 361, in _make_intertrac_link url = '%s/intertrac/%s' % (url, urllib.quote(target)) File "urllib.py", line 1205, in quote res = map(safe_map.__getitem__, s) KeyError: u'\u041e' }}} a new ticket at the Trac project site, where you can describe the problem and explain how to reproduce it. Python Traceback Most recent call last: * File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/templates/wiki_edit.html", line 68, in <Expression u'wiki_to_html(context, page.text)'> Code fragment: 63. <legend>${diff and 'Review Changes' or 'Preview'} (<a href="#edit">skip</a>)</legend> 64. <div py:when="diff" class="diff"> 65. <xi:include href="diff_div.html" py:with="no_id=True" /> 66. </div> 67. <div py:otherwise="" class="wikipage" xml:space="preserve"> 68. ${wiki_to_html(context, page.text)} 69. </div> 70. </fieldset> 71. </py:when> 72. <py:when test="'collision'"> 73. <div class="system-message"> Local variables: Name Value data [{'comment': u'', 'all': <built-in function all>, 'req': <Request "POST ... * File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 1020, in format_to_html Code fragment: 1015. def format_to_html(ctx, wikidom, escape_newlines=False, abs_urls=False): 1016. if not wikidom: 1017. return '' 1018. if abs_urls != ctx.abs_urls: # Note: temporary hack (need RenderingContext) 1019. ctx = ctx(abs_urls=abs_urls) 1020. return HtmlFormatter(ctx, wikidom).generate(escape_newlines) 1021. 1022. def format_to_oneliner(ctx, wikidom, shorten=False, abs_urls=False): 1023. if not wikidom: 1024. return '' 1025. if abs_urls != ctx.abs_urls: # Note: temporary hack (need RenderingContext) Local variables: Name Value abs_urls False ctx <Context u'[root], wiki:WikiStart' <Request "POST u'/wiki/WikiStart'"> ... escape_newlines False wikidom u'= \u041c\u0438\u0440\u043d\u044b\u0439 - \u043e\u0441\u0435\u043d\u044c ... * File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 979, in generate Code fragment: 974. 975. newlines in the wikidom will be preserved if `escape_newlines` is set. 976. """ 977. # FIXME: compatibility code only for now 978. out = StringIO() 979. Formatter(self.context).format(self.wikidom, out, escape_newlines) 980. return Markup(out.getvalue()) 981. 982. 983. class InlineHtmlFormatter(object): 984. """Format parsed wiki text to inline elements HTML. Local variables: Name Value escape_newlines False out <StringIO.StringIO instance at 0x8faa14c> self <trac.wiki.formatter.HtmlFormatter object at 0x8faa56c> * File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 790, in format Code fragment: 785. if escape_newlines: 786. line += ' [[BR]]' 787. self.in_list_item = False 788. self.in_quote = False 789. # Throw a bunch of regexps on the problem 790. result = re.sub(self.wikiparser.rules, self.replace, line) 791. 792. if not self.in_list_item: 793. self.close_list() 794. 795. if not self.in_quote: Local variables: Name Value escape_newlines False line u'\u0441\u043c. ... out <StringIO.StringIO instance at 0x8faa14c> result u'' self <trac.wiki.formatter.Formatter object at 0x8faa9ec> text u'= \u041c\u0438\u0440\u043d\u044b\u0439 - \u043e\u0441\u0435\u043d\u044c ... * File "re.py", line 142, in sub Local variables: Name Value count 0 pattern <_sre.SRE_Pattern object at 0x8ad24e0> repl <bound method Formatter.replace of <trac.wiki.formatter.Formatter object ... string u'\u0441\u043c. ... * File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 735, in replace Code fragment: 730. internal_handler = getattr(self, '_%s_formatter' % itype) 731. return internal_handler(match, fullmatch) 732. 733. def replace(self, fullmatch): 734. """Replace one match with its corresponding expansion""" 735. replacement = self.handle_match(fullmatch) 736. if replacement: 737. return _markup_to_unicode(replacement) 738. 739. def reset(self, source, out=None): 740. self.source = source Local variables: Name Value fullmatch <_sre.SRE_Match object at 0x90d4238> self <trac.wiki.formatter.Formatter object at 0x8faa9ec> * File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 731, in handle_match Code fragment: 726. if itype in self.wikiparser.external_handlers: 727. external_handler = self.wikiparser.external_handlers[itype] 728. return external_handler(self, match, fullmatch) 729. else: 730. internal_handler = getattr(self, '_%s_formatter' % itype) 731. return internal_handler(match, fullmatch) 732. 733. def replace(self, fullmatch): 734. """Replace one match with its corresponding expansion""" 735. replacement = self.handle_match(fullmatch) 736. if replacement: Local variables: Name Value fullmatch <_sre.SRE_Match object at 0x90d4238> internal_handler <bound method Formatter._lhref_formatter of <trac.wiki.formatter.Formatter ... itype 'lhref' match u'[mo:wiki:\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435\u0421\u0443\u04 ... self <trac.wiki.formatter.Formatter object at 0x8faa9ec> * File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 329, in _lhref_formatter Code fragment: 324. path = self.context.resource_href(path) 325. if '?' in path: 326. query = '&' + query.lstrip('?') 327. return html.A(label or rel, href=path + query + fragment) 328. else: 329. return self._make_link(ns, target, match, label) 330. 331. def _make_link(self, ns, target, match, label): 332. # first check for an alias defined in trac.ini 333. ns = self.env.config['intertrac'].get(ns, ns) 334. if ns in self.wikiparser.link_resolvers: Local variables: Name Value fullmatch <_sre.SRE_Match object at 0x90d4238> label u'\u041c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\ ... match u'[mo:wiki:\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435\u0421\u0443\u04 ... ns u'mo' rel None self <trac.wiki.formatter.Formatter object at 0x8faa9ec> target u'wiki:\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435\u0421\u0443\u0449\u ... * File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 342, in _make_link Code fragment: 337. elif target.startswith('//'): 338. return self._make_ext_link(ns+':'+target, label) 339. elif ns == "mailto": 340. return self._make_mail_link('mailto:'+target, label) 341. else: 342. return self._make_intertrac_link(ns, target, label) or \ 343. self._make_interwiki_link(ns, target, label) or \ 344. match 345. 346. def _make_intertrac_link(self, ns, target, label): 347. intertrac = self.env.config['intertrac'] Local variables: Name Value label u'\u041c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\ ... match u'[mo:wiki:\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435\u0421\u0443\u04 ... ns u'mun_obr' self <trac.wiki.formatter.Formatter object at 0x8faa9ec> target u'wiki:\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435\u0421\u0443\u0449\u ... * File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 361, in _make_intertrac_link Code fragment: 356. if sep != -1: 357. url = '%s/%s/%s' % (url, target[:sep], target[sep + 1:]) 358. else: 359. url = '%s/search?q=%s' % (url, urllib.quote_plus(target)) 360. else: 361. url = '%s/intertrac/%s' % (url, urllib.quote(target)) 362. return self._make_ext_link(url, label, '%s in %s' % (target, name)) 363. else: 364. return None 365. 366. def shorthand_intertrac_helper(self, ns, target, label, fullmatch): Local variables: Name Value compat False intertrac <Section [intertrac]> label u'\u041c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\ ... name u'\u041c\u0443\u043d\u0438\u0446\u0438\u043f\u0430\u043b\u044c\u043d\u044b\ ... ns u'mun_obr' self <trac.wiki.formatter.Formatter object at 0x8faa9ec> target u'wiki:\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435\u0421\u0443\u0449\u ... url u'../../mun-obr' * File "urllib.py", line 1205, in quote Local variables: Name Value cachekey ('/', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-') s u'wiki:\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435\u0421\u0443\u0449\u ... safe '/' safe_map {'\x00': '%00', '\x83': '%83', '\x04': '%04', '\x87': '%87', '\x08': ... File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/templates/wiki_edit.html", line 68, in <Expression u'wiki_to_html(context, page.text)'> ${wiki_to_html(context, page.text)} File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 1020, in format_to_html return HtmlFormatter(ctx, wikidom).generate(escape_newlines) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 979, in generate Formatter(self.context).format(self.wikidom, out, escape_newlines) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 790, in format result = re.sub(self.wikiparser.rules, self.replace, line) File "re.py", line 142, in subFile "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 735, in replace replacement = self.handle_match(fullmatch) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 731, in handle_match return internal_handler(match, fullmatch) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 329, in _lhref_formatter return self._make_link(ns, target, match, label) File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 342, in _make_link return self._make_intertrac_link(ns, target, label) or \ File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6079-py2.5.egg/trac/wiki/formatter.py", line 361, in _make_intertrac_link url = '%s/intertrac/%s' % (url, urllib.quote(target)) File "urllib.py", line 1205, in quote System Information: User Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8 Trac: 0.11dev-r6079 Python: 2.5.1 (r251:54863, Oct 5 2007, 13:36:32) [GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] setuptools: 0.6c7 SQLite: 3.4.2 pysqlite: 2.3.4 Genshi: 0.5dev-r766 Subversion: 1.4.4 (r25188) jQuery: 1.1.3.1
Attachments (0)
Change History (2)
comment:1 by , 17 years ago
Component: | general → wiki |
---|---|
Keywords: | intertrac added |
Milestone: | → 0.11 |
Owner: | changed from | to
Severity: | normal → minor |
Version: | → devel |
Note:
See TracTickets
for help on using tickets.
That was an oversight. Thanks for the report!