emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "numbchild@gmail.com" <numbchild@gmail.com>
To: Ihor Radchenko <yantar92@gmail.com>
Cc: Org-mode <emacs-orgmode@gnu.org>
Subject: Re: How to detect current in logbook drawer?
Date: Sat, 15 Aug 2020 13:12:48 +0800	[thread overview]
Message-ID: <CAL1eYuKgdcOXzsvQaAAg5fUBp6qfKPiJeT5xU78kTcO0gG8_rQ@mail.gmail.com> (raw)
In-Reply-To: <877du1olkf.fsf@localhost>

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

Thanks for replying, Ihor. I will look into this regexp.

Here is the backtrace of "toggle-debug-on-quit" when I refresh org-agenda
but has long time suspend.

```
Debugger entered--Lisp error: (quit)

re-search-forward("\\(\\[\\[\\(\\(?:[^][\\]\\|\\\\\\(?:\\\\\\\\\\)*[][]\\|\\\\+[^][]\\)+..."
17651 t)
  (while (re-search-forward org-link-any-re limit t) (let* ((start
(match-beginning 0)) (end (match-end 0)) (visible-start (or
(match-beginning 3) (match-beginning 2))) (visible-end (or (match-end 3)
(match-end 2))) (style (cond ((eq 60 (char-after start)) 'angle) ((eq 91
(char-after ...)) 'bracket) (t 'plain)))) (if (and (memq style
org-highlight-links) (not (string-match-p org-element-paragraph-separate
(match-string 0))) (not (and (eq style 'plain) (let (...) (if ... ...
...))))) (progn (let* ((link-object (save-excursion ... ...)) (link
(org-element-property :raw-link link-object)) (type (org-element-property
:type link-object)) (path (org-element-property :path link-object))
(properties (list ... ... ... ... ... ... ... ... ... ... ... t)))
(org-remove-flyspell-overlays-in start end) (org-rear-nonsticky-at end) (if
(not (eq ... style)) (add-text-properties start end properties)
(remove-text-properties start end '...) (let (...) (add-text-properties
start visible-start hidden) (add-text-properties visible-start visible-end
properties) (add-text-properties visible-end end hidden)
(org-rear-nonsticky-at visible-start) (org-rear-nonsticky-at visible-end)))
(let ((f ...)) (if (functionp f) (progn ...))) (throw :exit t))))))
  (catch :exit (while (re-search-forward org-link-any-re limit t) (let*
((start (match-beginning 0)) (end (match-end 0)) (visible-start (or
(match-beginning 3) (match-beginning 2))) (visible-end (or (match-end 3)
(match-end 2))) (style (cond ((eq 60 ...) 'angle) ((eq 91 ...) 'bracket) (t
'plain)))) (if (and (memq style org-highlight-links) (not (string-match-p
org-element-paragraph-separate (match-string 0))) (not (and (eq style ...)
(let ... ...)))) (progn (let* ((link-object ...) (link ...) (type ...)
(path ...) (properties ...)) (org-remove-flyspell-overlays-in start end)
(org-rear-nonsticky-at end) (if (not ...) (add-text-properties start end
properties) (remove-text-properties start end ...) (let ... ... ... ... ...
...)) (let (...) (if ... ...)) (throw :exit t)))))) nil)
  org-activate-links(17651)
  (while (org-activate-links (point-max)) (goto-char (match-end 0)))
  (save-excursion (while (org-activate-links (point-max)) (goto-char
(match-end 0))))
  (save-excursion (goto-char (point-min)) (save-excursion (while
(org-activate-links (point-max)) (goto-char (match-end 0)))) (if (eq
org-agenda-remove-tags t) nil (org-agenda-align-tags)) (if
org-agenda-with-colors nil (remove-text-properties (point-min) (point-max)
'(face nil))) (if (and (boundp 'org-overriding-columns-format)
org-overriding-columns-format) (progn (set (make-local-variable
'org-local-columns-format) org-overriding-columns-format))) (if
org-agenda-view-columns-initially (progn (org-agenda-columns))) (if
org-agenda-fontify-priorities (progn (org-agenda-fontify-priorities))) (if
(and org-agenda-dim-blocked-tasks org-blocker-hook) (progn
(org-agenda-dim-blocked-tasks))) (org-agenda-mark-clocking-task) (if
org-agenda-entry-text-mode (progn (org-agenda-entry-text-hide)
(org-agenda-entry-text-show))) (if (and (featurep 'org-habit)
(save-excursion (next-single-property-change (point-min) 'org-habit-p)))
(progn (org-habit-insert-consistency-graphs))) (setq org-agenda-type
(org-get-at-bol 'org-agenda-type)) (if (or (eq
org-agenda-show-inherited-tags 'always) (and (listp
org-agenda-show-inherited-tags) (memq org-agenda-type
org-agenda-show-inherited-tags)) (and (eq org-agenda-show-inherited-tags t)
(or (eq org-agenda-use-tag-inheritance t) (and (listp
org-agenda-use-tag-inheritance) (not (memq org-agenda-type
org-agenda-use-tag-inheritance)))))) nil (let (mrk) (save-excursion
(goto-char (point-min)) (while (equal (forward-line) 0) (if (setq mrk
(get-text-property ... ...)) (progn (put-text-property ... ... ...
...))))))) (setq org-agenda-represented-tags nil
org-agenda-represented-categories nil) (if org-agenda-top-headline-filter
(progn (org-agenda-filter-top-headline-apply
org-agenda-top-headline-filter))) (if org-agenda-tag-filter (progn
(org-agenda-filter-apply org-agenda-tag-filter 'tag t))) (if (get
'org-agenda-tag-filter :preset-filter) (progn (org-agenda-filter-apply (get
'org-agenda-tag-filter :preset-filter) 'tag t))) (if
org-agenda-category-filter (progn (org-agenda-filter-apply
org-agenda-category-filter 'category))) (if (get
'org-agenda-category-filter :preset-filter) (progn (org-agenda-filter-apply
(get 'org-agenda-category-filter :preset-filter) 'category))) (if
org-agenda-regexp-filter (progn (org-agenda-filter-apply
org-agenda-regexp-filter 'regexp))) (if (get 'org-agenda-regexp-filter
:preset-filter) (progn (org-agenda-filter-apply (get
'org-agenda-regexp-filter :preset-filter) 'regexp))) (if
org-agenda-effort-filter (progn (org-agenda-filter-apply
org-agenda-effort-filter 'effort))) (if (get 'org-agenda-effort-filter
:preset-filter) (progn (org-agenda-filter-apply (get
'org-agenda-effort-filter :preset-filter) 'effort))) (add-hook
'kill-buffer-hook 'org-agenda-reset-markers 'append 'local))
  (let ((inhibit-read-only t)) (save-excursion (goto-char (point-min))
(save-excursion (while (org-activate-links (point-max)) (goto-char
(match-end 0)))) (if (eq org-agenda-remove-tags t) nil
(org-agenda-align-tags)) (if org-agenda-with-colors nil
(remove-text-properties (point-min) (point-max) '(face nil))) (if (and
(boundp 'org-overriding-columns-format) org-overriding-columns-format)
(progn (set (make-local-variable 'org-local-columns-format)
org-overriding-columns-format))) (if org-agenda-view-columns-initially
(progn (org-agenda-columns))) (if org-agenda-fontify-priorities (progn
(org-agenda-fontify-priorities))) (if (and org-agenda-dim-blocked-tasks
org-blocker-hook) (progn (org-agenda-dim-blocked-tasks)))
(org-agenda-mark-clocking-task) (if org-agenda-entry-text-mode (progn
(org-agenda-entry-text-hide) (org-agenda-entry-text-show))) (if (and
(featurep 'org-habit) (save-excursion (next-single-property-change
(point-min) 'org-habit-p))) (progn (org-habit-insert-consistency-graphs)))
(setq org-agenda-type (org-get-at-bol 'org-agenda-type)) (if (or (eq
org-agenda-show-inherited-tags 'always) (and (listp
org-agenda-show-inherited-tags) (memq org-agenda-type
org-agenda-show-inherited-tags)) (and (eq org-agenda-show-inherited-tags t)
(or (eq org-agenda-use-tag-inheritance t) (and (listp
org-agenda-use-tag-inheritance) (not ...))))) nil (let (mrk)
(save-excursion (goto-char (point-min)) (while (equal (forward-line) 0) (if
(setq mrk ...) (progn ...)))))) (setq org-agenda-represented-tags nil
org-agenda-represented-categories nil) (if org-agenda-top-headline-filter
(progn (org-agenda-filter-top-headline-apply
org-agenda-top-headline-filter))) (if org-agenda-tag-filter (progn
(org-agenda-filter-apply org-agenda-tag-filter 'tag t))) (if (get
'org-agenda-tag-filter :preset-filter) (progn (org-agenda-filter-apply (get
'org-agenda-tag-filter :preset-filter) 'tag t))) (if
org-agenda-category-filter (progn (org-agenda-filter-apply
org-agenda-category-filter 'category))) (if (get
'org-agenda-category-filter :preset-filter) (progn (org-agenda-filter-apply
(get 'org-agenda-category-filter :preset-filter) 'category))) (if
org-agenda-regexp-filter (progn (org-agenda-filter-apply
org-agenda-regexp-filter 'regexp))) (if (get 'org-agenda-regexp-filter
:preset-filter) (progn (org-agenda-filter-apply (get
'org-agenda-regexp-filter :preset-filter) 'regexp))) (if
org-agenda-effort-filter (progn (org-agenda-filter-apply
org-agenda-effort-filter 'effort))) (if (get 'org-agenda-effort-filter
:preset-filter) (progn (org-agenda-filter-apply (get
'org-agenda-effort-filter :preset-filter) 'effort))) (add-hook
'kill-buffer-hook 'org-agenda-reset-markers 'append 'local)) (run-hooks
'org-agenda-finalize-hook))
  (if org-agenda-multi nil (let ((inhibit-read-only t)) (save-excursion
(goto-char (point-min)) (save-excursion (while (org-activate-links
(point-max)) (goto-char (match-end 0)))) (if (eq org-agenda-remove-tags t)
nil (org-agenda-align-tags)) (if org-agenda-with-colors nil
(remove-text-properties (point-min) (point-max) '(face nil))) (if (and
(boundp 'org-overriding-columns-format) org-overriding-columns-format)
(progn (set (make-local-variable 'org-local-columns-format)
org-overriding-columns-format))) (if org-agenda-view-columns-initially
(progn (org-agenda-columns))) (if org-agenda-fontify-priorities (progn
(org-agenda-fontify-priorities))) (if (and org-agenda-dim-blocked-tasks
org-blocker-hook) (progn (org-agenda-dim-blocked-tasks)))
(org-agenda-mark-clocking-task) (if org-agenda-entry-text-mode (progn
(org-agenda-entry-text-hide) (org-agenda-entry-text-show))) (if (and
(featurep 'org-habit) (save-excursion (next-single-property-change
(point-min) 'org-habit-p))) (progn (org-habit-insert-consistency-graphs)))
(setq org-agenda-type (org-get-at-bol 'org-agenda-type)) (if (or (eq
org-agenda-show-inherited-tags 'always) (and (listp
org-agenda-show-inherited-tags) (memq org-agenda-type
org-agenda-show-inherited-tags)) (and (eq org-agenda-show-inherited-tags t)
(or (eq org-agenda-use-tag-inheritance t) (and ... ...)))) nil (let (mrk)
(save-excursion (goto-char (point-min)) (while (equal ... 0) (if ...
...))))) (setq org-agenda-represented-tags nil
org-agenda-represented-categories nil) (if org-agenda-top-headline-filter
(progn (org-agenda-filter-top-headline-apply
org-agenda-top-headline-filter))) (if org-agenda-tag-filter (progn
(org-agenda-filter-apply org-agenda-tag-filter 'tag t))) (if (get
'org-agenda-tag-filter :preset-filter) (progn (org-agenda-filter-apply (get
'org-agenda-tag-filter :preset-filter) 'tag t))) (if
org-agenda-category-filter (progn (org-agenda-filter-apply
org-agenda-category-filter 'category))) (if (get
'org-agenda-category-filter :preset-filter) (progn (org-agenda-filter-apply
(get 'org-agenda-category-filter :preset-filter) 'category))) (if
org-agenda-regexp-filter (progn (org-agenda-filter-apply
org-agenda-regexp-filter 'regexp))) (if (get 'org-agenda-regexp-filter
:preset-filter) (progn (org-agenda-filter-apply (get
'org-agenda-regexp-filter :preset-filter) 'regexp))) (if
org-agenda-effort-filter (progn (org-agenda-filter-apply
org-agenda-effort-filter 'effort))) (if (get 'org-agenda-effort-filter
:preset-filter) (progn (org-agenda-filter-apply (get
'org-agenda-effort-filter :preset-filter) 'effort))) (add-hook
'kill-buffer-hook 'org-agenda-reset-markers 'append 'local)) (run-hooks
'org-agenda-finalize-hook)))
  org-agenda-finalize()
  (let* ((span (org-agenda-ndays-to-span (or span org-agenda-span))) (today
(org-today)) (sd (or start-day today)) (ndays (org-agenda-span-to-ndays
span sd)) (org-agenda-start-on-weekday (and (or (eq ndays 7) (eq ndays 14))
org-agenda-start-on-weekday)) (thefiles (org-agenda-files nil 'ifmode))
(files thefiles) (start (if (or (null org-agenda-start-on-weekday) (< ndays
7)) sd (let* ((nt ...) (n1 org-agenda-start-on-weekday) (d ...)) (- sd (+
... d))))) (day-numbers (list start)) (day-cnt 0) (inhibit-redisplay (not
debug-on-error)) (org-agenda-show-log-scoped org-agenda-show-log) s e rtn
rtnall file date d start-pos end-pos todayp clocktable-start clocktable-end
filter) (setq org-agenda-redo-command (list 'org-agenda-list (list 'quote
arg) start-day (list 'quote span) with-hour)) (let ((--dotimes-limit-- (1-
ndays)) (n 0)) (while (< n --dotimes-limit--) (setq day-numbers (cons (1+
(car day-numbers)) day-numbers)) (setq n (1+ n)))) (setq day-numbers
(nreverse day-numbers)) (setq clocktable-start (car day-numbers)
clocktable-end (1+ (or (org-last day-numbers) 0))) (set
(make-local-variable 'org-starting-day) (car day-numbers)) (set
(make-local-variable 'org-arg-loc) arg) (set (make-local-variable
'org-agenda-current-span) (org-agenda-ndays-to-span span)) (if
org-agenda-compact-blocks nil (let* ((d1 (car day-numbers)) (d2 (org-last
day-numbers)) (w1 (org-days-to-iso-week d1)) (w2 (org-days-to-iso-week
d2))) (setq s (point)) (cond ((not org-agenda-overriding-header) (insert
(concat ... "-agenda" ... ":\n"))) ((equal org-agenda-overriding-header "")
nil) ((stringp org-agenda-overriding-header) (insert (propertize
org-agenda-overriding-header ... ...) "\n")) (t (user-error "Invalid value
for `org-agenda-overriding-hea..." org-agenda-overriding-header)))) (if (>
(point) s) (progn (add-text-properties s (1- (point)) (list 'face
'org-agenda-structure 'org-date-line t)) (org-agenda-mark-header-line s))))
(while (setq d (car-safe (prog1 day-numbers (setq day-numbers (cdr
day-numbers))))) (setq date (calendar-gregorian-from-absolute d) s (point))
(if (or (setq todayp (= d today)) (and (not start-pos) (= d sd))) (setq
start-pos (point)) (if (and start-pos (not end-pos)) (progn (setq end-pos
(point))))) (setq files thefiles rtnall nil) (while (setq file (car-safe
(prog1 files (setq files ...)))) (catch 'nextfile (org-check-agenda-file
file) (let ((org-agenda-entry-types org-agenda-entry-types)) (if (member
:deadline* org-agenda-entry-types) (progn ...)) (if (member :scheduled*
org-agenda-entry-types) (progn ...)) (if with-hour (progn ... ...)) (if
org-agenda-include-deadlines nil (setq org-agenda-entry-types ...)) (cond
(... ...) (org-agenda-show-log-scoped ...) (t ...))) (setq rtnall (append
rtnall rtn)))) (if org-agenda-include-diary (progn (let
((org-agenda-search-headline-for-time t)) (require 'diary-lib) (setq rtn
(org-get-entries-from-diary date)) (setq rtnall (append rtnall rtn))))) (if
(or rtnall org-agenda-show-all-dates) (progn (setq day-cnt (1+ day-cnt))
(insert (if (stringp org-agenda-format-date) (format-time-string
org-agenda-format-date ...) (funcall org-agenda-format-date date)) "\n")
(put-text-property s (1- (point)) 'face (org-agenda-get-day-face date))
(put-text-property s (1- (point)) 'org-date-line t) (put-text-property s
(1- (point)) 'org-agenda-date-header t) (put-text-property s (1- (point))
'org-day-cnt day-cnt) (if todayp (progn (put-text-property s ... ... t)))
(setq rtnall (org-agenda-add-time-grid-maybe rtnall ndays todayp)) (if
rtnall (progn (insert ... "\n"))) (put-text-property s (1- (point)) 'day d)
(put-text-property s (1- (point)) 'org-day-cnt day-cnt)))) (if (and
org-agenda-clockreport-mode clocktable-start) (progn (let
((org-agenda-files (org-agenda-files nil ...)) (p (copy-sequence
org-agenda-clockreport-parameter-plist)) tbl) (setq p (org-plist-delete p
:block)) (setq p (plist-put p :tstart clocktable-start)) (setq p (plist-put
p :tend clocktable-end)) (setq p (plist-put p :scope 'agenda)) (setq tbl
(apply 'org-clock-get-clocktable p)) (insert tbl)))) (goto-char
(point-min)) (or org-agenda-multi (org-agenda-fit-window-to-buffer)) (if
(or (not (get-buffer-window org-agenda-buffer-name)) (and
(pos-visible-in-window-p (point-min)) (pos-visible-in-window-p
(point-max)))) nil (goto-char (1- (point-max))) (recenter -1) (if (not
(pos-visible-in-window-p (or start-pos 1))) (progn (goto-char (or start-pos
1)) (recenter 1)))) (goto-char (or start-pos 1)) (add-text-properties
(point-min) (point-max) (list 'org-agenda-type 'agenda 'org-last-args (list
arg start-day span) 'org-redo-cmd org-agenda-redo-command 'org-series-cmd
org-cmd)) (if (eq org-agenda-show-log-scoped 'clockcheck) (progn
(org-agenda-show-clocking-issues))) (org-agenda-finalize) (setq
buffer-read-only t) (message ""))
  (catch 'exit (setq org-agenda-buffer-name (or org-agenda-buffer-tmp-name
(and org-agenda-doing-sticky-redo org-agenda-buffer-name) (if
org-agenda-sticky (progn (cond (... ...) (org-keys ...) (t "*Org
Agenda(a)*")))) "*Org Agenda*")) (org-agenda-prepare "Day/Week") (setq
start-day (or start-day org-agenda-start-day)) (if (stringp start-day)
(progn (setq start-day (time-to-days (org-read-date nil t start-day)))))
(org-compile-prefix-format 'agenda) (org-set-sorting-strategy 'agenda)
(let* ((span (org-agenda-ndays-to-span (or span org-agenda-span))) (today
(org-today)) (sd (or start-day today)) (ndays (org-agenda-span-to-ndays
span sd)) (org-agenda-start-on-weekday (and (or (eq ndays 7) (eq ndays 14))
org-agenda-start-on-weekday)) (thefiles (org-agenda-files nil 'ifmode))
(files thefiles) (start (if (or (null org-agenda-start-on-weekday) (< ndays
7)) sd (let* (... ... ...) (- sd ...)))) (day-numbers (list start))
(day-cnt 0) (inhibit-redisplay (not debug-on-error))
(org-agenda-show-log-scoped org-agenda-show-log) s e rtn rtnall file date d
start-pos end-pos todayp clocktable-start clocktable-end filter) (setq
org-agenda-redo-command (list 'org-agenda-list (list 'quote arg) start-day
(list 'quote span) with-hour)) (let ((--dotimes-limit-- (1- ndays)) (n 0))
(while (< n --dotimes-limit--) (setq day-numbers (cons (1+ ...)
day-numbers)) (setq n (1+ n)))) (setq day-numbers (nreverse day-numbers))
(setq clocktable-start (car day-numbers) clocktable-end (1+ (or (org-last
day-numbers) 0))) (set (make-local-variable 'org-starting-day) (car
day-numbers)) (set (make-local-variable 'org-arg-loc) arg) (set
(make-local-variable 'org-agenda-current-span) (org-agenda-ndays-to-span
span)) (if org-agenda-compact-blocks nil (let* ((d1 (car day-numbers)) (d2
(org-last day-numbers)) (w1 (org-days-to-iso-week d1)) (w2
(org-days-to-iso-week d2))) (setq s (point)) (cond ((not
org-agenda-overriding-header) (insert ...)) ((equal
org-agenda-overriding-header "") nil) ((stringp
org-agenda-overriding-header) (insert ... "\n")) (t (user-error "Invalid
value for `org-agenda-overriding-hea..." org-agenda-overriding-header))))
(if (> (point) s) (progn (add-text-properties s (1- ...) (list ... ... ...
t)) (org-agenda-mark-header-line s)))) (while (setq d (car-safe (prog1
day-numbers (setq day-numbers ...)))) (setq date
(calendar-gregorian-from-absolute d) s (point)) (if (or (setq todayp (= d
today)) (and (not start-pos) (= d sd))) (setq start-pos (point)) (if (and
start-pos (not end-pos)) (progn (setq end-pos ...)))) (setq files thefiles
rtnall nil) (while (setq file (car-safe (prog1 files ...))) (catch
'nextfile (org-check-agenda-file file) (let (...) (if ... ...) (if ... ...)
(if with-hour ...) (if org-agenda-include-deadlines nil ...) (cond ... ...
...)) (setq rtnall (append rtnall rtn)))) (if org-agenda-include-diary
(progn (let (...) (require ...) (setq rtn ...) (setq rtnall ...)))) (if (or
rtnall org-agenda-show-all-dates) (progn (setq day-cnt (1+ day-cnt))
(insert (if ... ... ...) "\n") (put-text-property s (1- ...) 'face
(org-agenda-get-day-face date)) (put-text-property s (1- ...)
'org-date-line t) (put-text-property s (1- ...) 'org-agenda-date-header t)
(put-text-property s (1- ...) 'org-day-cnt day-cnt) (if todayp (progn ...))
(setq rtnall (org-agenda-add-time-grid-maybe rtnall ndays todayp)) (if
rtnall (progn ...)) (put-text-property s (1- ...) 'day d)
(put-text-property s (1- ...) 'org-day-cnt day-cnt)))) (if (and
org-agenda-clockreport-mode clocktable-start) (progn (let
((org-agenda-files ...) (p ...) tbl) (setq p (org-plist-delete p :block))
(setq p (plist-put p :tstart clocktable-start)) (setq p (plist-put p :tend
clocktable-end)) (setq p (plist-put p :scope ...)) (setq tbl (apply ... p))
(insert tbl)))) (goto-char (point-min)) (or org-agenda-multi
(org-agenda-fit-window-to-buffer)) (if (or (not (get-buffer-window
org-agenda-buffer-name)) (and (pos-visible-in-window-p (point-min))
(pos-visible-in-window-p (point-max)))) nil (goto-char (1- (point-max)))
(recenter -1) (if (not (pos-visible-in-window-p (or start-pos 1))) (progn
(goto-char (or start-pos 1)) (recenter 1)))) (goto-char (or start-pos 1))
(add-text-properties (point-min) (point-max) (list 'org-agenda-type 'agenda
'org-last-args (list arg start-day span) 'org-redo-cmd
org-agenda-redo-command 'org-series-cmd org-cmd)) (if (eq
org-agenda-show-log-scoped 'clockcheck) (progn
(org-agenda-show-clocking-issues))) (org-agenda-finalize) (setq
buffer-read-only t) (message "")))
  org-agenda-list(nil nil day nil)
  (let nil (org-agenda-list 'nil nil 'day nil))
  eval((let nil (org-agenda-list 'nil nil 'day nil)))
  org-let(nil (org-agenda-list 'nil nil 'day nil))
  (if series-redo-cmd (eval series-redo-cmd) (org-let lprops redo-cmd))
  (let* ((p (or (and (looking-at "\\'") (1- (point))) (point))) (cpa (if
(eq all t) nil current-prefix-arg)) (org-agenda-doing-sticky-redo
org-agenda-sticky) (org-agenda-sticky nil) (org-agenda-buffer-name (or
org-agenda-this-buffer-name org-agenda-buffer-name)) (org-agenda-keep-modes
t) (tag-filter org-agenda-tag-filter) (tag-preset (get
'org-agenda-tag-filter :preset-filter)) (top-hl-filter
org-agenda-top-headline-filter) (cat-filter org-agenda-category-filter)
(cat-preset (get 'org-agenda-category-filter :preset-filter)) (re-filter
org-agenda-regexp-filter) (re-preset (get 'org-agenda-regexp-filter
:preset-filter)) (effort-filter org-agenda-effort-filter) (effort-preset
(get 'org-agenda-effort-filter :preset-filter))
(org-agenda-tag-filter-while-redo (or tag-filter tag-preset)) (cols
org-agenda-columns-active) (line (org-current-line)) (window-line (- line
(org-current-line (window-start)))) (lprops (get 'org-agenda-redo-command
'org-lprops)) (redo-cmd (get-text-property p 'org-redo-cmd)) (last-args
(get-text-property p 'org-last-args)) (org-agenda-overriding-cmd
(get-text-property p 'org-series-cmd)) (org-agenda-overriding-cmd-arguments
(if (eq all t) nil (cond ((listp last-args) (cons (or cpa ...) (cdr
last-args))) ((stringp last-args) last-args)))) (series-redo-cmd
(get-text-property p 'org-series-redo-cmd))) (put 'org-agenda-tag-filter
:preset-filter nil) (put 'org-agenda-category-filter :preset-filter nil)
(put 'org-agenda-regexp-filter :preset-filter nil) (put
'org-agenda-effort-filter :preset-filter nil) (and cols (org-columns-quit))
(message "Rebuilding agenda buffer...") (if series-redo-cmd (eval
series-redo-cmd) (org-let lprops redo-cmd)) (setq org-agenda-undo-list nil
org-agenda-pending-undo-list nil org-agenda-tag-filter tag-filter
org-agenda-category-filter cat-filter org-agenda-regexp-filter re-filter
org-agenda-effort-filter effort-filter org-agenda-top-headline-filter
top-hl-filter) (message "Rebuilding agenda buffer...done") (put
'org-agenda-tag-filter :preset-filter tag-preset) (put
'org-agenda-category-filter :preset-filter cat-preset) (put
'org-agenda-regexp-filter :preset-filter re-preset) (put
'org-agenda-effort-filter :preset-filter effort-preset) (let ((tag (or
tag-filter tag-preset)) (cat (or cat-filter cat-preset)) (effort (or
effort-filter effort-preset)) (re (or re-filter re-preset))) (if tag (progn
(org-agenda-filter-apply tag 'tag t))) (if cat (progn
(org-agenda-filter-apply cat 'category))) (if effort (progn
(org-agenda-filter-apply effort 'effort))) (if re (progn
(org-agenda-filter-apply re 'regexp)))) (and top-hl-filter
(org-agenda-filter-top-headline-apply top-hl-filter)) (and cols
(called-interactively-p 'any) (org-agenda-columns)) (org-goto-line line)
(recenter window-line))
  org-agenda-redo(t)
  (if exhaustive (let ((--dolist-tail-- (buffer-list)) buffer) (while
--dolist-tail-- (setq buffer (car --dolist-tail--)) (save-current-buffer
(set-buffer buffer) (if (derived-mode-p 'org-agenda-mode) (progn
(org-agenda-redo t)))) (setq --dolist-tail-- (cdr --dolist-tail--))))
(org-agenda-redo t))
  org-agenda-redo-all(nil)
  funcall-interactively(org-agenda-redo-all nil)
  call-interactively(org-agenda-redo-all nil nil)
  command-execute(org-agenda-redo-all)
```

[stardiviner]           <Hack this world!>      GPG key ID: 47C32433
IRC(freeenode): stardiviner                     Twitter:  @numbchild
Key fingerprint = 9BAA 92BC CDDD B9EF 3B36  CB99 B8C4 B8E5 47C3 2433
Blog: http://stardiviner.github.io/


On Fri, Aug 14, 2020 at 1:15 PM Ihor Radchenko <yantar92@gmail.com> wrote:

> > I want to get around this problem. So need to know how to detect
> currently
> > in logbook drawer or something else which used to record clocking note,
> > `org-add-note`, etc.
>
> You may try to use `org-logbook-drawer-re'.
>
> > When I toggle org-log-mode and related options in org-agenda buffer. I
> > found my org-link-beautify will caused long time suspend and no stop.
> After
> > debug, I found org-link-beautify text-property caused this problem.
>
> Could you provide more details how your text property is causing the
> problem in org-agenda? Which function in agenda is slow?
>
> Best,
> Ihor
>
>
> "numbchild@gmail.com" <numbchild@gmail.com> writes:
>
> > I have a org-mode extension:
> >
> https://github.com/stardiviner/org-link-beautify/blob/master/org-link-beautify.el#L71
> >
> > It will beautify links with text-properties.
> >
> > When I toggle org-log-mode and related options in org-agenda buffer. I
> > found my org-link-beautify will caused long time suspend and no stop.
> After
> > debug, I found org-link-beautify text-property caused this problem.
> >
> > I want to get around this problem. So need to know how to detect
> currently
> > in logbook drawer or something else which used to record clocking note,
> > `org-add-note`, etc.
> >
> > Or maybe org-agenda upstream can do something to work around this
> > text-properties issue?
> >
> > [stardiviner]           <Hack this world!>      GPG key ID: 47C32433
> > IRC(freeenode): stardiviner                     Twitter:  @numbchild
> > Key fingerprint = 9BAA 92BC CDDD B9EF 3B36  CB99 B8C4 B8E5 47C3 2433
> > Blog: http://stardiviner.github.io/
>

[-- Attachment #2: Type: text/html, Size: 28215 bytes --]

  reply	other threads:[~2020-08-15 16:43 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-14  4:46 How to detect current in logbook drawer? numbchild
2020-08-14  5:14 ` Ihor Radchenko
2020-08-15  5:12   ` numbchild [this message]
2020-08-15  6:01     ` Ihor Radchenko
2020-08-16  3:55       ` numbchild
2020-08-16  6:38         ` Ihor Radchenko
2020-08-17  0:38           ` numbchild
2020-08-17  0:46             ` numbchild
2020-08-17  1:49             ` Ihor Radchenko
2020-08-17  3:13               ` numbchild
2020-08-16  3:57       ` numbchild
2020-08-15  5:34   ` numbchild
2020-08-15  6:06     ` Ihor Radchenko

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=CAL1eYuKgdcOXzsvQaAAg5fUBp6qfKPiJeT5xU78kTcO0gG8_rQ@mail.gmail.com \
    --to=numbchild@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=yantar92@gmail.com \
    /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).