From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id gPXSDLf+N1+hQAAA0tVLHw (envelope-from ) for ; Sat, 15 Aug 2020 15:26:47 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id eCOsCLf+N18icAAAB5/wlQ (envelope-from ) for ; Sat, 15 Aug 2020 15:26:47 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 92FEF9402C8 for ; Sat, 15 Aug 2020 15:26:46 +0000 (UTC) Received: from localhost ([::1]:58662 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k6y4z-0006KY-0U for larch@yhetil.org; Sat, 15 Aug 2020 11:26:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60780) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6xz2-0007EM-Im for emacs-orgmode@gnu.org; Sat, 15 Aug 2020 11:20:36 -0400 Received: from mail-qt1-x832.google.com ([2607:f8b0:4864:20::832]:39182) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k6xyz-0002Ja-H9 for emacs-orgmode@gnu.org; Sat, 15 Aug 2020 11:20:36 -0400 Received: by mail-qt1-x832.google.com with SMTP id w9so9185323qts.6 for ; Sat, 15 Aug 2020 08:20:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:in-reply-to:references:date:message-id :mime-version; bh=Y7z/23y/u8SnT/+F6gnKqm0GhVbSf6VSZxeK6GRhrWk=; b=OvQGVpc2oTTT9KOLGXD1BHvuZc+36utlftc7t6wnDGgzgJlJQgZ5k14G/wqitIKvyn F9dlizCso1gJd0SfJoDxg/Wqo1Qe75+GDWAgWZ1I+0TJN5mjOt37WmwAgEcImfTZALaR ppl1LZFOfxqcpXo2jDmvqywUbwp0DpdEGIgP6TOJXlPcNe4vt1duU2EEZBV2ozff1cvN WGkFzeGxEnxd510wFnOf/wz6f7KAexXQnMX6OH3ZGG/ufqQJUdzWJ91h3oQQUNDk41iQ zBdA+qKkx0P91xorBseNSYpuvsUAyV6AI5dxFopN7l84Z+Ka3gacvmWdqzhQWrUphM3t I4xA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version; bh=Y7z/23y/u8SnT/+F6gnKqm0GhVbSf6VSZxeK6GRhrWk=; b=V2zZ3SuA0DcDsWUjjb3t0ly/4QZgVXXDOIbGC63BQjxxribLwgyAbahV9ojcj+IfEg PX5ZORVks0iCfdwD6bmbkPbxneVT5sJIwEh/PsKo4VwpEwCOYzzsN3p3/6Vf1TfdPJSw N8034kdAMhMHZ+d8d1kzYgL8DemfWpcHENqahzFxNvXGdM6XiZJucG1bopMxYWwDwwLd 8A5vjJnEimf9JhhXm+v8V6SJTkf+ZeEzRfX40vRdsApzI/m06PORDABDOzy3EKS3FjHi DCJkfoK6CG7u0IX305D9Hwpp11L+2fWEizGig3pjXhiw3HeIeQEKOYwRFUO3UdIR9Tz/ 6EAw== X-Gm-Message-State: AOAM533Ftw1avGHtDYmHHXBfUjEY0hM3DF0a07bjQ5BS2WTe0+2TINp/ Nkd8Mi+tF+aJczfb1v1VkIRguZf41+JRDQ== X-Google-Smtp-Source: ABdhPJxnZPM3eIbRhMDW0FAbqBkjxDGGuEyy+URtTmW0E+R+Tdpex7DvN3WeudLqVcHIwZ3heHXA9g== X-Received: by 2002:ac8:4c9a:: with SMTP id j26mr5055342qtv.373.1597471363611; Fri, 14 Aug 2020 23:02:43 -0700 (PDT) Received: from localhost ([208.167.241.222]) by smtp.gmail.com with ESMTPSA id k24sm12715659qtb.26.2020.08.14.23.02.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2020 23:02:42 -0700 (PDT) From: Ihor Radchenko To: "numbchild@gmail.com" Subject: Re: How to detect current in logbook drawer? In-Reply-To: References: <877du1olkf.fsf@localhost> Date: Sat, 15 Aug 2020 14:01:43 +0800 Message-ID: <87v9hktpko.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::832; envelope-from=yantar92@gmail.com; helo=mail-qt1-x832.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -7 X-Spam_score: -0.8 X-Spam_bar: / X-Spam_report: (-0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, FREEMAIL_REPLY=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Org-mode Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=OvQGVpc2; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: 3.79 X-TUID: cq8lMcSyiI6g >Here is the backtrace of "toggle-debug-on-quit" when I refresh org-agenda >but has long time suspend. That looks unreadable for me. Also, debug on quit may not show the problematic part depending on your luck. It would be easier to understand your problem if you provided the profiler report (M-x profiler-start ... M-x profiler-report). Then, you could debug-on-entry using the problematic part according to the profiler report. A blind guess - maybe you are modifying match data somewhere in your code. This might cause infinite loop in > (while (org-activate-links (point-max)) (goto-char (match-end 0))) Best, Ihor "numbchild@gmail.com" writes: > 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] 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 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" 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] 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/ >>