Commit graph

561 commits

Author SHA1 Message Date
Mattias Engdegård
3b7b181bde Use string-search instead of string-match[-p]
`string-search` is easier to understand, less error-prone, much
faster, does not pollute the regexp cache, and does not mutate global
state.  Use it where applicable and obviously safe (erring on the
conservative side).

* admin/authors.el (authors-canonical-file-name)
(authors-scan-change-log):
* lisp/apropos.el (apropos-command)
(apropos-documentation-property, apropos-symbols-internal):
* lisp/arc-mode.el (archive-arc-summarize)
(archive-zoo-summarize):
* lisp/calc/calc-aent.el (math-read-factor):
* lisp/calc/calc-ext.el (math-read-big-expr)
(math-format-nice-expr, math-format-number-fancy):
* lisp/calc/calc-forms.el (math-read-angle-brackets):
* lisp/calc/calc-graph.el (calc-graph-set-range):
* lisp/calc/calc-keypd.el (calc-keypad-press):
* lisp/calc/calc-lang.el (tex, latex, math-read-big-rec):
* lisp/calc/calc-prog.el (calc-fix-token-name)
(calc-user-define-permanent, math-define-exp):
* lisp/calc/calc.el (calc-record, calcDigit-key)
(calc-count-lines):
* lisp/calc/calcalg2.el (calc-solve-for, calc-poly-roots)
(math-do-integral):
* lisp/calc/calcalg3.el (calc-find-root, calc-find-minimum)
(calc-get-fit-variables):
* lisp/cedet/ede/speedbar.el (ede-tag-expand):
* lisp/cedet/semantic/java.el (semantic-java-expand-tag):
* lisp/cedet/semantic/sb.el (semantic-sb-show-extra)
(semantic-sb-expand-group):
* lisp/cedet/semantic/wisent/python.el
(semantic-python-instance-variable-p):
* lisp/cus-edit.el (get):
* lisp/descr-text.el (describe-text-sexp):
* lisp/dired-aux.el (dired-compress-file):
* lisp/dired-x.el (dired-make-relative-symlink):
* lisp/dired.el (dired-glob-regexp):
* lisp/dos-fns.el (dos-convert-standard-filename, dos-8+3-filename):
* lisp/edmacro.el (edmacro-format-keys):
* lisp/emacs-lisp/eieio-opt.el (eieio-sb-expand):
* lisp/emacs-lisp/eieio-speedbar.el (eieio-speedbar-object-expand):
* lisp/emacs-lisp/lisp-mnt.el (lm-keywords-list):
* lisp/emacs-lisp/warnings.el (display-warning):
* lisp/emulation/viper-ex.el (viper-ex-read-file-name)
(ex-print-display-lines):
* lisp/env.el (read-envvar-name, setenv):
* lisp/epa-mail.el (epa-mail-encrypt):
* lisp/epg.el (epg--start):
* lisp/erc/erc-backend.el (erc-parse-server-response):
* lisp/erc/erc-dcc.el (erc-dcc-member):
* lisp/erc/erc-speedbar.el (erc-speedbar-expand-server)
(erc-speedbar-expand-channel, erc-speedbar-expand-user):
* lisp/erc/erc.el (erc-send-input):
* lisp/eshell/em-glob.el (eshell-glob-entries):
* lisp/eshell/esh-proc.el (eshell-needs-pipe-p):
* lisp/eshell/esh-util.el (eshell-convert):
* lisp/eshell/esh-var.el (eshell-envvar-names):
* lisp/faces.el (x-resolve-font-name):
* lisp/ffap.el (ffap-file-at-point):
* lisp/files.el (wildcard-to-regexp, shell-quote-wildcard-pattern):
* lisp/forms.el (forms--update):
* lisp/frameset.el (frameset-filter-unshelve-param):
* lisp/gnus/gnus-art.el (article-decode-charset):
* lisp/gnus/gnus-kill.el (gnus-kill-parse-rn-kill-file):
* lisp/gnus/gnus-mlspl.el (gnus-group-split-fancy):
* lisp/gnus/gnus-msg.el (gnus-summary-resend-message-insert-gcc)
(gnus-inews-insert-gcc):
* lisp/gnus/gnus-rfc1843.el (rfc1843-decode-article-body):
* lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output)
(gnus-search--complete-key-data):
* lisp/gnus/gnus-spec.el (gnus-parse-simple-format):
* lisp/gnus/gnus-sum.el (gnus-summary-refer-article):
* lisp/gnus/gnus-util.el (gnus-extract-address-components)
(gnus-newsgroup-directory-form):
* lisp/gnus/gnus-uu.el (gnus-uu-grab-view):
* lisp/gnus/gnus.el (gnus-group-native-p, gnus-short-group-name):
* lisp/gnus/message.el (message-check-news-header-syntax)
(message-make-message-id, message-user-mail-address)
(message-make-fqdn, message-get-reply-headers, message-followup):
* lisp/gnus/mm-decode.el (mm-dissect-buffer):
* lisp/gnus/nnheader.el (nnheader-insert):
* lisp/gnus/nnimap.el (nnimap-process-quirk)
(nnimap-imap-ranges-to-gnus-ranges):
* lisp/gnus/nnmaildir.el (nnmaildir--ensure-suffix):
* lisp/gnus/nnmairix.el (nnmairix-determine-original-group-from-path):
* lisp/gnus/nnrss.el (nnrss-match-macro):
* lisp/gnus/nntp.el (nntp-find-group-and-number):
* lisp/help-fns.el (help--symbol-completion-table-affixation):
* lisp/help.el (help-function-arglist):
* lisp/hippie-exp.el (he-concat-directory-file-name):
* lisp/htmlfontify.el (hfy-relstub):
* lisp/ido.el (ido-make-prompt, ido-complete, ido-copy-current-word)
(ido-exhibit):
* lisp/image/image-converter.el (image-convert-p):
* lisp/info-xref.el (info-xref-docstrings):
* lisp/info.el (Info-toc-build, Info-follow-reference)
(Info-backward-node, Info-finder-find-node)
(Info-speedbar-expand-node):
* lisp/international/mule-diag.el (print-fontset-element):
* lisp/language/korea-util.el (default-korean-keyboard):
* lisp/linum.el (linum-after-change):
* lisp/mail/ietf-drums.el (ietf-drums-parse-address):
* lisp/mail/mail-utils.el (mail-dont-reply-to):
* lisp/mail/rfc2047.el (rfc2047-encode-1, rfc2047-decode-string):
* lisp/mail/rfc2231.el (rfc2231-parse-string):
* lisp/mail/rmailkwd.el (rmail-set-label):
* lisp/mail/rmailsum.el (rmail-header-summary):
* lisp/mail/smtpmail.el (smtpmail-maybe-append-domain)
(smtpmail-user-mail-address):
* lisp/mail/uce.el (uce-reply-to-uce):
* lisp/man.el (Man-default-man-entry):
* lisp/mh-e/mh-alias.el (mh-alias-gecos-name)
(mh-alias-minibuffer-confirm-address):
* lisp/mh-e/mh-comp.el (mh-forwarded-letter-subject):
* lisp/mh-e/mh-speed.el (mh-speed-parse-flists-output):
* lisp/mh-e/mh-utils.el (mh-collect-folder-names-filter)
(mh-folder-completion-function):
* lisp/minibuffer.el (completion--make-envvar-table)
(completion-file-name-table, completion-flex-try-completion)
(completion-flex-all-completions):
* lisp/mpc.el (mpc--proc-quote-string, mpc-cmd-special-tag-p)
(mpc-constraints-tag-lookup):
* lisp/net/ange-ftp.el (ange-ftp-send-cmd)
(ange-ftp-allow-child-lookup):
* lisp/net/mailcap.el (mailcap-mime-types):
* lisp/net/mairix.el (mairix-search-thread-this-article):
* lisp/net/pop3.el (pop3-open-server):
* lisp/net/soap-client.el (soap-decode-xs-complex-type):
* lisp/net/socks.el (socks-filter):
* lisp/nxml/nxml-outln.el (nxml-highlighted-qname):
* lisp/nxml/rng-cmpct.el (rng-c-expand-name, rng-c-expand-datatype):
* lisp/nxml/rng-uri.el (rng-uri-file-name-1):
* lisp/obsolete/complete.el (partial-completion-mode)
(PC-do-completion):
* lisp/obsolete/longlines.el (longlines-encode-string):
* lisp/obsolete/nnir.el (nnir-compose-result):
* lisp/obsolete/terminal.el (te-quote-arg-for-sh):
* lisp/obsolete/tpu-edt.el (tpu-check-search-case):
* lisp/obsolete/url-ns.el (isPlainHostName):
* lisp/pcmpl-unix.el (pcomplete/scp):
* lisp/play/dunnet.el (dun-listify-string2, dun-get-path)
(dun-unix-parse, dun-doassign, dun-cat, dun-batch-unix-interface):
* lisp/progmodes/ebnf2ps.el: (ebnf-eps-header-footer-comment):
* lisp/progmodes/gdb-mi.el (gdb-var-delete)
(gdb-speedbar-expand-node, gdbmi-bnf-incomplete-record-result):
* lisp/progmodes/gud.el (gud-find-expr):
* lisp/progmodes/idlw-help.el (idlwave-do-context-help1):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode)
(idlwave-shell-filter-hidden-output, idlwave-shell-filter):
* lisp/progmodes/idlwave.el (idlwave-skip-label-or-case)
(idlwave-routine-info):
* lisp/progmodes/octave.el (inferior-octave-completion-at-point):
* lisp/progmodes/sh-script.el (sh-add-completer):
* lisp/progmodes/sql.el (defun):
* lisp/progmodes/xscheme.el (xscheme-process-filter):
* lisp/replace.el (query-replace-compile-replacement)
(map-query-replace-regexp):
* lisp/shell.el (shell--command-completion-data)
(shell-environment-variable-completion):
* lisp/simple.el (display-message-or-buffer):
* lisp/speedbar.el (speedbar-dired, speedbar-tag-file)
(speedbar-tag-expand):
* lisp/subr.el (split-string-and-unquote):
* lisp/tar-mode.el (tar-extract):
* lisp/term.el (term-command-hook, serial-read-name):
* lisp/textmodes/bibtex.el (bibtex-print-help-message):
* lisp/textmodes/ispell.el (ispell-lookup-words, ispell-filter)
(ispell-parse-output, ispell-buffer-local-parsing):
* lisp/textmodes/reftex-cite.el (reftex-do-citation):
* lisp/textmodes/reftex-parse.el (reftex-notice-new):
* lisp/textmodes/reftex-ref.el (reftex-show-entry):
* lisp/textmodes/reftex.el (reftex-compile-variables):
* lisp/textmodes/tex-mode.el (tex-send-command)
(tex-start-tex, tex-append):
* lisp/thingatpt.el (thing-at-point-url-at-point):
* lisp/tmm.el (tmm-add-one-shortcut):
* lisp/transient.el (transient-format-key):
* lisp/url/url-auth.el (url-basic-auth)
(url-digest-auth-directory-id-assoc):
* lisp/url/url-news.el (url-news):
* lisp/url/url-util.el (url-parse-query-string):
* lisp/vc/vc-cvs.el (vc-cvs-parse-entry):
* lisp/wid-browse.el (widget-browse-sexp):
* lisp/woman.el (woman-parse-colon-path, woman-mini-help)
(WoMan-getpage-in-background, woman-negative-vertical-space):
* lisp/xml.el:
* test/lisp/emacs-lisp/check-declare-tests.el
(check-declare-tests-warn):
* test/lisp/files-tests.el
(files-tests-file-name-non-special-dired-compress-handler):
* test/lisp/net/network-stream-tests.el (server-process-filter):
* test/src/coding-tests.el (ert-test-unibyte-buffer-dos-eol-decode):
Use `string-search` instead of `string-match` and `string-match-p`.
2021-08-09 11:35:56 +02:00
Mattias Engdegård
051434fdef Use string-replace instead of replace-regexp-in-string
`string-replace` is easier to understand, less error-prone, much
faster, and results in shorter Lisp and byte code.  Use it where
applicable and obviously safe (erring on the conservative side).

