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 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 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://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
Org-mode mailing list This inbox may be cloned and mirrored by anyone: git clone --mirror https://orgmode.org/list/0 list/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 list list/ https://orgmode.org/list \ emacs-orgmode@gnu.org public-inbox-index list Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.yhetil.org/yhetil.emacs.orgmode nntp://news.gmane.io/gmane.emacs.orgmode AGPL code for this site: git clone https://public-inbox.org/public-inbox.git