mirror of
https://github.com/SqrtMinusOne/org-journal-tags.git
synced 2025-12-10 10:53:04 +03:00
fix: backwards compatibility
This commit is contained in:
parent
1cd3246683
commit
d0f5a648e1
1 changed files with 40 additions and 13 deletions
|
|
@ -63,18 +63,11 @@
|
|||
(require 'wid-edit)
|
||||
|
||||
|
||||
;; XXX No idea why the byte compiler doesn't see the function and
|
||||
;; doesn't let me (require 'cl-macs). It is required in cl-lib though
|
||||
(declare-function cl--alist-to-plist "cl-macs")
|
||||
|
||||
;; XXX I want to have the compatibility with evil-mode without
|
||||
;; requiring it, so I check whether this function is bound later in
|
||||
;; the code.
|
||||
(declare-function evil-define-key* "evil-core")
|
||||
|
||||
;; XXX Also no idea why the byte compiler doesn't see this
|
||||
;; function. It is obviously in subr-x
|
||||
(declare-function string-pad "subr-x")
|
||||
|
||||
(defgroup org-journal-tags ()
|
||||
"Tagging and querying system for org-journal."
|
||||
|
|
@ -248,6 +241,40 @@ DATE is a UNIX timestamp."
|
|||
Overriding this variable can be used to change the starting value
|
||||
of infixes in `org-journal-tags-transient-query'.")
|
||||
|
||||
;; Backwards compatibility
|
||||
|
||||
;; XXX Compatibility with Emacs 27, copied from `string-pad'
|
||||
(defun org-journal-tags--string-pad (string length &optional padding start)
|
||||
"Pad STRING to LENGTH using PADDING.
|
||||
If PADDING is nil, the space character is used. If not nil, it
|
||||
should be a character.
|
||||
|
||||
If STRING is longer than the absolute value of LENGTH, no padding
|
||||
is done.
|
||||
|
||||
If START is nil (or not present), the padding is done to the end
|
||||
of the string, and if non-nil, padding is done to the start of
|
||||
the string."
|
||||
(unless (natnump length)
|
||||
(signal 'wrong-type-argument (list 'natnump length)))
|
||||
(let ((pad-length (- length (length string))))
|
||||
(if (< pad-length 0)
|
||||
string
|
||||
(concat (and start
|
||||
(make-string pad-length (or padding ?\s)))
|
||||
string
|
||||
(and (not start)
|
||||
(make-string pad-length (or padding ?\s)))))))
|
||||
|
||||
;; XXX Compatibility with Emacs 27, copied from `cl--alist-to-plist'
|
||||
(defun org-journal-tags--alist-to-plist ()
|
||||
"Convert alist to plist."
|
||||
(let ((res '()))
|
||||
(dolist (x alist)
|
||||
(push (car x) res)
|
||||
(push (cdr x) res))
|
||||
(nreverse res)))
|
||||
|
||||
;; Data model and database
|
||||
|
||||
(cl-defstruct (org-journal-tag (:constructor org-journal-tag--create))
|
||||
|
|
@ -1639,7 +1666,7 @@ BODY is put in that lambda."
|
|||
(ignore org-journal-tags--query-params)
|
||||
(org-journal-tags-transient-query)))
|
||||
:timestamp timestamp
|
||||
(format "%s %s" (string-pad (propertize date 'face 'org-date) 21) preview)))
|
||||
(format "%s %s" (org-journal-tags--string-pad (propertize date 'face 'org-date) 21) preview)))
|
||||
(widget-insert "\n"))
|
||||
(insert "\n"))
|
||||
(insert "No timestamps found"))))
|
||||
|
|
@ -1671,7 +1698,7 @@ tag."
|
|||
(ignore org-journal-tags--query-params)
|
||||
(org-journal-tags-transient-query)))
|
||||
:tag-name tag-name
|
||||
(string-pad tag-name max-tag-name))
|
||||
(org-journal-tags--string-pad tag-name max-tag-name))
|
||||
(widget-insert " ")
|
||||
(org-journal-tags--buffer-render-horizontal-barchart
|
||||
(mapcar
|
||||
|
|
@ -1787,14 +1814,14 @@ That can be used to scale multiple barcharts the same way."
|
|||
for number = (length (alist-get :refs (cdr group)))
|
||||
for ticks-number = (floor (* number width-coef))
|
||||
concat (concat
|
||||
(propertize (string-pad (car group) max-name-width)
|
||||
(propertize (org-journal-tags--string-pad (car group) max-name-width)
|
||||
'face 'org-journal-tags-info-face)
|
||||
" "
|
||||
(string-pad
|
||||
(org-journal-tags--string-pad
|
||||
(format "[%d]" number)
|
||||
4)
|
||||
": "
|
||||
(propertize (string-pad "" ticks-number ?+)
|
||||
(propertize (org-journal-tags--string-pad "" ticks-number ?+)
|
||||
'face 'org-journal-tags-barchart-face)
|
||||
"\n"))))
|
||||
|
||||
|
|
@ -2177,7 +2204,7 @@ OBJ is an instance of that class."
|
|||
"Make a plist acceptable to `org-journal-tags-query'.
|
||||
|
||||
VALUES should be an alist of transient values."
|
||||
(let ((params (cl--alist-to-plist values)))
|
||||
(let ((params (org-journal-tags--alist-to-plist values)))
|
||||
(setq params
|
||||
(if (plist-get params :order)
|
||||
(plist-put params :order 'ascending)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue