From 5775848b8a89ddb970f9d77c706f261e95638e9b Mon Sep 17 00:00:00 2001 From: Adam Porter Date: Sat, 16 Dec 2023 03:56:58 -0600 Subject: [PATCH 1/3] Meta: v0.7.4-pre --- README.org | 4 + org-ql.el | 2 +- org-ql.info | 207 +++++++++++++++++++++++++++------------------------- 3 files changed, 114 insertions(+), 99 deletions(-) diff --git a/README.org b/README.org index b8893e0..3fa1607 100644 --- a/README.org +++ b/README.org @@ -542,6 +542,10 @@ Simple links may also be written manually in either sexp or non-sexp form, like: /Note:/ Breaking changes may be made before version 1.0, but in the event of major changes, attempts at backward compatibility will be made with obsolescence declarations, translation of arguments, etc. Users who need stability guarantees before 1.0 may choose to use tagged stable releases. +** 0.7.4-pre + +Nothing new yet. + ** 0.7.3 *Fixes* diff --git a/org-ql.el b/org-ql.el index 1bf1900..568225d 100644 --- a/org-ql.el +++ b/org-ql.el @@ -4,7 +4,7 @@ ;; Author: Adam Porter ;; Url: https://github.com/alphapapa/org-ql -;; Version: 0.7.3 +;; Version: 0.7.4-pre ;; Package-Requires: ((emacs "26.1") (dash "2.18.1") (f "0.17.2") (map "2.1") (org "9.0") (org-super-agenda "1.2") (ov "1.0.6") (peg "1.0.1") (s "1.12.0") (transient "0.1") (ts "0.2-pre")) ;; Keywords: hypermedia, outlines, Org, agenda diff --git a/org-ql.info b/org-ql.info index 94eb443..998316a 100644 --- a/org-ql.info +++ b/org-ql.info @@ -71,6 +71,7 @@ Functions / Macros Changelog +* 0.7.4-pre: 074-pre. * 0.7.3: 073. * 0.7.2: 072. * 0.7.1: 071. @@ -993,6 +994,7 @@ releases. * Menu: +* 0.7.4-pre: 074-pre. * 0.7.3: 073. * 0.7.2: 072. * 0.7.1: 071. @@ -1024,9 +1026,17 @@ releases. * 0.1: 01.  -File: README.info, Node: 073, Next: 072, Up: Changelog +File: README.info, Node: 074-pre, Next: 073, Up: Changelog -5.1 0.7.3 +5.1 0.7.4-pre +============= + +Nothing new yet. + + +File: README.info, Node: 073, Next: 072, Prev: 074-pre, Up: Changelog + +5.2 0.7.3 ========= *Fixes* @@ -1044,7 +1054,7 @@ File: README.info, Node: 073, Next: 072, Up: Changelog  File: README.info, Node: 072, Next: 071, Prev: 073, Up: Changelog -5.2 0.7.2 +5.3 0.7.2 ========= *Fixes* @@ -1065,7 +1075,7 @@ File: README.info, Node: 072, Next: 071, Prev: 073, Up: Changelog  File: README.info, Node: 071, Next: 07, Prev: 072, Up: Changelog -5.3 0.7.1 +5.4 0.7.1 ========= *Fixes* @@ -1084,7 +1094,7 @@ File: README.info, Node: 071, Next: 07, Prev: 072, Up: Changelog  File: README.info, Node: 07, Next: 063, Prev: 071, Up: Changelog -5.4 0.7 +5.5 0.7 ======= *Added* @@ -1144,7 +1154,7 @@ File: README.info, Node: 07, Next: 063, Prev: 071, Up: Changelog  File: README.info, Node: 063, Next: 062, Prev: 07, Up: Changelog -5.5 0.6.3 +5.6 0.6.3 ========= *Fixed* @@ -1160,7 +1170,7 @@ File: README.info, Node: 063, Next: 062, Prev: 07, Up: Changelog  File: README.info, Node: 062, Next: 061, Prev: 063, Up: Changelog -5.6 0.6.2 +5.7 0.6.2 ========= *Fixed* @@ -1171,7 +1181,7 @@ File: README.info, Node: 062, Next: 061, Prev: 063, Up: Changelog  File: README.info, Node: 061, Next: 06, Prev: 062, Up: Changelog -5.7 0.6.1 +5.8 0.6.1 ========= *Fixed* @@ -1189,7 +1199,7 @@ File: README.info, Node: 061, Next: 06, Prev: 062, Up: Changelog  File: README.info, Node: 06, Next: 052, Prev: 061, Up: Changelog -5.8 0.6 +5.9 0.6 ======= *Added* @@ -1256,8 +1266,8 @@ File: README.info, Node: 06, Next: 052, Prev: 061, Up: Changelog  File: README.info, Node: 052, Next: 051, Prev: 06, Up: Changelog -5.9 0.5.2 -========= +5.10 0.5.2 +========== *Fixed* • Predicate ‘link’’s ‘:target’ and ‘:regexp-p’ arguments. (#220 @@ -1267,7 +1277,7 @@ File: README.info, Node: 052, Next: 051, Prev: 06, Up: Changelog  File: README.info, Node: 051, Next: 05, Prev: 052, Up: Changelog -5.10 0.5.1 +5.11 0.5.1 ========== *Fixed* @@ -1280,7 +1290,7 @@ File: README.info, Node: 051, Next: 05, Prev: 052, Up: Changelog  File: README.info, Node: 05, Next: 049, Prev: 051, Up: Changelog -5.11 0.5 +5.12 0.5 ======== *Added* @@ -1321,7 +1331,7 @@ File: README.info, Node: 05, Next: 049, Prev: 051, Up: Changelog  File: README.info, Node: 049, Next: 048, Prev: 05, Up: Changelog -5.12 0.4.9 +5.13 0.4.9 ========== *Fixed* @@ -1332,7 +1342,7 @@ File: README.info, Node: 049, Next: 048, Prev: 05, Up: Changelog  File: README.info, Node: 048, Next: 047, Prev: 049, Up: Changelog -5.13 0.4.8 +5.14 0.4.8 ========== *Fixed* @@ -1344,7 +1354,7 @@ File: README.info, Node: 048, Next: 047, Prev: 049, Up: Changelog  File: README.info, Node: 047, Next: 046, Prev: 048, Up: Changelog -5.14 0.4.7 +5.15 0.4.7 ========== *Fixed* @@ -1357,7 +1367,7 @@ File: README.info, Node: 047, Next: 046, Prev: 048, Up: Changelog  File: README.info, Node: 046, Next: 045, Prev: 047, Up: Changelog -5.15 0.4.6 +5.16 0.4.6 ========== *Fixed* @@ -1370,7 +1380,7 @@ File: README.info, Node: 046, Next: 045, Prev: 047, Up: Changelog  File: README.info, Node: 045, Next: 044, Prev: 046, Up: Changelog -5.16 0.4.5 +5.17 0.4.5 ========== *Fixed* @@ -1382,7 +1392,7 @@ File: README.info, Node: 045, Next: 044, Prev: 046, Up: Changelog  File: README.info, Node: 044, Next: 043, Prev: 045, Up: Changelog -5.17 0.4.4 +5.18 0.4.4 ========== *Fixed* @@ -1394,7 +1404,7 @@ File: README.info, Node: 044, Next: 043, Prev: 045, Up: Changelog  File: README.info, Node: 043, Next: 042, Prev: 044, Up: Changelog -5.18 0.4.3 +5.19 0.4.3 ========== *Fixed* @@ -1404,7 +1414,7 @@ File: README.info, Node: 043, Next: 042, Prev: 044, Up: Changelog  File: README.info, Node: 042, Next: 041, Prev: 043, Up: Changelog -5.19 0.4.2 +5.20 0.4.2 ========== *Fixed* @@ -1413,7 +1423,7 @@ File: README.info, Node: 042, Next: 041, Prev: 043, Up: Changelog  File: README.info, Node: 041, Next: 04, Prev: 042, Up: Changelog -5.20 0.4.1 +5.21 0.4.1 ========== *Fixed* @@ -1423,7 +1433,7 @@ File: README.info, Node: 041, Next: 04, Prev: 042, Up: Changelog  File: README.info, Node: 04, Next: 032, Prev: 041, Up: Changelog -5.21 0.4 +5.22 0.4 ======== _Note:_ The next release, 0.5, may include changes which will require @@ -1504,7 +1514,7 @@ automatically, as they will be pushed to the ‘master’ branch when ready.  File: README.info, Node: 032, Next: 031, Prev: 04, Up: Changelog -5.22 0.3.2 +5.23 0.3.2 ========== *Fixed* @@ -1517,7 +1527,7 @@ File: README.info, Node: 032, Next: 031, Prev: 04, Up: Changelog  File: README.info, Node: 031, Next: 03, Prev: 032, Up: Changelog -5.23 0.3.1 +5.24 0.3.1 ========== *Fixed* @@ -1527,7 +1537,7 @@ File: README.info, Node: 031, Next: 03, Prev: 032, Up: Changelog  File: README.info, Node: 03, Next: 023, Prev: 031, Up: Changelog -5.24 0.3 +5.25 0.3 ======== *Added* @@ -1595,7 +1605,7 @@ File: README.info, Node: 03, Next: 023, Prev: 031, Up: Changelog  File: README.info, Node: 023, Next: 022, Prev: 03, Up: Changelog -5.25 0.2.3 +5.26 0.2.3 ========== *Fixed* @@ -1605,7 +1615,7 @@ File: README.info, Node: 023, Next: 022, Prev: 03, Up: Changelog  File: README.info, Node: 022, Next: 021, Prev: 023, Up: Changelog -5.26 0.2.2 +5.27 0.2.2 ========== *Fixed* @@ -1616,7 +1626,7 @@ File: README.info, Node: 022, Next: 021, Prev: 023, Up: Changelog  File: README.info, Node: 021, Next: 02, Prev: 022, Up: Changelog -5.27 0.2.1 +5.28 0.2.1 ========== *Fixed* @@ -1626,7 +1636,7 @@ File: README.info, Node: 021, Next: 02, Prev: 022, Up: Changelog  File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog -5.28 0.2 +5.29 0.2 ======== *Added* @@ -1709,7 +1719,7 @@ File: README.info, Node: 02, Next: 01, Prev: 021, Up: Changelog  File: README.info, Node: 01, Prev: 02, Up: Changelog -5.29 0.1 +5.30 0.1 ======== First tagged release. @@ -1767,73 +1777,74 @@ GPLv3  Tag Table: Node: Top225 -Node: Contents1805 -Node: Screenshots1928 -Node: Installation2046 -Node: Quelpa2560 -Node: Helm support3088 -Node: Usage3491 -Node: Commands3889 -Node: org-ql-find4333 -Node: org-ql-refile4799 -Node: org-ql-search5122 -Node: helm-org-ql6818 -Node: org-ql-view7196 -Node: org-ql-view-sidebar7726 -Node: org-ql-view-recent-items8106 -Node: org-ql-sparse-tree8602 -Node: Queries9402 -Node: Non-sexp query syntax10519 -Node: General predicates12278 -Node: Ancestor/descendant predicates19265 -Node: Date/time predicates20393 -Node: Functions / Macros23517 -Node: Agenda-like views23815 -Ref: Function org-ql-block23977 -Node: Listing / acting-on results25238 -Ref: Caching25446 -Ref: Function org-ql-select26359 -Ref: Function org-ql-query28785 -Ref: Macro org-ql (deprecated)30559 -Node: Custom predicates30874 -Ref: Macro org-ql-defpred31098 -Node: Dynamic block34539 -Node: Links37263 -Node: Tips37950 -Node: Changelog38274 -Node: 07339065 -Node: 07239785 -Node: 07140704 -Node: 0741513 -Node: 06344437 -Node: 06244968 -Node: 06145273 -Node: 0645841 -Node: 05248895 -Node: 05149195 -Node: 0549620 -Node: 04951151 -Node: 04851433 -Node: 04751782 -Node: 04652191 -Node: 04552599 -Node: 04452960 -Node: 04353319 -Node: 04253522 -Node: 04153683 -Node: 0453930 -Node: 03258031 -Node: 03158434 -Node: 0358631 -Node: 02361931 -Node: 02262165 -Node: 02162445 -Node: 0262650 -Node: 0166728 -Node: Notes66829 -Node: Comparison with Org Agenda searches66991 -Node: org-sidebar67880 -Node: License68159 +Node: Contents1827 +Node: Screenshots1950 +Node: Installation2068 +Node: Quelpa2582 +Node: Helm support3110 +Node: Usage3513 +Node: Commands3911 +Node: org-ql-find4355 +Node: org-ql-refile4821 +Node: org-ql-search5144 +Node: helm-org-ql6840 +Node: org-ql-view7218 +Node: org-ql-view-sidebar7748 +Node: org-ql-view-recent-items8128 +Node: org-ql-sparse-tree8624 +Node: Queries9424 +Node: Non-sexp query syntax10541 +Node: General predicates12300 +Node: Ancestor/descendant predicates19287 +Node: Date/time predicates20415 +Node: Functions / Macros23539 +Node: Agenda-like views23837 +Ref: Function org-ql-block23999 +Node: Listing / acting-on results25260 +Ref: Caching25468 +Ref: Function org-ql-select26381 +Ref: Function org-ql-query28807 +Ref: Macro org-ql (deprecated)30581 +Node: Custom predicates30896 +Ref: Macro org-ql-defpred31120 +Node: Dynamic block34561 +Node: Links37285 +Node: Tips37972 +Node: Changelog38296 +Node: 074-pre39109 +Node: 07339221 +Node: 07239957 +Node: 07140876 +Node: 0741685 +Node: 06344609 +Node: 06245140 +Node: 06145445 +Node: 0646013 +Node: 05249067 +Node: 05149369 +Node: 0549794 +Node: 04951325 +Node: 04851607 +Node: 04751956 +Node: 04652365 +Node: 04552773 +Node: 04453134 +Node: 04353493 +Node: 04253696 +Node: 04153857 +Node: 0454104 +Node: 03258205 +Node: 03158608 +Node: 0358805 +Node: 02362105 +Node: 02262339 +Node: 02162619 +Node: 0262824 +Node: 0166902 +Node: Notes67003 +Node: Comparison with Org Agenda searches67165 +Node: org-sidebar68054 +Node: License68333  End Tag Table From 7a6b622cd025d0244e10bf11758001335d64eb02 Mon Sep 17 00:00:00 2001 From: Adam Porter Date: Sat, 16 Dec 2023 03:57:35 -0600 Subject: [PATCH 2/3] Fix: Ignore empty quoted strings when parsing string queries Fixes #383. Reported-by: Adam Porter --- README.org | 3 ++- org-ql.el | 18 ++++++++++++++++-- tests/test-org-ql.el | 8 ++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/README.org b/README.org index 3fa1607..ba7ad9d 100644 --- a/README.org +++ b/README.org @@ -544,7 +544,8 @@ Simple links may also be written manually in either sexp or non-sexp form, like: ** 0.7.4-pre -Nothing new yet. +*Fixes* ++ Ignore empty quoted strings in plain-string queries ([[https://github.com/alphapapa/org-ql/issues/383][#383]]). ** 0.7.3 diff --git a/org-ql.el b/org-ql.el index 568225d..96a3235 100644 --- a/org-ql.el +++ b/org-ql.el @@ -285,6 +285,11 @@ Matches with or without time.") :link '(custom-manual "(org-ql)Usage") :link '(url-link "https://github.com/alphapapa/org-ql")) +(defcustom org-ql-signal-peg-failure nil + "Signal an error when parsing a plain-string query fails. +This should only be enabled while debugging." + :type 'boolean) + (defcustom org-ql-ask-unsafe-queries t "Ask before running a query that could run arbitrary code. Org QL queries in sexp form can contain arbitrary expressions. @@ -950,7 +955,7 @@ value of `org-ql-predicates')." (term (or (and negation (list positive-term) ;; This is a bit confusing, but it seems to work. There's probably a better way. `(pred -- (list 'not (car pred)))) - positive-term)) + positive-term empty-quote)) (positive-term (or (and predicate-with-args `(pred args -- (cons (intern pred) args))) (and predicate-without-args `(pred -- (list (intern pred)))) (and plain-string `(s -- (list org-ql-default-predicate s))))) @@ -963,6 +968,12 @@ value of `org-ql-predicates')." (keyword (substring (+ (not (or separator "=" "\"" (syntax-class whitespace))) (any)))) (quoted-arg "\"" (substring (+ (not (or separator "\"")) (any))) "\"") (unquoted-arg (substring (+ (not (or separator "\"" (syntax-class whitespace))) (any)))) + (empty-quote + ;; This avoids aborting parsing or signaling an + ;; error if the user types in two successive + ;; quotation marks while typing a query (e.g. when + ;; using electric-pair-mode). + "\"\"") (negation "!") (separator "," ))) (closure (lambda (input &optional boolean) @@ -983,7 +994,10 @@ value of `org-ql-predicates')." ;; have to borrow some code. It ends up that we only have to ;; borrow this `with-peg-rules' call, which isn't too bad. (eval `(with-peg-rules ,pexs - (peg-run (peg ,(caar pexs)) #'peg-signal-failure)))))) + (peg-run (peg ,(caar pexs)) + (lambda (failures) + (when org-ql-signal-peg-failure + (peg-signal-failure failures))))))))) (pcase parsed-sexp (`(,one-predicate) one-predicate) (`(,_ . ,_) (cons boolean (reverse parsed-sexp))) diff --git a/tests/test-org-ql.el b/tests/test-org-ql.el index 9008179..12e8eb0 100644 --- a/tests/test-org-ql.el +++ b/tests/test-org-ql.el @@ -648,6 +648,14 @@ with keyword arg NOW in PLIST." ;; TODO: Other predicates. + (it "Ignores empty quoted strings" + (expect (org-ql--query-string-to-sexp "\"\"") + :to-equal nil) + (expect (org-ql--query-string-to-sexp "foo \"\" bar") + :to-equal '(and (rifle "foo") (rifle "bar"))) + (expect (org-ql--query-string-to-sexp "foo \"baz\" bar") + :to-equal '(and (rifle "foo") (rifle "baz") (rifle "bar")))) + (it "Negated terms" (expect (org-ql--query-string-to-sexp "todo: !todo:CHECK,SOMEDAY") :to-equal '(and (todo) (not (todo "CHECK" "SOMEDAY")))) From 38e16b4a5f9148d2aba0e8a17cfe123771e981a5 Mon Sep 17 00:00:00 2001 From: Adam Porter Date: Sat, 16 Dec 2023 04:11:01 -0600 Subject: [PATCH 3/3] Release: v0.7.4 --- README.org | 2 +- org-ql.el | 2 +- org-ql.info | 152 ++++++++++++++++++++++++++-------------------------- 3 files changed, 79 insertions(+), 77 deletions(-) diff --git a/README.org b/README.org index ba7ad9d..3ad7c23 100644 --- a/README.org +++ b/README.org @@ -542,7 +542,7 @@ Simple links may also be written manually in either sexp or non-sexp form, like: /Note:/ Breaking changes may be made before version 1.0, but in the event of major changes, attempts at backward compatibility will be made with obsolescence declarations, translation of arguments, etc. Users who need stability guarantees before 1.0 may choose to use tagged stable releases. -** 0.7.4-pre +** 0.7.4 *Fixes* + Ignore empty quoted strings in plain-string queries ([[https://github.com/alphapapa/org-ql/issues/383][#383]]). diff --git a/org-ql.el b/org-ql.el index 96a3235..571b63c 100644 --- a/org-ql.el +++ b/org-ql.el @@ -4,7 +4,7 @@ ;; Author: Adam Porter ;; Url: https://github.com/alphapapa/org-ql -;; Version: 0.7.4-pre +;; Version: 0.7.4 ;; Package-Requires: ((emacs "26.1") (dash "2.18.1") (f "0.17.2") (map "2.1") (org "9.0") (org-super-agenda "1.2") (ov "1.0.6") (peg "1.0.1") (s "1.12.0") (transient "0.1") (ts "0.2-pre")) ;; Keywords: hypermedia, outlines, Org, agenda diff --git a/org-ql.info b/org-ql.info index 998316a..9ac9522 100644 --- a/org-ql.info +++ b/org-ql.info @@ -71,7 +71,7 @@ Functions / Macros Changelog -* 0.7.4-pre: 074-pre. +* 0.7.4: 074. * 0.7.3: 073. * 0.7.2: 072. * 0.7.1: 071. @@ -994,7 +994,7 @@ releases. * Menu: -* 0.7.4-pre: 074-pre. +* 0.7.4: 074. * 0.7.3: 073. * 0.7.2: 072. * 0.7.1: 071. @@ -1026,15 +1026,17 @@ releases. * 0.1: 01.  -File: README.info, Node: 074-pre, Next: 073, Up: Changelog +File: README.info, Node: 074, Next: 073, Up: Changelog -5.1 0.7.4-pre -============= +5.1 0.7.4 +========= -Nothing new yet. +*Fixes* + • Ignore empty quoted strings in plain-string queries (#383 + (https://github.com/alphapapa/org-ql/issues/383)).  -File: README.info, Node: 073, Next: 072, Prev: 074-pre, Up: Changelog +File: README.info, Node: 073, Next: 072, Prev: 074, Up: Changelog 5.2 0.7.3 ========= @@ -1777,74 +1779,74 @@ GPLv3  Tag Table: Node: Top225 -Node: Contents1827 -Node: Screenshots1950 -Node: Installation2068 -Node: Quelpa2582 -Node: Helm support3110 -Node: Usage3513 -Node: Commands3911 -Node: org-ql-find4355 -Node: org-ql-refile4821 -Node: org-ql-search5144 -Node: helm-org-ql6840 -Node: org-ql-view7218 -Node: org-ql-view-sidebar7748 -Node: org-ql-view-recent-items8128 -Node: org-ql-sparse-tree8624 -Node: Queries9424 -Node: Non-sexp query syntax10541 -Node: General predicates12300 -Node: Ancestor/descendant predicates19287 -Node: Date/time predicates20415 -Node: Functions / Macros23539 -Node: Agenda-like views23837 -Ref: Function org-ql-block23999 -Node: Listing / acting-on results25260 -Ref: Caching25468 -Ref: Function org-ql-select26381 -Ref: Function org-ql-query28807 -Ref: Macro org-ql (deprecated)30581 -Node: Custom predicates30896 -Ref: Macro org-ql-defpred31120 -Node: Dynamic block34561 -Node: Links37285 -Node: Tips37972 -Node: Changelog38296 -Node: 074-pre39109 -Node: 07339221 -Node: 07239957 -Node: 07140876 -Node: 0741685 -Node: 06344609 -Node: 06245140 -Node: 06145445 -Node: 0646013 -Node: 05249067 -Node: 05149369 -Node: 0549794 -Node: 04951325 -Node: 04851607 -Node: 04751956 -Node: 04652365 -Node: 04552773 -Node: 04453134 -Node: 04353493 -Node: 04253696 -Node: 04153857 -Node: 0454104 -Node: 03258205 -Node: 03158608 -Node: 0358805 -Node: 02362105 -Node: 02262339 -Node: 02162619 -Node: 0262824 -Node: 0166902 -Node: Notes67003 -Node: Comparison with Org Agenda searches67165 -Node: org-sidebar68054 -Node: License68333 +Node: Contents1819 +Node: Screenshots1942 +Node: Installation2060 +Node: Quelpa2574 +Node: Helm support3102 +Node: Usage3505 +Node: Commands3903 +Node: org-ql-find4347 +Node: org-ql-refile4813 +Node: org-ql-search5136 +Node: helm-org-ql6832 +Node: org-ql-view7210 +Node: org-ql-view-sidebar7740 +Node: org-ql-view-recent-items8120 +Node: org-ql-sparse-tree8616 +Node: Queries9416 +Node: Non-sexp query syntax10533 +Node: General predicates12292 +Node: Ancestor/descendant predicates19279 +Node: Date/time predicates20407 +Node: Functions / Macros23531 +Node: Agenda-like views23829 +Ref: Function org-ql-block23991 +Node: Listing / acting-on results25252 +Ref: Caching25460 +Ref: Function org-ql-select26373 +Ref: Function org-ql-query28799 +Ref: Macro org-ql (deprecated)30573 +Node: Custom predicates30888 +Ref: Macro org-ql-defpred31112 +Node: Dynamic block34553 +Node: Links37277 +Node: Tips37964 +Node: Changelog38288 +Node: 07439093 +Node: 07339305 +Node: 07240037 +Node: 07140956 +Node: 0741765 +Node: 06344689 +Node: 06245220 +Node: 06145525 +Node: 0646093 +Node: 05249147 +Node: 05149449 +Node: 0549874 +Node: 04951405 +Node: 04851687 +Node: 04752036 +Node: 04652445 +Node: 04552853 +Node: 04453214 +Node: 04353573 +Node: 04253776 +Node: 04153937 +Node: 0454184 +Node: 03258285 +Node: 03158688 +Node: 0358885 +Node: 02362185 +Node: 02262419 +Node: 02162699 +Node: 0262904 +Node: 0166982 +Node: Notes67083 +Node: Comparison with Org Agenda searches67245 +Node: org-sidebar68134 +Node: License68413  End Tag Table