emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Litvinov Sergey <slitvinov@gmail.com>
To: emacs-orgmode@gnu.org
Subject: [PATCH] narrowing in agenda file
Date: Mon, 23 Jan 2012 15:41:13 +0100	[thread overview]
Message-ID: <5r1uqq4h2u.fsf@kana.aer.mw.tum.de> (raw)

[-- Attachment #1: Type: text/plain, Size: 150 bytes --]

"Narrowing" in the agenda file does not "survive" agenda redo. Please
see an example in the first patch. I think the second patch fixes this
problem.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Add-a-test-narrowed-agenda-file.patch --]
[-- Type: text/x-patch, Size: 977 bytes --]

From 60ef46625131391c6a49fccd26861f933a984515 Mon Sep 17 00:00:00 2001
From: Litvinov Sergey <slitvinov@gmail.com>
Date: Mon, 23 Jan 2012 14:22:53 +0100
Subject: [PATCH 1/2] Add a test "narrowed" agenda file

---
 testing/examples/org-agenda-test.org |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
 create mode 100644 testing/examples/org-agenda-test.org

diff --git a/testing/examples/org-agenda-test.org b/testing/examples/org-agenda-test.org
new file mode 100644
index 0000000..ecd00e5
--- /dev/null
+++ b/testing/examples/org-agenda-test.org
@@ -0,0 +1,10 @@
+#+Title: a collection of examples for org-agenda tests
+* TODO should be visible
+ob-agenda-test.org buffer should be narrowed after execution of this block
+#+BEGIN_SRC elisp :results silent
+  (let ((org-agenda-files (list buffer-file-name)))
+    (narrow-to-region 1 (- (buffer-size) 23))
+    (org-agenda nil "t")
+    (org-agenda-redo))
+#+END_SRC
+* TODO should be hidden
-- 
1.7.3.4


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-Make-narrowing-of-the-agenda-file-survive-org-agenda.patch --]
[-- Type: text/x-patch, Size: 3933 bytes --]

From 188d95624fec5d53403fd705679167ed7d7345a2 Mon Sep 17 00:00:00 2001
From: Litvinov Sergey <slitvinov@gmail.com>
Date: Mon, 23 Jan 2012 14:26:14 +0100
Subject: [PATCH 2/2] Make narrowing of the agenda file survive (org-agenda-redo)

* lisp/org.el (org-prepare-agenda-buffers): move '(save-excursion
  (save-restriction' construction
---
 lisp/org.el |   67 +++++++++++++++++++++++++++++------------------------------
 1 files changed, 33 insertions(+), 34 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index f6a1160..9e23c18 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -16498,47 +16498,46 @@ When a buffer is unmodified, it is just killed.  When modified, it is saved
 	(inhibit-read-only t)
 	(rea (concat ":" org-archive-tag ":"))
 	     bmp file re)
-    (save-excursion
-      (save-restriction
 	(while (setq file (pop files))
 	  (catch 'nextfile
 	    (if (bufferp file)
 		(set-buffer file)
 	      (org-check-agenda-file file)
 	      (set-buffer (org-get-agenda-file-buffer file)))
-	    (widen)
-	    (setq bmp (buffer-modified-p))
-	    (org-refresh-category-properties)
-	    (setq org-todo-keywords-for-agenda
-		  (append org-todo-keywords-for-agenda org-todo-keywords-1))
-	    (setq org-done-keywords-for-agenda
-		  (append org-done-keywords-for-agenda org-done-keywords))
-	    (setq org-todo-keyword-alist-for-agenda
-		  (append org-todo-keyword-alist-for-agenda org-todo-key-alist))
-	    (setq org-drawers-for-agenda
-		  (append org-drawers-for-agenda org-drawers))
-	    (setq org-tag-alist-for-agenda
-		  (append org-tag-alist-for-agenda org-tag-alist))
-
 	    (save-excursion
-	      (remove-text-properties (point-min) (point-max) pall)
-	      (when org-agenda-skip-archived-trees
-		(goto-char (point-min))
-		(while (re-search-forward rea nil t)
-		  (if (org-at-heading-p t)
-		      (add-text-properties (point-at-bol) (org-end-of-subtree t) pa))))
-	      (goto-char (point-min))
-	      (setq re (format org-heading-keyword-regexp-format
-			       org-comment-string))
-	      (while (re-search-forward re nil t)
-		(add-text-properties
-		 (match-beginning 0) (org-end-of-subtree t) pc)))
-	    (set-buffer-modified-p bmp)))))
-    (setq org-todo-keywords-for-agenda
-          (org-uniquify org-todo-keywords-for-agenda))
-    (setq org-todo-keyword-alist-for-agenda
-	  (org-uniquify org-todo-keyword-alist-for-agenda)
-	  org-tag-alist-for-agenda (org-uniquify org-tag-alist-for-agenda))))
+	      (save-restriction
+		(widen)
+		(setq bmp (buffer-modified-p))
+		(org-refresh-category-properties)
+		(setq org-todo-keywords-for-agenda
+		      (append org-todo-keywords-for-agenda org-todo-keywords-1))
+		(setq org-done-keywords-for-agenda
+		      (append org-done-keywords-for-agenda org-done-keywords))
+		(setq org-todo-keyword-alist-for-agenda
+		      (append org-todo-keyword-alist-for-agenda org-todo-key-alist))
+		(setq org-drawers-for-agenda
+		      (append org-drawers-for-agenda org-drawers))
+		(setq org-tag-alist-for-agenda
+		      (append org-tag-alist-for-agenda org-tag-alist))
+		(save-excursion
+		  (remove-text-properties (point-min) (point-max) pall)
+		  (when org-agenda-skip-archived-trees
+		    (goto-char (point-min))
+		    (while (re-search-forward rea nil t)
+		      (if (org-at-heading-p t)
+			  (add-text-properties (point-at-bol) (org-end-of-subtree t) pa))))
+		  (goto-char (point-min))
+		  (setq re (format org-heading-keyword-regexp-format
+				   org-comment-string))
+		  (while (re-search-forward re nil t)
+		    (add-text-properties
+		     (match-beginning 0) (org-end-of-subtree t) pc)))
+		(set-buffer-modified-p bmp)))))
+	(setq org-todo-keywords-for-agenda
+	      (org-uniquify org-todo-keywords-for-agenda))
+	(setq org-todo-keyword-alist-for-agenda
+	      (org-uniquify org-todo-keyword-alist-for-agenda)
+	      org-tag-alist-for-agenda (org-uniquify org-tag-alist-for-agenda))))
 
 ;;;; Embedded LaTeX
 
-- 
1.7.3.4


             reply	other threads:[~2012-01-23 14:41 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-23 14:41 Litvinov Sergey [this message]
2012-01-23 18:04 ` Bernt Hansen
2012-02-01 14:11   ` Bernt Hansen
2012-02-01 15:18     ` Litvinov Sergey
2012-02-02  2:15       ` Bernt Hansen
2012-02-02  7:33         ` Litvinov Sergey
2012-02-12 21:27           ` Bernt Hansen

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=5r1uqq4h2u.fsf@kana.aer.mw.tum.de \
    --to=slitvinov@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --subject='Re: [PATCH] narrowing in agenda file' \
    /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

Code repositories for project(s) associated with this 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).