* admin/authors.el (authors-scan-change-log):
* lisp/autoinsert.el (auto-insert-alist):
* lisp/calc/calc-prog.el (calc-edit-macro-combine-alg-ent)
(calc-edit-macro-combine-ext-command)
(calc-edit-macro-combine-var-name):
* lisp/calc/calc-units.el (math-make-unit-string):
* lisp/calendar/cal-html.el (cal-html-comment):
* lisp/calendar/cal-tex.el (cal-tex-comment):
* lisp/calendar/icalendar.el (icalendar--convert-string-for-export)
(icalendar--convert-string-for-import):
* lisp/calendar/iso8601.el (iso8601--concat-regexps)
(iso8601--full-time-match, iso8601--combined-match):
* lisp/calendar/time-date.el (format-seconds):
* lisp/calendar/todo-mode.el (todo-filter-items-filename):
* lisp/cedet/cedet-files.el (cedet-directory-name-to-file-name)
(cedet-file-name-to-directory-name):
* lisp/comint.el (comint-watch-for-password-prompt):
* lisp/dired-aux.el (dired-do-chmod):
* lisp/dired-x.el (dired-man):
* lisp/dired.el (dired-insert-directory, dired-goto-file-1):
* lisp/emacs-lisp/comp.el (comp-c-func-name):
* lisp/emacs-lisp/re-builder.el (reb-copy):
* lisp/erc/erc-dcc.el (erc-dcc-unquote-filename):
* lisp/erc/erc.el (erc-quit-reason-zippy, erc-part-reason-zippy)
(erc-update-mode-line-buffer, erc-message-english-PART):
* lisp/files.el (make-backup-file-name-1, files--transform-file-name)
(read-file-modes):
* lisp/fringe.el (fringe-mode):
* lisp/gnus/gnus-art.el (gnus-button-handle-info-url):
* lisp/gnus/gnus-group.el (gnus-group-completing-read):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-ical):
* lisp/gnus/gnus-mlspl.el (gnus-group-split-fancy):
* lisp/gnus/gnus-search.el (gnus-search-query-parse-date)
(gnus-search-transform-expression, gnus-search-run-search):
* lisp/gnus/gnus-start.el (gnus-dribble-enter):
* lisp/gnus/gnus-sum.el (gnus-summary-refer-article):
* lisp/gnus/gnus-util.el (gnus-mode-string-quote):
* lisp/gnus/message.el (message-put-addresses-in-ecomplete)
(message-parse-mailto-url, message-mailto-1):
* lisp/gnus/mml-sec.el (mml-secure-epg-sign):
* lisp/gnus/mml-smime.el (mml-smime-epg-verify):
* lisp/gnus/mml2015.el (mml2015-epg-verify):
* lisp/gnus/nnmaildir.el (nnmaildir--system-name)
(nnmaildir-request-list, nnmaildir-retrieve-groups)
(nnmaildir-request-group, nnmaildir-retrieve-headers):
* lisp/gnus/nnrss.el (nnrss-node-text):
* lisp/gnus/spam-report.el (spam-report-gmane-internal)
(spam-report-user-mail-address):
* lisp/ibuffer.el (name):
* lisp/image-dired.el (image-dired-pngnq-thumb)
(image-dired-pngcrush-thumb, image-dired-optipng-thumb)
(image-dired-create-thumb-1):
* lisp/info.el (Info-set-mode-line):
* lisp/international/mule-cmds.el (describe-language-environment):
* lisp/mail/rfc2231.el (rfc2231-parse-string):
* lisp/mail/rfc2368.el (rfc2368-parse-mailto-url):
* lisp/mail/rmail.el (rmail-insert-inbox-text)
(rmail-simplified-subject-regexp):
* lisp/mail/rmailout.el (rmail-output-body-to-file):
* lisp/mail/undigest.el (rmail-digest-rfc1153):
* lisp/man.el (Man-default-man-entry):
* lisp/mouse.el (minor-mode-menu-from-indicator):
* lisp/mpc.el (mpc--debug):
* lisp/net/browse-url.el (browse-url-mail):
* lisp/net/eww.el (eww-update-header-line-format):
* lisp/net/newst-backend.el (newsticker-save-item):
* lisp/net/rcirc.el (rcirc-sentinel):
* lisp/net/soap-client.el (soap-decode-date-time):
* lisp/nxml/rng-cmpct.el (rng-c-literal-2-re):
* lisp/nxml/xmltok.el (let*):
* lisp/obsolete/nnir.el (nnir-run-swish-e, nnir-run-hyrex)
(nnir-run-find-grep):
* lisp/play/dunnet.el (dun-doassign):
* lisp/play/handwrite.el (handwrite):
* lisp/proced.el (proced-format-args):
* lisp/profiler.el (profiler-report-header-line-format):
* lisp/progmodes/gdb-mi.el (gdb-mi-quote):
* lisp/progmodes/make-mode.el (makefile-bsdmake-rule-action-regex)
(makefile-make-font-lock-keywords):
* lisp/progmodes/prolog.el (prolog-guess-fill-prefix):
* lisp/progmodes/ruby-mode.el (ruby-toggle-string-quotes):
* lisp/progmodes/sql.el (sql-remove-tabs-filter, sql-str-literal):
* lisp/progmodes/which-func.el (which-func-current):
* lisp/replace.el (query-replace-read-from)
(occur-engine, replace-quote):
* lisp/select.el (xselect--encode-string):
* lisp/ses.el (ses-export-tab):
* lisp/subr.el (shell-quote-argument):
* lisp/term/pc-win.el (msdos-show-help):
* lisp/term/w32-win.el (w32--set-selection):
* lisp/term/xterm.el (gui-backend-set-selection):
* lisp/textmodes/picture.el (picture-tab-search):
* lisp/thumbs.el (thumbs-call-setroot-command):
* lisp/tooltip.el (tooltip-show-help-non-mode):
* lisp/transient.el (transient-format-key):
* lisp/url/url-mailto.el (url-mailto):
* lisp/vc/log-edit.el (log-edit-changelog-ours-p):
* lisp/vc/vc-bzr.el (vc-bzr-status):
* lisp/vc/vc-hg.el (vc-hg--glob-to-pcre):
* lisp/vc/vc-svn.el (vc-svn-after-dir-status):
* lisp/xdg.el (xdg-desktop-strings):
* test/lisp/electric-tests.el (defun):
* test/lisp/term-tests.el (term-simple-lines):
* test/lisp/time-stamp-tests.el (formatz-mod-del-colons):
* test/lisp/wdired-tests.el (wdired-test-bug32173-01)
(wdired-test-unfinished-edit-01):
* test/src/json-tests.el (json-parse-with-custom-null-and-false-objects):
Use `string-replace` instead of `replace-regexp-in-string`.
2021-08-08 19:25:26 +02:00
Lars Ingebrigtsen
0bd1346318 Fix issue with mml-preview from outside Gnus
* lisp/gnus/gnus-art.el (gnus-mime-display-alternative): Be more
resilient when running from outside Gnus.
2021-07-30 13:32:54 +02:00
Lars Ingebrigtsen
748bf7b93e Allow using `mm-inline-message' from other mail clients than Gnus
* lisp/gnus/mm-view.el (mm-inline-message-prepare-function): New
variable (bug#49380).
(mm-inline-message): Use it to separate out the Gnus-specific code.
* lisp/gnus/gnus-art.el (gnus-mime-display-single): ... which has
been moved here.
2021-07-06 16:34:24 +02:00
Stefan Monnier
3d954dee9c * lisp/gnus/gnus-art.el: Don't sneak dynbound code via quoting
Make sure we don't accidentally quote lambdas by embedding them within
quoted data.

(gnus-visible-headers, gnus-emphasis-alist)
(gnus-mime-display-alternative, gnus-article-describe-bindings):
Unquote lambdas.
2021-06-01 09:14:53 -04:00
Lars Ingebrigtsen
8e083440e1 Alter `gnus-article-show-images' to re-display with images installed
* lisp/gnus/gnus-art.el (gnus-article-show-images): Reselect to
display HTML images.
2021-04-30 10:41:22 +02:00
Stefan Kangas
1760029b09 Replace local intersection functions with seq-intersection
* lisp/doc-view.el (doc-view-intersection):
* lisp/gnus/gnus-range.el (gnus-intersection):
* lisp/htmlfontify.el (hfy-interq):
* lisp/loadhist.el (file-set-intersect):
* lisp/mail/smtpmail.el (smtpmail-intersection): Make obsolete in
favor of seq-intersection.  Update all callers.

