[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[O] bug#16265: 24.3.50; re-search-forward (error "Invalid search bound (
From: |
Keith David Bershatsky |
Subject: |
[O] bug#16265: 24.3.50; re-search-forward (error "Invalid search bound (wrong side of point)") |
Date: |
Sat, 28 Dec 2013 12:44:20 -0800 |
User-agent: |
/ () / () APEL/10.8 Emacs/24.3.50 (x86_64-apple-darwin10.8.0) MULE/6.0 (HANACHIRUSATO) |
Nicolas:
This example demonstrates the problem caused when `org-capture` damages the
line numbers in the `org-agenda-files`, making it impossible to go to the
bottom of the buffer with (goto-char (point-max)) -- consequently,
re-search-backward fails -- other functions fail also, e.g., `org-sort-entries`.
(defun example ()
(interactive)
(let* (
(org-todo-keywords '((sequence "Active(a)" "Next Action(n)"
"Reference(r)" "Someday(s)" "Delegated(d)" "|" "None(N)") ))
(sample-todo (concat
"* TASKS\n\n"
"** Active [#A] smith @ drawer-one (fishing) | drawer-two (tennis).
:lawlist:\n"
" DEADLINE: <2013-12-21 Sat 17:00> SCHEDULED: <2013-12-21 Sat>\n"
" :PROPERTIES:\n"
" :DRAWER-ONE: fishing\n"
" :DRAWER-TWO: tennis\n"
" :END:\n\n"
"** Next-Action [#B] doe @ drawer-one (football) | drawer-two
(bowling). :fred:\n"
" DEADLINE: <2013-12-22 Sun 08:30> SCHEDULED: <2013-12-22 Sun>\n"
" :PROPERTIES:\n"
" :DRAWER-ONE: football\n"
" :DRAWER-TWO: bowling\n"
" :END:\n\n"
"* EVENTS\n\n"
"** Reference [#C] john @ drawer-one (fishing) | drawer-two
(sky-diving). :george:\n"
" DEADLINE: <2013-12-23 Mon 10:15> SCHEDULED: <2013-12-23 Mon>\n"
" :PROPERTIES:\n"
" :DRAWER-ONE: fishing\n"
" :DRAWER-TWO: sky-diving\n"
" :END:\n\n"
"* UNDATED\n\n"
"** Someday [#D] jane @ drawer-one (basket-ball) | drawer-two
(bowling). :sam:\n"
" DEADLINE: <2013-12-24 Tues 12:00> SCHEDULED: <2013-12-24 Tues>\n"
" :PROPERTIES:\n"
" :DRAWER-ONE: basket-ball\n"
" :DRAWER-TWO: bowling\n"
" :END:")))
(if (get-buffer "foo.org")
(progn
(switch-to-buffer "foo.org")
(erase-buffer)
(delete-other-windows))
(switch-to-buffer (get-buffer-create "foo.org")))
(org-mode)
(linum-mode 1)
(insert sample-todo)
(goto-char (point-min))
(or (y-or-n-p (format "For this example work, you must save this buffer
as a file. Proceed with example?"))
(error "Canceled."))
(write-file "~/Desktop/foo.org" t)
(let* (
(filename (buffer-file-name))
(org-agenda-files (list filename))
(org-capture-templates '(("n" "Next Action" entry (file+headline
filename "TASKS")
"** Next Action [#A] %?\n DEADLINE: <%<%Y-%m-%d %a>>\n :PROPERTIES:\n
:ToodledoID:\n :ToodledoFolder: TASKS\n :Hash:\n :END:"
:empty-lines 1))))
(search-backward-example)
(org-capture nil "n")
(message "-----------------------------")
(message "Here we can see that the line numbers in 'foo.org' got messed up.")
(sit-for 5)
(insert "Hello World! :lawlist:")
(org-capture-finalize)
(search-backward-example)
(message "-----------------------------")
(message "Here is where things really went wrong. It's searching the WRONG
todo.")
(message "-----------------------------")
(switch-to-buffer "*Messages*"))))
(defun search-backward-example ()
(require 'org-element)
(let* (element todo-state title deadline scheduled day month year
(org-todo-keywords '((sequence "Active(a)" "Next Action(n)"
"Reference(r)" "Someday(s)" "Delegated(d)" "|" "None(N)") )))
(goto-char (point-max))
(while (re-search-backward "^\*\* \\(Reference\\)" nil t)
(setq element (org-element-at-point))
(setq todo-state (org-element-property :todo-keyword element))
(setq title (org-element-property :title element))
(setq deadline (ignore-errors (org-element-property :deadline element) ))
(setq scheduled (ignore-errors (org-element-property :scheduled element)
))
(setq day (ignore-errors (org-element-property :day-start scheduled)))
(setq month (ignore-errors (org-element-property :month-start scheduled)))
(setq year (ignore-errors (org-element-property :year-start scheduled)))
(message "-----------------------------")
(message "todo-state: %s" todo-state)
(message "deadline: %s" deadline)
(message "scheduled: %s" scheduled)
(message "title: %s" title)
(message "day: %s" day)
(message "month: %s" month)
(message "year: %s" year)
(message "-----------------------------") )))
- [O] bug#16265: 24.3.50; re-search-forward (error "Invalid search bound (wrong side of point)"),
Keith David Bershatsky <=