emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/org 13a1a4f 2/5: Be more consistent about treating tags


From: ELPA Syncer
Subject: [elpa] externals/org 13a1a4f 2/5: Be more consistent about treating tags as case-sensitive
Date: Tue, 27 Apr 2021 03:57:12 -0400 (EDT)

branch: externals/org
commit 13a1a4fb960b0141f6f9f888f6559e8328e4af16
Author: Bastien Guerry <bzg@gnu.org>
Commit: Bastien Guerry <bzg@gnu.org>

    Be more consistent about treating tags as case-sensitive
    
    * lisp/org-agenda.el (org-agenda-finalize):
    (org-agenda-format-item): Do not downcase tags.
    (org-downcase-keep-props): Remove unused function.
    (org-agenda-filter-expand-tags): Do not case-fold search.
    
    * lisp/org.el (org-tags-expand): Document `downcased' argument as
    obsolete and do not allow to expand downcased tags.
    
    * testing/lisp/test-org.el (test-org/tags-expand): Remove test for
    downcased tags expansion.
    
    * doc/org-manual.org (TODO keywords, tags, properties, etc.):
    Suggest that user-defined are usually lowercase, but don't make it
    a requirement.
    
    Reported-by: David Masterson <dsmasterson92630@outlook.com>
    Link: 
https://orgmode.org/list/SJ0PR03MB5455D8D0C4F71AA495A9ABF79B709@SJ0PR03MB5455.namprd03.prod.outlook.com/
---
 doc/org-manual.org       |  2 +-
 lisp/org-agenda.el       | 14 ++++----------
 lisp/org.el              | 14 +++++---------
 testing/lisp/test-org.el |  9 +--------
 4 files changed, 11 insertions(+), 28 deletions(-)

diff --git a/doc/org-manual.org b/doc/org-manual.org
index 2ded91c..c58e57c 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -344,7 +344,7 @@ conventions:
 
 - =boss=, =ARCHIVE= ::
 
-  Tags are case-sensitive.  User-defined tags are written in
+  Tags are case-sensitive.  User-defined tags are usually written in
   lowercase; built-in tags with special meaning are written as they
   should appear in the document, usually with all capitals.
 
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 3e93b80..773f82a 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -3919,7 +3919,7 @@ agenda display, configure `org-agenda-finalize-hook'."
                  (put-text-property (point-at-bol) (point-at-eol)
                                     'tags
                                     (org-with-point-at mrk
-                                      (mapcar #'downcase (org-get-tags)))))))))
+                                      (org-get-tags))))))))
        (setq org-agenda-represented-tags nil
              org-agenda-represented-categories nil)
        (when org-agenda-top-headline-filter
@@ -6731,7 +6731,7 @@ Any match of REMOVE-RE will be removed from TXT."
        (remove-text-properties 0 (length rtn) '(line-prefix t wrap-prefix t) 
rtn)
        (org-add-props rtn nil
          'org-category category
-         'tags (mapcar 'org-downcase-keep-props tags)
+         'tags tags
          'org-priority-highest org-priority-highest
          'org-priority-lowest org-priority-lowest
          'time-of-day time-of-day
@@ -6776,12 +6776,6 @@ The modified list may contain inherited tags, and tags 
matched by
                          (if have-i "::" ":"))))))
   txt)
 
-(defun org-downcase-keep-props (s)
-  (let ((props (text-properties-at 0 s)))
-    (setq s (downcase s))
-    (add-text-properties 0 (length s) props s)
-    s))
-
 (defvar org-agenda-sorting-strategy) ;; because the def is in a let form
 
 (defun org-agenda-add-time-grid-maybe (list ndays todayp)
@@ -8074,7 +8068,7 @@ If the line does not have an effort defined, return nil."
 When NO-OPERATOR is non-nil, do not add the + operator to
 returned tags."
   (if org-group-tags
-      (let ((case-fold-search t) rtn)
+      (let (case-fold-search rtn)
        (mapc
         (lambda (f)
           (let (f0 dir)
@@ -8082,7 +8076,7 @@ returned tags."
                 (setq dir (match-string 1 f) f0 (match-string 2 f))
               (setq dir (if no-operator "" "+") f0 f))
             (setq rtn (append (mapcar (lambda(f1) (concat dir f1))
-                                      (org-tags-expand f0 t t))
+                                      (org-tags-expand f0 t))
                               rtn))))
         filter)
        (reverse rtn))
diff --git a/lisp/org.el b/lisp/org.el
index 47511b1..d972c63 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -11760,22 +11760,18 @@ When the optional argument SINGLE-AS-LIST is non-nil, 
MATCH is
 assumed to be a single group tag, and the function will return
 the list of tags in this group.
 
-When DOWNCASED is non-nil, expand downcased TAGS."
+The DOWNCASED argument is obsolete and has no effect."
   (unless (org-string-nw-p match) (error "Invalid match tag: %S" match))
   (let ((tag-groups
-        (let ((g (or org-tag-groups-alist-for-agenda org-tag-groups-alist)))
-          (if (not downcased) g
-            (mapcar (lambda (s) (mapcar #'downcase s)) g)))))
+         (or org-tag-groups-alist-for-agenda org-tag-groups-alist)))
     (cond
-     (single-as-list (org--tags-expand-group
-                     (list (if downcased (downcase match) match))
-                     tag-groups nil))
+     (single-as-list (org--tags-expand-group (list match) tag-groups nil))
      (org-group-tags
       (let* ((case-fold-search t)
             (tag-syntax org-mode-syntax-table)
             (group-keys (mapcar #'car tag-groups))
             (key-regexp (concat "\\([+-]?\\)" (regexp-opt group-keys 'words)))
-            (return-match (if downcased (downcase match) match)))
+            (return-match match))
        ;; Mark regexp-expressions in the match-expression so that we
        ;; do not replace them later on.
        (let ((s 0))
@@ -11795,7 +11791,7 @@ When DOWNCASED is non-nil, expand downcased TAGS."
                 m                      ;regexp tag: ignore
               (let* ((operator (match-string 1 m))
                      (tag-token (let ((tag (match-string 2 m)))
-                                  (list (if downcased (downcase tag) tag))))
+                                  (list tag)))
                      regexp-tags regular-tags)
                 ;; Partition tags between regexp and regular tags.
                 ;; Remove curly bracket syntax from regexp tags.
diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el
index 78cd295..f71118d 100644
--- a/testing/lisp/test-org.el
+++ b/testing/lisp/test-org.el
@@ -7172,14 +7172,7 @@ Paragraph<point>"
    (equal "{A+}"
          (org-test-with-temp-text "#+TAGS: [ A : B C ]"
            (org-mode-restart)
-           (let ((org-tag-alist-for-agenda nil)) (org-tags-expand "{A+}")))))
-  ;; Uppercase MATCH works with a non-nil DOWNCASED and SINGLE-AS-LIST.
-  (should
-   (equal (list "a" "b" "c")
-         (org-test-with-temp-text "#+TAGS: [ A : B C ]"
-           (org-mode-restart)
-           (let ((org-tag-alist-for-agenda nil))
-             (sort (org-tags-expand "A" t t) #'string-lessp))))))
+           (let ((org-tag-alist-for-agenda nil)) (org-tags-expand "{A+}"))))))
 
 
 ;;; TODO keywords



reply via email to

[Prev in Thread] Current Thread [Next in Thread]