* lisp/url/url-dav.el (url-intersection): Redefine as obsolete
function alias for seq-intersection.  Update callers.

* lisp/mpc.el (mpc-intersection, mpc-cmd-list, mpc-reorder):
Use seq-intersection.
2021-04-05 11:14:34 +02:00
Stefan Kangas
8b07994e20 Convert many more links to use HTTPS 2021-03-24 10:20:18 +01:00
Stefan Kangas
98533555de Remove some items obsolete since Emacs 22/23 from Gnus
* lisp/gnus/gnus-art.el (gnus-article-hide-pgp-hook)
(gnus-treat-strip-pgp, gnus-treat-display-xface):
* lisp/gnus/gnus-msg.el (gnus-inews-mark-gcc-as-read):
* lisp/gnus/gnus-start.el (nnmail-spool-file):
* lisp/gnus/nnmail.el (nnmail-spool-file)
(nnmail-fix-eudora-headers): Remove items obsolete since 22.1.
* lisp/gnus/gnus-art.el (gnus-treat-display-x-face):
* lisp/gnus/gnus-msg.el (gnus-inews-do-gcc): Don't use above obsolete symbols.
* doc/misc/gnus.texi (Washing Mail, Not Reading Mail): Don't refer to
above obsolete variables.
; * etc/NEWS: List removed items.

* lisp/gnus/gnus.el (gnus-local-domain, gnus-carpal):
* lisp/gnus/nnimap.el (nnimap-split-rule):
* lisp/gnus/nntp.el (nntp-authinfo-file): Fix obsolete variable
version format.
2021-03-07 05:51:39 +01:00
Lars Ingebrigtsen
c0221990c4 Do `interactive' mode markup in all Gnus files 2021-02-14 14:14:48 +01:00
Stefan Monnier
69943ae70c * lisp/gnus/gnus-topic.el: Fix a backward incompatibility
(gnus-topic-insert-topic-line): Make the vars used in
`gnus-topic-line-format-spec` dynamically scoped since it seems
that they're sometimes accessed from functions called by
`gnus-topic-line-format-spec` :-(

* lisp/gnus/gnus-util.el (gnus--\,@): Move macro to here...
* lisp/gnus/gnus-art.el (gnus--\,@): .. from here.

* lisp/gnus/gnus.el (gnus-method-to-server): Apply DeMorgan.
2021-02-08 19:08:14 -05:00
Lars Ingebrigtsen
efb10ffdb7 Fix noninteractive gnus-article-press-button
* lisp/gnus/gnus-art.el (gnus-article-press-button): Make the `b'
summary mode command work again.
2021-02-08 07:11:52 +01:00
Stefan Monnier
04ab3904ed * lisp/gnus/gnus-art.el: Fix misuse of standard-value.
* lisp/custom.el (custom--standard-value): New function.

