[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org-contacts 3e075cdee4 123/154: Fix most of the compil
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org-contacts 3e075cdee4 123/154: Fix most of the compiler wanrings and add `Version:' |
Date: |
Fri, 9 Sep 2022 15:58:54 -0400 (EDT) |
branch: externals/org-contacts
commit 3e075cdee401c32325c60789d2488c5464b8fdcf
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: stardiviner <numbchild@gmail.com>
Fix most of the compiler wanrings and add `Version:'
> I have get response from Strey, he said he has requested FSF for
> signing paperwork, should be ready in days.
In the mean time, here's a patch which addresses most of the compiler
warnings I got. It also adds a `Version:` since that'll be necessary
for the package to be released on GNU ELPA. And it furthermore adds
a few FIXMEs which you might want to look at.
Stefan
---
org-contacts.el | 156 ++++++++++++++++++++++++++++----------------------------
1 file changed, 78 insertions(+), 78 deletions(-)
diff --git a/org-contacts.el b/org-contacts.el
index 8aed3533f9..cce21e3961 100644
--- a/org-contacts.el
+++ b/org-contacts.el
@@ -1,10 +1,11 @@
-;;; org-contacts.el --- Contacts management
+;;; org-contacts.el --- Contacts management -*- lexical-binding: t; -*-
;; Copyright (C) 2010-2014, 2021 Julien Danjou <julien@danjou.info>
;; Author: Julien Danjou <julien@danjou.info>
;; Maintainer: stardiviner <numbchild@gmail.com>
;; Keywords: contacts, org-mode, outlines, hypermedia, calendar
+;; Version: 0
;;
;; This file is not part of GNU Emacs.
;;
@@ -77,44 +78,36 @@
(defcustom org-contacts-files nil
"List of Org files to use as contacts source.
When set to nil, all your Org files will be used."
- :type '(repeat file)
- :group 'org-contacts)
+ :type '(repeat file))
(defcustom org-contacts-email-property "EMAIL"
"Name of the property for contact email address."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-tel-property "PHONE"
"Name of the property for contact phone number."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-address-property "ADDRESS"
"Name of the property for contact address."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-birthday-property "BIRTHDAY"
"Name of the property for contact birthday date."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-note-property "NOTE"
"Name of the property for contact note."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-alias-property "ALIAS"
"Name of the property for contact name alias."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-ignore-property "IGNORE"
"Name of the property, which values will be ignored when
completing or exporting to vcard."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-birthday-format "Birthday: %l (%Y)"
@@ -125,48 +118,39 @@ The following replacements are available:
%l - Link to the heading
%y - Number of year
%Y - Number of year (ordinal)"
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-last-read-mail-property "LAST_READ_MAIL"
"Name of the property for contact last read email link storage."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-icon-property "ICON"
"Name of the property for contact icon."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-nickname-property "NICKNAME"
"Name of the property for IRC nickname match."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-icon-size 32
"Size of the contacts icons."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-icon-use-gravatar (fboundp 'gravatar-retrieve)
"Whether use Gravatar to fetch contact icons."
- :type 'boolean
- :group 'org-contacts)
+ :type 'boolean)
(defcustom org-contacts-completion-ignore-case t
"Ignore case when completing contacts."
- :type 'boolean
- :group 'org-contacts)
+ :type 'boolean)
(defcustom org-contacts-group-prefix "+"
"Group prefix."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-tags-props-prefix "#"
"Tags and properties prefix."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-matcher
(mapconcat #'identity
@@ -179,29 +163,24 @@ The following replacements are available:
"|")
"Matching rule for finding heading that are contacts.
This can be a tag name, or a property check."
- :type 'string
- :group 'org-contacts)
+ :type 'string)
(defcustom org-contacts-email-link-description-format "%s (%d)"
"Format used to store links to email.
This overrides `org-email-link-description-format' if set."
- :group 'org-contacts
:type 'string)
(defcustom org-contacts-vcard-file "contacts.vcf"
"Default file for vcard export."
- :group 'org-contacts
:type 'file)
(defcustom org-contacts-enable-completion t
"Enable or not the completion in `message-mode' with `org-contacts'."
- :group 'org-contacts
:type 'boolean)
(defcustom org-contacts-complete-functions
'(org-contacts-complete-group org-contacts-complete-tags-props
org-contacts-complete-name)
"List of functions used to complete contacts in `message-mode'."
- :group 'org-contacts
:type 'hook)
;; Decalre external functions and variables
@@ -224,8 +203,8 @@ A regexp matching strings of whitespace, `,' and `;'.")
(defvar org-contacts-keymap
(let ((map (make-sparse-keymap)))
- (define-key map "M" 'org-contacts-view-send-email)
- (define-key map "i" 'org-contacts-view-switch-to-irc-buffer)
+ (define-key map "M" #'org-contacts-view-send-email)
+ (define-key map "i" #'org-contacts-view-switch-to-irc-buffer)
map)
"The keymap used in `org-contacts' result list.")
@@ -463,7 +442,7 @@ prefixes rather than just the beginning of the string."
((and (listp flag) (eq (car flag) 'boundaries))
(org-contacts-boundaries-prefix string collection predicate (cdr
flag)))
((eq flag 'metadata)
- (org-contacts-metadata-prefix string collection predicate))
+ (org-contacts-metadata-prefix))
(t nil ; operation unsupported
)))))
@@ -496,7 +475,7 @@ prefixes rather than just the beginning of the string."
(defun org-contacts-boundaries-prefix (string collection predicate suffix)
(cl-list* 'boundaries (completion-boundaries string collection predicate
suffix)))
-(defun org-contacts-metadata-prefix (string collection predicate)
+(defun org-contacts-metadata-prefix (&rest _)
'(metadata .
((cycle-sort-function . org-contacts-display-sort-function)
(display-sort-function . org-contacts-display-sort-function))))
@@ -524,7 +503,7 @@ A group FOO is composed of contacts with the tag FOO."
;; We've found the correct group, returns the address
(let ((tag (get-text-property 0 'org-contacts-group
(car completion-list))))
- (mapconcat 'identity
+ (mapconcat #'identity
(cl-loop for contact in (org-contacts-filter
nil
tag)
@@ -559,7 +538,7 @@ description."
(when completion-p
(let ((result
(mapconcat
- 'identity
+ #'identity
(cl-loop for contact in (org-contacts-db)
for contact-name = (car contact)
for email = (org-contacts-strip-link
@@ -567,7 +546,8 @@ description."
(or
(cdr (assoc-string
org-contacts-email-property
(cl-caddr
contact)))
- ""))) ""))
+ "")))
+ ""))
;; for tags = (cdr (assoc "TAGS" (nth 2 contact)))
;; for tags-list = (if tags
;; (split-string (substring (cdr (assoc "TAGS"
(nth 2 contact))) 1 -1) ":")
@@ -576,6 +556,10 @@ description."
if (with-current-buffer (marker-buffer marker)
(save-excursion
(goto-char marker)
+ ;; FIXME: AFAIK, `org-make-tags-matcher' returns
+ ;; a cons whose cdr is a function, so why do we
+ ;; pass it to `eval' rather than to (say)
+ ;; `funcall'?
(eval (cdr (org-make-tags-matcher (cl-subseq
string 1))))))
collect (org-contacts-format-email contact-name email))
",")))
@@ -683,7 +667,7 @@ Format is a string matching the following format
specification:
%y - Number of year
%Y - Number of year (ordinal)"
(let ((calendar-date-style 'american)
- (entry ""))
+ ) ;; (entry "")
(unless format (setq format org-contacts-birthday-format))
(cl-loop for contact in (org-contacts-filter)
for anniv = (let ((anniv (cdr (assoc-string
@@ -693,7 +677,9 @@ Format is a string matching the following format
specification:
(calendar-gregorian-from-absolute
(org-time-string-to-absolute anniv))))
;; Use `diary-anniversary' to compute anniversary.
- if (and anniv (apply 'diary-anniversary anniv))
+ ;; FIXME: should we require `diary-lib' somewhere to be sure
+ ;; `diary-anniversary' is defined when we get here?
+ if (and anniv (apply #'diary-anniversary anniv))
collect (format-spec format
`((?l . ,(org-with-point-at (cadr contact)
(org-store-link nil)))
(?h . ,(car contact))
@@ -703,9 +689,9 @@ Format is a string matching the following format
specification:
(calendar-extract-year anniv))))
(format "%d%s" years
(diary-ordinal-suffix years)))))))))
-(defun org-completing-read-date (prompt collection
- &optional predicate require-match
initial-input
- hist def inherit-input-method)
+(defun org-completing-read-date ( prompt _collection
+ &optional _predicate _require-match
_initial-input
+ _hist def _inherit-input-method)
"Like `completing-read' but reads a date.
Only PROMPT and DEF are really used."
(org-read-date nil nil nil prompt nil def))
@@ -817,9 +803,9 @@ This adds `org-contacts-gnus-check-mail-address' and
`gnus-summary-mode-map' to `org-contacts-gnus-article-from-goto'"
(require 'gnus)
(require 'gnus-art)
- (define-key gnus-summary-mode-map ";" 'org-contacts-gnus-article-from-goto)
- (add-hook 'gnus-article-prepare-hook 'org-contacts-gnus-check-mail-address)
- (add-hook 'gnus-article-prepare-hook 'org-contacts-gnus-store-last-mail))
+ (define-key gnus-summary-mode-map ";" #'org-contacts-gnus-article-from-goto)
+ (add-hook 'gnus-article-prepare-hook #'org-contacts-gnus-check-mail-address)
+ (add-hook 'gnus-article-prepare-hook #'org-contacts-gnus-store-last-mail))
(defun org-contacts-setup-completion-at-point ()
"Add `org-contacts-message-complete-function' as a new function
@@ -828,11 +814,11 @@ to complete the thing at point."
'org-contacts-message-complete-function))
(defun org-contacts-unload-hook ()
- (remove-hook 'message-mode-hook 'org-contacts-setup-completion-at-point))
+ (remove-hook 'message-mode-hook #'org-contacts-setup-completion-at-point))
(when (and org-contacts-enable-completion
(boundp 'completion-at-point-functions))
- (add-hook 'message-mode-hook 'org-contacts-setup-completion-at-point))
+ (add-hook 'message-mode-hook #'org-contacts-setup-completion-at-point))
(defun org-contacts-wl-get-from-header-content ()
"Retrieve the content of the `From' header of an email.
@@ -899,24 +885,35 @@ address."
(setq pom (or pom (point)))
(catch 'icon
;; Use `org-contacts-icon-property'
- (let ((image-path (if-let ((avatar (org-entry-get pom
org-contacts-icon-property))
- (link-matcher-regexp
"\\[\\[\\([^]]*\\)\\]\\(\\[\\(.*\\)\\]\\)?\\]"))
- (cond
- ;; [[file:dir/filename.png]]
- ((string-match-p "\\[\\[.*\\]\\]" avatar)
- (when (string-match link-matcher-regexp avatar)
- (expand-file-name (substring
(match-string-no-properties 1 avatar) 5 nil)
- (file-name-directory (first
org-contacts-files)))))
- ;; "" (empty string)
- ((string-empty-p avatar) nil)
- (t (expand-file-name avatar (file-name-directory
(first org-contacts-files))))))))
+ (let* ((link-matcher-regexp
+ "\\[\\[\\([^]]*\\)\\]\\(\\[\\(.*\\)\\]\\)?\\]")
+ (contacts-dir (file-name-directory (car org-contacts-files)))
+ (image-path
+ (if-let ((avatar (org-entry-get pom org-contacts-icon-property)))
+ (cond
+ ;; [[file:dir/filename.png]]
+ ((string-match-p "\\[\\[.*\\]\\]" avatar)
+ ;; FIXME: What if avatar matches the above regexp but the
+ ;; one below?
+ (when (string-match link-matcher-regexp avatar)
+ ;; FIXME: 5 seems to be the length of `file:' but I can't
+ ;; see anything that guarantees that the submatch 1 starts
+ ;; with `file:'.
+ (expand-file-name (substring (match-string-no-properties 1
avatar) 5 nil)
+ contacts-dir)))
+ ;; "" (empty string)
+ ((string-empty-p avatar) nil)
+ (t (expand-file-name avatar contacts-dir))))))
(when image-path
(throw 'icon
(if (featurep 'imagemagick)
- (create-image image-path 'imagemagick nil :height
org-contacts-icon-size)
- (create-image image-path nil nil :height
org-contacts-icon-size)))))
+ (create-image image-path 'imagemagick nil
+ :height org-contacts-icon-size)
+ (create-image image-path nil nil
+ :height org-contacts-icon-size)))))
;; Next, try Gravatar
(when org-contacts-icon-use-gravatar
+ (defvar gravatar-size)
(let* ((gravatar-size org-contacts-icon-size)
(email-list (org-entry-get pom org-contacts-email-property))
(gravatar
@@ -965,7 +962,8 @@ address."
"Return all nicknames of all ERC buffers."
(cl-loop for buffer in (erc-buffer-list)
nconc (with-current-buffer buffer
- (cl-loop for user-entry in (mapcar 'car
(erc-get-channel-user-list))
+ (cl-loop for user-entry
+ in (mapcar #'car (erc-get-channel-user-list))
collect (elt user-entry 1)))))
(add-to-list 'org-property-set-functions-alist
@@ -1161,15 +1159,16 @@ are effectively trimmed). If nil, all zero-length
substrings are retained."
;;; Add an Org link type `org-contact:' for easy jump to or searching
org-contacts headline.
;;; link spec: [[org-contact:query][desc]]
(org-link-set-parameters "org-contact"
- :follow 'org-contacts-link-open
- :complete 'org-contacts-link-complete
- :store 'org-contacts-link-store
+ :follow #'org-contacts-link-open
+ :complete #'org-contacts-link-complete
+ :store #'org-contacts-link-store
:face 'org-contacts-link-face)
(defun org-contacts-link-store ()
"Store the contact in `org-contacts-files' with a link."
(when (and (eq major-mode 'org-mode)
- (member (buffer-file-name) (mapcar 'expand-file-name
org-contacts-files)))
+ (member (buffer-file-name)
+ (mapcar #'expand-file-name org-contacts-files)))
(if (bound-and-true-p org-id-link-to-org-use-id)
(org-id-store-link)
(let ((headline-str (substring-no-properties (org-get-heading t t t t))))
@@ -1182,7 +1181,8 @@ are effectively trimmed). If nil, all zero-length
substrings are retained."
link)))))
(defun org-contacts--all-contacts ()
- "Return an alist (name . (file . position)) of all contacts in
`org-contacts-files'."
+ "Return a list of all contacts in `org-contacts-files'.
+Each element has the form (NAME . (FILE . POSITION))."
(car (mapcar
(lambda (file)
(unless (buffer-live-p (get-buffer (file-name-nondirectory file)))
@@ -1226,7 +1226,7 @@ are effectively trimmed). If nil, all zero-length
substrings are retained."
;; (with-current-buffer buf (goto-char position)))
))))
-(defun org-contacts-link-complete (&optional arg)
+(defun org-contacts-link-complete (&optional _arg)
"Create a org-contacts link using completion."
(let ((name (completing-read "org-contact Name: "
(mapcar
- [elpa] externals/org-contacts 0e33f05c4e 105/154: org-contacts.el: Fix store link function does not return link., (continued)
- [elpa] externals/org-contacts 0e33f05c4e 105/154: org-contacts.el: Fix store link function does not return link., ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 3d9181c0c4 104/154: org-contacts.el: Use `bound-and-true-p' to check (unbound) var, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 3fa6b4c36b 120/154: Add package introduction in README, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 507e48cbd1 116/154: add README.org, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 986a5b3280 109/154: Prefer HTTPS to HTTP in most links, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 85dd965906 126/154: Remove testing code, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 39c7aba7dc 127/154: Remove all-completions code logic, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 0501463909 149/154: Also detect whether org API function `org-add-link-type' available., ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts fe466ab2ae 139/154: Add org-mode mailto: link type :complete supporting, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 03a563b471 135/154: Add autoload cookies for org-link functions, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 3e075cdee4 123/154: Fix most of the compiler wanrings and add `Version:',
ELPA Syncer <=
- [elpa] externals/org-contacts 919511eb86 154/154: Adding org-contacts to GNU ELPA, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 2916aae933 144/154: Fix warning: Invalid face reference: quote. Invalid face attribute :inherit 'org-link, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 84436fd7bc 136/154: Fix org-contacts file narrowed not widen recovered bug., ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts e64df72db4 094/154: Rationalize `org-link-(un)escape', ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 478dfcc9b7 096/154: org-contacts.el: Add new link type "contact:", ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts 2f8b3f024c 108/154: Prefer HTTPS to HTTP for links to gnu.org, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts f64d6edcd0 121/154: Update source code metadata keywords and usage description, ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts bdf172eab8 129/154: Merge branch 'complete-contact', ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts dba21b4895 153/154: Decrease emacs and cl-lib version requirements., ELPA Syncer, 2022/09/09
- [elpa] externals/org-contacts f5394bc0b6 147/154: Warning user that the custom variable `org-contacts-files' is nil., ELPA Syncer, 2022/09/09