From: joakim@verona.se
To: emacs-orgmode@gnu.org
Subject: Re: problem with org-highest-priority
Date: Wed, 18 Nov 2020 23:17:05 +0100 [thread overview]
Message-ID: <87sg96b99a.fsf@tanaka.verona.se> (raw)
In-Reply-To: 87v9fovt34.fsf@kyleam.com
Kyle Meyer <kyle@kyleam.com> writes:
> joakim@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.
Thanks, I tested your patch, and it helps a little bit.
- m-x org-priority works, I can set any priority from 0 to Z
- org-priority-down and org-priority-down doesn't work as expected, as
they worked previously. I dont step through all the priority cookies,
instead I quickly wind up in prio 0, then I'm stuck there, for lack of
better description.
- sorting of priorities still work with or withouth the patch, that is
prio 0 is highest prio, prio Z is lowest prio. I would like to mention
that in my case the characters between letters and numbers are also
priority cookies, @ is a cookie as well as 0 and z. Limiting to just
letters and numbers would be fine for me though, I dont use the
in-between prios much.
Because the sorting still works, I have been able to work around this
new behaviour, by writing the cookie by hand.
I'm not sure how to proceed. It seems I'm the only org-user affected by
this change? Should I maintain a local patch to get the behaviour I
want? What is the recomended way to do that? I usually run
org-plus-contrib from elpa.
>
> 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)
>
>
--
Joakim Verona
joakim@verona.se
next prev parent reply other threads:[~2020-11-18 22:17 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-05 21:58 problem with org-highest-priority joakim
2020-10-06 5:09 ` Kyle Meyer
2020-11-18 22:17 ` joakim [this message]
2020-11-19 2:19 ` Kyle Meyer
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=87sg96b99a.fsf@tanaka.verona.se \
--to=joakim@verona.se \
--cc=emacs-orgmode@gnu.org \
/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).