﻿id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc
566,IndexError: pop from empty list with i18n:msg on Genshi 0.6.1,jomae,hodgestar,"This issue is originally reported at trac:#11184.

When an element with `i18n:msg` attribute has last element which has `$var` as contents and it is translated with `""aaa [1:%(name)s] zzz""`, got `IndexError: pop from empty list`.

{{{
#!py
    def test_translate_i18n_msg_ticket_404_regression(self):
        tmpl = MarkupTemplate(""""""<html xmlns:py=""http://genshi.edgewall.org/""
            xmlns:i18n=""http://genshi.edgewall.org/i18n"">
          <h1 i18n:msg=""name"">text <a>$name</a></h1>
        </html>"""""")
        gettext = lambda s: u'head [1:%(name)s] tail'
        translator = Translator(gettext)
        translator.setup(tmpl)
        self.assertEqual(""""""<html>
          <h1>head <a>NAME</a> tail</h1>
        </html>"""""", tmpl.generate(name='NAME').render())
}}}

{{{
Traceback (most recent call last):
  File ""genshi/filters/tests/i18n.py"", line 918, in test_translate_i18n_msg_ticket_404_regression
    self.assertEqual(""""""<html>
  File ""/home/jun66j5/src/genshi/hg/genshi/core.py"", line 183, in render
    return encode(generator, method=method, encoding=encoding, out=out)
  File ""/home/jun66j5/src/genshi/hg/genshi/output.py"", line 57, in encode
    return _encode(''.join(list(iterator)))
  File ""/home/jun66j5/src/genshi/hg/genshi/output.py"", line 241, in __call__
    for kind, data, pos in stream:
  File ""/home/jun66j5/src/genshi/hg/genshi/output.py"", line 669, in __call__
    for kind, data, pos in stream:
  File ""/home/jun66j5/src/genshi/hg/genshi/output.py"", line 774, in __call__
    for kind, data, pos in chain(stream, [(None, None, None)]):
  File ""/home/jun66j5/src/genshi/hg/genshi/output.py"", line 594, in __call__
    for ev in stream:
  File ""/home/jun66j5/src/genshi/hg/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/home/jun66j5/src/genshi/hg/genshi/template/base.py"", line 617, in _include
    for event in stream:
  File ""/home/jun66j5/src/genshi/hg/genshi/template/markup.py"", line 326, in _match
    for event in stream:
  File ""/home/jun66j5/src/genshi/hg/genshi/template/base.py"", line 557, in _flatten
    for kind, data, pos in stream:
  File ""/home/jun66j5/src/genshi/hg/genshi/filters/i18n.py"", line 177, in _generate
    for event in msgbuf.translate(gettext(msgbuf.format())):
  File ""/home/jun66j5/src/genshi/hg/genshi/filters/i18n.py"", line 1044, in translate
    events = self.events[order].pop(0)
IndexError: pop from empty list
}}}",defect,closed,major,0.6.2,Template processing,0.6,fixed,,felix.schwarz@… jargon@…
