Remove some ineffectual calls to purecopy
* lisp/dired.el (dired-chown-program, dired-trivial-filenames): * lisp/emacs-lisp/shortdoc.el (shortdoc--display-function): * lisp/help-fns.el (help-fns--mention-shortdoc-groups): * lisp/mail/mail-extr.el (mail-extr-full-name-prefixes) (mail-extr-all-letters-but-separators, mail-extr-all-letters) (mail-extr-first-letters, mail-extr-last-letters) (mail-extr-bad-dot-pattern, mail-extr-full-name-suffix-pattern) (mail-extr-alternative-address-pattern) (mail-extr-trailing-comment-start-pattern) (mail-extr-name-pattern, mail-extr-telephone-extension-pattern) (mail-extr-ham-call-sign-pattern, mail-extr-normal-name-pattern) (mail-extr-two-name-pattern) (mail-extr-listserv-list-name-pattern) (mail-extr-stupid-vms-date-stamp-pattern) (mail-extr-hz-embedded-gb-encoded-chinese-pattern) (mail-extr-x400-encoded-address-pattern) (mail-extr-x400-encoded-address-field-pattern-format) (mail-extr-x400-encoded-address-surname-pattern) (mail-extr-x400-encoded-address-given-name-pattern) (mail-extr-x400-encoded-address-full-name-pattern): Remove ineffectual calls to purecopy.
This commit is contained in:
parent
29684a7342
commit
27c3a8b277
4 changed files with 59 additions and 72 deletions
|
@ -103,10 +103,10 @@ If `dired-maybe-use-globstar' is non-nil, then `dired-insert-directory'
|
|||
checks this alist to enable globstar in the shell subprocess.")
|
||||
|
||||
(defcustom dired-chown-program
|
||||
(purecopy (cond ((executable-find "chown") "chown")
|
||||
((file-executable-p "/usr/sbin/chown") "/usr/sbin/chown")
|
||||
((file-executable-p "/etc/chown") "/etc/chown")
|
||||
(t "chown")))
|
||||
(cond ((executable-find "chown") "chown")
|
||||
((file-executable-p "/usr/sbin/chown") "/usr/sbin/chown")
|
||||
((file-executable-p "/etc/chown") "/etc/chown")
|
||||
(t "chown"))
|
||||
"Name of chown command (usually `chown')."
|
||||
:group 'dired
|
||||
:type 'file)
|
||||
|
@ -161,7 +161,7 @@ always set this variable to t."
|
|||
:type 'boolean
|
||||
:group 'dired-mark)
|
||||
|
||||
(defcustom dired-trivial-filenames (purecopy "\\`\\.\\.?\\'\\|\\`\\.?#")
|
||||
(defcustom dired-trivial-filenames "\\`\\.\\.?\\'\\|\\`\\.?#"
|
||||
"Regexp of files to skip when finding first file of a directory.
|
||||
A value of nil means move to the subdir line.
|
||||
A value of t means move to first file."
|
||||
|
|
|
@ -1367,15 +1367,15 @@ If SAME-WINDOW, don't pop to a new window."
|
|||
'action (lambda (_)
|
||||
(describe-function function))
|
||||
'follow-link t
|
||||
'help-echo (purecopy "mouse-1, RET: describe function"))
|
||||
'help-echo "mouse-1, RET: describe function")
|
||||
(insert-text-button
|
||||
(symbol-name function)
|
||||
'face 'button
|
||||
'action (lambda (_)
|
||||
(info-lookup-symbol function 'emacs-lisp-mode))
|
||||
'follow-link t
|
||||
'help-echo (purecopy "mouse-1, RET: show \
|
||||
function's documentation in the Info manual")))
|
||||
'help-echo "mouse-1, RET: show \
|
||||
function's documentation in the Info manual"))
|
||||
(setq arglist-start (point))
|
||||
(insert ")\n")
|
||||
;; Doc string.
|
||||
|
|
|
@ -868,7 +868,7 @@ the C sources, too."
|
|||
(shortdoc-display-group group object
|
||||
help-window-keep-selected))
|
||||
'follow-link t
|
||||
'help-echo (purecopy "mouse-1, RET: show documentation group")))
|
||||
'help-echo "mouse-1, RET: show documentation group"))
|
||||
groups)
|
||||
(insert (if (= (length groups) 1)
|
||||
" group.\n"
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
;;; mail-extr.el --- extract full name and address from email header -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 1991-1994, 1997, 2001-2022 Free Software Foundation,
|
||||
;; Inc.
|
||||
;; Copyright (C) 1991-2022 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Joe Wells <jbw@cs.bu.edu>
|
||||
;; Maintainer: emacs-devel@gnu.org
|
||||
|
@ -240,8 +239,7 @@ we will act as though we couldn't find a full name in the address."
|
|||
;; Matches a leading title that is not part of the name (does not
|
||||
;; contribute to uniquely identifying the person).
|
||||
(defcustom mail-extr-full-name-prefixes
|
||||
(purecopy
|
||||
"\\(Prof\\|D[Rr]\\|Mrs?\\|Rev\\|Rabbi\\|SysOp\\|LCDR\\)\\.?[ \t\n]")
|
||||
"\\(Prof\\|D[Rr]\\|Mrs?\\|Rev\\|Rabbi\\|SysOp\\|LCDR\\)\\.?[ \t\n]"
|
||||
"Matches prefixes to the full name that identify a person's position.
|
||||
These are stripped from the full name because they do not contribute to
|
||||
uniquely identifying the person."
|
||||
|
@ -279,45 +277,42 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"."
|
|||
;; Yes, there are weird people with digits in their names.
|
||||
;; You will also notice the consideration for the
|
||||
;; Swedish/Finnish/Norwegian character set.
|
||||
(defconst mail-extr-all-letters-but-separators
|
||||
(purecopy "][[:alnum:]{|}'~`"))
|
||||
(defconst mail-extr-all-letters-but-separators "][[:alnum:]{|}'~`")
|
||||
|
||||
;; Any character that can occur in a name in an RFC 822 (or later)
|
||||
;; address including the separator (hyphen and possibly period) for
|
||||
;; multipart names.
|
||||
;; #### should . be in here?
|
||||
(defconst mail-extr-all-letters
|
||||
(purecopy (concat mail-extr-all-letters-but-separators "-")))
|
||||
(concat mail-extr-all-letters-but-separators "-"))
|
||||
|
||||
;; Any character that can start a name.
|
||||
;; Keep this set as minimal as possible.
|
||||
(defconst mail-extr-first-letters (purecopy "[:alpha:]"))
|
||||
(defconst mail-extr-first-letters "[:alpha:]")
|
||||
|
||||
;; Any character that can end a name.
|
||||
;; Keep this set as minimal as possible.
|
||||
(defconst mail-extr-last-letters (purecopy "[:alpha:]`'."))
|
||||
(defconst mail-extr-last-letters "[:alpha:]`'.")
|
||||
|
||||
(defconst mail-extr-leading-garbage "\\W+")
|
||||
|
||||
;; (defconst mail-extr-non-begin-name-chars
|
||||
;; (purecopy (concat "^" mail-extr-first-letters)))
|
||||
;; (concat "^" mail-extr-first-letters))
|
||||
;; (defconst mail-extr-non-end-name-chars
|
||||
;; (purecopy (concat "^" mail-extr-last-letters)))
|
||||
;; (concat "^" mail-extr-last-letters))
|
||||
|
||||
;; Matches periods used instead of spaces. Must not match the period
|
||||
;; following an initial.
|
||||
(defconst mail-extr-bad-dot-pattern
|
||||
(purecopy
|
||||
(format "\\([%s][%s]\\)\\.+\\([%s]\\)"
|
||||
mail-extr-all-letters
|
||||
mail-extr-last-letters
|
||||
mail-extr-first-letters)))
|
||||
(format "\\([%s][%s]\\)\\.+\\([%s]\\)"
|
||||
mail-extr-all-letters
|
||||
mail-extr-last-letters
|
||||
mail-extr-first-letters))
|
||||
|
||||
;; Matches an embedded or leading nickname that should be removed.
|
||||
;; (defconst mail-extr-nickname-pattern
|
||||
;; (purecopy
|
||||
;; (format "\\([ .]\\|\\`\\)[\"'`[(]\\([ .%s]+\\)[]\"')] "
|
||||
;; mail-extr-all-letters)))
|
||||
;; (format "\\([ .]\\|\\`\\)[\"'`[(]\\([ .%s]+\\)[]\"')] "
|
||||
;; mail-extr-all-letters))
|
||||
|
||||
;; Matches the occurrence of a generational name suffix, and the last
|
||||
;; character of the preceding name. This is important because we want to
|
||||
|
@ -325,59 +320,56 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"."
|
|||
;; *** Perhaps this should be a user-customizable variable. However, the
|
||||
;; *** regular expression is fairly tricky to alter, so maybe not.
|
||||
(defconst mail-extr-full-name-suffix-pattern
|
||||
(purecopy
|
||||
(format
|
||||
"\\(,? ?\\([JjSs][Rr]\\.?\\|V?I+V?\\)\\)\\([^%s]\\([^%s]\\|\\'\\)\\|\\'\\)"
|
||||
mail-extr-all-letters mail-extr-all-letters)))
|
||||
(format
|
||||
"\\(,? ?\\([JjSs][Rr]\\.?\\|V?I+V?\\)\\)\\([^%s]\\([^%s]\\|\\'\\)\\|\\'\\)"
|
||||
mail-extr-all-letters mail-extr-all-letters))
|
||||
|
||||
(defconst mail-extr-roman-numeral-pattern (purecopy "V?I+V?\\b"))
|
||||
(defconst mail-extr-roman-numeral-pattern "V?I+V?\\b")
|
||||
|
||||
;; Matches a trailing uppercase (with other characters possible) acronym.
|
||||
;; Must not match a trailing uppercase last name or trailing initial
|
||||
(defconst mail-extr-weird-acronym-pattern
|
||||
(purecopy "\\([A-Z]+[-_/]\\|[A-Z][A-Z][A-Z]?\\b\\)"))
|
||||
"\\([A-Z]+[-_/]\\|[A-Z][A-Z][A-Z]?\\b\\)")
|
||||
|
||||
;; Matches a mixed-case or lowercase name (not an initial).
|
||||
;; #### Match Latin1 lower case letters here too?
|
||||
;; (defconst mail-extr-mixed-case-name-pattern
|
||||
;; (purecopy
|
||||
;; (format
|
||||
;; "\\b\\([a-z][%s]*[%s]\\|[%s][%s]*[a-z][%s]*[%s]\\|[%s][%s]*[a-z]\\)"
|
||||
;; mail-extr-all-letters mail-extr-last-letters
|
||||
;; mail-extr-first-letters mail-extr-all-letters mail-extr-all-letters
|
||||
;; mail-extr-last-letters mail-extr-first-letters mail-extr-all-letters)))
|
||||
;; (format
|
||||
;; "\\b\\([a-z][%s]*[%s]\\|[%s][%s]*[a-z][%s]*[%s]\\|[%s][%s]*[a-z]\\)"
|
||||
;; mail-extr-all-letters mail-extr-last-letters
|
||||
;; mail-extr-first-letters mail-extr-all-letters mail-extr-all-letters
|
||||
;; mail-extr-last-letters mail-extr-first-letters mail-extr-all-letters))
|
||||
|
||||
;; Matches a trailing alternative address.
|
||||
;; #### Match Latin1 letters here too?
|
||||
;; #### Match _ before @ here too?
|
||||
(defconst mail-extr-alternative-address-pattern
|
||||
(purecopy "\\(aka *\\)?[a-zA-Z.]+[!@][a-zA-Z.]"))
|
||||
"\\(aka *\\)?[a-zA-Z.]+[!@][a-zA-Z.]")
|
||||
|
||||
;; Matches a variety of trailing comments not including comma-delimited
|
||||
;; comments.
|
||||
(defconst mail-extr-trailing-comment-start-pattern
|
||||
(purecopy " [-{]\\|--\\|[+@#></;]"))
|
||||
" [-{]\\|--\\|[+@#></;]")
|
||||
|
||||
;; Matches a name (not an initial).
|
||||
;; This doesn't force a word boundary at the end because sometimes a
|
||||
;; comment is separated by a `-' with no preceding space.
|
||||
(defconst mail-extr-name-pattern
|
||||
(purecopy (format "\\b[%s][%s]*[%s]"
|
||||
mail-extr-first-letters
|
||||
mail-extr-all-letters
|
||||
mail-extr-last-letters)))
|
||||
(format "\\b[%s][%s]*[%s]"
|
||||
mail-extr-first-letters
|
||||
mail-extr-all-letters
|
||||
mail-extr-last-letters))
|
||||
|
||||
(defconst mail-extr-initial-pattern
|
||||
(purecopy (format "\\b[%s]\\([. ]\\|\\b\\)" mail-extr-first-letters)))
|
||||
(format "\\b[%s]\\([. ]\\|\\b\\)" mail-extr-first-letters))
|
||||
|
||||
;; Matches a single name before a comma.
|
||||
;; (defconst mail-extr-last-name-first-pattern
|
||||
;; (purecopy (concat "\\`" mail-extr-name-pattern ",")))
|
||||
;; (concat "\\`" mail-extr-name-pattern ","))
|
||||
|
||||
;; Matches telephone extensions.
|
||||
(defconst mail-extr-telephone-extension-pattern
|
||||
(purecopy
|
||||
"\\(\\([Ee]xt\\|[Tt]ph\\|[Tt]el\\|[Xx]\\)\\.?\\)? *\\+?[0-9][- 0-9]+"))
|
||||
"\\(\\([Ee]xt\\|[Tt]ph\\|[Tt]el\\|[Xx]\\)\\.?\\)? *\\+?[0-9][- 0-9]+")
|
||||
|
||||
;; Matches ham radio call signs.
|
||||
;; Help from: Mat Maessen N2NJZ <maessm@rpi.edu>, Mark Feit
|
||||
|
@ -386,7 +378,7 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"."
|
|||
;; KE9TV KF0NV N1API N3FU N3GZE N3IGS N4KCC N7IKQ N9HHU W4YHF W6ANK WA2SUH
|
||||
;; WB7VZI N2NJZ NR3G KJ4KK AB4UM AL7NI KH6OH WN3KBT N4TMI W1A N0NZO
|
||||
(defconst mail-extr-ham-call-sign-pattern
|
||||
(purecopy "\\b\\(DX[0-9]+\\|[AKNW][A-Z]?[0-9][A-Z][A-Z]?[A-Z]?\\)"))
|
||||
"\\b\\(DX[0-9]+\\|[AKNW][A-Z]?[0-9][A-Z][A-Z]?[A-Z]?\\)")
|
||||
|
||||
;; Possible trailing suffixes: "\\(/\\(KT\\|A[AEG]\\|[R0-9]\\)\\)?"
|
||||
;; /KT == Temporary Technician (has CSC but not "real" license)
|
||||
|
@ -400,31 +392,29 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"."
|
|||
|
||||
;; Matches normal single-part name
|
||||
(defconst mail-extr-normal-name-pattern
|
||||
(purecopy (format "\\b[%s][%s]+[%s]"
|
||||
mail-extr-first-letters
|
||||
mail-extr-all-letters-but-separators
|
||||
mail-extr-last-letters)))
|
||||
(format "\\b[%s][%s]+[%s]"
|
||||
mail-extr-first-letters
|
||||
mail-extr-all-letters-but-separators
|
||||
mail-extr-last-letters))
|
||||
|
||||
;; Matches a single word name.
|
||||
;; (defconst mail-extr-one-name-pattern
|
||||
;; (purecopy (concat "\\`" mail-extr-normal-name-pattern "\\'")))
|
||||
;; (concat "\\`" mail-extr-normal-name-pattern "\\'"))
|
||||
|
||||
;; Matches normal two names with missing middle initial
|
||||
;; The first name is not allowed to have a hyphen because this can cause
|
||||
;; false matches where the "middle initial" is actually the first letter
|
||||
;; of the second part of the first name.
|
||||
(defconst mail-extr-two-name-pattern
|
||||
(purecopy
|
||||
(concat "\\`\\(" mail-extr-normal-name-pattern
|
||||
"\\|" mail-extr-initial-pattern
|
||||
"\\) +\\(" mail-extr-name-pattern "\\)\\(,\\|\\'\\)")))
|
||||
(concat "\\`\\(" mail-extr-normal-name-pattern
|
||||
"\\|" mail-extr-initial-pattern
|
||||
"\\) +\\(" mail-extr-name-pattern "\\)\\(,\\|\\'\\)"))
|
||||
|
||||
(defconst mail-extr-listserv-list-name-pattern
|
||||
(purecopy "Multiple recipients of list \\([-A-Z]+\\)"))
|
||||
"Multiple recipients of list \\([-A-Z]+\\)")
|
||||
|
||||
(defconst mail-extr-stupid-vms-date-stamp-pattern
|
||||
(purecopy
|
||||
"[0-9][0-9]-[JFMASOND][aepuco][nbrylgptvc]-[0-9][0-9][0-9][0-9] [0-9]+ *"))
|
||||
"[0-9][0-9]-[JFMASOND][aepuco][nbrylgptvc]-[0-9][0-9][0-9][0-9] [0-9]+ *")
|
||||
|
||||
;;; HZ -- GB (PRC Chinese character encoding) in ASCII embedding protocol
|
||||
;;
|
||||
|
@ -443,25 +433,23 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"."
|
|||
;; mode from GB back to ASCII. (Note that the escape-from-GB code '~}'
|
||||
;; ($7E7D) is outside the defined GB range.)
|
||||
(defconst mail-extr-hz-embedded-gb-encoded-chinese-pattern
|
||||
(purecopy "~{\\([^~].\\|~[^}]\\)+~}"))
|
||||
"~{\\([^~].\\|~[^}]\\)+~}")
|
||||
|
||||
;; The leading optional lowercase letters are for a bastardized version of
|
||||
;; the encoding, as is the optional nature of the final slash.
|
||||
(defconst mail-extr-x400-encoded-address-pattern
|
||||
(purecopy "[a-z]?[a-z]?\\(/[A-Za-z]+\\(\\.[A-Za-z]+\\)?=[^/]+\\)+/?\\'"))
|
||||
"[a-z]?[a-z]?\\(/[A-Za-z]+\\(\\.[A-Za-z]+\\)?=[^/]+\\)+/?\\'")
|
||||
|
||||
(defconst mail-extr-x400-encoded-address-field-pattern-format
|
||||
(purecopy "/%s=\\([^/]+\\)\\(/\\|\\'\\)"))
|
||||
"/%s=\\([^/]+\\)\\(/\\|\\'\\)")
|
||||
|
||||
(defconst mail-extr-x400-encoded-address-surname-pattern
|
||||
;; S stands for Surname (family name).
|
||||
(purecopy
|
||||
(format mail-extr-x400-encoded-address-field-pattern-format "[Ss]")))
|
||||
(format mail-extr-x400-encoded-address-field-pattern-format "[Ss]"))
|
||||
|
||||
(defconst mail-extr-x400-encoded-address-given-name-pattern
|
||||
;; G stands for Given name.
|
||||
(purecopy
|
||||
(format mail-extr-x400-encoded-address-field-pattern-format "[Gg]")))
|
||||
(format mail-extr-x400-encoded-address-field-pattern-format "[Gg]"))
|
||||
|
||||
(defconst mail-extr-x400-encoded-address-full-name-pattern
|
||||
;; PN stands for Personal Name. When used it represents the combination
|
||||
|
@ -469,8 +457,7 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"."
|
|||
;; "The one system I used having this field asked it with the prompt
|
||||
;; `Personal Name'. But they mapped it into G and S on outgoing real
|
||||
;; X.400 addresses. As they mapped G and S into PN on incoming..."
|
||||
(purecopy
|
||||
(format mail-extr-x400-encoded-address-field-pattern-format "[Pp][Nn]")))
|
||||
(format mail-extr-x400-encoded-address-field-pattern-format "[Pp][Nn]"))
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue