Commit graph

869 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
2f7a115a9c Fix previous pulse.el fix
* lisp/cedet/pulse.el (pulse-reset-face): Fix up previous
pulse-reset-face change -- reset back to the start face
(bug#48936).
2021-06-13 15:38:52 +02:00
Lars Ingebrigtsen
00802c0cfe Reset the pulse face more fully in pulse-reset-face
* lisp/cedet/pulse.el (pulse-reset-face): Reset the :extend to nil
if there's no face given (bug#48936).
2021-06-13 14:49:07 +02:00
Stefan Monnier
4c6554413d EIEIO: Promote the CLOS behavior over the EIEIO-specific behavior
Change docs to advertize `slot-value` rather than `oref`.
Change the implementation of `:initform` to better match the CLOS semantics,
while preserving the EIEIO semantics, but warn when encountering cases
where the two diverge.
Demote the mostly unused special semantics of `oref-default`
on non-class allocated slots.

* doc/misc/eieio.texi (Quick Start): Use `slot-value`.
(Accessing Slots): Move `slot-value` before `oref`.
Fix paren-typo in example (reported by pillule <pillule@riseup.net>).
(Introspection): Remove mention of `class-slot-initarg`.

* lisp/transient.el (transient--parse-group, transient--parse-suffix):
Don't use `oref-default` to get the default value.
(transient-lisp-variable): Init forms are evaluated.

* lisp/emacs-lisp/eieio.el (defclass): Warn about inapplicable
`:initarg` and about uses of init forms that are ambiguous.
(oref): Don't advertize the deprecated use of initargs as slot names.
(oref-default): Don't advertize the deprecated case where it returns the
initform's value.
(initialize-instance): Use `macroexp-const-p`.
* lisp/emacs-lisp/eieio-core.el (eieio--unbound): Rename from
`eieio-unbound`.
(eieio--unbound-form): New var.
(eieio--slot-override): Use it.
(eieio-defclass-internal): Use it.  Change `init` so it should always
be evaluated.
(eieio--known-class-slot-names): New var.
(eieio--eval-default-p): Rename from `eieio-eval-default-p`.
(eieio--perform-slot-validation-for-default): Use `macroexp-const-p` to
decide whether to skip the test.
(eieio--add-new-slot): Register slot in `eieio--known-class-slot-names`
when applicable.
(eieio-oref-default, eieio-oset-default): Add warning for unknown slots
and slots not known to be allocated to the class.
(eieio-default-eval-maybe): Delete function.  Use just `eval` instead.
(eieio-declare-slots): Allow slots to specify their allocation class.

* lisp/cedet/srecode/insert.el (point): Declare the slot instead of
moving the class definition before the slot's first use.
(srecode-template-inserter-point, srecode-insert-fcn):
Use nil instead of unbound for the `point` slot.

* lisp/cedet/srecode/compile.el (srecode-template-inserter):
Declare the `key` slot that all children should have.

* lisp/emacs-lisp/eieio-speedbar.el (eieio-speedbar)
(eieio-speedbar-directory-button, eieio-speedbar-file-button):
* lisp/emacs-lisp/eieio-custom.el (eieio-widget-test-class):
* lisp/emacs-lisp/chart.el (chart-bar):
* lisp/cedet/semantic/ede-grammar.el (semantic-ede-proj-target-grammar):
* lisp/cedet/semantic/db.el (semanticdb-project-database):
* lisp/cedet/semantic/db-javascript.el (semanticdb-table-javascript)
(semanticdb-project-database-javascript):
* lisp/cedet/semantic/db-el.el (semanticdb-table-emacs-lisp)
(semanticdb-project-database-emacs-lisp):
* lisp/cedet/semantic/db-ebrowse.el (semanticdb-table-ebrowse)
(semanticdb-project-database-ebrowse):
* lisp/cedet/ede/proj.el (ede-proj-project):
* lisp/cedet/ede/proj-obj.el (ede-proj-target-makefile-objectcode):
* lisp/cedet/ede/generic.el (ede-generic-project):
* lisp/cedet/ede/config.el (ede-project-with-config):
* lisp/cedet/ede/base.el (ede-target, ede-project):
* lisp/auth-source.el (auth-source-backend): Init forms are evaluated,
so quote them accordingly.
2021-06-12 16:22:03 -04:00
Dmitry Gutov
45bdc37c81 Support old BSD find and "root dir symlink" better
* lisp/progmodes/grep.el (grep-compute-defaults):
Add '-H' to grep-find-template (bug#48471).

* lisp/cedet/semantic/symref/grep.el (semantic-symref-perform-search):
Pass the root directory name without the trailing slash.

* lisp/progmodes/xref.el (xref-matches-in-directory): Ditto.

* test/lisp/progmodes/xref-tests.el (xref--xref-file-name-display-is-abs)
(xref--xref-file-name-display-is-relative-to-project-root):
Make tests more strict again.
2021-06-07 04:52:30 +03:00
Gregory Heytings
1fa58c548a Use correct face when pulsing in CEDET
* lisp/cedet/pulse.el (pulse-momentary-highlight-overlay): Use
pulse-highlight-face, not pulse-highlight-start-face (bug#47810).
2021-05-25 06:22:36 +02:00
Glenn Morris
d53ee1cb3e ; Auto-commit of loaddefs files. 2021-05-01 06:29:15 -07:00
Stefan Kangas
71b14f2806 Avoid lowering gc-cons-threshold
* lisp/cedet/semantic/wisent/comp.el (wisent--compile-grammar):
* lisp/international/mule-cmds.el (ucs-names):
* lisp/progmodes/ebrowse.el (ebrowse-read):
* test/src/coding-tests.el (benchmark-decoder): Avoid lowering
gc-cons-treshold.
2021-04-22 04:11:02 +02:00
Stefan Kangas
fb9f5501d8 ; Fix typos: emacs lisp -> Emacs Lisp 2021-04-16 14:54:02 +02:00
Stefan Monnier
214dfbfea0 Don't version-control generated file grammat-wy.el
This file is needed for CEDET's bootstrap, tho, so we now keep a copy of it
under version control in `gram-wy-boot.el`, very much like we do with
the `ldefs-boot.el` copy of `loaddefs.el`.

* lisp/cedet/semantic/grm-wy-boot.el: Rename from
`lisp/cedet/semantic/grammar-wy.el`.

* lisp/cedet/semantic/grammar.el: Load `grm-wy-boot.el` if
`grammar-wy.el` hasn't been generated yet.

* admin/update_autogen: Also refresh `grm-wy-boot.el`.

* admin/grammars/Makefile.in (WISENT): Add `grammar-wy.el` to the
generated files.

* .gitignore: Add `grammar-wy.el`.
2021-04-12 22:10:38 -04:00
Stefan Monnier
c45bfd3c4a * lisp/**/*.el: Avoid positional args to define-minor-mode
Back in Emacs-21.1, `define-minor-mode` grew keywords arguments to
replace its old positional arguments.  Let's make sure we don't use
the old-style any more.

* lisp/org/ox-beamer.el (org-beamer-mode-map): Move initialization
into declaration.
(org-beamer-mode):
* lisp/textmodes/tildify.el (tildify-mode):
* lisp/textmodes/sgml-mode.el (html-autoview-mode):
* lisp/textmodes/rst.el (rst-minor-mode):
* lisp/textmodes/remember.el (remember-notes-mode):
* lisp/textmodes/ispell.el (ispell-minor-mode):
* lisp/tar-mode.el (tar-subfile-mode):
* lisp/strokes.el (strokes-mode):
* lisp/so-long.el (so-long-minor-mode):
* lisp/shell.el (shell-dirtrack-mode):
* lisp/scroll-all.el (scroll-all-mode):
* lisp/ruler-mode.el (ruler-mode):
* lisp/rect.el (rectangle-mark-mode):
* lisp/progmodes/sh-script.el (sh-electric-here-document-mode):
* lisp/outline.el (outline-minor-mode):
* lisp/org/org.el (org-cdlatex-mode):
* lisp/org/org-table.el (org-table-header-line-mode)
(org-table-follow-field-mode, orgtbl-mode):
* lisp/org/org-src.el (org-src-mode):
* lisp/org/org-list.el (org-list-checkbox-radio-mode):
* lisp/org/org-indent.el (org-indent-mode):
* lisp/org/org-capture.el (org-capture-mode):
* lisp/obsolete/pc-select.el (pc-selection-mode):
* lisp/obsolete/iswitchb.el (iswitchb-mode):
* lisp/net/rcirc.el (rcirc-omit-mode, rcirc-multiline-minor-mode)
(rcirc-track-minor-mode):
* lisp/net/goto-addr.el (goto-address-mode, goto-address-prog-mode):
* lisp/image-mode.el (image-minor-mode):
* lisp/ibuf-ext.el (ibuffer-auto-mode):
* lisp/gnus/gnus-cite.el (gnus-message-citation-mode):
* lisp/font-core.el (font-lock-mode):
* lisp/erc/erc.el (define-erc-module):
* lisp/erc/erc-track.el (erc-track-minor-mode):
* lisp/erc/erc-fill.el (erc-fill-mode):
* lisp/epa-mail.el (epa-mail-mode):
* lisp/emacs-lisp/checkdoc.el (checkdoc-minor-mode):
* lisp/dirtrack.el (dirtrack-mode, dirtrack-debug-mode):
* lisp/dired-aux.el (dired-isearch-filenames-mode):
* lisp/cedet/semantic/idle.el (semantic-idle-scheduler-mode):
* lisp/cedet/semantic/decorate/mode.el (semantic-decoration-mode):
* lisp/autoarg.el (autoarg-mode, autoarg-kp-mode):
* lisp/vc/pcvs.el (cvs-minor-mode):
Avoid old-style positional args to `define-minor-mode`.
2021-04-11 23:47:14 -04:00
Glenn Morris
9cb3db0bad Regenerate semantic grammars if the generating code changes
* admin/grammars/Makefile.in (emacs): Set load-prefer-newer.
(grammar_bovine, grammar_wisent): New variables.
(${bovinedir}/%-by.el, ${bovinedir}/scm-by.el)
(${cedetdir}/semantic/%-wy.el, ${wisentdir}/%-wy.el)
(${wisentdir}/javat-wy.el, ${cedetdir}/srecode/srt-wy.el):
Depend on the source file for the generating function.
* lisp/cedet/semantic/bovine/grammar.el (bovine--make-parser-1):
* lisp/cedet/semantic/wisent/grammar.el (wisent--make-parser-1):
Force generation of the output file.  The previous "is the output
newer than the input" failed to account for changes in the
generation code itself.  Force so we can let make figure it out.
2021-04-04 16:57:55 -07:00
Stefan Kangas
63608efe7e Remove redundant #' before lambda in cedet
* lisp/cedet/mode-local.el (mode-local-map-mode-buffers)
(mode-local--activate-bindings, mode-local--deactivate-bindings)
(setq-mode-local, describe-mode-local-bindings-in-mode):
* lisp/cedet/semantic.el (semantic-repeat-parse-whole-stream):
* lisp/cedet/semantic/bovine/c.el (semantic-c-describe-environment):
* lisp/cedet/semantic/db-ebrowse.el
(semanticdb-ebrowse-get-ebrowse-structure):
* lisp/cedet/semantic/db-global.el
(semanticdb-enable-gnu-global-databases):
* lisp/cedet/semantic/edit.el (semantic-changes-in-region):
* lisp/cedet/semantic/fw.el (semantic-install-function-overrides):
* lisp/cedet/semantic/grammar.el (semantic-grammar-ASSOC)
(semantic-grammar-tag-symbols, semantic-grammar-keywords)
(semantic--grammar-macros-regexp-1)
(semantic-format-tag-summarize):
* lisp/cedet/semantic/idle.el (semantic-idle-core-handler)
(semantic-idle-work-core-handler):
* lisp/cedet/semantic/imenu.el (semantic-imenu-semanticdb-hook):
* lisp/cedet/semantic/java.el (semantic-java-doc-keywords-map)
(semantic-java-doc-setup):
* lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-save-table)
(semantic-lex-spp-macros):
* lisp/cedet/semantic/lex.el (semantic-lex-map-symbols)
(semantic-lex-keywords, semantic-lex-types):
* lisp/cedet/semantic/util-modes.el
(semantic-toggle-minor-mode-globally):
* lisp/cedet/semantic/wisent/comp.el (wisent-defcontext)
(wisent-automaton-lisp-form):
* lisp/cedet/semantic/wisent/grammar.el (wisent-grammar-assocs)
(wisent-grammar-terminals): Remove redundant #' before lambda.
2021-03-30 23:52:50 +02:00
Stefan Kangas
49cbf2392b Delete empty "History" sections
* lisp/bs.el:
* lisp/calendar/timeclock.el:
* lisp/cedet/semantic/bovine/grammar.el:
* lisp/cedet/semantic/grammar.el:
* lisp/cedet/semantic/wisent.el:
* lisp/cedet/semantic/wisent/comp.el:
* lisp/cedet/semantic/wisent/java-tags.el:
* lisp/cedet/semantic/wisent/wisent.el:
* lisp/erc/erc.el:
* lisp/net/newst-treeview.el:
* lisp/recentf.el:
* lisp/ruler-mode.el:
* lisp/textmodes/remember.el:
* lisp/thumbs.el:
* lisp/tree-widget.el:
* lisp/vc/vc-hg.el: Delete empty "History" sections.

* lisp/cedet/semantic/grammar.el
(semantic-grammar-header-template): Don't add "History" section to
generated file.
2021-03-30 15:50:26 +02:00
Eli Zaretskii
aceaa0a334 Avoid errors in pulse.el for some face customizations
* lisp/cedet/pulse.el (pulse-momentary-highlight-overlay): Make
sure 'face-background' always returns a color name.  Suggested by
Ingo Lohmar <ingo.lohmar@posteo.net> in bug#47437.
2021-03-28 15:29:41 +03:00
Stefan Kangas
cb5d1fe1aa Remove unnecessary requires of rx
* lisp/cedet/semantic/wisent/python.el (rx):
* test/src/process-tests.el (rx): Remove unnecessary requires.
2021-03-22 01:06:32 +01:00
Stefan Monnier
f27a9a341f * lisp/cedet/semantic/ia.el (semantic-ia-complete-symbol): Simplify
Cut the `semantic-ia-get-completions-deprecated` middle man.
2021-03-20 20:39:01 -04:00
Gabriel do Nascimento Ribeiro
8ad87812cf lisp/cedet/pulse.el: Use color.el
* lisp/cedet/pulse.el: (pulse-int-to-hex): Remove function.
(pulse-color-values-to-hex): Remove function.
(pulse-lighten-highlight): Remove function.
(pulse-momentary-iteration): Add variable.
(pulse-momentary-highlight-overlay): Use color-gradient from color.el.
(pulse-tick): Receive colors and update overlay background (bug#47083).
2021-03-18 08:10:52 +01:00
Stefan Monnier
371fdd4f1b * lisp/cedet: Convert remaining files to lexical-binding
Remove a few more redundant `:group` args.
Make use of lexical scoping to replace `(lambda...) with proper closures.

* lisp/cedet/ede/custom.el (ede-project-sort-targets-list):
Use `dotimes` and replace `(lambda..) with closures.

* lisp/cedet/ede/proj-comp.el (proj-comp-insert-variable-once):
* lisp/cedet/ede/pmake.el (ede-pmake-insert-variable-once):
Remove unused var `addcr`.

* lisp/cedet/semantic/complete.el: Use lexical-binding.
(semantic-displayer-show-request): Remove unused var `typing-count`.
Use `equal` instead of `stringp+string=`.

* lisp/cedet/semantic/db-ebrowse.el: Use lexical-binding.
(semanticdb-create-ebrowse-database): Remove unused vars `mma` and `regexp`.
(semanticdb-ebrowse-strip-trees): Remove unused var `class` and `filename`.
(semanticdb-ebrowse-add-globals-to-table): Remove unused var `fname`.

* lisp/cedet/semantic/db-find.el: Use lexical-binding.
(semanticdb-find-adebug-insert-scanned-tag-cons): Remove always-nil var
`tip`.

* lisp/cedet/semantic/db-global.el: Use lexical-binding.
(semanticdb-enable-gnu-global-databases): Access local var
`semantic--ih` by sticking its value in the code passed to `eval`
rather than by dynamic scoping.

* lisp/cedet/semantic/db-typecache.el: Use lexical-binding.
(semanticdb-db-typecache-dump): Remove unused var `junk`.

* lisp/cedet/semantic/debug.el: Use lexical-binding.

* lisp/cedet/semantic/dep.el: Use lexical-binding.
(semantic-add-system-include): Avoid `add-to-list` on a local variable.
Access local var `value` by sticking its value in the code passed to
`eval` rather than by dynamic scoping.
(semantic-remove-system-include): Don't use `delete` on a list received
from elsewhere.
Access local var `value` by sticking its value in the code passed to
`eval` rather than by dynamic scoping.
(semantic-reset-system-include): Simplify a bit.

* lisp/cedet/semantic/ede-grammar.el: Use lexical-binding.
(project-compile-target): Remove unused vars `csrc` and `cb`.
Use `cl-incf`.  Remove apparently unneeded `with-no-warnings`.

* lisp/cedet/semantic/edit.el: Use lexical-binding.
(semantic-edits-change-over-tags): Remove unused var `inner-start`.
(semantic-edits-incremental-parser-1): Silence warnings about
intentionally unused var `last-cond`.

* lisp/cedet/semantic/fw.el: Use lexical-binding.
(recentf-exclude, semantic-init-hook, ede-auto-add-method)
(flymake-start-syntax-check-on-find-file, auto-insert): Declare vars.

* lisp/cedet/semantic/ia-sb.el: Use lexical-binding.
(semantic-ia-sb-key-map): Move initialization into declaration.
(semantic-ia-sb-more-buttons): Remove unused var `idx`.
(semantic-ia-sb-line-path): Simplify `if` -> `or`.

* lisp/cedet/semantic/idle.el (semantic-idle-breadcrumbs--tag-function):
Make it a function returning a closure.

* lisp/cedet/semantic/senator.el: Use lexical-binding.
(senator-search-set-tag-class-filter): Replace `(lambda..) with a closure.

* lisp/cedet/semantic/sort.el: Use lexical-binding.
(semanticdb-search-system-databases): Declare var.
(semantic-tag-external-member-children-default): Replace `(lambda..)
with a closure.

* lisp/cedet/semantic/tag-ls.el: Use lexical-binding.
(semantic-tag-protection-default, semantic-tag-abstract-p-default):
Simplify with `member`.

* lisp/cedet/semantic/util.el: Use lexical-binding.
(semantic-something-to-tag-table): Declare function
`semanticdb-abstract-table--eieio-childp` called via `cl-typep`.

* lisp/cedet/semantic/bovine/scm.el (semantic-default-scheme-setup):
Remove duplicate setting of `imenu-create-index-function`.

* lisp/cedet/semantic/decorate/mode.el (semantic-decoration-build-style-menu):
Replace `(lambda..) with a closure.

* lisp/cedet/srecode/cpp.el (srecode-semantic-apply-tag-to-dict):
Remove always-t variable `member`.

* lisp/cedet/srecode/mode.el (srecode-minor-mode-templates-menu):
Replace `(lambda..) with a closure.  Use `push`.

* lisp/cedet/semantic/chart.el: Use lexical-binding.
* lisp/cedet/semantic/db-debug.el: Use lexical-binding.
* lisp/cedet/semantic/db-el.el: Use lexical-binding.
* lisp/cedet/semantic/db-file.el: Use lexical-binding.
* lisp/cedet/semantic/db-javascript.el: Use lexical-binding.
* lisp/cedet/semantic/db-mode.el: Use lexical-binding.
* lisp/cedet/semantic/db-ref.el: Use lexical-binding.
* lisp/cedet/semantic/decorate.el: Use lexical-binding.
* lisp/cedet/semantic/doc.el: Use lexical-binding.
* lisp/cedet/semantic/find.el: Use lexical-binding.
* lisp/cedet/semantic/format.el: Use lexical-binding.
* lisp/cedet/semantic/html.el: Use lexical-binding.
* lisp/cedet/semantic/ia.el: Use lexical-binding.
* lisp/cedet/semantic/imenu.el: Use lexical-binding.
* lisp/cedet/semantic/java.el: Use lexical-binding.
* lisp/cedet/semantic/mru-bookmark.el: Use lexical-binding.
* lisp/cedet/semantic/symref.el: Use lexical-binding.
* lisp/cedet/semantic/tag-file.el: Use lexical-binding.
* lisp/cedet/semantic/tag-write.el: Use lexical-binding.
* lisp/cedet/semantic/texi.el: Use lexical-binding.
* lisp/cedet/semantic/util-modes.el: Use lexical-binding.
2021-03-15 00:08:34 -04:00
Stefan Monnier
d1a7d16f8e * lisp/cedet/{*.el,ede/*.el}: Use lexical-binding
Remove a few redundant `:group` arguments as well.

* lisp/cedet/ede.el: Use lexical-binding.
Don't load `ede/files` at compile-time.
(ede-speedbar): Declare function.
(ede-load-project-file): Allow `rootreturn` to be a reference rather
than a symbol.
(ede-initialize-state-current-buffer): Pass `ROOT` as a reference
rather than a symbol to `ede-directory-get-open-project` and
`ede-load-project-file` so we don't need to make it dynamically scoped.
(ede-flush-deleted-projects): Avoid `add-to-list` on a local var.

* lisp/cedet/ede/files.el: Use lexical-binding.
(ede-directory-get-open-project): Allow `rootreturn` to be a reference
rather than a symbol.
(ede-project-root-directory): Remove unused var `root`.
(ede-expand-filename-impl): Remove unused vars `path` and `proj`.

* lisp/cedet/cedet-idutils.el: Use lexical-binding.
(cedet-idutils-search): Remove always-nil variable `scopeflags`.

* lisp/cedet/data-debug.el: Use lexical-binding.
(data-debug-insert-overlay-button, data-debug-insert-overlay-list-button)
(data-debug-insert-buffer-button, data-debug-insert-buffer-list-button)
(data-debug-insert-process-button): Remove always-nil variable `tip`.
(data-debug-insert-ring-button): Remove unused var `ringthing`.
(data-debug-insert-widget-properties): Remove unused var `type`.

* lisp/cedet/semantic.el: Use lexical-binding.
(semantic-mode): Strength-reduce `eval` to `symbol-value`.

* lisp/cedet/ede/custom.el: Use lexical-binding.
(ede-project-sort-targets): Remove unused vars `count`, `current`, and
`order`.

* lisp/cedet/ede/pconf.el: Use lexical-binding.
(ede-proj-configure-synchronize): Remove unused var `add-missing`.

* lisp/cedet/ede/pmake.el (ede-proj-makefile-garbage-patterns):
Simplify via η-reduction.
(ede-proj-makefile-dependencies): Use `seq-some` rather than `eval+or`.

* lisp/cedet/ede/proj-elisp.el: Use lexical-binding.
(project-compile-target): Remove unused var `elc`.
(ede-update-version-in-source): Remove unused var `match`.
(project-compile-target): Declare function `cedet-update-autoloads`
from file we don't have.

* lisp/cedet/cedet-cscope.el: Use lexical-binding.
* lisp/cedet/cedet-files.el: Use lexical-binding.
* lisp/cedet/cedet-global.el: Use lexical-binding.
* lisp/cedet/cedet.el: Use lexical-binding.
* lisp/cedet/ede/auto.el: Use lexical-binding.
* lisp/cedet/ede/autoconf-edit.el: Use lexical-binding.
* lisp/cedet/ede/config.el: Use lexical-binding.
* lisp/cedet/ede/cpp-root.el: Use lexical-binding.
* lisp/cedet/ede/detect.el: Use lexical-binding.
* lisp/cedet/ede/generic.el: Use lexical-binding.
* lisp/cedet/ede/linux.el: Use lexical-binding.
* lisp/cedet/ede/locate.el: Use lexical-binding.
* lisp/cedet/ede/makefile-edit.el: Use lexical-binding.
* lisp/cedet/ede/proj-info.el: Use lexical-binding.
* lisp/cedet/ede/proj-obj.el: Use lexical-binding.
* lisp/cedet/ede/proj-prog.el: Use lexical-binding.
* lisp/cedet/ede/proj-shared.el: Use lexical-binding.
* lisp/cedet/ede/proj.el: Use lexical-binding.
* lisp/cedet/ede/shell.el: Use lexical-binding.
* lisp/cedet/ede/simple.el: Use lexical-binding.
* lisp/cedet/ede/source.el: Use lexical-binding.
* lisp/cedet/ede/speedbar.el: Use lexical-binding.
* lisp/cedet/ede/util.el: Use lexical-binding.
2021-03-12 11:32:42 -05:00
Mattias Engdegård
a0854f939c ; Fix typos in doc strings 2021-03-12 12:12:14 +01:00
Stefan Monnier
fe844299a4 * lisp/cedet: Remove always-nil variables
* lisp/cedet/ede/pmake.el (ede-proj-makefile-insert-variables):
Remove always-nil variable `conf-done`.

* lisp/cedet/ede/project-am.el: Use ref instead of dynbound var.
(project-rescan): Pass the ref.
(project-am-expand-subdirlist): Use it.

* lisp/cedet/semantic/idle.el (semantic-idle-work-core-handler):
Fix misuse of the wrong `errbuf `variable.

* lisp/cedet/semantic/scope.el (semantic-analyze-scoped-type-parts):
Remove always-nil variable `extmeth`.

* lisp/cedet/semantic/wisent/comp.el (wisent-context-name)
(wisent-context-bindings): Make them into functions.
(wisent-with-context): Use `dlet`.
2021-03-11 13:21:22 -05:00
Lars Ingebrigtsen
612095220d Make semantic/idle not move point after last change
* lisp/cedet/semantic/idle.el (semantic--eldoc-info): Don't move
point (bug#46999).
2021-03-08 20:37:40 +01:00
Stefan Kangas
0e4a2dca83 Normalize version specifiers for make-obsolete and friends
* lisp/auth-source.el (auth-source-forget-user-or-password)
(auth-source-user-or-password, auth-source-hide-passwords):
* lisp/calendar/icalendar.el (icalendar--datetime-to-noneuropean-date):
* lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym-function-arglist):
* lisp/emacs-lisp/debug.el (debugger-insert-backtrace):
* lisp/obsolete/nnir.el (nnir-swish-e-index-file):
* lisp/obsolete/starttls.el (starttls-any-program-available):
Normalize version specifiers for make-obsolete and friends.
2021-03-08 05:09:27 +01:00
Stefan Monnier
42751f440d * lisp/cedet/semantic/fw.el (semantic-find-file-noselect): Fix warning
Remove ugly hack trying to warn the user about some unknown problem,
and which stopped working in 2013 when files.el started using
lexical-binding.
2021-03-07 19:05:02 -05:00
Stefan Monnier
26bfd0cdcf * lisp/cedet/semantic/bovine.el: Fix recent regression
The conversion to `lexical-binding` introduced a regression because
`bovine/c.el` relied on inspecting the local variable `lse` in one of
its callers.

(semantic-bovinate-stream): Bind `lse` dynamically, because of
`semantic-parse-region-c-mode`.
(semantic-bovinate-nonterminal-check-map): Rename from
`semantic-bovinate-nonterminal-check-obarray` to hold some other kind
of table.
(semantic-bovinate-nonterminal-check): Use a hash-table instead of an obarray.

* lisp/cedet/semantic/bovine/c.el (semantic-parse-region-c-mode):
Declare use of `lse` via dynamic scoping.

* test/lisp/cedet/semantic-utest-c.el
(semantic-test-c-preprocessor-simulation): Re-enable test.
2021-03-07 19:03:36 -05:00
Stefan Monnier
468bb5ab7f * lisp/cedet/semantic/wisent: Use lexical-binding
* lisp/cedet/semantic/wisent/comp.el: lexical-binding.
(wisent-defcontext): Make sure the vars are also dynbound in the files
that `require` us.
(wisent-state-actions, wisent-automaton-lisp-form): Use `obarray-make`.
(wisent--compile-grammar): Rename from `wisent-compile-grammar`.
(wisent-compile-grammar): Redefine as an obsolete function.
(wisent-automaton-lisp-form): Avoid variable `state`.

* lisp/cedet/semantic/grammar.el: Use lexical-binding.
(semantic-grammar-require-form): New var.
(semantic-grammar-header): Use it to provide new element `require-form`.
(semantic-grammar-header-template): Use it.

* lisp/cedet/semantic/wisent.el (wisent-compiled-grammar): New macro.

* lisp/cedet/semantic/wisent/grammar.el (wisent-grammar-parsetable-builder):
Use it in the generated code instead of the `wisent-compile-grammar` function.
(wisent-grammar-mode): Set `semantic-grammar-require-form` so
the generated ELisp files require `semantic/wisent` rather than
`semantic/bovine`.

* lisp/cedet/semantic/wisent/wisent.el: Use lexical-binding.
* lisp/cedet/semantic/wisent/java-tags.el: Use lexical-binding.
* lisp/cedet/semantic/wisent/python.el: Use lexical-binding.
* lisp/cedet/semantic/wisent/javascript.el: Use lexical-binding.
(semantic-ctxt-current-symbol): Remove unused var `symlist`.

* admin/grammars/python.wy (wisent-python-EXPANDING-block):
Declare dynbound var.

* lisp/cedet/semantic/grammar-wy.el: Regenerate.
2021-03-07 01:58:16 -05:00
Stefan Monnier
5f74397490 * lisp/cedet/semantic/bovine/*.el: Use lexical-binding
* lisp/cedet/semantic/bovine/c.el: Use lexical-binding.
(semantic-lex-cpp-define): Remove unused var `name`.
(semantic-c-do-lex-if): Remove unused var `pt`.
(semantic-analyze-tag-references): Remove unused var `refs`.
(semantic-c-dereference-namespace): Remove unused vars `tmp` and
`usingname`.
(semantic-c-dereference-namespace-alias): Remove unused var `newtype`.
(semantic-c-check-type-namespace-using): Remove unused vars `tmp` and
`shortname`.
(semanticdb-find-table-for-include): Remove unused var `prefix`.
(semantic-default-c-setup, semantic-c-describe-environment):
Use `derived-mode-p`.

* lisp/cedet/semantic/bovine/debug.el: Use lexical-binding.

* lisp/cedet/semantic/bovine/make.el: Use lexical-binding.

* lisp/cedet/semantic/bovine/scm.el: Use lexical-binding.

* lisp/cedet/semantic/lex.el (define-lex-analyzer): Define the var (and
the function) in a single step.
2021-03-06 22:33:19 -05:00
Stefan Monnier
8fc6810eb6 * lisp/cedet/srecode/compile.el: Fix last change
(srecode-compile-inserter): Call `make-instance` properly.
2021-03-06 13:32:14 -05:00
Basil L. Contovounesios
6c498786fe Pacify some semantic-tag-make-plist warnings
* lisp/cedet/semantic/tag.el (semantic-tag-make-plist): Define
before its first use to pacify some recent "may not be defined at
runtime" warnings after turning on lexical-binding.
2021-03-06 13:21:52 +00:00
Stefan Monnier
6d580dee30 * * lisp/cedet/semantic: Use lexical-binding in the generated grammars
* admin/grammars/c.by (typesimple): Bind `semantic-c-classname` dynamically.

* lisp/cedet/semantic/bovine.el: Use lexical-binding.
(semantic-lambda): Silence warnings if the `vals` arg is not used.

* lisp/cedet/semantic/grammar-wy.el: Re-generate.

* lisp/cedet/semantic/bovine/grammar.el: Use lexical-binding.
(bovine-grammar-expand-action): Silence warnings if some of the
`vals`, `start`, or `end` args is not used.
(bovine--make-parser-1): Use lexical-binding in the generated files.

* lisp/cedet/semantic/wisent/grammar.el: Use lexical-binding.
(wisent--make-parser-1): Use lexical-binding in the generated files.
2021-03-05 23:33:21 -05:00
Stefan Monnier
0f85f2c0e5 * lisp/cedet/srecode/*.el: Use lexical-binding
* lisp/cedet/srecode/compile.el (srecode-compile-inserter):
Use `make-instance` instead of the class name-as-function.

* lisp/cedet/srecode/fields.el (srecode-field-behind-hook):
Remove unused var `field`.

* lisp/cedet/srecode/find.el (srecode-load-tables-for-mode): Simplify.

* lisp/cedet/srecode/getset.el (srecode-semantic-selected-tag): Declare var.

* lisp/cedet/srecode/mode.el (srecode-minor-mode): Mark references to
non-existing `srecode-m3-items` function.

* lisp/cedet/srecode/srt-mode.el (srecode-parse-this-macro): Remove
unused var `raw`.
2021-03-05 21:00:00 -05:00
Stefan Kangas
356636c6a1 Make inversion.el obsolete (Bug#46841)
* lisp/cedet/inversion.el:
* test/lisp/cedet/inversion-tests.el: Move from here...
* lisp/obsolete/inversion.el:
* test/lisp/obsolete/inversion-tests.el: ...to here.

* lisp/cedet/cedet.el (cedet-version): Make obsolete.
* lisp/cedet/cedet-cscope.el (cedet-cscope-version-check):
* lisp/cedet/cedet-global.el (cedet-gnu-global-version-check):
* lisp/cedet/cedet-idutils.el (cedet-idutils-version-check):
* lisp/cedet/ede/make.el (ede-make-check-version): Use 'version<'
instead of 'inversion-check-version'.
* lisp/cedet/semantic/db-file.el (semanticdb-load-database): Don't
use 'inversion-test'.
* lisp/cedet/semantic/ede-grammar.el
(ede-proj-makefile-insert-variables): Don't add inversion to
loadpath.
* lisp/speedbar.el: Remove stale comment.
2021-03-03 19:54:37 +01:00
Stefan Kangas
b34d39170b Minor fixes after preloading easymenu
* lisp/cedet/ede/dired.el:
* lisp/dired-x.el:
* lisp/filesets.el:
* lisp/follow.el:
* lisp/gnus/gnus-registry.el:
* lisp/net/eudc.el:
* lisp/printing.el:
* lisp/recentf.el:
* lisp/speedbar.el: Remove redundant require of easymenu; it is now
preloaded.
* lisp/org/org.el:
* lisp/progmodes/antlr-mode.el:
* lisp/progmodes/vhdl-mode.el:
* lisp/textmodes/reftex.el: Don't require easymenu in Emacs 28 or
later.

* etc/NEWS: Announce that 'easymenu' is now preloaded.
2021-02-27 20:04:41 +01:00
Stefan Monnier
2987376bc3 * lisp/cedet/semantic/idle.el: Fix compilation warning
(eldoc-last-message): Remove var declaration.
(eldoc-message): Remove function declaration.
(semantic--eldoc-info): Rename from semantic-idle-summary-idle-function.
Make it usable on `eldoc-documentation-functions`.
(semantic-idle-summary-mode): Use `eldoc-mode`.
(semantic-idle-summary-refresh-echo-area): Delete function.
2021-02-26 15:34:30 -05:00
Stefan Monnier
49bad2a0a6 * lisp/cedet/semantic/analyze*.el: Use lexical-binding
* lisp/cedet/semantic/analyze.el: Use lexical-binding.
Rename the dynbound var `prefixtypes` to `semantic--prefixtypes`.
(semantic--prefixtypes): Declare var.

* lisp/cedet/semantic/analyze/complete.el: Use lexical-binding.
(semantic--prefixtypes): Declare var.
(semantic-analyze-possible-completions-default): Remove unused var `any`.
Rename `prefixtypes` to `semantic--prefixtypes`.

* lisp/cedet/semantic/analyze/debug.el: Use lexical-binding.
(semantic-analyzer-debug-global-symbol): Remove no-op use of `prefixtypes`.

* lisp/cedet/semantic/analyze/refs.el:
* lisp/cedet/semantic/analyze/fcn.el: Use lexical-binding.
2021-02-26 15:19:31 -05:00
Stefan Monnier
2766f9fdb9 * lisp/emacs-lisp/macroexp.el (macroexp-file-name): New function.
Yes, finally: a function that tells you the name of the file where
the code is located.  Finding this name is non-trivial in practice,
as evidenced by the "4 shift/reduce conflicts" warning when compiling
CEDET's python.el, because its `wisent-source` got it wrong in that
case, thinking the grammar came from `python.el` instead of
`python-wy.el`.

While at it, also made `macroexp-compiling-p` public, since it's
useful at various places.

(macroexp-compiling-p): Rename from `macroexp--compiling-p`.

* lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables):
Bind `load-file-name` to nil so we can distinguish a load that calls
the byte compiler from a byte compilation which causes a load.

* lisp/cedet/semantic/wisent/python.el (wisent-python--expected-conflicts):
Remove; it was just a workaround.
* lisp/subr.el (do-after-load-evaluation): Avoid `byte-compile--` vars.
* lisp/cedet/semantic/fw.el (semantic-alias-obsolete):
Use `macroexp-compiling-p` and `macroexp-file-name`.
* lisp/cedet/semantic/wisent/comp.el (wisent-source): Use `macroexp-file-name`
(wisent-total-conflicts): Tighten regexp.
* lisp/emacs-lisp/cl-lib.el (cl--compiling-file): Delete function
and variable.  Use `macroexp-compiling-p` instead.
* lisp/progmodes/flymake.el (flymake-log):
* lisp/emacs-lisp/package.el (package-get-version):
* lisp/emacs-lisp/ert-x.el (ert-resource-directory):
Use `macroexp-file-name`.
2021-02-24 13:52:45 -05:00
Lars Ingebrigtsen
1f5ed3edc6 Fix wisent/python.el grammar warning
* lisp/cedet/semantic/wisent/python.el: Fix warning about
shift/reduce conflicts in the Python grammar.
2021-02-24 18:29:25 +01:00
Stefan Monnier
8d5dfafab7 Prefer declare over a put of list-indent-function.
While at it, I enabled lexical-binding in the affected files.

* lisp/cedet/semantic/sb.el: Enable lexical-binding.
(semantic-sb-with-tag-buffer): Use `declare`.

* lisp/cedet/semantic/bovine/el.el: Enable lexical-binding.
(semantic-elisp-setup-form-parser): Use `declare`.

* lisp/emacs-lisp/ert.el:
* lisp/emacs-lisp/ert-x.el: Remove redundant `put`.

* lisp/emulation/cua-rect.el: Enable lexical-binding.
(cua--rectangle-operation, cua--rectangle-aux-replace): Use `declare`.

* lisp/mh-e/mh-acros.el: Enable lexical-binding.
(mh-do-in-gnu-emacs, mh-do-in-xemacs, mh-funcall-if-exists, defun-mh)
(defmacro-mh, with-mh-folder-updating, mh-in-show-buffer)
(mh-do-at-event-location, mh-iterate-on-messages-in-region)
(mh-iterate-on-range): Use `declare`.

* lisp/mh-e/mh-compat.el: Enable lexical-binding.
(mh-flet): Use `declare`.

* lisp/mh-e/mh-e.el: Enable lexical-binding.
(defgroup-mh, defcustom-mh, defface-mh): Use `declare`.

* lisp/net/sieve.el: Enable lexical-binding.  Remove redundant :group args.
(sieve-activate, sieve-remove, sieve-edit-script): Remove unused arg
from the interactive spec.
(sieve-deactivate-all): Remove unused var `name`.
(sieve-change-region): Use `declare`.

* lisp/obsolete/fast-lock.el: Enable lexical-binding.
Remove redundant :group args.  Remove XEmacs compat code.
(save-buffer-state): Remove macro.
(fast-lock-add-properties): Use `with-silent-modifications` instead.

* lisp/obsolete/lazy-lock.el: Enable lexical-binding.
Remove redundant :group args.
(do-while): Use `declare`.
(save-buffer-state): Remove macro.
(lazy-lock-fontify-rest-after-change, lazy-lock-defer-line-after-change)
(lazy-lock-defer-rest-after-change, lazy-lock-after-fontify-buffer)
(lazy-lock-after-unfontify-buffer, lazy-lock-fontify-region):
Use `with-silent-modifications` instead.

* lisp/obsolete/pgg.el: Enable lexical-binding.  Remove XEmacs compat code.
(pgg-save-coding-system, pgg-as-lbt, pgg-process-when-success):
Use `declare`.
(pgg-add-passphrase-to-cache): Remove unused var `new-timer`.
(pgg-decrypt-region): Remove unused var `buf`.

* lisp/org/org-agenda.el (org-let, org-let2): Move from org-macs and
use `declare`.

* lisp/org/org-macs.el (org-let, org-let2): Move these functions that
are inherently harmful to your karma to the only package that uses them.
(org-scroll): Use `pcase` to avoid `eval` and use more readable syntax
for those integers standing for events.

* lisp/progmodes/antlr-mode.el: Enable lexical-binding.
(save-buffer-state-x): Use `declare` and `with-silent-modifications`.

* lisp/international/mule-util.el (with-coding-priority):
* lisp/cedet/ede/proj-comp.el (proj-comp-insert-variable-once):
* lisp/org/org-element.el (org-element-map):
* test/lisp/emacs-lisp/bytecomp-tests.el (test-byte-comp-compile-and-load):
* test/lisp/emacs-lisp/generator-tests.el (cps-testcase): Use `declare`.
2021-02-22 11:54:17 -05:00
Dmitry Gutov
8358637936 Move 'project-try-ede' to the back of 'project-find-functions'
* lisp/cedet/ede.el (project-find-functions):
Move 'project-try-ede' further back, so that 'project-try-vc' has
priority (bug46202).
2021-02-18 05:06:33 +02:00
Stefan Monnier
f8dbefbaa5 Use declare instead of def-edebug-spec in most places
* lisp/speedbar.el: Use lexical-binding.
(speedbar-with-writable): Use `declare`.

* lisp/subr.el (def-edebug-spec): Use `declare`.

* lisp/cedet/ede/base.el: Use lexical-binding.
(ede-with-projectfile): Use `declare`.
(recentf-exclude): Declare var.

* lisp/cedet/ede/pmake.el: Use lexical-binding.
(ede-pmake-insert-variable-shared, ede-pmake-insert-variable-once):
Use `declare`.

* lisp/cedet/ede/proj-comp.el: Use lexical-binding.
(ede-compiler-begin-unique, ede-compiler-only-once)
(ede-linker-begin-unique, ede-linker-only-once): Use `declare`.

* lisp/cedet/semantic/ctxt.el: Use lexical-binding.
(semantic-with-buffer-narrowed-to-context)
(semantic-with-buffer-narrowed-to-command): Use `declare`.
(semantic--progress-reporter): Declare var.
(semantic-ctxt-end-of-symbol-default): Remove unused var `fieldsep`.

* lisp/cedet/semantic/lex-spp.el: Use lexical-binding.
(define-lex-spp-macro-declaration-analyzer)
(define-lex-spp-include-analyzer, semantic-lex-with-macro-used)
(define-lex-spp-macro-undeclaration-analyzer): Use `declare`.
(semantic-lex-spp-symbol-remove): Rename arg to avoid colliding with
dynamic variable `obarray`.
(semantic-lex-spp-symbol-pop): Remove unused var `oldvalue`.
(semantic-lex-spp-lex-text-string): Remove unused var `analyzer`.

* lisp/cedet/semantic/lex.el (define-lex)
(semantic-lex-unterminated-syntax-protection, define-lex-analyzer)
(define-lex-regex-analyzer, define-lex-block-analyzer)
(semantic-lex-catch-errors): Use `declare`.

* lisp/cedet/semantic/tag.el: Use lexical-binding.
(semantic-with-buffer-narrowed-to-current-tag)
(semantic-with-buffer-narrowed-to-tag): Use `declare`.

* lisp/cedet/semantic/wisent.el: Use lexical-binding.
(define-wisent-lexer): Use `declare`.

* lisp/emacs-lisp/cl-lib.el (cl-pushnew): The arg to :test can be any
form not just function form.

* lisp/org/ob-comint.el (org-babel-comint-in-buffer)
(org-babel-comint-with-output): Use `declare`.

* lisp/org/ob-core.el (org-babel-map-src-blocks): Use `declare`.
(org-babel-result-cond): Simplify edebug spec.

* lisp/org/org-clock.el (org-with-clock-position, org-with-clock):
* lisp/org/org-agenda.el (org-agenda-with-point-at-orig-entry):
* lisp/org/ob-tangle.el (org-babel-with-temp-filebuffer): Use `declare`.

* lisp/textmodes/rst.el (push): Remove redundant edebug spec.

* lisp/vc/pcvs-parse.el: Use lexical-binding.
(cvs-parse-buffer): Rename arg to avoid dynbound conflict.
(cvs-or): Use `declare`.
2021-02-12 16:08:01 -05:00
Stefan Monnier
c55f4055dd * lisp/cedet/semantic/symref/: Use lexical-binding
* lisp/cedet/semantic/symref/cscope.el:
* lisp/cedet/semantic/symref/filter.el:
* lisp/cedet/semantic/symref/global.el:
* lisp/cedet/semantic/symref/grep.el:
* lisp/cedet/semantic/symref/idutils.el:
* lisp/cedet/semantic/symref/list.el: Use lexical-binding.
2021-02-11 19:00:53 -05:00
Stefan Monnier
9451ea0a05 * lisp/cedet/semantic/decorate/: Use lexical-binding in all files
* lisp/cedet/semantic/decorate/include.el
(semantic-decoration-fileless-include-describe): Remove unused var `mm`.
* lisp/cedet/semantic/decorate/mode.el: Use lexical-binding.
2021-02-11 18:54:12 -05:00
Stefan Kangas
0bcec1e4ae Drop XEmacs and SXEmacs support from EDE
* lisp/cedet/ede/emacs.el (ede-emacs-version): Drop XEmacs and
SXEmacs support from EDE.
2021-02-11 21:41:58 +01:00
Stefan Kangas
f29c7d61d7 Use lexical-binding in various ede files
* lisp/cedet/ede/dired.el:
* lisp/cedet/ede/emacs.el:
* lisp/cedet/ede/make.el:
* lisp/cedet/ede/proj-archive.el:
* lisp/cedet/ede/proj-aux.el:
* lisp/cedet/ede/proj-misc.el:
* lisp/cedet/ede/proj-scheme.el:
* lisp/cedet/ede/srecode.el:
* lisp/cedet/ede/system.el: Use lexical-binding.
2021-02-11 21:41:58 +01:00
Stefan Kangas
b3362f7b70 ; Fix lexical-binding conversion of semantic/bovine/gcc.el
* lisp/cedet/semantic/bovine/gcc.el (semantic-gcc-get-include-paths):
Fix sorting and comparison after previous lexical-binding conversion.
2021-02-11 16:12:02 +01:00
Stefan Kangas
30f3b9f847 * lisp/cedet/semantic/bovine/gcc.el: Use lexical-binding. 2021-02-10 13:21:34 +01:00
Stefan Kangas
45934e51e4 Change default semantic-lex-analyzer to semantic-lex
* lisp/cedet/semantic/lex.el (semantic-lex-analyzer): Change default
to semantic-lex, since semantic-flex was obsolete and has been
removed.
2021-02-10 06:28:15 +01:00
Basil L. Contovounesios
bff9bd0d3a ; Fix warning in last change to semantic/idle.el. 2021-02-09 19:05:25 +00:00