Hi Peggy

I think I've fixed the problem, please test and report back:
http://code.google.com/p/asciidoc/source/detail?r=46174034f513e9a37d75192eef3a88b769e748e8

It is quite subtle, the problem is the loop at line 4523:

    for q in self.quotes.keys():
          :
        del self.quotes[q]

The del changes the keys during loop execution, the result is that the dictionary item immediately following the del will not be processed. The fix is to make a copy of the keys at the start of the loop:

    for q in self.quotes.keys()[:]:

I've cc'd this to the AsciiDoc discussion group.


Cheers, Stuart



On 25/01/11 06:49, Peggy Russell wrote:
Hi Stuart:

Welcome back.

Bottom line: Specifying both (FAQ 46) or having a blank line after the
heading but before the options causes the problem shown below

This works in 8.6.2 and lower, but breaks in 8.6.3.
++++++++++++++++++++
= Test

:quotes.^:
:quotes.~:

1test /^$/^ test

2~test~ test
++++++++++++++++++++

[Python 2.6.2]

Thank you.
Peg

Hi Peg

On 14/12/10 13:51, Peggy Russell wrote:
Hi Stuart:

I added ":quotes.^:" after the level 0 header and before a level 1 in my 
document (asciidoc FAQ. 46) and got the error below.

It happens with asciidoc-8.6.3, but not asciidoc-8.6.2, asciidoc-8.6.1, 
asciidoc-8.6.0.

Error:
++++++++++++++++++++++++++++++++++++++++++
asciidoc: FAILED: sed-1liners-explained: line 10: unexpected error:
asciidoc: ------------------------------------------------------------
Traceback (most recent call last):
    File "asciidoc.py", line 5437, in asciidoc
      document.translate(has_header) # Generate the output.
    File "asciidoc.py", line 1512, in translate
      Section.translate()
    File "asciidoc.py", line 2105, in translate
      Title.translate()
    File "asciidoc.py", line 1871, in translate
      Title.attributes['title'] = Title.dosubs(Title.attributes['title'])
    File "asciidoc.py", line 1879, in dosubs
      title = Lex.subs((title,), Title.subs)
    File "asciidoc.py", line 1256, in subs
      para = Lex.subs_1(para,(o,))
    File "asciidoc.py", line 1222, in subs_1
      result = subs_quotes(result)
    File "asciidoc.py", line 483, in subs_quotes
      if tag[0] == '#':
IndexError: string index out of range
++++++++++++++++++++++++++++++++++++++++++

I can't replicate the problem, please post a short example. This worked:

= Test
:quotes.^:


== Section 1
^Lorum^ ipsum...


Cheers, Stuart



asciidoc FAQ #46:
    
http://www.methods.co.nz/asciidoc/faq.html#_how_can_i_selectively_disable_a_quoted_text_substitution

Thank you.
Peg




--
You received this message because you are subscribed to the Google Groups 
"asciidoc" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/asciidoc?hl=en.

Reply via email to