joa...@verona.se writes:

> This used to work:
>   (defun jv-org-priorities ()
>     (setq org-highest-priority ?0 ;; 64 @ 48 0, bugs start happening if you 
> have higher prios tnan 0, like '!'
>           org-lowest-priority  ?E ;; E
>           org-default-priority ?0 ;; 0
>           org-priority-regexp ".*?\\(\\[#\\([;:<=>?@A-Z0-9]\\)\\] ?\\)"
>      ))
>
> I could then have priority cookies from [#0] to [#E].
>
> With the current org I get [#48] instead of [#0].
>
> Is there any way to restore the previous behaviour?

The change in behavior you describe came with 4f98694bf (Allow numeric
values for priorities, 2020-01-30).  Based on quickly skimming that
commit, I think the issue boils down to intentionally not supporting a
mix of numbers and letters.  I'm out of time tonight to look at it too
closely, but I think support for your use case could be restored with
something like the lightly tested patch below.

diff --git a/lisp/org.el b/lisp/org.el
index 425e9391b..8237f39f6 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -11166,8 +11166,7 @@ (defun org-priority (&optional action show)
     (unless org-priority-enable-commands
       (user-error "Priority commands are disabled"))
     (setq action (or action 'set))
-    (let ((nump (< org-priority-lowest 65))
-         current new news have remove)
+    (let (current new news have remove)
       (save-excursion
        (org-back-to-heading t)
        (when (looking-at org-priority-regexp)
@@ -11181,27 +11180,18 @@ (defun org-priority (&optional action show)
              (integerp action))
          (if (not (eq action 'set))
              (setq new action)
-           (setq
-            new
-            (if nump
-                (string-to-number
-                 (read-string (format "Priority %s-%s, SPC to remove: "
-                                      (number-to-string org-priority-highest)
-                                      (number-to-string org-priority-lowest))))
-              (progn (message "Priority %c-%c, SPC to remove: "
-                                org-priority-highest org-priority-lowest)
-                       (save-match-data
-                         (setq new (read-char-exclusive)))))))
+           (setq new
+                 (progn (message "Priority %c-%c, SPC to remove: "
+                                 org-priority-highest org-priority-lowest)
+                        (save-match-data
+                          (setq new (read-char-exclusive))))))
          (when (and (= (upcase org-priority-highest) org-priority-highest)
                     (= (upcase org-priority-lowest) org-priority-lowest))
            (setq new (upcase new)))
          (cond ((equal new ?\s) (setq remove t))
                ((or (< (upcase new) org-priority-highest) (> (upcase new) 
org-priority-lowest))
-                (user-error
-                 (if nump
-                     "Priority must be between `%s' and `%s'"
-                   "Priority must be between `%c' and `%c'")
-                 org-priority-highest org-priority-lowest))))
+                (user-error "Priority must be between `%c' and `%c'"
+                            org-priority-highest org-priority-lowest))))
         ((eq action 'up)
          (setq new (if have
                        (1- current)  ; normal cycling
@@ -11235,7 +11225,7 @@ (defun org-priority (&optional action show)
            (setq remove t)))
        ;; Numerical priorities are limited to 64, beyond that number,
        ;; assume the priority cookie is a character.
-       (setq news (if (> new 64) (format "%c" new) (format "%s" new)))
+       (setq news (format "%c" new))
        (if have
            (if remove
                (replace-match "" t t nil 1)

Reply via email to