ob-tangle: Fix `org-babel-under-commented-heading-p'
authorNicolas Goaziou <n.goaziou@gmail.com>
Sat, 15 Mar 2014 14:32:59 +0000 (15:32 +0100)
committerEric Schulte <schulte.eric@gmail.com>
Sun, 16 Mar 2014 01:40:08 +0000 (19:40 -0600)
* lisp/ob-tangle.el (org-babel-under-commented-heading-p):
  `org-comment-string' is case sensitive and cannot be attached to
  other text.

lisp/ob-tangle.el

index 2910d7f..bf67410 100644 (file)
@@ -359,12 +359,17 @@ that the appropriate major-mode is set.  SPEC has the form:
 
 (defvar org-comment-string) ;; Defined in org.el
 (defun org-babel-under-commented-heading-p ()
-  "Return t if currently under a commented heading."
-  (unless (org-before-first-heading-p)
-    (if (let ((hd (nth 4 (org-heading-components))))
-         (and hd (string-match (concat "^" org-comment-string) hd)))
-       t
-      (save-excursion
+  "Non-nil if point is under a commented heading.
+This function also checks ancestors of the current headline, if
+any."
+  (cond
+   ((org-before-first-heading-p) nil)
+   ((let ((headline (nth 4 (org-heading-components))))
+      (and headline
+          (let ((case-fold-search nil))
+            (org-string-match-p (concat "^" org-comment-string "\\(?: \\|$\\)")
+                                headline)))))
+   (t (save-excursion
        (and (org-up-heading-safe)
             (org-babel-under-commented-heading-p))))))