emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] Bug: [PATCH] Make org-narrow-to-subtree usable out of Org mode [8.2.


From: Nicolas Richard
Subject: [O] Bug: [PATCH] Make org-narrow-to-subtree usable out of Org mode [8.2.7b (release_8.2.7b-6-g07d470 @ /home/youngfrog/sourcetrees/org-mode/lisp/)]
Date: Tue, 22 Jul 2014 19:48:51 +0200

Hello all,

org-narrow-to-subtree is very nice, and I now have C-x n s hard-wired
into my fingers, but it doesn't work when outline-regexp is too
different from org-outline-regexp in Outline-but-non-Org mode buffers.

It looked pretty easy to fix, so here is my suggestion, below. It should
be rather harmless since it only affects non-Org buffers (and might have
the nice side effect of allowing other commands to run in those buffers
-- but I haven't checked.)

>From 70ccd90f98d07762d7ae228d67c387d674a69cee Mon Sep 17 00:00:00 2001
From: Nicolas Richard <address@hidden>
Date: Tue, 22 Jul 2014 18:29:00 +0200
Subject: [PATCH] Make org-get-limited-outline-regexp usable outside of org.

This allows org-narrow-to-subtree to function in Outline mode.

* lisp/org-macs.el (org-get-limited-outline-regexp): Use
  outline-regexp instead of org-outline-regexp when not in Org mode.
---
 lisp/org-macs.el | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/lisp/org-macs.el b/lisp/org-macs.el
index 96265ec..78174df 100644
--- a/lisp/org-macs.el
+++ b/lisp/org-macs.el
@@ -352,11 +352,16 @@ point nowhere."
 (defun org-get-limited-outline-regexp ()
   "Return outline-regexp with limited number of levels.
 The number of levels is controlled by `org-inlinetask-min-level'"
-  (if (or (not (derived-mode-p 'org-mode)) (not (featurep 'org-inlinetask)))
-      org-outline-regexp
-    (let* ((limit-level (1- org-inlinetask-min-level))
-          (nstars (if org-odd-levels-only (1- (* limit-level 2)) limit-level)))
-      (format "\\*\\{1,%d\\} " nstars))))
+  (cond ((not (derived-mode-p 'org-mode))
+        outline-regexp)
+       ((not (featurep 'org-inlinetask))
+        org-outline-regexp)
+       (t
+        (let* ((limit-level (1- org-inlinetask-min-level))
+               (nstars (if org-odd-levels-only
+                           (1- (* limit-level 2))
+                         limit-level)))
+          (format "\\*\\{1,%d\\} " nstars)))))
 
 (defun org-format-seconds (string seconds)
   "Compatibility function replacing format-seconds."
-- 
2.0.2



reply via email to

[Prev in Thread] Current Thread [Next in Thread]