* lisp/gnus/gnus-art.el: (gnus-article-browse-html-parts)
(gnus-article-browse-html-article):
* lisp/dired-aux.el (dired-do-find-regexp-and-replace):
* lisp/emacs-lisp/package-x.el (package-upload-buffer-internal):
* lisp/startup.el (command-line): Use it.
2021-02-02 14:39:28 -05:00
Stefan Monnier
12189ae415 * lisp/gnus: Use closures now that we activated lexical-binding
* lisp/gnus/nnml.el (nnml-request-accept-article):
* lisp/gnus/nnmairix.el (nnmairix-request-marks):
* lisp/gnus/nnmail.el (nnmail-get-new-mail-1):
* lisp/gnus/mm-view.el (mm-inline-image)
(mm-inline-text-html-render-with-w3m, mm-inline-text)
(mm-insert-inline, mm-inline-message):
* lisp/gnus/mm-partial.el (mm-inline-partial):
* lisp/gnus/mm-archive.el (mm-archive-dissect-and-inline):
* lisp/gnus/gnus-util.el (gnus-create-info-command):
* lisp/gnus/gnus-topic.el (gnus-topic-edit-parameters)
(gnus-topic-sort-topics-1):
* lisp/gnus/gnus-sum.el (gnus-summary-edit-article):
* lisp/gnus/gnus-srvr.el (gnus-server-edit-server):
* lisp/gnus/gnus-msg.el (gnus-inews-make-draft)
(gnus-inews-add-send-actions, gnus-summary-cancel-article)
(gnus-summary-supersede-article, gnus-summary-resend-message)
(gnus-configure-posting-styles):
* lisp/gnus/gnus-kill.el (gnus-execute):
* lisp/gnus/gnus-html.el (gnus-html-wash-images):
* lisp/gnus/gnus-group.el (gnus-group-edit-group)
(gnus-group-nnimap-edit-acl):
* lisp/gnus/gnus-draft.el (gnus-draft-edit-message, gnus-draft-setup):
* lisp/gnus/gnus-art.el (gnus-article-edit-part)
(gnus-mm-display-part, gnus-article-edit):
* lisp/gnus/gnus-agent.el (gnus-category-edit-predicate)
(gnus-category-edit-score, gnus-category-edit-groups):
Use closures instead of `(lambda ...).

* lisp/gnus/nnoo.el (noo--defalias): New function.
(nnoo-import-1, nnoo-define-skeleton-1): Use it to avoid `eval`.
2021-01-30 18:56:37 -05:00
Stefan Monnier
daa4e0120d * lisp/gnus: Use lexical-binding in all the files
* lisp/gnus/gnus-group.el (features): Use `dlet`.
(gnus-tmp-level, gnus-tmp-marked, gnus-tmp-group): Declare vars.
(gnus-group-insert-group-line): Bind dynbound vars via `let` rather
than as formal args.  Bind `number` as dynbound.
(gnus-visual, gnus-score-find-score-files-function)
(gnus-home-score-file, gnus-apply-kill-hook)
(gnus-summary-expunge-below): Declare vars.
(gnus-group-restart, gnus-group-list-plus): Fix `interactive` spec
since the arg is unused.

* lisp/gnus/mail-source.el (mail-source-bind, mail-source-bind-common):
Use `dlet` and suppress the warnings about the non-prefixed dynbound vars.
(mail-source-set-1): Remove unused var `auth-info`.
(mail-source-call-script): Remove unused var `background`.
(mail-source-fetch-pop, mail-source-check-pop): Bind pop3 vars with `dlet`.

* lisp/gnus/gnus-int.el (mail-source-plugged, gnus-inhibit-demon):
Declare vars.
(gnus-server-opened, gnus-status-message)
(gnus-open-server, gnus-close-server, gnus-request-list)
(gnus-finish-retrieve-group-infos, gnus-retrieve-group-data-early)
(gnus-request-list-newsgroups, gnus-request-newgroups)
(gnus-request-regenerate, gnus-request-compact, gnus-request-group)
(gnus-retrieve-groups, gnus-request-post, gnus-request-expunge-group)
(gnus-request-scan, gnus-request-update-info, gnus-request-marks)
(gnus-request-accept-article, gnus-request-create-group)
(gnus-asynchronous-p, gnus-remove-denial):
Bind `gnus-command-method` via `let` rather than as formal args.

* lisp/gnus/gnus-topic.el (gnus-topic-insert-topic-line):
Pass documented vars to eval for `gnus-topic-line-format-spec`.

* lisp/gnus/message.el (message-yank-original): Use `cl-progv` rather
than `eval` to bind the vars from `message-cite-style`.

* lisp/gnus/mml.el (mml-parse-1): Use `apply` instead of `eval`.
(gnus-newsgroup-name, gnus-displaying-mime, gnus-newsgroup-name)
(gnus-article-prepare-hook, gnus-newsgroup-charset)
(gnus-original-article-buffer, gnus-message-buffer)
(message-this-is-news, message-this-is-mail): Declare vars.

* lisp/gnus/deuglify.el (gnus-outlook-rearrange-article): Remove unused
var `cite-marks`.
* lisp/gnus/gnus-art.el (ansi-color-context-region): Declare var.
(gnus-mime-display-attachment-buttons-in-header): Move declaration
before first use.
(gnus-mime-display-alternative): Remove unused var `from`.
* lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-list): Remove unused
var `start` `end`.
* lisp/gnus/gnus-cache.el (gnus-article-decode-hook)
(nnml-generate-active-function): Declare var.
* lisp/gnus/gnus-cite.el (gnus-message-citation-mode): Remove unused
var `keywords`.
* lisp/gnus/gnus-cloud.el (gnus-cloud-encode-data): Remove unused var
`cipher`.
(gnus-cloud-ensure-cloud-group): Remove unused var `method`.
* lisp/gnus/gnus-delay.el (gnus-delay-article): Remove unused var `days`.
* lisp/gnus/gnus-html.el (gnus-html-wash-images): Remove unused vars
`tag`, `string`, and `images`.
(gnus-html-wash-tags): Remove unused vars `string` and `images`.
* lisp/gnus/gnus-msg.el (gnus-msg-mail): Remove unused var `group-name`.
(gnus-group-mail, gnus-group-news, gnus-summary-mail-other-window)
(gnus-summary-news-other-window):
Remove unused vars `group` and `buffer`.
(gnus-configure-posting-styles): Remove unused vars `style` and `attribute`.
* lisp/gnus/gnus-picon.el (gnus-picon-find-face): Remove unused vars
`database`, `directory`, and `instance`.
(gnus-picon-transform-newsgroups): Remove unused var `point`.
* lisp/gnus/gnus-range.el (gnus-range-difference): Remove unused var `safe`.
* lisp/gnus/gnus-score.el (gnus-score-load-file): Remove unused var
`score-fn`.
* lisp/gnus/gnus-sum.el (message-options-set-recipient): Declare var.
* lisp/gnus/gnus-undo.el (gnus-undo): Fix docstring lie.
* lisp/gnus/gnus-util.el (print-string-length)
(iswitchb-make-buflist-hook): Declare vars.
(gnus-emacs-version): Remove unused var `codename`.
(gnus-rename-file): Remove unused vars `old-name` and `new-name`.
* lisp/gnus/gnus-uu.el (gnus-uu-yenc-article): Remove unused var
`start-char`.
(gnus-asynchronous): Declare var.
* lisp/gnus/mm-partial.el (gnus-displaying-mime): Declare var.
(mm-inline-partial): Remove unused var `buffer`.
* lisp/gnus/mm-view.el (w3m-force-redisplay, w3m-safe-url-regexp)
(gnus-displaying-mime, gnus-original-article-buffer)
(gnus-article-prepare-hook): Declare vars.
* lisp/gnus/mml-smime.el (mml-smime-epg-encrypt): Remove unused var
`boundary`.
(mml-smime-epg-verify): Remove unused vars `plain` and `signature-file`.
* lisp/gnus/mml1991.el (pgg-text-mode): Declare var.
* lisp/gnus/mml2015.el (pgg-text-mode): Declare var.
(mml2015-pgg-decrypt): Remove unused var `result`.
(mml2015-epg-key-image-to-string): Remove unused var `error`.
(mml2015-epg-decrypt): Remove unused var `result`.
(mml2015-epg-verify): Remove unused vars `plain` and `signature-file`.
* lisp/gnus/nnbabyl.el (nnml-current-directory): Declare var.
* lisp/gnus/nndiary.el (nndiary-files): Move declaration before first use.
* lisp/gnus/nnfolder.el (nnfolder-request-accept-article):
Remove unused var `buf`.
* lisp/gnus/nnmail.el (nnmail-parse-active): Remove unused var `err`.
* lisp/gnus/nnmairix.el (nnmairix-request-group): Remove unused var `args`.
(nnmairix-request-create-group): Remove unused var `info`.
(nnmairix-request-list): Remove unused var `folder`.
(nnmairix-request-set-mark): Remove unused var `propto`.
(nnmairix-request-set-mark): Remove unused vars `number` and `method`.
(nnmairix-close-group): Remove unused var `method`.
(nnmairix-create-search-group-from-message): Remove unused var `cq`.
(nnmairix-create-server-and-default-group): Remove unused var `create`.
(nnmairix-purge-old-groups): Remove unused var `folder`.
(nnmairix-remove-tick-mark-original-article, nnmairix-get-valid-servers):
Remove unused var `cur`.
(nnmairix-replace-group-and-numbers): Remove unused var `header`.
(nnmairix-goto-original-article): Remove unused var `rval`.
(nnmairix-widget-create-query): Remove unused var `allwidgets`.
* lisp/gnus/nnmbox.el (nnml-current-directory): Declare var.
* lisp/gnus/nnmh.el (nnmh-toplev): Move declaration before first use.
(nnmh-request-list-1): Remove unused var `rdir`.
* lisp/gnus/nnml.el (nnml-generate-nov-file): Remove unused var `file`.
* lisp/gnus/nnrss.el (nnrss-request-article): Remove unused var `post`.
(nnrss-request-article): Remove unused var `fn`.
(nnrss-check-group): Remove unused var `rdf-ns`.
* lisp/gnus/nnweb.el (nnweb-request-article): Remove unused var `active`.
(nnweb-google-parse-1): Remove unused var `Score`.
* lisp/gnus/spam-stat.el (spam-stat-error-holder): Remove var.
(spam-stat-buffer-words-with-scores): Remove unused var `word`.
(spam-stat-score-buffer): Remove unused var `spam-stat-error-holder`.
(spam-stat-split-fancy): Use `err` instead of `spam-stat-error-holder`.
* lisp/gnus/spam-wash.el (spam-wash): Remove unused var `handle`.
* lisp/gnus/spam.el (spam-copy-or-move-routine): Remove unused vars
`article` and `mark`.
(spam-register-routine): Remove unused var `article`.
(spam-log-undo-registration): Remove unused var `found`.
(spam-ifile-register-with-ifile): Remove unused var `parameters`.
(spam-check-stat): Remove unused vars `category` and `return`.
(spam-parse-list): Remove unused var `found`.
(spam-filelist-register-routine): Remove unused var `from`.
2021-01-30 18:44:00 -05:00
Stefan Monnier
9be4f41b42 * lisp/gnus: Misc simplifications found during conversion to lexical
* lisp/gnus/nnoo.el (noo-import-1, nnoo-define-skeleton-1): Use `dolist`.
(noo-map-functions, nnoo-define-basics): Directly emit the code rather than
going through an intermediate function; this also avoids the use of `eval`.
(noo-map-functions-1, nnoo-define-basics-1): Delete functions,
folded into their corresponding macro.

* lisp/gnus/gmm-utils.el (gmm-tool-bar-from-list): Demote `eval` to
`symbol-value`.

* lisp/gnus/gnus-art.el (gnus-button-handle-describe-key): Avoid `eval`
since `kbd` is a function nowadays.
(gnus-treat-part-number): Rename from `part-number`.
(gnus-treat-total-parts): Rename from `total-parts`.
(gnus-treat-article, gnus-treat-predicate): Adjust accordingly.

* lisp/gnus/gnus-cache.el (gnus-agent-load-alist): Use `declare-function`.

* lisp/gnus/gnus-group.el (gnus-cache-active-hashtb): Use `defvar`.
(gnus-group-iterate): Make it a normal function since lexical scoping
avoids the risk of name capture anyway.
(gnus-group-delete-articles): Actually use the `oldp` arg.

* lisp/gnus/gnus-html.el (gnus-html-wash-images): Fix debug message so
it's emitted after the `url` var it prints is actually initialized.
And avoid `setq` while we're at it.

* lisp/gnus/gnus-msg.el (gnus-group-mail, gnus-group-news)
(gnus-summary-mail-other-window, gnus-summary-news-other-window):
Merge `let`s using `let*`.

* lisp/gnus/gnus-spec.el (gnus-update-format-specifications):
Tighten the scope of `buffer`, and tighten a regexp.
(gnus-parse-simple-format): Reduce code duplication.

* lisp/gnus/gnus-start.el (gnus-child-mode): Don't `defvar` it since we
never use that variable and accordingly don't define it as a minor mode.

* lisp/gnus/gnus-util.el (gnus-byte-compile): Simplify so it obeys
`gnus-use-byte-compile` not just on the first call.
(iswitchb-minibuffer-setup): Declare.

* lisp/gnus/mail-source.el (mail-source-bind-1)
(mail-source-bind-common-1): Use `mapcar`.
(mail-source-set-common-1): Use `dolist`.
(display-time-event-handler): Declare.

* lisp/gnus/mml-smime.el (mml-smime-epg-verify): Reduce code duplication.

* lisp/gnus/mml.el (mml-parse-1): Reduce code duplication.

* lisp/gnus/mml2015.el (mml2015-epg-verify): Reduce code duplication.

* lisp/gnus/nnmail.el (nnmail-get-split-group): Tighten regexp.
(nnmail-split-it): Reduce code duplication.

* lisp/gnus/nnweb.el (nnweb-request-article): Avoid `setq`.

* lisp/gnus/spam.el (BBDB): Use the `noerror` arg of `require`, and
define all the functions for BBDB regardless if the require succeeded.
(spam-exists-in-BBDB-p): Don't inline, not worth it.
2021-01-30 17:30:08 -05:00
Stefan Monnier
8403b9a368 * lisp/gnus: Use with-current-buffer at a few more places
* lisp/gnus/nnmbox.el (nnmbox-request-scan, nnmbox-read-mbox):
* lisp/gnus/nnmairix.el (nnmairix-create-search-group):
* lisp/gnus/nnfolder.el (nnfolder-existing-articles):
* lisp/gnus/nndraft.el (nndraft-auto-save-file-name):
* lisp/gnus/nndoc.el (nndoc-request-article):
* lisp/gnus/nnbabyl.el (nnbabyl-read-mbox):
* lisp/gnus/gnus-score.el (gnus-score-body):
* lisp/gnus/gnus-start.el (gnus-dribble-enter)
(gnus-dribble-eval-file, gnus-ask-server-for-new-groups)
(gnus-read-newsrc-file, gnus-read-descriptions-file):
* lisp/gnus/gnus-spec.el (gnus-update-format-specifications):
* lisp/gnus/gnus-draft.el (gnus-draft-edit-message):
* lisp/gnus/gnus-art.el (gnus-request-article-this-buffer)
(gnus-article-edit-exit): Use `with-current-buffer`.
2021-01-30 14:46:41 -05:00
Stefan Monnier
9e96fca53d * lisp/gnus/mm-encode.el (mm-default-file-type): New name
Rename from misleading `mm-default-file-encoding`.
(mm-default-file-encoding): Redefine as obsolete alias.

* lisp/mail/sendmail.el (mail-add-attachment):
* lisp/mh-e/mh-mime.el (mh-minibuffer-read-type):
* lisp/gnus/gnus-art.el (gnus-mime-view-part-as-type-internal):
* lisp/gnus/gnus-dired.el (gnus-dired-attach):
* lisp/gnus/mml.el (mml-generate-mime-1, mml-minibuffer-read-type)
(mml-attach-file): Use the new name.
2021-01-30 12:29:58 -05:00
Stefan Monnier
d6f8bce6d4 * lisp/gnus: Quote functions with #'
To get better warnings, try and use #' to quote function names.

* lisp/gnus/canlock.el:
* lisp/gnus/deuglify.el:
* lisp/gnus/gmm-utils.el:
* lisp/gnus/gnus-agent.el:
* lisp/gnus/gnus-art.el:
* lisp/gnus/gnus-bookmark.el:
* lisp/gnus/gnus-cache.el:
* lisp/gnus/gnus-cite.el:
* lisp/gnus/gnus-cus.el:
* lisp/gnus/gnus-delay.el:
* lisp/gnus/gnus-diary.el:
* lisp/gnus/gnus-dired.el:
* lisp/gnus/gnus-draft.el:
* lisp/gnus/gnus-fun.el:
* lisp/gnus/gnus-group.el:
* lisp/gnus/gnus-html.el:
* lisp/gnus/gnus-int.el:
* lisp/gnus/gnus-kill.el:
* lisp/gnus/gnus-mlspl.el:
* lisp/gnus/gnus-msg.el:
* lisp/gnus/gnus-notifications.el:
* lisp/gnus/gnus-picon.el:
* lisp/gnus/gnus-registry.el:
* lisp/gnus/gnus-rfc1843.el:
* lisp/gnus/gnus-salt.el:
* lisp/gnus/gnus-score.el:
* lisp/gnus/gnus-search.el:
* lisp/gnus/gnus-sieve.el:
* lisp/gnus/gnus-srvr.el:
* lisp/gnus/gnus-start.el:
* lisp/gnus/gnus-topic.el:
* lisp/gnus/gnus-undo.el:
* lisp/gnus/gnus-util.el:
* lisp/gnus/gnus-uu.el:
* lisp/gnus/gnus.el:
* lisp/gnus/mail-source.el:
* lisp/gnus/message.el:
* lisp/gnus/mm-archive.el:
* lisp/gnus/mm-decode.el:
* lisp/gnus/mm-url.el:
* lisp/gnus/mm-util.el:
* lisp/gnus/mm-view.el:
* lisp/gnus/mml-sec.el:
* lisp/gnus/mml-smime.el:
* lisp/gnus/mml.el:
* lisp/gnus/nnagent.el:
* lisp/gnus/nndiary.el:
* lisp/gnus/nndoc.el:
* lisp/gnus/nndraft.el:
* lisp/gnus/nnfolder.el:
* lisp/gnus/nnheader.el:
* lisp/gnus/nnmail.el:
* lisp/gnus/nnmaildir.el:
* lisp/gnus/nnmairix.el:
* lisp/gnus/nnmh.el:
* lisp/gnus/nnml.el:
* lisp/gnus/nnrss.el:
* lisp/gnus/nnselect.el:
* lisp/gnus/nnspool.el:
* lisp/gnus/nnvirtual.el:
* lisp/gnus/nnweb.el:
* lisp/gnus/smiley.el:
* lisp/gnus/smime.el:
* lisp/gnus/spam-report.el:
* lisp/gnus/spam-stat.el:
* lisp/gnus/spam-wash.el:
* lisp/gnus/spam.el:
2021-01-30 12:27:34 -05:00
Stefan Monnier
e1e9e4eefa * lisp/gnus/gnus-art.el: Add event args and operate at its position.
(gnus-mime-save-part-and-strip)
(gnus-mime-delete-part, gnus-mime-save-part, gnus-mime-pipe-part)
(gnus-mime-view-part, gnus-mime-view-part-as-type)
(gnus-mime-copy-part, gnus-mime-print-part, gnus-mime-inline-part)
(gnus-mime-view-part-as-charset, gnus-mime-view-part-externally)
(gnus-mime-view-part-internally, gnus-article-press-button):
Add `event` arg and operate at its position.
2021-01-30 12:27:34 -05:00
Stefan Monnier
5577d441e5 * lisp/gnus: Use declare.
* lisp/gnus/nnoo.el (defvoo, deffoo, nnoo-declare, nnoo-import)
(nnoo-map-functions):
* lisp/gnus/nnmaildir.el (nnmaildir--with-nntp-buffer)
(nnmaildir--with-work-buffer, nnmaildir--with-nov-buffer)
(nnmaildir--with-move-buffer, nnmaildir--condcase):
* lisp/gnus/mm-decode.el (mm-with-part):
* lisp/gnus/gnus-msg.el (gnus-setup-message):
* lisp/gnus/gnus-agent.el (gnus-agent-with-fetch, gnus-agent-while-plugged):
* lisp/gnus/mail-source.el (mail-source-set-1, mail-source-value):
Use `declare`.

* lisp/gnus/gnus-util.el (gnus-define-keys): Use `declare`, and also
don't quote `keymap` if it's a variable name.
(gnus-define-keys-1): Reject the case where `keymap` is a variable name.
(gnus-eval-in-buffer-window, gnus-define-keys-safe)
(gnus-define-keymap, gnus-atomic-progn, gnus-with-output-to-file)
(gnus-parse-without-error): Use `declare`.
(gnus-atomic-progn-assign, gnus-atomic-setq): Delete macros.

* lisp/gnus/gnus-undo.el (gnus-undo-register): Drop indent and edebug spec
since they're not really appropriate for a function.

* lisp/gnus/gnus-art.el (gnus--\,@): New macro.
Use it at top-level to construct the `gnus-article-FOO` => `article-FOO`
wrapper functions.
(gnus-with-article-headers, gnus-with-article-buffer): Use `declare`.
2021-01-30 12:27:34 -05:00
Paul Eggert
ba05d005e5 Update copyright year to 2021
Run "TZ=UTC0 admin/update-copyright".
2021-01-01 01:13:56 -08:00
Daniel Martín
144b883eb0 Fix duplicated entry in gnus-mime-action-alist
* lisp/gnus/gnus-art.el (gnus-mime-action-alist): Remove duplicated
"toggle display" entry and call the appropriate function for the "view
as charset" action (bug#45561).
2020-12-31 06:00:24 +01:00
Stefan Kangas
5ab5c38987 Shorten over-wide docstrings in defcustoms
* lisp/calc/calc.el (calc-embedded-announce-formula-alist)
(calc-embedded-open-formula, calc-embedded-close-formula)
(calc-matrix-mode):
* lisp/cedet/semantic/imenu.el (semantic-imenu-sort-bucket-function):
* lisp/emacs-lisp/find-func.el (find-feature-regexp):
* lisp/emulation/cua-base.el (cua-paste-pop-rotate-temporarily):
* lisp/emulation/viper-init.el (viper-fast-keyseq-timeout)
(viper-related-files-and-buffers-ring):
* lisp/emulation/viper-keym.el (viper-want-ctl-h-help):
* lisp/gnus/gnus-art.el (gnus-article-banner-alist):
* lisp/gnus/gnus-group.el (gnus-keep-same-level):
* lisp/gnus/gnus-score.el (gnus-adaptive-word-length-limit):
* lisp/gnus/gnus-sum.el (gnus-inhibit-user-auto-expire):
* lisp/gnus/gnus-uu.el (gnus-uu-ignore-files-by-type)
(gnus-uu-do-not-unpack-archives)
(gnus-uu-unmark-articles-not-decoded)
(gnus-uu-correct-stripped-uucode, gnus-uu-save-in-digest)
(gnus-uu-post-include-before-composing):
* lisp/gnus/gnus.el (gnus-use-long-file-name)
(gnus-install-group-spam-parameters):
* lisp/gnus/message.el (message-cite-style):
* lisp/gnus/nnmail.el
(nnmail-split-fancy-with-parent-ignore-groups)
(nnmail-cache-ignore-groups):
* lisp/ido.el (ido-rewrite-file-prompt-functions):
* lisp/mail/feedmail.el (feedmail-fiddle-plex-user-list)
(feedmail-spray-address-fiddle-plex-list):
* lisp/mh-e/mh-e.el (mh-annotate-msg-hook):
* lisp/net/imap.el (imap-process-connection-type):
* lisp/net/rcirc.el (rcirc-omit-threshold):
* lisp/net/tramp-sh.el (tramp-copy-size-limit):
* lisp/nxml/nxml-mode.el (nxml-default-buffer-file-coding-system):
* lisp/obsolete/landmark.el (landmark-max-stall-time):
* lisp/obsolete/tls.el (tls-checktrust):
* lisp/org/org-indent.el
(org-indent-mode-turns-off-org-adapt-indentation)
(org-indent-mode-turns-on-hiding-stars):
* lisp/org/org-protocol.el (org-protocol-project-alist):
* lisp/progmodes/cc-vars.el (c-doc-comment-style):
* lisp/progmodes/cperl-mode.el (cperl-indent-subs-specially):
* lisp/progmodes/flymake-proc.el (flymake-proc-allowed-file-name-masks):
* lisp/progmodes/hideif.el (hide-ifdef-expand-reinclusion-protection):
* lisp/simple.el (minibuffer-history-case-insensitive-variables):
* lisp/tab-bar.el (tab-bar-close-last-tab-choice):
* lisp/textmodes/reftex-vars.el
(reftex-special-environment-functions):
* lisp/vc/ediff-init.el (ediff-startup-hook, ediff-cleanup-hook)
(ediff-metachars):
* lisp/vc/ediff-merg.el (ediff-show-clashes-only):
* lisp/vc/ediff-mult.el (ediff-default-filtering-regexp): Shorten doc
strings to not exceed 80-column limits.  (Bug#44858)
2020-12-19 18:21:06 +01:00
Stefan Kangas
d174a2bb23 Prefer setq-local in gnus/*.el
* lisp/gnus/gnus-agent.el (gnus-agent-mode)
(gnus-agent-get-undownloaded-list, gnus-agent-open-history):
* lisp/gnus/gnus-art.el (gnus-article-setup-highlight-words)
(gnus-article-mode, gnus-article-setup-buffer, defsubst)
(gnus-article-describe-bindings, gnus-article-edit-mode):
* lisp/gnus/gnus-cus.el (gnus-custom-mode, gnus-group-customize)
(gnus-score-customize, gnus-agent-customize-category):
* lisp/gnus/gnus-group.el (gnus-group-make-tool-bar):
* lisp/gnus/gnus-msg.el (gnus-setup-message)
(gnus-summary-news-other-window, gnus-configure-posting-styles):
* lisp/gnus/gnus-salt.el (gnus-pick-mode, gnus-binary-mode):
* lisp/gnus/gnus-score.el (gnus-score-edit-current-scores)
(gnus-score-edit-file):
* lisp/gnus/gnus-srvr.el (gnus-server-mode):
* lisp/gnus/gnus-start.el (gnus-no-server-1)
(gnus-dribble-read-file, gnus-save-newsrc-file)
(gnus-gnus-to-newsrc-format):
* lisp/gnus/gnus-sum.el (gnus-summary-make-tool-bar)
(gnus-summary-mode, gnus-summary-setup-buffer)
(gnus-select-newsgroup, gnus-summary-edit-article)
(gnus-summary-setup-default-charset):
* lisp/gnus/gnus-topic.el (gnus-topic-mode):
* lisp/gnus/gnus-undo.el (gnus-undo-mode):
* lisp/gnus/gnus.el (gnus-simplify-mode-line):
* lisp/gnus/message.el (message-cite-reply-position)
(message-cite-style, message-mode, message-setup-fill-variables):
* lisp/gnus/mm-view.el (mm-display-inline-fontify):
* lisp/gnus/mml.el (mml-mode):
* lisp/gnus/nndiary.el (nndiary-open-nov):
* lisp/gnus/nnfolder.el (nnfolder-save-buffer)
(nnfolder-open-nov):
* lisp/gnus/nnheader.el (nnheader-init-server-buffer):
* lisp/gnus/nnimap.el (nnimap-make-process-buffer):
* lisp/gnus/nnml.el (nnml-get-nov-buffer): Prefer setq-local.
2020-12-07 16:45:33 +01:00
Stefan Kangas
affe9b225d Make XEmacs compat aliases easy-menu-{add,remove} obsolete
* lisp/emacs-lisp/easymenu.el (easy-menu-remove, easy-menu-add):
Make XEmacs compat aliases obsolete.
* lisp/allout.el (allout-setup-menubar):
* lisp/cus-edit.el (Custom-mode):
* lisp/gnus/gnus-art.el (gnus-article-edit-mode):
* lisp/gnus/message.el (message-mode):
* lisp/net/sieve.el (sieve-manage-mode):
* lisp/org/org-agenda.el (org-agenda-mode):
* lisp/org/org-table.el (org-table-edit-formulas, orgtbl-mode):
* lisp/org/org.el:
* lisp/progmodes/cperl-mode.el (cperl-mode):
* lisp/progmodes/hideshow.el (hs-minor-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/meta-mode.el (meta-common-mode):
* lisp/progmodes/octave.el (octave-mode):
* lisp/progmodes/prolog.el (prolog-menu):
* lisp/progmodes/tcl.el (tcl-mode):
* lisp/speedbar.el (speedbar-reconfigure-keymaps):
* lisp/term.el (term-mode, term-char-mode, term-process-pager):
* lisp/textmodes/dns-mode.el (dns-mode):
* lisp/wid-browse.el (widget-browse-mode): Don't call above
obsolete aliases.
* lisp/cedet/semantic/grammar.el (semantic-grammar-setup-menu-xemacs):
* lisp/mh-e/mh-folder.el (mh-folder-mode):
* lisp/mh-e/mh-identity.el (mh-identity-add-menu):
* lisp/mh-e/mh-letter.el (mh-letter-mode):
* lisp/mh-e/mh-search.el (mh-search-mode):
* lisp/mh-e/mh-show.el (mh-show-mode):
* lisp/obsolete/otodo-mode.el (todo-mode):
* lisp/progmodes/antlr-mode.el (antlr-mode):
* lisp/progmodes/cc-mode.el (c-mode, c++-mode, objc-mode)
(java-mode, idl-mode, pike-mode):
* lisp/progmodes/sql.el (sql-mode, sql-interactive-mode):
* lisp/progmodes/vhdl-mode.el (vhdl-update-mode-menu)
(vhdl-add-source-files-menu, vhdl-mode):
* lisp/textmodes/reftex-index.el (reftex-index-mode)
(reftex-index-phrases-mode):
* lisp/textmodes/reftex-toc.el (reftex-toc-mode):
* lisp/textmodes/reftex.el (reftex-mode): Only call above obsolete
aliases in XEmacs.

* lisp/progmodes/prolog.el (prolog-inferior-menu):
* lisp/erc/erc-menu.el (erc-menu-add, erc-menu-remove): Don't call
above obsolete aliases.  Make obsolete.
* lisp/erc/erc-menu.el (menu, erc-menu-add, erc-menu-remove):
* lisp/progmodes/prolog.el (prolog-inferior-mode): Adjust callers.
* lisp/speedbar.el (speedbar-previous-menu): Make obsolete.
(Bug#44731)
2020-11-24 18:06:05 +01:00
Lars Ingebrigtsen
fd43ecd96e Fix gnus-mime-display-alternative button natigation
* lisp/gnus/gnus-art.el (gnus-mime-display-alternative): Mark the
buttons correctly so that TAB can find them (bug#44690).
2020-11-16 23:16:39 +01:00
Lars Ingebrigtsen
ada9b7c9ce Tweak previous article-treat-ansi-sequences fix
* lisp/gnus/gnus-art.el (article-treat-ansi-sequences): Redo the
previous fix to avoid a compilation warning (bug#44299).
2020-10-29 12:38:13 +01:00
Andreas Schwab
8cd0ce9b85 Don't spill ansi-color across parts in articles
* lisp/gnus/gnus-art.el (article-treat-ansi-sequences): Reset
ansi-color-context-region.  (Bug#44299)
2020-10-29 10:21:17 +01:00
Lars Ingebrigtsen
41d220dc60 Add a new variable to control Gnus Agent caching
* doc/misc/gnus.texi (Agent Variables): Document it.

* lisp/gnus/gnus-art.el (gnus-request-article-this-buffer): Ditto.

* lisp/gnus/gnus-async.el (gnus-async-article-callback): Use it.

* lisp/gnus/gnus.el (gnus-agent-eagerly-store-articles): New variable.

Includes work from Madhu <enometh@meer.net>.
2020-10-16 07:21:05 +02:00
Lars Ingebrigtsen
e2ece08273 Revert "Don't eagerly store articles in the Agent by default"
This reverts commit def34a2076.

This made storing articles in the Agent very slow.
2020-10-09 06:26:17 +02:00
Lars Ingebrigtsen
e1c33e29d5 Fix some defcustom types
* lisp/whitespace.el (whitespace-style):
* lisp/gnus/message.el (message-screenshot-command):
* lisp/progmodes/compile.el (compilation-transform-file-match-alist):
* lisp/progmodes/gdb-mi.el (gdb-default-window-configuration-file):
* lisp/progmodes/python.el (python-pdbtrack-exit-command): Fix the
defcustom types.
* lisp/progmodes/sql.el (sql-password-wallet): Fix the value.
2020-09-25 15:15:21 +02:00
Lars Ingebrigtsen
eda48b6fed Add a new variable 'gnus-global-groups'
* doc/misc/gnus.texi (HTML): Document it.

* lisp/gnus/gnus-art.el (gnus-global-groups): New variable.
(gnus-block-private-groups): Use it.
2020-09-19 21:16:42 +02:00
Lars Ingebrigtsen
def34a2076 Don't eagerly store articles in the Agent by default
* lisp/gnus/gnus-agent.el (gnus-agent-store-article): Made
obsolete.

* lisp/gnus/gnus-art.el (gnus-request-article-this-buffer): Don't
call it.

* lisp/gnus/gnus-async.el (gnus-async-article-callback): Ditto
(bug#43356).

This partially reverts f3b146e943, which
in was response to what appears to be an erroneous feature-request -
bug#8502.

Instead this should be done instead:

“If I read an article while plugged, do they get entered into the
Agent?”

     *No*. If you want this behavior, add
     ‘gnus-agent-fetch-selected-article’ to
     ‘gnus-select-article-hook’.
2020-09-13 16:46:11 +02:00
Tassilo Horn
6cb6215cbe Show A C hint only if partial fetches are enabled.
* lisp/gnus/gnus-art.el (gnus-insert-mime-button): Show A C hint for
downloading the complete message only if partial fetches are enabled.
2020-08-06 21:52:18 +02:00
Tassilo Horn
33b50e2fc9 Show A C hint for loading complete message only in nnimap groups.
* lisp/gnus/gnus-art.el (gnus-insert-mime-button): Show A C hint for
loading complete message only in nnimap groups.
2020-08-06 21:47:48 +02:00
Lars Ingebrigtsen
b5ea24cb44 Make it possible to use Message as a mailto: desktop handler
* doc/misc/message.texi (System Mailer Setup): Document the usage.

* lisp/gnus/gnus-art.el (gnus-url-mailto): Move most of the code
here to 'message-mailto-1' (bug#38314).

* lisp/gnus/message.el (message-parse-mailto-url): Mark as obsolete.
(message-parse-mailto-url): Rewritten slightly from the above.
(message-mailto): New command.
(message-mailto-1): New function.
2020-08-06 14:50:40 +02:00
Lars Ingebrigtsen
2ad38b4745 If gnus-visual is nil, don't fontify patches and the like
* doc/misc/emacs-mime.texi (Display Customization): Document it.

* lisp/gnus/gnus-art.el (gnus-mime-display-single): Bind it.

* lisp/gnus/mm-view.el (mm-inline-font-lock): New variable (bug#38421).
(mm-display-inline-fontify): Use it.
2020-08-02 19:44:30 +02:00
Štěpán Němec
b89af66209 gnus-button-alist: Prefer URL links to Elisp library links
* lisp/gnus/gnus-art.el (gnus-button-alist): Move the URL clauses
higher up the list before library link setup to prevent URLs ending in
".el" from failing to be recognized (and invalid library links being
created instead) (bug#39781).
2020-07-19 16:05:11 +02:00
Lars Ingebrigtsen
00a9712420 Allow adjusting the `W Q' Gnus summary command interactively
* doc/misc/gnus.texi (Article Washing): Document it.

