Hello Dario,

On 12 February 2013 17:09, Dario Hamidi <dario.hamidi@gmail.com> wrote:

Hello Jonathan,

> Using your patch as is would wrap the source blocks in both example and
> verbatim blocks.  If going with verbatim it would be better to remove all
> references to @example/@end example.

I don't understand where the problem lies with having a `@verbatim'
within a `@example'. Could you maybe explain to me why this is
problematic?

Using both environments seems to achieve the goal of having an idented
source block in the resulting info file without having to further
process the source block before export.

Consider exporting

    #+BEGIN_SRC sh
    function fails
    {
        echo "this causes an error with makeinfo"
    }
    #+END_SRC

with only the verbatim environment:

    File: test.info,  Node: Top,  Up: (dir)

    Manual
    ******

    function fails
    {
        echo "this causes an error with makeinfo"
    }

and with verbatim in example:

    File: test.info,  Node: Top,  Up: (dir)

    Manual
    ******

         function fails
         {
             echo "this causes an error with makeinfo"
         }

> It should be possible to escape any braces or @ before inserting them into
> the
> example block to ensure there is no expansion.

While it certainly is possible, it would also mean to properly escape
*all* characters with a special meaning to TeX.  I suppose that making
text containing such characters visible in a document without having to
escape them is what the verbatim environment is for.

> The only differences in using @verbatim over escaping any characters in
> @example are the following:
>   - Tabs are treated as tabs and not as single spaces
>   - The code block is not indented.

Preserving whitespace seems like a good idea when displaying python
source code or makefiles.

Dario

I've implemented a fix for this that should resolve the issue.  `@ { }` are now
properly escaped before export within source blocks.  I didn't wrap the one
block in the other since the issue also existed within lisp blocks (where
inserting a verbatim block within a lisp block would have likely caused issues
had someone wanted to extract any @lisp code from the info file.

Regards,

Jon