Commit graph

69785 commits

Author SHA1 Message Date
Alan Mackenzie
42daf83f08 CC Mode: Fix defun-open being recognized as brace-list-open at EOB.
* lisp/progmodes/cc-engine.el (c-looking-at-statement-block): Add handling
for an open brace at EOB and nested braces inside an unclosed brace block.
2017-11-12 11:49:03 +00:00
Eli Zaretskii
49450d0951 * lisp/find-dired.el (find-grep-dired): Doc fix. (Bug#29262) 2017-11-12 07:03:48 +02:00
João Távora
e286b3381f Fix more flymake-diag-region eob corner cases and add tests (bug#29201)
* lisp/progmodes/flymake.el (flymake-diag-region): Correct
more eob corner cases.

* test/lisp/progmodes/flymake-tests.el
(eob-region-and-trailing-newline): New test.
2017-11-11 23:44:52 +00:00
Basil L. Contovounesios
9533d76b0b Keep Man sections in natural order (bug#28998)
* lisp/man.el (Man-build-section-alist): Reverse sections.
2017-11-11 10:46:43 -05:00
Stefan Monnier
d63c9a96f5 * lisp/minibuffer.el: Install a workaround for bug#16274
* lisp/minibuffer.el (completion--nth-completion): Avoid signaling an
error when `md` is applied to another table.
2017-11-11 10:25:20 -05:00
Eli Zaretskii
603a0716a8 Improve the documentation of M-n for entering file names
* lisp/files.el (find-file, find-file-other-window)
(find-file-other-frame): Mention file-name-at-point-functions in
the doc string.  Reported by Florian Weimer <fw@deneb.enyo.de> in
http://lists.gnu.org/archive/html/emacs-devel/2017-11/msg00224.html.

* doc/emacs/mini.texi (Minibuffer History): Document
file-name-at-point-functions and its effect on M-n when typing
file names in the minibuffer.
* doc/emacs/files.texi (File Names):
* doc/emacs/mini.texi (Minibuffer File): Add a cross-reference to
"Minibuffer History", where special features of M-n regarding
files are described.
2017-11-11 13:48:37 +02:00
Eli Zaretskii
72f813fb56 Fix desktop auto-save timer when linum-mode is used
* lisp/desktop.el (desktop-read): Use toplevel value of
window-configuration-change-hook when deciding whether desktop
auto-saving is enabled.  Suggested by Peter Neidhardt
<pe.neidhardt@googlemail.com>.  (Bug#28945)
2017-11-11 11:53:42 +02:00
Olaf Rogalsky
44340b475f Fix "C-h k" in xterm-mouse-mode
* lisp/help.el (help-read-key-sequence): Support "C-h k" for
xterm-mouse-mode by calling read-key-sequence-vector instead of
read-event.  (Bug#29150)
2017-11-11 11:05:53 +02:00
Alan Mackenzie
096f638ddc Correct the indentation of C99's compound literals.
* lisp/progmodes/cc-engine.el (c-looking-at-statement-block): Amend so that
if there is only syntactic whitespace in a brace block, it is regarded as a
statement block.  Also, if there is no semicolon or comma delimiter, treat as
a statement block when there is a keyword.
(c-guess-basic-syntax): CASE 9 test: Regard a brace as starting a brace block
when its contents indicate a brace block.
2017-11-10 17:45:22 +00:00
Eli Zaretskii
c52a2aa8f3 Improve the doc string of 'dired-isearch-filter-filenames'
* lisp/dired-aux.el (dired-isearch-filter-filenames): Doc fix.
(Bug#29215)
2017-11-10 12:12:46 +02:00
Eli Zaretskii
e592b92482 * lisp/isearch.el (search-invisible): Doc fix. (Bug#29222) 2017-11-10 12:05:08 +02:00
João Távora
e6f1fd4091 Fix previous change to flymake-diag-region (bug#29174)
* lisp/progmodes/flymake.el (flymake-diag-region):
Pass line and col to commit.
2017-11-10 05:10:18 +00:00
João Távora
89382780e1 flymake-diag-region really returns nil if region is invalid (bug#29174)
Reported by Lele Gaifax <lele@metapensiero.it>.

* lisp/progmodes/flymake.el (flymake-diag-region): Really
return nil if the region is invalid.
2017-11-09 21:25:36 +00:00
João Távora
535688a418 Flymake correctly highlights whole last line if eob (bug#29201)
If a line/column pair indicates an end-of-buffer position, flymake
should behave like the case where the last line of the buffer is
referenced without a column indication.  This behavior is currently
to highlight the whole last line.

* lisp/progmodes/flymake.el (flymake-diag-region): Correct
conditions of fallback to the fallback-eol local function.
2017-11-09 21:16:40 +00:00
João Távora
72e62d3fdb Protect Flymake checkdoc backend against checkdoc errors (bug#29176)
The function checkdoc-current-buffer may error if there are unbalanced
parens, for example, but this shouldn't disable the
elisp-flymake-checkdoc backend.

* lisp/progmodes/elisp-mode.el (elisp-flymake-checkdoc): Use
ignore-errors.
2017-11-09 20:45:05 +00:00
João Távora
b28de57411 Sort entries of the Flymake diagnostics buffer (bug#29175)
Reported by Lele Gaifax <lele@metapensiero.it>.

* lisp/progmodes/flymake.el
(flymake--diagnostics-buffer-entries): Sort results of flymake-diagnostics.
2017-11-09 20:36:36 +00:00
Alan Mackenzie
fc56bea142 Correctly indent C++14 brace lists which are a second argument to a function.
In particular, don't indent contained brace lists in "staircase" fashion.
This fixes bug #28623.

* lisp/progmodes/cc-engine.el (c-looking-at-or-maybe-in-bracelist): When
testing for being enclosed in parens, recognise also a brace directly
following a comma, as well as a brace being the first thing inside the paren.
Enhance the return value, by indicating when we're directly inside an open
paren.
(c-inside-bracelist-p): Add an extra argument ACCEPT-IN-PARAM which indicates
whether we will accept a bracelist directly inside an open parenthesis.
Simplify the manipulation of PAREN-STATE by dispensing with variable LIM and
using c-pull-open-brace.  Enhance the return value, respecting the new argument.
(c-guess-basic-syntax): Save a copy of the initial parse-state in the new
variable STATE-CACHE.  Use this variable in place of C-STATE-CACHE throughout
the function.  At CASE 7B, call c-inside-bracelist-p with extra argument nil.
At CASE 9, call that function with extra argument t.
2017-11-09 18:34:13 +00:00
Paul Eggert
781f276cc1 Fix URL cookie expiration bug
Problem reported by Damien Cassou (Bug#29223).
* lisp/url/url-cookie.el (url-cookie-expired-p):
Fix typo in previous change, which caused unexpired cookies
to be treated as expired and vice versa.
2017-11-08 21:31:10 -08:00
Glenn Morris
b9d7c90260 In f90.el, set fill-paragraph-function to a useful value
* lisp/progmodes/f90.el (f90-mode-map) <menu>: Add fill-paragraph.
(f90-mode): Set fill-paragraph-function.
(f90-fill-paragraph): New command.
2017-11-08 20:16:38 -05:00
Eric Abrahamsen
73d670751a Fix to 2fddfb7ce7
* lisp/emacs-lisp/eieio-base.el (eieio-persistent-convert-list-to-object):
  Fix bogus paren wrapping.
2017-11-08 14:46:03 -08:00
Charles A. Roelli
98288ecaff Further workaround for faulty localtime() under macOS 10.6
* lisp/org/org-clock.el (org-clock--oldest-date): Fix an issue
when compiling on macOS 10.6 with a western time zone (a
continuation of Bug#27736).  In particular, see:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27736#74

and the first commit that attempted to work around this problem,
"Workaround for faulty localtime() under macOS 10.6", bd49b6f1 of
2017-09-30.
2017-11-08 20:51:48 +01:00
Eric Abrahamsen
a215be9994 Handle object string name in eieio-persistent-convert-list-object
* lisp/emacs-lisp/eieio-base.el (eieio-persistent-convert-list-to-object):
  Starting to phase out the printing of object names in
  `object-write', handle either case.
2017-11-08 09:28:07 -08:00
Ryan C. Thompson
255ba01148 Fix handling of nil PRED2 arg for completion-table-with-predicate
* lisp/minibuffer.el (completion-table-with-predicate): Don't act as
if strict is non-nil when pred2 is nil (Bug#27841).
* test/lisp/minibuffer-tests.el
(completion-table-with-predicate-test): Add a test for Bug#27841.
2017-11-07 21:25:55 -05:00
K. Handa
3d61657694 Fix docstring of arabic-shaper-ZWNJ-handling
* lisp/language/misc-lang.el (arabic-shaper-ZWNJ-handling): Adjusted
the doctstring for addition of :set (bug#28312).
2017-11-07 20:50:46 +09:00
Antonin Houska
db949166ec Handle single-line comments correctly (Bug#26049)
* lisp/newcomment.el (comment-region-internal): Previously, the
comment text had to contain at least one line break character for the
ending extra line to be added.  Make the behavior more consistent by
looking for end of line instead.
(comment-region-internal): Remove trailing white space from the
comment's initial line.

Copyright-paperwork-exempt: yes
2017-11-06 19:01:19 -05:00
Michael Albinus
ca2d94ba61 Do not load Tramp unless `tramp-mode' is non-nil
* lisp/net/tramp.el (tramp-autoload-file-name-handler): Load Tramp only if
`tramp-mode' is non-nil.
(tramp-unload-file-name-handlers): Unload also
`tramp-autoload-file-name-handler'.

* test/lisp/net/tramp-tests.el (tramp-test42-delay-load): Extend test.
2017-11-05 20:08:05 +01:00
Philipp Stephani
72d07d1950 Ediff: add some missing documentation
* vc/ediff.el (ediff-files, ediff-files3, ediff-buffers)
(ediff-buffers3, ediff-merge-directories)
(ediff-merge-directories-with-ancestor)
(ediff-merge-directory-revisions)
(ediff-merge-directory-revisions-with-ancestor)
(ediff-windows-wordwise, ediff-windows-linewise)
(ediff-regions-wordwise, ediff-regions-linewise)
(ediff-merge-files, ediff-merge-files-with-ancestor)
(ediff-merge-buffers, ediff-merge-buffers-with-ancestor)
(ediff-merge-revisions, ediff-merge-revisions-with-ancestor)
(ediff-patch-file, ediff-revision): Document missing arguments.
(ediff-patch-buffer, ediff-revision): Add second space after
period.
(ediff-files-command, ediff3-files-command, ediff-merge-command)
(ediff-merge-with-ancestor-command, ediff-directories-command)
(ediff-directories3-command, ediff-merge-directories-command): Add
documentation for the command line functions.
2017-11-05 18:53:25 +01:00
Justin Timmons
18af404ef3 Support python virtualenv on w32 (Bug#24464)
According to the virtualenv docs only POSIX systems follow the
structure "/path/to/venv/bin/", while windows systems use
"/path/to/venv/Scripts" for the location of the binary files, most
importantly including the python interpreter (see:
https://virtualenv.pypa.io/en/stable/userguide/#windows-notes).
* lisp/progmodes/python.el (python-shell-calculate-exec-path): Use the
"/path/to/venv/Scripts" for `windows-nt' machines.

Copyright-paperwork-exempt: yes
2017-11-05 11:39:06 -05:00
Noam Postavsky
efd0371c23 Improve dired deletion error handling (Bug#28797)
* lisp/dired.el (dired-internal-do-deletions): Use
`error-message-string' to produce a human readable error message.
2017-11-05 11:38:38 -05:00
Noam Postavsky
5d744e032f Don't replace user input when completion prefix is empty (Bug#18951)
* lisp/pcomplete.el (pcomplete-parse-arguments): Only replace user
input if we produced a non-empty common completion stub.
2017-11-05 11:36:20 -05:00
João Távora
a2cc6d74c5 Fix Flymake help-echo functions across windows (bug#29142)
* lisp/progmodes/flymake.el (flymake--highlight-line): Use
with-selected-window.
(flymake-goto-next-error): Call help-echo with a window and an
overlay.
2017-11-05 14:58:07 +00:00
João Távora
58e742b21d Add a Flymake backend for Perl
Define a simple backend in perl-mode.el, which cperl-mode.el also
uses.

* lisp/progmodes/cperl-mode.el (cperl-mode): Add to
flymake-diagnostic-functions.

* lisp/progmodes/flymake-proc.el
(flymake-proc-allowed-file-name-masks): Disable legacy backend
for perl files.

* lisp/progmodes/perl-mode.el (perl-flymake-command): New
defcustom.
(perl--flymake-proc): New buffer-local variable.
(perl-flymake): New function.
(perl-mode): Add to flymake-diagnostic-functions.
2017-11-05 12:53:56 +00:00
João Távora
9dee764165 Add a Flymake backend for Ruby
* lisp/progmodes/ruby-mode.el (ruby-flymake-command): New
defcustom.
(ruby--flymake-proc): New buffer-local variable.
(ruby-flymake): New function.
(ruby-mode): Add flymake-diagnostic-functions.
2017-11-05 12:16:28 +00:00
Lele Gaifax
3ad712ebc9 Add a Flymake backend for Python (bug#28808)
Implement new Flymake backend with related customizable settings.

* lisp/progmodes/python.el (python-flymake-command)
(python-flymake-command-output-pattern)
(python-flymake-msg-alist): New defcustom.
(python--flymake-parse-output): New function, able to parse
python-flymake-command output accordingly to
python-flymake-command-output-pattern.
(python-flymake): New function implementing the backend
interface using python--flymake-parse-output for the real
work.
(python-mode): Add python-flymake to flymake-diagnostic-functions.
2017-11-05 12:15:45 +00:00
Michael Albinus
8db2b3a79b Allow "%" in Tramp host names
* lisp/net/tramp-gvfs.el (tramp-gvfs-url-file-name): Hexify also host.

* lisp/net/tramp.el (tramp-host-regexp): Allow "%" in host names.
2017-11-05 12:40:58 +01:00
Charles A. Roelli
725ab635d9 Add html-, mhtml- and python-mode support to semantic symref
* lisp/cedet/semantic/symref/grep.el
(semantic-symref-filepattern-alist): Fix the entry for
'html-mode', which used a regexp-like syntax where only glob
syntax is permitted.  As a result, 'xref-find-references' (M-?)
can now find references in HTML files.  Also duplicate the same
entry for the sake of 'mhtml-mode', and add a new one for
'python-mode'.
(semantic-symref-derive-find-filepatterns): In the documentation,
clarify that returned patterns must follow the glob syntax.  Fix
an 'if' test that always evaluates to nil.
(semantic-symref-tool-grep):
(semantic-symref-perform-search): Fix typos.
2017-11-04 22:19:08 +01:00
Eli Zaretskii
93818eed8a Fix subtle problems in tabulated-list-mode with line numbers
* lisp/emacs-lisp/tabulated-list.el
(tabulated-list-watch-line-number-width): Call
tabulated-list-init-header instead of tabulated-list-revert.
(tabulated-list-window-scroll-function): New function.
(tabulated-list-mode): Put 'tabulated-list-window-scroll-function'
on the buffer-local 'window-scroll-functions' list.
2017-11-04 16:28:25 +02:00
Eli Zaretskii
1f1de8e872 Make gdb-non-stop-setting default to nil on MS-Windows
* lisp/progmodes/gdb-mi.el (gdb-non-stop-setting): Now nil on
MS-Windows.
2017-11-04 13:56:39 +02:00
Mike Gulick
680e8e119b Fix gdb-mi prompt after "attach PID" command
* lisp/progmodes/gdb-mi.el (gdbmi-bnf-console-stream-output): Set
gdb-first-done-or-error non-nil.  (Bug#29020)

Copyright-paperwork-exempt: yes
2017-11-04 13:34:40 +02:00
Alan Mackenzie
a0d30d6369 Introduce a function to CC Mode which displays the current function name
Remove an erroneous interactive specification from two functions.

* lisp/progmodes/cc-cmds.el (c-display-defun-name): New command.
(c-defun-name, c-cpp-define-name): Remove interactive specification.

* lisp/progmodes/cc-mode.el (c-mode-base-map): Add binding C-c C-z for the new
command.

* doc/misc/cc-mode.texi (Other Commands): Add documentation for the new
command.
2017-11-03 19:45:17 +00:00
Glenn Morris
383abc8898 ; Fix some comment typos 2017-11-03 15:18:32 -04:00
Eli Zaretskii
b02c2714c3 Fix typos in ediff-wind.el
* lisp/vc/ediff-wind.el (ediff-setup-windows-multiframe-merge):
Fix typos in commentary.  (Bug#29138)
2017-11-03 21:12:41 +02:00
João Távora
4f38bdec74 Examine tex-chktex--process in the correct buffer
As in other Flymake backends, the process sentinel might run in
arbitrary buffers where this variable's value doesn't make sense.

For a way to trigger a problem due to this, see discussion starting in
https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00645.html

* lisp/textmodes/tex-mode.el (tex-chktex): Use
with-current-buffer.
2017-11-03 19:06:01 +00:00
João Távora
c25113d4ac Don't resignal errors in flymake-diag-region
* lisp/progmodes/flymake.el (flymake-diag-region): Use
flymake-log instead of flymake-error.
2017-11-03 16:53:45 +00:00
João Távora
e950f329c0 New xref-quit-and-goto-xref command bound to TAB (bug#28814)
This is like xref-goto-xref, but quits the *xref* window just before
the user jump to ref.

* lisp/progmodes/xref.el (xref--show-location): Handle 'quit
value for SELECT.
(xref-goto-xref): Take optional QUIT arg.
(xref-quit-and-goto-xref): New command.
(xref--xref-buffer-mode-map): Bind "Q" and "TAB" to
xref-quit-and-goto-xref.

* doc/emacs/maintaining.texi (Xref Commands): Describe new bindings in
*xref*.

* etc/NEWS (Xref): Describe new binding.
2017-11-03 16:13:39 +00:00
João Távora
5d34e1b288 Allow split-window-sensibly to split threshold in further edge case
As a fallback, and to avoid creating a frame, split-window-sensibly
would previously disregard split-height-threshold if the window to be
split is the frame's root window.

This change generalizes that: it disregards the threshold if the
window to be split is the frame's only _usable_ window (it is either
the only one, as before, or all the other windows are dedicated to
some buffer and thus cannot be touched).

This is required for the fix to bug#28814.

* lisp/window.el (split-height-threshold): Adjust doc to match
split-window-sensibly.
(split-window-sensibly): Also disregard threshold if all other
windows are dedicated.
2017-11-03 16:13:37 +00:00
João Távora
2a973edeac Honor window-switching intents in xref-find-definitions (bug#28814)
When there is more than one xref to jump to, and an *xref* window
appears to help the user choose, the original intent to open a
definition in another window or frame is remembered when the choice to
go to or show a reference is finally made.

* lisp/progmodes/xref.el (xref--show-pos-in-buf): Rewrite.
(xref--original-window-intent): New variable.
(xref--original-window): Rename from xref--window and move up
here for clarity.
(xref--show-pos-in-buf): Rewrite.  Don't take SELECT arg here.
(xref--show-location): Handle window selection decision here.
(xref--window): Rename to xref--original-window.
(xref-show-location-at-point): Don't attempt window management here.
(xref--show-xrefs): Ensure display-action intent is saved.
2017-11-03 16:13:35 +00:00
Paul Pogonyshev
78e9065e9f * lisp/emacs-lisp/generator.el (iter-do): Add a debug declaration. 2017-11-03 15:49:51 +02:00
Stefan Monnier
caa63cc96c * lisp/progmodes/flymake.el (flymake-start): Fix dead buffer case
Don't try to flymake-start within a buffer that doesn't exist any more.
2017-11-03 08:33:13 -04:00
Basil L. Contovounesios
9f4f130b79 Fix buffer name comparison in async shell-command
* lisp/simple.el (shell-command): Keep track of output-buffer
by its name, not by its object.  (Bug#28997)
2017-11-03 11:50:13 +02:00