emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Dan Davison <davison@stats.ox.ac.uk>
To: Carsten Dominik <carsten.dominik@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: [patch] Re: problem with example block and headings
Date: Mon, 12 Oct 2009 12:20:03 -0400	[thread overview]
Message-ID: <871vl8r3d8.fsf_-_@stats.ox.ac.uk> (raw)
In-Reply-To: <688BFE44-6F6D-4EE7-8659-D7C3825B5A53@gmail.com> (Carsten Dominik's message of "Mon, 12 Oct 2009 15:09:31 +0200")

Carsten Dominik <carsten.dominik@gmail.com> writes:

> Hi Eric,
>
> please move the cursor into the example block and press "C-c '" (that
> is C-c followed by the single quote.  This will get you into a special
> editing buffer for this snippet.  When you exit by pressing the same
> keys again, you will see what Org does to quote such headlines.

Hmm, and you also see that point jumps around by one character.

Carsten, please consider merging branch ded-org-src at

git://repo.or.cz/org-mode/babel.git

Dan

--8<---------------cut here---------------start------------->8---
commit 23b4026937572339a453922bb79a05d1e82597e7
Author: Dan Davison <davison@stats.ox.ac.uk>
Date:   Mon Oct 12 12:13:08 2009 -0400

    org-src-mode: maintain relative location of point when lines are protected

diff --git a/lisp/org-src.el b/lisp/org-src.el
index 796e914..03e5b45 100644
--- a/lisp/org-src.el
+++ b/lisp/org-src.el
@@ -229,6 +229,7 @@ the edited version."
        (when org-mode-p
          (goto-char (point-min))
          (while (re-search-forward "^," nil t)
+           (if (eq (org-current-line) line) (setq total-nindent (1+ total-nindent)))
            (replace-match "")))
        (org-goto-line (1+ (- line begline)))
        (org-move-to-column
@@ -463,7 +464,7 @@ the language, a switch telling if the content should be in a single line."
         (total-nindent (+ (or org-edit-src-block-indentation 0)
                           org-edit-src-content-indentation))
         (preserve-indentation org-src-preserve-indentation)
-        code line col indent)
+        (delta 0) code line col indent)
     (untabify (point-min) (point-max))
     (save-excursion
       (goto-char (point-min))
@@ -490,6 +491,7 @@ the language, a switch telling if the content should be in a single line."
       (goto-char (point-min))
       (while (re-search-forward
              (if (org-mode-p) "^\\(.\\)" "^\\([*]\\|[ \t]*#\\+\\)") nil t)
+       (if (eq (org-current-line) line) (setq delta (1+ delta)))
        (replace-match ",\\1")))
     (when (org-bound-and-true-p org-edit-src-picture)
       (setq preserve-indentation nil)
@@ -514,7 +516,7 @@ the language, a switch telling if the content should be in a single line."
     (goto-char beg)
     (if single (just-one-space))
     (org-goto-line (1- (+ (org-current-line) line)))
-    (org-move-to-column (if preserve-indentation col (+ col total-nindent)))
+    (org-move-to-column (if preserve-indentation col (+ col total-nindent delta)))
     (move-marker beg nil)
     (move-marker end nil)))
--8<---------------cut here---------------end--------------->8---



>
> Also, you might enjoy your example even better if you use
>
>   #+begin_src org
>
> instead of
>
>   #+begin_example
>
> HTH
>
> - Carsten
>
> On Oct 12, 2009, at 12:46 PM, Eric S Fraga wrote:
>
>> Hello,
>>
>> This is not a critical problem but I thought I would highlight it.
>>
>> If you have an example block which includes lines that look like
>> org-mode headings, the show/collapse commands get confused.  The two
>> images attached show the erroneous behaviour for a file with these
>> contents:
>>
>> --8<---------------cut here---------------start------------->8---
>> * example blocks
>>  The following is an example of the contents of a simple org-mode
>> file:
>> #+begin_example problem with org interpretation of contents
>>  This is an example of a simple org-mode file
>> * The main heading
>> ** A sub-heading
>> ** another sub-heading
>>   - a list
>>   - second entry
>> #+end_example
>>     That example shows the hierarchical structure and the use of
>> lists.
>> ** Further text here
>> This is more text that is in a sub-section
>> --8<---------------cut here---------------end--------------->8---
>>
>> Although a contrived example, this arose from my use of org-babel-sh
>> and having output generated that happened to have lines starting with
>> '* '.
>>
>> Note also the indentation of the line immediately after the end of the
>> example.
>>
>> thanks,
>> eric
>>
>> <
>> expanded
>> .jpg><collapsed.jpg>_______________________________________________
>> Emacs-orgmode mailing list
>> Remember: use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
> - Carsten
>
>
>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

      parent reply	other threads:[~2009-10-12 16:20 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-12 10:46 problem with example block and headings Eric S Fraga
2009-10-12 13:09 ` Carsten Dominik
2009-10-12 15:24   ` Eric S Fraga
2009-10-12 15:40     ` Giovanni Ridolfi
2009-10-12 17:01       ` Eric Schulte
2009-10-13  7:57         ` New guidelines for posting about org-babel (was problem with example block and headings) Carsten Dominik
2009-10-12 16:20   ` Dan Davison [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=871vl8r3d8.fsf_-_@stats.ox.ac.uk \
    --to=davison@stats.ox.ac.uk \
    --cc=carsten.dominik@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).