Commit graph

739 commits

Author SHA1 Message Date
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
Stefan Kangas
2788557000 Support shellcheck in compilation-mode
* lisp/progmodes/compile.el
(compilation-error-regexp-alist-alist): Add shellcheck regexp.
* test/lisp/progmodes/compile-tests.el
(compile-tests--test-regexps-data):
(compile-test-error-regexps): Add test for shellcheck.
* etc/compilation.txt: Add shellcheck example.
* etc/NEWS: Announce the change.

foo
2020-09-22 02:44:47 +02:00
akater
9cc992e68f Fix compilation-mode-map doc string
* lisp/progmodes/compile.el (compilation-mode-map): Remove mention of
compilation-minor-mode-map (bug#43382).

As the comment in the body says:

;; Don't inherit from compilation-minor-mode-map,
;; because that introduces a menu bar item we don't want.
;; That confuses C-down-mouse-3.

and the map actually inherits from special-mode-map.

Copyright-paperwork-exempt: yes
2020-09-14 01:08:26 +02:00
Lars Ingebrigtsen
7d927fa8dd Use `format-prompt' when prompting with default values
* lisp/woman.el (woman-file-name):
* lisp/wid-edit.el (widget-file-prompt-value)
(widget-coding-system-prompt-value):
* lisp/w32-fns.el (w32-set-system-coding-system):
* lisp/vc/vc.el (vc-print-root-log):
* lisp/vc/vc-annotate.el (vc-annotate):
* lisp/vc/emerge.el (emerge-read-file-name):
* lisp/vc/ediff.el (ediff-directories)
(ediff-directory-revisions, ediff-directories3)
(ediff-merge-directories, )
(ediff-merge-directories-with-ancestor)
(ediff-merge-directory-revisions)
(ediff-merge-directory-revisions-with-ancestor)
(ediff-merge-revisions, ediff-merge-revisions-with-ancestor)
(ediff-revision):
* lisp/vc/ediff-util.el (ediff-toggle-regexp-match):
* lisp/vc/ediff-mult.el (ediff-filegroup-action):
* lisp/vc/add-log.el (prompt-for-change-log-name):
* lisp/textmodes/table.el (table-insert-row-column)
(table-span-cell, table-split-cell-horizontally)
(table-split-cell, table-justify, table-generate-source)
(table-insert-sequence, table-capture)
(table--read-from-minibuffer, table--query-justification):
* lisp/textmodes/sgml-mode.el (sgml-tag, sgml-tag-help):
* lisp/textmodes/reftex-ref.el (reftex-goto-label):
* lisp/textmodes/refer.el (refer-get-bib-files):
* lisp/textmodes/css-mode.el (css-lookup-symbol):
* lisp/term.el (serial-read-name, serial-read-speed):
* lisp/speedbar.el (speedbar-change-initial-expansion-list):
* lisp/simple.el (previous-matching-history-element)
(set-variable):
* lisp/ses.el (ses-read-cell, ses-set-column-width):
* lisp/replace.el (query-replace-read-from)
(occur-read-primary-args):
* lisp/rect.el (string-rectangle, string-insert-rectangle):
* lisp/progmodes/tcl.el (tcl-help-on-word):
* lisp/progmodes/sh-script.el (sh-set-shell):
* lisp/progmodes/python.el (python-eldoc-at-point):
* lisp/progmodes/octave.el (octave-completing-read)
(octave-update-function-file-comment, octave-insert-defun):
* lisp/progmodes/inf-lisp.el (lisp-symprompt):
* lisp/progmodes/cperl-mode.el (cperl-info-on-command)
(cperl-perldoc):
* lisp/progmodes/compile.el (compilation-find-file):
* lisp/net/rcirc.el (rcirc-prompt-for-encryption):
* lisp/net/eww.el (eww):
* lisp/net/browse-url.el (browse-url-with-browser-kind):
* lisp/man.el (man):
* lisp/mail/sendmail.el (sendmail-query-user-about-smtp):
* lisp/mail/mailalias.el (build-mail-aliases):
* lisp/mail/mailabbrev.el (merge-mail-abbrevs)
(rebuild-mail-abbrevs):
* lisp/locate.el (locate-prompt-for-search-string):
* lisp/isearch.el (isearch-occur):
* lisp/international/ogonek.el (ogonek-read-encoding)
(ogonek-read-prefix):
* lisp/international/mule.el (read-buffer-file-coding-system)
(set-terminal-coding-system, set-keyboard-coding-system)
(set-next-selection-coding-system, recode-region):
* lisp/international/mule-cmds.el ()
(universal-coding-system-argument, search-unencodable-char)
(select-safe-coding-system-interactively):
* lisp/info.el (Info-search, Info-search-backward, Info-menu):
* lisp/info-look.el (info-lookup-interactive-arguments):
* lisp/imenu.el (imenu--completion-buffer):
* lisp/ibuf-ext.el (mode, used-mode, ibuffer-mark-by-mode):
* lisp/hi-lock.el (hi-lock-unface-buffer)
(hi-lock-read-face-name):
* lisp/help.el (view-emacs-news, where-is):
* lisp/help-fns.el (describe-variable, describe-symbol)
(describe-keymap):
* lisp/gnus/mm-decode.el (mm-save-part):
* lisp/gnus/gnus-sum.el (gnus-summary-browse-url):
* lisp/gnus/gnus-group.el (gnus-group--read-bug-ids)
(gnus-group-set-current-level):
* lisp/frame.el (make-frame-on-monitor)
(close-display-connection, select-frame-by-name):
* lisp/format.el (format-encode-buffer, format-encode-region):
* lisp/files.el (recode-file-name):
* lisp/files-x.el (read-file-local-variable)
(read-file-local-variable-value, )
(read-file-local-variable-mode):
* lisp/ffap.el (ffap-menu-ask):
* lisp/faces.el (face-read-string):
* lisp/facemenu.el (facemenu-set-charset):
* lisp/erc/erc-dcc.el (erc-dcc-do-GET-command):
* lisp/emulation/edt-mapper.el (edt-mapper):
* lisp/emacs-lisp/trace.el (trace--read-args)
(trace-function-foreground, trace-function-background):
* lisp/emacs-lisp/smie.el (smie-config-set-indent):
* lisp/emacs-lisp/re-builder.el (reb-change-syntax):
* lisp/emacs-lisp/package.el (describe-package):
* lisp/emacs-lisp/find-func.el (read-library-name)
(find-function-read):
* lisp/emacs-lisp/ert.el (ert-read-test-name)
(ert-run-tests-interactively):
* lisp/emacs-lisp/disass.el (disassemble):
* lisp/emacs-lisp/debug.el (debug-on-entry)
(debug-on-variable-change):
* lisp/emacs-lisp/advice.el (ad-read-advised-function)
(ad-read-advice-class, ad-read-advice-name, ad-read-regexp):
* lisp/dired-x.el (dired--mark-suffix-interactive-spec):
* lisp/dired-aux.el (dired-diff):
* lisp/cus-edit.el (custom-variable-prompt, customize-mode)
(customize-changed-options):
* lisp/completion.el (interactive-completion-string-reader):
* lisp/calendar/timeclock.el (timeclock-ask-for-project):
* lisp/calc/calcalg3.el (calc-get-fit-variables):
* lisp/calc/calc-store.el (calc-edit-variable):
* lisp/calc/calc-bin.el (calc-word-size):
* lisp/bookmark.el (bookmark-set-internal):
* lisp/abbrev.el (read-abbrev-file): Use `format-prompt' for
prompting (bug#12443).
2020-09-06 16:56:54 +02:00
Lars Ingebrigtsen
eca6c9281f Protect compilation-auto-jump against code killing the buffer
* lisp/progmodes/compile.el (compilation-auto-jump): Something may
have killed the buffer before the timer fired (bug#24585).
2020-09-05 14:31:52 +02:00
Stefan Kangas
886ba068c8 Bind 'n' and 'p' in compilation-mode-map
* lisp/progmodes/compile.el (compilation-mode-map): Bind
'(next|previous)-error-no-select' to 'n' and 'p'.  (Bug#41844)
2020-08-30 21:12:33 +02:00
Daniel Martín
6e25d61544 Add support for parsing column numbers in Visual Studio messages
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Extend regular expression to match optional column numbers.
*
test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data):
Add a test.
* test/lisp/progmodes/compile-tests.el (compile-test-error-regexps):
Update the total number of compilation errors in a test.
* etc/compilation.txt: Update compilation.txt with the newly supported
message format.
* etc/NEWS: Advertise the feature.
2020-08-28 14:45:15 -04:00
Jonas Bernoulli
93136b980a Parse the whole buffer at once in compile.el
* lisp/progmodes/compile.el (compilation-next-single-property-change):
Parse whole buffer at once (bug#42806).

Also remove the comment that mentioned that it is an option to do it
in one go as we now actually start doing.  As the existence of that
comment suggested, there is not really a reason to process the buffer
in small chunks.  On the contrary, processing the output in arbitrary
units can result in certain constructs not being recognized because
they begin in one arbitrary chunk, while ending in another.
2020-08-14 16:23:16 +02:00
Dima Kogan
53720a9bde gcc-include compilation lines are now INFO, instead of WARNING
* lisp/progmodes/compile.el
(compilation-error-regexp-alist-alist): Prior to this patch the
line that contains "from a.h:1:0," was seen as INFO and the line
that contains "from a.c:1:" was seen as a WARNING.  This patch
makes them both INFO (bug#17826).
2020-08-13 12:20:53 +02:00
Jonas Bernoulli
aaa69dc923 * lisp/progmodes/compile.el: Remove unnecessary comments.
These comments are unnecessary because the doc-strings that follow
already cover the same ground, while being more concise.  These
comments were also prefixed with too many semicolons, causing them
to be treated as outline headings.
2020-08-13 11:30:16 +02:00
Filipp Gunbin
319a2a7427 javac support in compilation-parse-errors rules
* etc/compilation.txt: Add doc and example.
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Add javac rule.
(compilation-parse-errors): Fix file/line/col test, so that
lambda/closure (which are valid values) don't match.
* test/lisp/progmodes/compile-tests.el
(compile-tests--test-regexps-data, compile-test-error-regexps): Add
test.
2020-04-01 03:04:31 +03:00
Mattias Engdegård
dfeb87d8e5 Turn compilation-error-case-fold-search into a defvar
See bug#40119, and the discussion at
https://lists.gnu.org/archive/html/emacs-devel/2020-03/msg00653.html

* lisp/progmodes/compile.el (compilation-error-case-fold-search):
Turn into a defvar.
* etc/NEWS: Update.
2020-03-28 14:36:32 +01:00
Mattias Engdegård
d08c9472e8 Make compilation-mode regexp matching case-sensitive (bug#40119)
The number of regexps is large, they are written independently of one
another, and they frequently intersect.  Using case-sensitive matching
improves separation and performance, and is probably what everyone
have being assuming was used by compilation-mode all along.

* lisp/progmodes/compile.el (compilation-error-case-fold-search): New.
(compilation-parse-errors): Bind case-fold-search to
compilation-error-case-fold-search during matching.
* etc/NEWS: Announce.
2020-03-25 21:41:49 +01:00
Mattias Engdegård
f765aad28b Make OMake support slightly less expensive (bug#39595)
When run with -p or -P, OMake regurgitates error messages that
prevented further progress, indented by 6 spaces.  Use that fact
to ameliorate the modification done to other error message regexps.

* lisp/progmodes/compile.el (compilation-parse-errors):
When 'omake' is enabled, allow error messages to be indented by 0 or 6
spaces instead of any number of spaces, to avoid pathological
behaviour.
(compilation-error-regexp-alist-alist): Anchor the 'omake' pattern to
bol for performance.  Repair the 'ruby-Test::Unit' pattern, which
relied on the previously over-generous 'omake' hack.
* etc/compilation.txt (OMake): Add examples.
* test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data)
(compile-test-error-regexps): Add test for OMake (indented error).
2020-02-17 11:23:41 +01:00
Mattias Engdegård
39410cfc5a Speed up 'msft' and 'watcom' compilation error regexps
They have similar structure, and both suffer from being able to
match leading spaces in multiple ways which leads to bad performance
when backtracking (bug#39595).

* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Improved 'msft' and 'watcom' regexps.
2020-02-17 11:23:41 +01:00
Mattias Engdegård
96a269d045 Speed up 'maven' compilation error message regexp
Anchor the regexp at line-start to prevent quadratic behaviour when
it doesn't match (bug#39595).  It's unclear whether the type tag, like
[ERROR], is always present; we keep it optional just in case.

* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Rewrite 'maven' regexp, using rx for clarity.
* etc/compilation.txt (maven): More examples.
* test/lisp/progmodes/compile-tests.el
(compile-tests--test-regexps-data): No leading spaces; they seems to
stem from a misunderstanding in bug#11517.
2020-02-17 11:23:41 +01:00
Mattias Engdegård
78d76cd93c Remove redundant 'msft' compilation error rule (bug#39595)
When the 'msft' rule was moved and modified, the old copy was left
in place by mistake.

* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Remove old rule.
2020-02-14 20:25:57 +01: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
Juanma Barranquero
75d0cef20d Trivial docstring fixes
* ChangeLog.3:
* lisp/emacs-lisp/cl-macs.el (cl-flet):
* lisp/filesets.el (filesets-menu-ensure-use-cached):
* lisp/progmodes/compile.el (compilation-context-lines):
* lisp/progmodes/prolog.el (prolog-paren-indent):
* lisp/progmodes/sql.el (sql-password-search-wallet-function):
Fix typos in docstrings.

* lisp/cedet/semantic/analyze.el (semantic-analyze-push-error):
Doc fix.

* lisp/emacs-lisp/map.el (map-put, map-info): Refill docstring.
(map-contains-key): Fix typo.
(map-every-p): Doc fix.
2019-12-24 02:37:08 +01:00
Michael Albinus
0a10795d0b Fix an error with remote file name in compile.el
* lisp/progmodes/compile.el (compilation-get-file-structure):
Compute proper remote file name.  (Bug#38648)
2019-12-18 10:19:19 +01:00
Alan Mackenzie
7c6335de5e Compilation Mode: Fix arrow handling when compilation-context-lines is t
In particular, fix some exception occurrences, fix handling of a Compilation
Mode buffer being displayed in several windows, and fix the margin when
temporarily displaying a different buffer in a window, then returning to the
compilation mode buffer.  The fix is relevant for frames without fringes,
e.g. tty frames.

* lisp/progmodes/compile.el: (compilation-set-window): Always set point to
(parameter) MK.
(compilation--set-up-margin, compilation--tear-down-margin): New functions.
(compilation--set-up-arrow-spec-in-margins)
(compilation--tear-down-arrow-spec-in-margins): Renamed by introducing -- and
pluralising margin to margins.  Handle the margins in _all_ windows displaying
the pertinent buffer by using get-buffer-window-list.  In ...--set-up-... add
compilation--set-up-margin to window-buffer-change-functions.  In
...--tear-down-... remove the hook functions added in ...--set-up-....
2019-11-17 14:59:42 +00:00
Paul Eggert
555f5f78f8 Fix a few more minor quoting problems. 2019-11-11 22:54:41 -08:00
Filipp Gunbin
0bffb3e69d Make ant regexp in compilation-error-regexp-alist-alist more lax
* lisp/progmodes/compile.el: Make ant regexp accept filenames that may
occur on Cygwin (like c:/test) and optional additional severity level
after task name.
* etc/compilation.txt: Add sample.
2019-11-01 15:20:42 +03:00
Filipp Gunbin
6d2c73e8c7 Add gradle-kotlin to compilation-error-regexp-alist-alist
* lisp/progmodes/compile.el: Add gradle-kotlin to
compilation-error-regexp-alist-alist.
* etc/compilation.txt: Add samples for it.
2019-10-29 23:06:20 +03:00
Lars Ingebrigtsen
88eadc75d0 Fix hitting RET on some text in compilation-mode
* lisp/progmodes/compile.el (compilation-next-error-function):
Don't bug out with an incomprehensible error message on "make[2]:"
texts (bug#5316).
(compilation-find-file): Protect against there being no file name.
2019-10-13 22:22:31 +02:00
Alan Mackenzie
9946defe21 In compilation-tear-down-arrow-spec-in-margin, test compilation-arrow-overlay
* lisp/progmodes/compile.el (compilation-tear-down-arrow-spec-in-margin): Make
sure compilation-arrow-overlay is an overlay before performing overlay
operations on it.  This fixes bug #37733.
2019-10-13 13:18:00 +00:00
Lars Ingebrigtsen
981f1358f0 Fix compilation-transform-file-match-alist failure
* lisp/progmodes/compile.el (compilation-error-properties): Fix
thinko in compilation-transform-file-match-alist feature -- `file'
isn't a list of files after all.
2019-10-12 20:57:43 +02:00
Andreas Schwab
19e0a28c4e * lisp/progmodes/compile.el
(compilation-transform-file-match-alist): Remove bogus Makefile match.
2019-10-10 18:29:43 +02:00
Lars Ingebrigtsen
3f594fef9e Allow filtering out warnings/errors from compile.el detection
* lisp/progmodes/compile.el
(compilation-transform-file-match-alist): New variable (bug#32968).
(compilation-error-properties): Use it to remove known false
positives.
(compilation-error-regexp-alist): Mention it in this doc string.
2019-10-10 01:19:33 +02:00
Paul Smith
e72e4990f9 Support GNU make error messages in compile mode.
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Match GNU make error messages.
* test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data):
Test GNU make error message matching.
(compile-test-error-regexps): Update count of infos found.
2019-10-05 12:33:23 -07:00
Mattias Engdegård
32558cfe53 Fix error in gnu compilation-mode regexp (bug#37582)
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Fix a mistake introduced when the regexp was translated to rx.
* test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data)
(compile-test-error-regexps): Add test case.
* etc/compilation.txt: Add example.
2019-10-04 15:43:15 +02:00
Alan Mackenzie
53b71fd4ad Remove the compilation-arrow-overlay on a major mode change/reinitialization
At the same time, remove the 2-character left margin.

* lisp/progmodes/compile.el (compilation-set-up-arrow-spec-in-margin): put
compilation-tear-down-arrow-spec-in-margin onto change-major-mode-hook.
2019-09-29 15:39:16 +00:00
Alan Mackenzie
034f9363e3 Fix untidinesses in compile.el.
* lisp/progmodes/compile.el (compilation--margin-string): Renamed from
compilation-margin-string.  Use defconst rather than defvar.  Use propertize
rather than a separate put-text-property.  Trim the doc string.
2019-09-08 10:44:27 +00:00
Mattias Engdegård
3f30d98af9 Repair change to compilation-context-lines (bug#36832)
* lisp/progmodes/compile.el (compilation-set-window):
Restore proper behaviour when compilation-context-lines is nil,
which is the default.
2019-09-04 14:35:18 +02:00
Alan Mackenzie
c34dbd80e7 Use left margin to hold "=>" to indicate current error in fringeless windows
This applies to compilation-mode.  It amends the fix for bug #36832.

* lisp/progmodes/compile.el (compilation-arrow-overlay): renamed from
overlay-arrow-overlay.
(compilation-margin-string, compilation--dummy-string): New variables.
(compilation-set-up-arrow-spec-in-margin)
(compilation-tear-down-arrow-spec-in-margin): New functions.
(compilation-set-overlay-arrow): Rewritten to use the new variables/functions.
2019-09-03 17:33:26 +00:00
Alan Mackenzie
29d1c72d7c Introduce new value t for compilation-context-lines to eliminate scrolling
In particular, to prevent scrolling in a window lacking a left fringe.
Instead, a visible arrow "=>" is inserted before column zero.  This fixes
bug #36832.

* lisp/progmodes/compile.el (compilation-context-lines): Add the new value t.
(compilation-set-window): Amend to handle compilation-context-lines being t.
(overlay-arrow-overlay): New variable holding an overlay with before-string
property "=>".
(compilation-set-overlay-arrow): New function which manipulates
overlay-arrow-overlay.
(compilation-goto-locus, compilation-find-file): In addition to calling
compilation-set-window, also call compilation-set-overlay-arrow.

* doc/emacs/building.texi (Compilation Mode): Document the new value t which
compilation-context-lines can take.

* etc/NEWS: Add an entry for this change.
2019-08-25 10:21:37 +00:00
Stephen Leake
0173962570 Merge commit '9b480db673' 2019-07-30 11:03:15 -07:00
Stephen Leake
056cbcb7a9 Improve doc strings for some -search-path variables
* lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-search-path):
Improve doc string.

* lisp/progmodes/compile.el (compilation-search-path): Improve doc
string.

* lisp/progmodes/grep.el (grep-search-path): Improve doc string.
2019-07-30 11:02:03 -07:00
Stefan Monnier
13653483b7 * lisp/progmodes/compile.el: Fix bug#36803.
Make sure all mode-lines are updated when compilation-in-progress
is changed since it's visible globally.

(compilation--update-in-progress-mode-line): New function.
(compilation-start, compilation-sentinel): Use it.
2019-07-27 09:57:18 -04:00
Lars Ingebrigtsen
9c1ecca333 Fix many-compilations case of compilation-goto-in-progress-buffer
* lisp/progmodes/compile.el (compilation-goto-in-progress-buffer):
Fix thinko in initial version of the function in the
many-compilations case.
2019-07-25 18:44:17 +02:00
Lars Ingebrigtsen
3479ec7332 Make "Compiling" in the mode line a clickable command
* lisp/progmodes/compile.el (compilation-goto-in-progress-buffer):
New command.
(compilation-in-progress): Don't put the in-progress mode-line
marker among the minor modes (because it's not a minor mode), and
add a command that allows you to switch to the in-progress
compilation buffer (bug#27252).
2019-07-23 19:49:56 +02:00
Juri Linkov
391e8e530a * lisp/progmodes/compile.el (compilation-filter): `compilation--ensure-parse'
is used instead of `font-lock-ensure' (bug#36564).

* test/lisp/progmodes/compile-tests.el (compile-test-error-regexps)
(compile-test-grep-regexps): Check the number of errors.
2019-07-12 21:57:18 +03:00
Juri Linkov
ef6715364d * lisp/progmodes/compile.el (compilation-filter): Use font-lock-ensure
to update the number of errors in compilation-mode-line-errors
displayed in the mode-line.  (Bug#36564)
2019-07-12 00:46:12 +03:00
Paul Eggert
f744797af1 Go back to "Maintainer: emacs-devel@gnu.org"
Restore lines saying "Maintainer: emacs-devel@gnu.org" when there is
no special maintainer for a file.  Although this wasn't documented
it was common practice and removing the lines didn't have consensus.
2019-05-25 14:25:18 -07:00
Paul Eggert
bef1be8730 Fixes for "Maintainer:" and related lines
Mostly, this just removes "Maintainer: emacs-devel@gnu.org" lines,
which are not that useful.  It also cleans up and regularizes a
few similar lines.
2019-05-19 21:34:27 -07:00
Troy Hinckley
905f619519 Don't check comp-buffer-name-function in derived mode (Bug#34956)
* lisp/progmodes/compile.el (define-compilation-mode): Remove
'compilation-buffer-name-function' from the list of overridden
variables to ensure that it is not mistaken for a variable that can be
major mode specific.  'compilation-buffer-name-function' is used
before the major mode is loaded, therefore overriding it here is
ineffectual.  Also, the function 'compilation-start' takes an optional
argument name-function, so there is already a mechanism to override
it.
2019-04-04 19:39:42 -04:00
Stefan Monnier
d63aa2f3e5 * lisp/progmodes/compile.el (compilation-error-regexp-alist): Typo
Reported by Kévin Le Gouguec <kevin.legouguec@gmail.com>
2019-04-04 16:27:29 -04:00
Stefan Monnier
32e19b2bae * lisp/progmodes/compile.el: Use non-nil values for *-function
(compilation-parse-errors-filename-function,compilation-exit-message-function)
(compilation-process-setup-function, compilation-buffer-name-function):
Give them non-nil default values.
(compilation-buffer-name): Restructure slightly.
(compilation--default-buffer-name): New function, extracted from it.
Use `name-of-mode` instead of `mode-command` to check if the current
buffer is already in the appropriate mode.
2019-04-03 11:24:12 -04:00
Stefan Monnier
3062f81dbf * lisp/progmodes/compile.el: Allow 'line' functions in error-regexp-alist
(compilation-error-properties): Allow 'line' and 'end-line' to be functions,
like 'col' and 'end-col'.
(compilation-error-regexp-alist): Document this.
(compilation-parse-errors): Drop support for old undocumented feature
where 'line' was a function of 2 arguments.
(compilation--compat-error-properties): Delete function.
2019-04-03 10:58:36 -04:00
Michael Albinus
21f54feee8 Do not hardcode "/bin/sh" in compile. Bug#24338, Bug#29723
* doc/emacs/custom.texi (Connection Variables): New node.

* doc/emacs/emacs.texi (Top): Add entry for Connection Variables.

* doc/emacs/misc.texi (Single Shell): Mention default value for
remote buffers.

* doc/lispref/variables.texi (Connection Local Variables):
Describe `with-connection-local-variables' instead of
`with-connection-local-profiles'.

* doc/misc/tramp.texi (Remote processes): Refer to Emacs manual.
Mention default connection-local settings for `shell-file-name'
and `shell-command-switch'.

* etc/NEWS: Mention connection-local variables changes.

* lisp/files-x.el (hack-connection-local-variables):
Push connection-local variables to `file-local-variables-alist'.
(connection-local-criteria-for-default-directory): New defsubst.
(with-connection-local-variables): Rename from
`with-connection-local-profiles'.  Adapt implementation.

* lisp/files.el (hack-local-variables):
Call `hack-connection-local-variables'.

* lisp/shell.el (shell): Use `with-connection-local-variables'.

* lisp/subr.el (start-file-process-shell-command):
* lisp/progmodes/compile.el (compilation-start):
Use `with-connection-local-variables'.  Do not set "/bin/sh" for
remote buffers, trust settings of `shell-file-name'.  (Bug#24338),
(Bug#29723)

* lisp/net/ange-ftp.el (ange-ftp-compress, ange-ftp-uncompress):
Use `shell-command-switch'.

* lisp/net/tramp-adb.el (tramp-adb-connection-local-default-profile):
New defvar.  Add it to connection-local profiles after loading "shell".

* lisp/net/tramp-integration.el (tramp-compat): Require tramp-compat.
(tramp-compat-exec-path): Do not declare anymore.
(tramp-connection-local-safe-shell-file-names): New defvar.
(tramp-connection-local-default-profile): New defconst.  Activate
it after loading "shell".
(shell-file-name, shell-command-switch): Add safe-local-variable
property.

* lisp/net/tramp-sh.el (tramp-display-escape-sequence-regexp):
Add tramp-autoload cookie.

* test/lisp/files-x-tests.el (remote-shell-file-name):
Add safe-local-variable property to remote-* variables.
(tramp-connection-local-default-profile): Declare.
(files-x-test-with-connection-local-variables):
Rename from `files-x-test-with-connection-local-profiles'.  Adapt
implementation.

* test/lisp/net/tramp-tests.el
(tramp-test34-connection-local-variables): New test.
(tramp-test34-explicit-shell-file-name): Run it also for tramp-adb.
Bind connection-local-{profile,criteria}-alist.  Use tramp-adb
specific `shell-file-name'.  Add safe-local-variable property to
`explicit-shell-file-name' and `explicit-sh-args'.
2019-03-09 16:44:24 +01:00