* lisp/gnus/gnus-art.el (article-fill-long-lines): Take a numeric
prefix as the fill width (bug#38698).
2020-07-19 15:18:29 +02:00
Lars Ingebrigtsen
e68a455afb Fix C-c C-f in the Gnus article buffer
* lisp/gnus/gnus-art.el (gnus-article-mode-map): Make the C-c C-f
command work in the article buffer, too (bug#40548).
2020-07-19 04:28:46 +02:00
Lars Ingebrigtsen
468b02a5da Doc fix for article-fill-long-lines
* lisp/gnus/gnus-art.el (article-fill-long-lines): Mention that it
also respects `fill-column' (bug#41534).
2020-07-19 03:20:13 +02:00
Tassilo Horn
659ed857c0 Indicate not downloaded parts in MIME buttons.
Via nnimap-fetch-partial-articles one can tell Gnus to omit fetching
certain parts by default.  Now the MIME buttons in the article buffer
indicate how to fetch the complete message in order to act on those
missing parts.

* lisp/gnus/gnus-art.el (gnus-insert-mime-button): Indicate not
downloaded parts in MIME buttons.
2020-05-19 15:17:57 +02:00
Štěpán Němec
ff729e3f97 ; bug#39779: Fix some typos in documentation. 2020-02-28 15:21:55 +02:00
Paul Eggert
365e01cc9f Update copyright year to 2020
Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
2020-01-01 00:59:52 +00:00
Lars Ingebrigtsen
ca6a53d3bc Don't default to showing X-Faces externally in Gnus
* lisp/gnus/gnus-art.el (gnus-article-x-face-command): It's seldom
useful to display the face in an external command, so don't ever
default to that.  This also fixes the problem of Emacs running as
a server in mixed graphical/non-graphical environments.
2019-12-24 17:50:24 +01:00
Paul Eggert
d1a791f8ed Spelling fixes 2019-12-09 18:45:18 -08:00
Lars Ingebrigtsen
246f050ab4 Don't move point on undefined keystrokes in the article buffer
* lisp/gnus/gnus-art.el (gnus-article-read-summary-keys): Don't
move point on undefined commands (bug#38227).
2019-11-16 06:11:56 +01:00
Lars Ingebrigtsen
461101d67c Make button-1 work on all Gnus buttons
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-insert-button):
* lisp/gnus/gnus-art.el (gnus-insert-mime-button)
(gnus-mime-display-alternative, gnus-insert-prev-page-button)
(gnus-insert-next-page-button)
(gnus-insert-mime-security-button): Make button-1 work on all the
Gnus buttons (bug#38144).
2019-11-16 05:33:17 +01:00
Lars Ingebrigtsen
900ace0dce Fix mouse-1 on Gnus article buffer buttons
* lisp/gnus/gnus-art.el (gnus-article-add-button): Make mouse-1
work as required by mouse-1-click-follows-link (bug#38144).
2019-11-14 07:48:41 +01:00