Prefer directed to neutral quotes in docstings and diagnostics.
In docstrings, escape apostrophes that would otherwise be translated
to curved quotes using the newer, simpler rules.
* auth-source.el (auth-source-netrc-parse-entries):
* gnus-agent.el (gnus-agent-check-overview-buffer)
(gnus-agent-fetch-headers):
* gnus-int.el (gnus-start-news-server):
* gnus-registry.el (gnus-registry--split-fancy-with-parent-internal):
* gnus-score.el (gnus-summary-increase-score):
* gnus-start.el (gnus-convert-old-newsrc):
* gnus-topic.el (gnus-topic-rename):
* legacy-gnus-agent.el (gnus-agent-unlist-expire-days):
* nnmairix.el (nnmairix-widget-create-query):
* spam.el (spam-check-blackholes):
Use directed rather than neutral quotes in diagnostics.
+2015-08-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ Prefer directed to neutral quotes in docstings and diagnostics.
+ In docstrings, escape apostrophes that would otherwise be translated
+ to curved quotes using the newer, simpler rules.
+
+ * auth-source.el (auth-source-netrc-parse-entries):
+ * gnus-agent.el (gnus-agent-check-overview-buffer)
+ (gnus-agent-fetch-headers):
+ * gnus-int.el (gnus-start-news-server):
+ * gnus-registry.el (gnus-registry--split-fancy-with-parent-internal):
+ * gnus-score.el (gnus-summary-increase-score):
+ * gnus-start.el (gnus-convert-old-newsrc):
+ * gnus-topic.el (gnus-topic-rename):
+ * legacy-gnus-agent.el (gnus-agent-unlist-expire-days):
+ * nnmairix.el (nnmairix-widget-create-query):
+ * spam.el (spam-check-blackholes):
+ Use directed rather than neutral quotes in diagnostics.
+
2015-08-21 Paul Eggert <eggert@cs.ucla.edu>
* auth-source.el (auth-sources):
Here's an example:
-\(let ((auth-source-creation-defaults '((user . \"defaultUser\")
+\(let ((auth-source-creation-defaults \\='((user . \"defaultUser\")
(A . \"default A\"))))
- (auth-source-search :host \"mine\" :type 'netrc :max 1
+ (auth-source-search :host \"mine\" :type \\='netrc :max 1
:P \"pppp\" :Q \"qqqq\"
:create t))
which says:
-\"Search for any entry matching host 'mine' in backends of type
- 'netrc', maximum one result.
+\"Search for any entry matching host `mine' in backends of type
+ `netrc', maximum one result.
Create a new entry if you found none. The netrc backend will
automatically require host, user, and port. The host will be
- 'mine'. We prompt for the user with default 'defaultUser' and
+ `mine'. We prompt for the user with default `defaultUser' and
for the port without a default. We will not prompt for A, Q,
or P. The resulting token will only have keys user, host, and
port.\"
-:create '(A B C) also means to create a token if possible.
+:create \\='(A B C) also means to create a token if possible.
The behavior is like :create t but if the list contains any
parameter, that parameter will be required in the resulting
the alist `auth-source-creation-defaults' will be checked for the
default value. If the user, host, or port are missing, the alist
`auth-source-creation-prompts' will be used to look up the
-prompts IN THAT ORDER (so the 'user prompt will be queried first,
-then 'host, then 'port, and finally 'secret). Each prompt string
+prompts IN THAT ORDER (so the `user' prompt will be queried first,
+then `host', then `port', and finally `secret'). Each prompt string
can use %u, %h, and %p to show the user, host, and port.
Here's an example:
-\(let ((auth-source-creation-defaults '((user . \"defaultUser\")
+\(let ((auth-source-creation-defaults \\='((user . \"defaultUser\")
(A . \"default A\")))
(auth-source-creation-prompts
- '((password . \"Enter IMAP password for %h:%p: \"))))
- (auth-source-search :host '(\"nonesuch\" \"twosuch\") :type 'netrc :max 1
+ \\='((password . \"Enter IMAP password for %h:%p: \"))))
+ (auth-source-search :host \\='(\"nonesuch\" \"twosuch\") :type \\='netrc :max 1
:P \"pppp\" :Q \"qqqq\"
- :create '(A B Q)))
+ :create \\='(A B Q)))
which says:
-\"Search for any entry matching host 'nonesuch'
- or 'twosuch' in backends of type 'netrc', maximum one result.
+\"Search for any entry matching host `nonesuch'
+ or `twosuch' in backends of type `netrc', maximum one result.
Create a new entry if you found none. The netrc backend will
automatically require host, user, and port. The host will be
- 'nonesuch' and Q will be 'qqqq'. We prompt for the password
+ `nonesuch' and Q will be `qqqq'. We prompt for the password
with the shown prompt. We will not prompt for Q. The resulting
token will have keys user, host, port, A, B, and Q. It will not
have P with any value, even though P is used in the search to
- find only entries that have P set to 'pppp'.\"
+ find only entries that have P set to `pppp'.\"
When multiple values are specified in the search parameter, the
user is prompted for which one. So :host (X Y Z) would ask the
Use `auth-source-delete' in ELisp code instead of calling
`auth-source-search' directly with this parameter.
-:type (X Y Z) will check only those backend types. 'netrc and
-'secrets are the only ones supported right now.
+:type (X Y Z) will check only those backend types. `netrc' and
+`secrets' are the only ones supported right now.
:max N means to try to return at most N items (defaults to 1).
More than N items may be returned, depending on the search and
(if (equal item2 "machine")
(progn
(gnus-error 1
- "%s: Unexpected 'machine' token at line %d"
+ "%s: Unexpected ‘machine’ token at line %d"
"auth-source-netrc-parse-entries"
(auth-source-current-line))
(forward-line 1))
You'll get back all the properties of the token as a plist.
-Here's an example that looks for the first item in the 'Login'
+Here's an example that looks for the first item in the `Login'
Secrets collection:
- \(let ((auth-sources '(\"secrets:Login\")))
+ \(let ((auth-sources \\='(\"secrets:Login\")))
(auth-source-search :max 1)
-Here's another that looks for the first item in the 'Login'
-Secrets collection whose label contains 'gnus':
+Here's another that looks for the first item in the `Login'
+Secrets collection whose label contains `gnus':
- \(let ((auth-sources '(\"secrets:Login\")))
+ \(let ((auth-sources \\='(\"secrets:Login\")))
(auth-source-search :max 1 :label \"gnus\")
-And this one looks for the first item in the 'Login' Secrets
+And this one looks for the first item in the `Login' Secrets
collection that's a Google Chrome entry for the git.gnus.org site
authentication tokens:
- \(let ((auth-sources '(\"secrets:Login\")))
+ \(let ((auth-sources \\='(\"secrets:Login\")))
(auth-source-search :max 1 :signon_realm \"https://git.gnus.org/Git\"))
"
You'll get back all the properties of the token as a plist.
-The :type key is either 'macos-keychain-internet or
-'macos-keychain-generic.
+The :type key is either `macos-keychain-internet' or
+`macos-keychain-generic'.
For the internet keychain type, the :label key searches the
item's labels (\"-l LABEL\" passed to \"/usr/bin/security\").
Here's an example that looks for the first item in the default
generic MacOS Keychain:
- \(let ((auth-sources '(macos-keychain-generic)))
+ \(let ((auth-sources \\='(macos-keychain-generic)))
(auth-source-search :max 1)
Here's another that looks for the first item in the internet
-MacOS Keychain collection whose label is 'gnus':
+MacOS Keychain collection whose label is `gnus':
- \(let ((auth-sources '(macos-keychain-internet)))
+ \(let ((auth-sources \\='(macos-keychain-internet)))
(auth-source-search :max 1 :label \"gnus\")
And this one looks for the first item in the internet keychain
entries for git.gnus.org:
- \(let ((auth-sources '(macos-keychain-internet\")))
+ \(let ((auth-sources \\='(macos-keychain-internet\")))
(auth-source-search :max 1 :host \"git.gnus.org\"))
"
;; TODO
(or backed-up
(setq backed-up (gnus-agent-backup-overview-buffer)))
(gnus-message 1
- "Overview buffer contains garbage '%s'."
+ "Overview buffer contains garbage ‘%s’."
(buffer-substring
p (point-at-eol))))
((= cur prev-num)
(when articles
(gnus-message
- 10 "gnus-agent-fetch-headers: undownloaded articles are '%s'"
+ 10 "gnus-agent-fetch-headers: undownloaded articles are ‘%s’"
(gnus-compress-sequence articles t)))
(with-current-buffer nntp-server-buffer
"*Alist that says how to fontify certain phrases.
Each item looks like this:
- (\"_\\\\(\\\\w+\\\\)_\" 0 1 'underline)
+ (\"_\\\\(\\\\w+\\\\)_\" 0 1 \\='underline)
The first element is a regular expression to be matched. The second
is a number that says what regular expression grouping used to find
(gnus-open-server gnus-select-method)
gnus-batch-mode
(gnus-y-or-n-p
- (format
- "%s (%s) open error: '%s'. Continue? "
+ (gnus-format-message
+ "%s (%s) open error: ‘%s’. Continue? "
(car gnus-select-method) (cadr gnus-select-method)
(gnus-status-message gnus-select-method)))
(gnus-error 1 "Couldn't open server on %s"
(let ((saved-display
(gnus-group-get-parameter group 'display :allow-list)))
- ;; Tell gnus we really don't want any articles
+ ;; Tell gnus we really don't want any articles
(gnus-group-set-parameter group 'display 0)
(unwind-protect
;; Create it now and insert the message
(let ((group-is-new (gnus-summary-setup-buffer group)))
(condition-case err
- (let ((article-number
+ (let ((article-number
(gnus-summary-insert-subject message-id)))
(unless article-number
(signal 'error "message-id not in group"))
do (gnus-message
;; warn more if gnus-registry-track-extra
(if gnus-registry-track-extra 7 9)
- "%s (extra tracking) traced subject '%s' to %s"
+ "%s (extra tracking) traced subject ‘%s’ to %s"
log-agent subject group)
and collect group))
;; filter the found groups and return them
do (gnus-message
;; warn more if gnus-registry-track-extra
(if gnus-registry-track-extra 7 9)
- "%s (extra tracking) traced sender '%s' to %s"
+ "%s (extra tracking) traced sender ‘%s’ to %s"
log-agent sender group)
and collect group)))
do (gnus-message
;; warn more if gnus-registry-track-extra
(if gnus-registry-track-extra 7 9)
- "%s (extra tracking) traced recipient '%s' to %s"
+ "%s (extra tracking) traced recipient ‘%s’ to %s"
log-agent recp group)
and collect group)))))
(defun gnus-registry-post-process-groups (mode key groups)
"Inspects GROUPS found by MODE for KEY to determine which ones to follow.
-MODE can be 'subject' or 'sender' for example. The KEY is the
+MODE can be `subject' or `sender' for example. The KEY is the
value by which MODE was searched.
Transforms each group name to the equivalent short name.
((null out)
(gnus-message
5
- "%s: no matches for %s '%s'."
+ "%s: no matches for %s ‘%s’."
log-agent mode key)
nil)
(t (gnus-message
5
- "%s: too many extra matches (%s) for %s '%s'. Returning none."
+ "%s: too many extra matches (%s) for %s ‘%s’. Returning none."
log-agent out mode key)
nil))))
(if mimic
(progn
(sit-for 1) (message "%c %c-" prefix hchar))
- (message "%s header '%s' with match type (%s?): "
+ (message "%s header ‘%s’ with match type (%s?): "
(if increase "Increase" "Lower")
(nth 1 entry)
(mapconcat (lambda (s) (char-to-string (car s)))
"Convert an elisp string list to a Sieve string list.
For example:
-\(gnus-sieve-string-list '(\"to\" \"cc\"))
+\(gnus-sieve-string-list \\='(\"to\" \"cc\"))
=> \"[\\\"to\\\", \\\"cc\\\"]\"
"
(concat "[\"" (mapconcat 'identity list "\", \"") "\"]"))
"Convert an elisp test list to a Sieve test list.
For example:
-\(gnus-sieve-test-list '((address \"sender\" \"boss@company.com\") (size :over 4K)))
+\(gnus-sieve-test-list \\='((address \"sender\" \"boss@company.com\") (size :over 4K)))
=> \"(address \\\"sender\\\" \\\"boss@company.com\\\", size :over 4K)\""
(concat "(" (mapconcat 'gnus-sieve-test list ", ") ")"))
"Convert an elisp test token to a Sieve test token.
For example:
-\(gnus-sieve-test-token 'address)
+\(gnus-sieve-test-token \\='address)
=> \"address\"
\(gnus-sieve-test-token \"sender\")
=> \"\\\"sender\\\"\"
-\(gnus-sieve-test-token '(\"to\" \"cc\"))
+\(gnus-sieve-test-token \\='(\"to\" \"cc\"))
=> \"[\\\"to\\\", \\\"cc\\\"]\""
(cond
((symbolp token) ;; Keyword
"Convert an elisp test to a Sieve test.
For example:
-\(gnus-sieve-test '(address \"sender\" \"sieve-admin@extundo.com\"))
+\(gnus-sieve-test \\='(address \"sender\" \"sieve-admin@extundo.com\"))
=> \"address \\\"sender\\\" \\\"sieve-admin@extundo.com\\\"\"
-\(gnus-sieve-test '(anyof ((header :contains (\"to\" \"cc\") \"my@address.com\")
+\(gnus-sieve-test \\='(anyof ((header :contains (\"to\" \"cc\") \"my@address.com\")
(size :over 100K))))
=> \"anyof (header :contains [\\\"to\\\", \\\"cc\\\"] \\\"my@address.com\\\",
size :over 100K)\""
(while (let (c
(cursor-in-echo-area t)
(echo-keystrokes 0))
- (message "Convert gnus from version '%s' to '%s'? (n/y/?)"
+ (message "Convert gnus from version ‘%s’ to ‘%s’? (n/y/?)"
gnus-newsrc-file-version gnus-version)
(setq c (read-char-exclusive))
(funcall func convert-to)))
(gnus-dribble-enter
- (format ";Converted gnus from version '%s' to '%s'."
- gnus-newsrc-file-version gnus-version)))))))
+ (gnus-format-message ";Converted gnus from version ‘%s’ to ‘%s’."
+ gnus-newsrc-file-version gnus-version)))))))
(defun gnus-convert-mark-converter-prompt (converter no-prompt)
"Indicate whether CONVERTER requires gnus-convert-old-newsrc to
(gnus-summary-position-point)))
(defun gnus-summary-limit-to-extra (header regexp &optional not-matching)
- "Limit the summary buffer to articles that match an 'extra' header."
+ "Limit the summary buffer to articles that match an `extra' header."
(interactive
(let ((header
(intern
(read-string (format "Rename %s to: " topic) topic))))
;; Check whether the new name exists.
(when (gnus-topic-find-topology new-name)
- (error "Topic '%s' already exists" new-name))
+ (error "Topic ‘%s’ already exists" new-name))
;; "nil" is an invalid name, for reasons I'd rather not go
;; into here. Trust me.
(when (equal new-name "nil")
For example:
-To make gnus-uu use 'xli' to display JPEG and GIF files, put the
+To make gnus-uu use `xli' to display JPEG and GIF files, put the
following in your .emacs file:
- (setq gnus-uu-user-view-rules '((\"jpg$\\\\|gif$\" \"xli\")))
+ (setq gnus-uu-user-view-rules \\='((\"jpg$\\\\|gif$\" \"xli\")))
Both these variables are lists of lists with two string elements. The
first string is a regular expression. If the file name matches this
(defcustom gnus-uu-user-archive-rules nil
"A list that can be set to override the default archive unpacking commands.
-To use, for instance, 'untar' to unpack tar files and 'zip -x' to
+To use, for instance, `untar' to unpack tar files and `zip -x' to
unpack zip files, say the following:
(setq gnus-uu-user-archive-rules
'((\"\\\\.tar$\" \"untar\")
For instance, if you want to get your news via \"flab.flab.edu\" using
NNTP, you could say:
-\(setq gnus-select-method '(nntp \"flab.flab.edu\"))
+\(setq gnus-select-method \\='(nntp \"flab.flab.edu\"))
If you want to use your local spool, say:
-\(setq gnus-select-method (list 'nnspool (system-name)))
+\(setq gnus-select-method (list \\='nnspool (system-name)))
If you use this variable, you must set `gnus-nntp-server' to nil.
If, for instance, you want to read your mail with the nnml back end,
you could set this variable:
-\(setq gnus-secondary-select-methods '((nnml \"\")))"
+\(setq gnus-secondary-select-methods \\='((nnml \"\")))"
:group 'gnus-server
:type '(repeat gnus-select-method))
(insert "The definition of gnus-agent-expire-days has been changed.\nYou currently have it set to the list:\n ")
(gnus-pp gnus-agent-expire-days)
- (insert "\nIn order to use version '" converting-to "' of gnus, you will need to set\n")
+ (insert
+ (gnus-format-message
+ "\nIn order to use version ‘%s’ of gnus, you will need to set\n"
+ converting-to))
(insert "gnus-agent-expire-days to an integer. If you still wish to set different\n")
(insert "expiration days to individual groups, you must instead set the\n")
- (insert "'agent-days-until-old group and/or topic parameter.\n")
+ (insert (gnus-format-message
+ "‘agent-days-until-old’ group and/or topic parameter.\n"))
(insert "\n")
(insert "If you would like, gnus can iterate over every group comparing its name to the\n")
(insert "regular expressions that you currently have in gnus-agent-expire-days. When\n")
- (insert "gnus finds a match, it will update that group's 'agent-days-until-old group\n")
+ (insert (gnus-format-message
+ "gnus finds a match, it will update that group's ‘agent-days-until-old’ group\n"))
(insert "parameter to the value associated with the regular expression.\n")
(insert "\n")
(insert "Whether gnus assigns group parameters, or not, gnus will terminate with an\n")
`message-send-mail-function' variable as `message-smtpmail-send-it'
and put the following line in your ~/.gnus.el file:
-\(add-hook 'message-send-mail-hook 'mail-source-touch-pop)
+\(add-hook \\='message-send-mail-hook \\='mail-source-touch-pop)
See the Gnus manual for details."
(let ((sources (if mail-source-primary-source
newsgroup), in brackets followed by the subject
* `message-forward-subject-name-subject' Source of article (name of author
or newsgroup), in brackets followed by the subject
-* `message-forward-subject-fwd' Subject of article with 'Fwd:' prepended
+* `message-forward-subject-fwd' Subject of article with `Fwd:' prepended
to it."
:group 'message-forwarding
:link '(custom-manual "(message)Forwarding")
(defun message-is-yours-p ()
"Non-nil means current article is yours.
-If you have added 'cancel-messages to `message-shoot-gnksa-feet', all articles
+If you have added `cancel-messages' to `message-shoot-gnksa-feet', all articles
are yours except those that have Cancel-Lock header not belonging to you.
Instead of shooting GNKSA feet, you should modify `message-alternative-emails'
regexp to match all of yours addresses."
(defun message-flatten-list (list)
"Return a new, flat list that contains all elements of LIST.
-\(message-flatten-list '(1 (2 3 (4 5 (6))) 7))
+\(message-flatten-list \\='(1 (2 3 (4 5 (6))) 7))
=> (1 2 3 4 5 6 7)"
(cond ((consp list)
(apply 'append (mapcar 'message-flatten-list list)))
For instance, if \":\" is invalid as a file character in file names
on your system, you could say something like:
-\(setq nnheader-file-name-translation-alist '((?: . ?_)))")
+\(setq nnheader-file-name-translation-alist \\='((?: . ?_)))")
(defvar nnheader-directory-separator-character
(string-to-char (substring (file-name-as-directory ".") -1))
E.g.:
-\(add-hook 'nnmail-read-incoming-hook
+\(add-hook \\='nnmail-read-incoming-hook
(lambda ()
(call-process \"/local/bin/mailsend\" nil nil nil
\"read\"
If you use `display-time', you could use something like this:
-\(add-hook 'nnmail-read-incoming-hook
+\(add-hook \\='nnmail-read-incoming-hook
(lambda ()
;; Update the displayed time, since that will clear out
;; the flag that says you have mail.
- (when (eq (process-status \"display-time\") 'run)
+ (when (eq (process-status \"display-time\") \\='run)
(display-time-filter display-time-process \"\"))))"
:group 'nnmail-prepare
:type 'hook)
Example:
-\(setq nnmail-split-methods 'nnmail-split-fancy
+\(setq nnmail-split-methods \\='nnmail-split-fancy
nnmail-split-fancy
;; Messages from the mailer daemon are not crossposted to any of
;; the ordinary groups. Warnings are put in a separate group
;; from real errors.
- '(| (\"from\" mail (| (\"subject\" \"warn.*\" \"mail.warning\")
+ \\='(| (\"from\" mail (| (\"subject\" \"warn.*\" \"mail.warning\")
\"mail.misc\"))
;; Non-error messages are crossposted to all relevant
;; groups, but we don't crosspost between the group for the
(defcustom nnmairix-mairix-update-options '("-F" "-Q")
"Options when calling mairix for updating the database.
-The default is '-F' and '-Q' for making updates faster. You
+The default is \"-F\" and \"-Q\" for making updates faster. You
should call mairix without these options from time to
time (e.g. via cron job)."
:version "23.1"
(defcustom nnmairix-mairix-search-options '("-Q")
"Options when calling mairix for searching.
-The default is '-Q' for making searching faster."
+The default is \"-Q\" for making searching faster."
:version "23.1"
:type '(repeat string)
:group 'nnmairix)
(kill-all-local-variables)
(erase-buffer)
(widget-insert "Specify your query for Mairix (check boxes for activating fields):\n\n")
- (widget-insert "(Whitespaces will be converted to ',' (i.e. AND). Use '/' for OR.)\n\n")
+ (widget-insert "(Whitespaces will be converted to ‘,’ (i.e. AND). Use ‘/’ for OR.)\n\n")
; (make-local-variable 'nnmairix-widgets)
(setq nnmairix-widgets (nnmairix-widget-build-editable-fields values))
(when (member 'flags nnmairix-widget-other)
(defvar nntp-async-process-list nil)
(defvar nntp-authinfo-rejected nil
-"A custom error condition used to report 'Authentication Rejected' errors.
+"A custom error condition used to report `Authentication Rejected' errors.
Condition handlers that match just this condition ensure that the nntp
backend doesn't catch this error.")
(put 'nntp-authinfo-rejected 'error-conditions '(error nntp-authinfo-rejected))
(defmethod registry-search ((db registry-db) &rest spec)
"Search for SPEC across the registry-db THIS.
-For example calling with :member '(a 1 2) will match entry '((a 3 1)).
+For example calling with :member \\='(a 1 2) will match entry \\='((a 3 1)).
Calling with :all t (any non-nil value) will match all.
-Calling with :regex '\(a \"h.llo\") will match entry '((a \"hullo\" \"bye\").
+Calling with :regex \\='\(a \"h.llo\") will match entry \\='((a \"hullo\" \"bye\").
The test order is to check :all first, then :member, then :regex."
(when db
(let ((all (plist-get spec :all))
(if spam-use-dig
(let ((query-result (query-dig query-string)))
(when query-result
- (gnus-message 6 "(DIG): positive blackhole check '%s'"
+ (gnus-message 6 "(DIG): positive blackhole check ‘%s’"
query-result)
(push (list ip server query-result)
matches)))