]> git.eshelyaron.com Git - emacs.git/log
emacs.git
6 years ago; * Update ldefs-boot.el emacs-26.0.90
Nicolas Petton [Wed, 11 Oct 2017 20:55:13 +0000 (22:55 +0200)]
; * Update ldefs-boot.el

6 years agoBump Emacs version to 26.0.90
Nicolas Petton [Wed, 11 Oct 2017 20:39:17 +0000 (22:39 +0200)]
Bump Emacs version to 26.0.90

* README:
* configure.ac:
* msdos/sed2v2.inp:
* nt/README.W32: Bump Emacs version.

6 years agoUpdate authors.el
Nicolas Petton [Wed, 11 Oct 2017 13:12:09 +0000 (15:12 +0200)]
Update authors.el

* admin/authors.el (authors-valid-file-names)
(authors-renamed-files-alist): Additions.

6 years ago* admin/authors.el (authors-aliases): Additions.
Nicolas Petton [Wed, 11 Oct 2017 13:11:14 +0000 (15:11 +0200)]
* admin/authors.el (authors-aliases): Additions.

6 years ago; * ChangeLog.3: ChangeLog fixes.
Nicolas Petton [Wed, 11 Oct 2017 13:10:28 +0000 (15:10 +0200)]
; * ChangeLog.3: ChangeLog fixes.

6 years ago* ChangeLog.3: Update.
Nicolas Petton [Wed, 11 Oct 2017 13:09:02 +0000 (15:09 +0200)]
* ChangeLog.3: Update.

6 years agoFix docstring style for 'functionp'
Radon Rosborough [Wed, 11 Oct 2017 13:08:18 +0000 (16:08 +0300)]
Fix docstring style for 'functionp'

* src/eval.c (functionp): Make docstring start with verb.
(Bug#28781)

6 years agoFormat shell commands in tramp.texi
Michael Albinus [Wed, 11 Oct 2017 08:57:29 +0000 (10:57 +0200)]
Format shell commands in tramp.texi

* doc/misc/tramp.texi (Obtaining Tramp, Remote shell setup):
Format shell commands better.

6 years agoUnbreak the button in the Flymake diagnostics buffer again
João Távora [Tue, 10 Oct 2017 15:20:51 +0000 (16:20 +0100)]
Unbreak the button in the Flymake diagnostics buffer again

Adding the 'keymap' property enabled RET but broke the mouse-action.

* lisp/progmodes/flymake.el
(flymake--diagnostics-buffer-entries): Use 'action' instead of 'keymap'.

6 years agoAdd mode map to Flymake diagnostic button
Mark Oteiza [Tue, 10 Oct 2017 14:24:45 +0000 (10:24 -0400)]
Add mode map to Flymake diagnostic button

* lisp/progmodes/flymake.el (flymake--diagnostics-buffer-entries): Add
keymap propery.

6 years agoTweak the Flymake diagnostics buffer again
João Távora [Sun, 8 Oct 2017 23:12:48 +0000 (00:12 +0100)]
Tweak the Flymake diagnostics buffer again

* lisp/progmodes/flymake.el
(flymake-diagnostics-buffer-mode-map): Don't bind [mouse-1].
(flymake-show-diagnostic): Rename from
flymake-show-diagnostic-at-point.  Really use another window.
(flymake-goto-diagnostic): Rename from
flymake-goto-diagnostic-at-point.
(flymake--diagnostics-buffer-entries): Use a button just for
the message bit.

6 years agoSimplify Flymake diagnostics buffer UX
Mark Oteiza [Sun, 8 Oct 2017 21:42:31 +0000 (22:42 +0100)]
Simplify Flymake diagnostics buffer UX

Don't create text-buttons unnecessarily, just bind RET and SPC in the
diagnostics buffer to a command that figures out which diagnostic it
was invoked on.

* lisp/progmodes/flymake.el
(flymake--diagnostics-buffer-mode-keymap): Renamed from
flymake--diagnostics-buffer-button-keymap.
(flymake-show-diagnostic-at-point): Don't take a button.
(flymake-goto-diagnostic-at-point): Don't pass button to
flymake-show-diagnostic-at-point.
(flymake--diagnostics-buffer-entries): Simplify.

6 years agoFirst stab at a Flymake diagnostics buffer
João Távora [Sat, 7 Oct 2017 15:52:45 +0000 (16:52 +0100)]
First stab at a Flymake diagnostics buffer

The diagnostics buffer summarizes the diagnostics of a buffer in a
tabulated list and is permanently updated after each Flymake check.

* lisp/progmodes/flymake.el (flymake--handle-report): Call
flymake-show-diagnostics-buffer under certain conditions.
(flymake-menu, flymake--diagnostics-buffer-source)
(flymake--diagnostics-buffer-button-keymap)
(flymake-show-diagnostic-at-point)
(flymake-goto-diagnostic-at-point)
(flymake--diagnostics-buffer-entries)
(flymake-diagnostics-buffer-mode)
(flymake--diagnostics-buffer-name)
(flymake-show-diagnostics-buffer): New definitions.

6 years ago* etc/NEWS (Flymake): Rewrite entry.
João Távora [Tue, 10 Oct 2017 14:57:52 +0000 (15:57 +0100)]
* etc/NEWS (Flymake): Rewrite entry.

6 years agoImprove the Flymake manual
Eli Zaretskii [Tue, 10 Oct 2017 14:08:51 +0000 (17:08 +0300)]
Improve the Flymake manual

* doc/misc/flymake.texi: Add a 'coding' cookie.  Add a
@syncodeindex directive for @vindex.  Use 2 spaces between
sentences.  Lower-case @cindex entries.
(Overview of Flymake): Fix use of @itemize and @pxref.  Fix
punctuation and markup.
(Backend exceptions): Use @emph instead of @dfn.  Add more
indexing.
(Customizable variables, Extending Flymake): Improve wording.
(Flymake error types): Fix usage of @itemize.  Improve wording.
(Backend functions): Fix punctuation.  Fix markup.  Add a
cross-reference to ELisp manual.
(Flymake utility functions): Add a cross-reference to ELisp manual.
(An annotated example backend): Fix punctuation and typos.
(Flymake mode, Running the syntax check)
(Navigating to error lines, Backend exceptions)
(Customizable variables, Flymake error types, Backend functions)
(Flymake utility functions, Proc customization variables)
(Locating a master file, Locating the buildfile)
(Starting the syntax check process, Parsing the output)
(Interaction with other modes): Fix indexing.  Add index entries
for functions, variables, and concepts.

6 years ago; * etc/NEWS: Clarify the description of "---" and "+++".
Eli Zaretskii [Tue, 10 Oct 2017 12:24:09 +0000 (15:24 +0300)]
; * etc/NEWS: Clarify the description of "---" and "+++".

6 years agoFix two Flymake bugs
João Távora [Tue, 10 Oct 2017 11:47:46 +0000 (12:47 +0100)]
Fix two Flymake bugs

* lisp/progmodes/flymake.el (define-fringe-bitmap): Protect
against --without-x.
(flymake--mode-line-format): Ensure mode-line's mouse-4 and mouse-5 work
in their own windows.

6 years agoDon't log "emergencies" in the Flymake legacy backend
João Távora [Tue, 10 Oct 2017 11:30:42 +0000 (12:30 +0100)]
Don't log "emergencies" in the Flymake legacy backend

* lisp/progmodes/flymake-proc.el (flymake-proc--panic)
(flymake-proc-legacy-flymake): Don't log "emergencies"

6 years agoAdd full documentation on new Flymake API
João Távora [Tue, 10 Oct 2017 01:14:46 +0000 (02:14 +0100)]
Add full documentation on new Flymake API

Also, as a minor addition to this API, set flymake-text
on the diagnostic overlay.  This enables a good example in
the section "Customization Flymake annotations".

* doc/misc/flymake.texi (Overview of Flymake)
(Syntax check statuses): Rework.
(Backend exceptions): Rename from "Troubleshooting"
(Customizable variables): Add flymake-start-on-flymake-mode. Rework.
(Extending Flymake): Write chapter.
(Customizing Flymake annotations, Flymake backends)
(Flymake utility functions, An annotated example backend):
New sections and subsections

* lisp/progmodes/flymake.el (flymake-diagnostic-functions)
(flymake-diagnostic-types-alist): Rework docstring.
(flymake--highlight-line): Set and use flymake-text property in overlay.
(flymake-goto-next-error, flymake-goto-prev-error): Fix funny quotes.

6 years agoFix some Flymake docstrings and messages
João Távora [Mon, 9 Oct 2017 20:51:02 +0000 (21:51 +0100)]
Fix some Flymake docstrings and messages

* lisp/progmodes/flymake.el
(flymake-start-on-flymake-mode): fix typo.
(flymake-mode): Add docstring.
(flymake-mode-line-format): Fix help-echo indications. mouse-2
describes flymake-mode.

6 years agoMake three new Flymake commands for debugging common problems
João Távora [Mon, 9 Oct 2017 20:33:09 +0000 (21:33 +0100)]
Make three new Flymake commands for debugging common problems

* lisp/progmodes/flymake.el (flymake-running-backends)
(flymake-disabled-backends)
(flymake-reporting-backends): Make interactive.
(flymake--collect): Take optional arg.

6 years ago; INSTALL.REPO: Add -d to "thorough cleaning" suggestion.
Noam Postavsky [Tue, 10 Oct 2017 09:36:59 +0000 (05:36 -0400)]
; INSTALL.REPO: Add -d to "thorough cleaning" suggestion.

6 years ago; Typo fixes, mostly repeated words
Paul Eggert [Tue, 10 Oct 2017 05:53:19 +0000 (22:53 -0700)]
; Typo fixes, mostly repeated words

6 years ago; Spelling fixes
Paul Eggert [Tue, 10 Oct 2017 00:15:42 +0000 (17:15 -0700)]
; Spelling fixes

6 years ago; * src/lread.c (syms_of_lread) <module-file-suffix>: Fix typo
Alexander Gramiak [Mon, 9 Oct 2017 20:22:58 +0000 (14:22 -0600)]
; * src/lread.c (syms_of_lread) <module-file-suffix>: Fix typo

6 years ago* admin/authors.el (authors-renamed-files-alist): addition.
Nicolas Petton [Mon, 9 Oct 2017 19:50:53 +0000 (21:50 +0200)]
* admin/authors.el (authors-renamed-files-alist): addition.

6 years ago; ChangeLog.3 fixes
Nicolas Petton [Mon, 9 Oct 2017 19:50:44 +0000 (21:50 +0200)]
; ChangeLog.3 fixes

6 years agoFix PWD check on DOS_NT
Paul Eggert [Mon, 9 Oct 2017 17:47:56 +0000 (10:47 -0700)]
Fix PWD check on DOS_NT

* src/sysdep.c (get_current_dir_name_or_unreachable):
Do not consider a file name like "a:b" to be absolute on DOS_NT.

6 years agoFix unlikely overflows with wd length
Paul Eggert [Mon, 9 Oct 2017 17:30:40 +0000 (10:30 -0700)]
Fix unlikely overflows with wd length

* src/sysdep.c (get_current_dir_name_or_unreachable):
Avoid integer overflow if working directory name is absurdly long.
When allocating memory for getcwd, do not exceed MAXPATHLEN.

6 years ago* lisp/gnus/message.el: Improve last commit
Stefan Monnier [Mon, 9 Oct 2017 16:33:07 +0000 (12:33 -0400)]
* lisp/gnus/message.el: Improve last commit

(message-clone-locals): Don't mistakenly match other variables whose
name happens to include "message-default-charset".

6 years agoFix problems when editing raw undecoded message (Bug#28671)
Ken Olum [Mon, 9 Oct 2017 13:54:00 +0000 (16:54 +0300)]
Fix problems when editing raw undecoded message (Bug#28671)

* lisp/mail/rmailedit.el (rmail-cease-edit): If rmail-old-mime-state
is set, meaning that we are editing the raw message, do not
encode it again.  Delete old body after, not before, inserting
new, to avoid moving marker at beginning of next message.

6 years agoAvoid encoding errors in message.el
Eli Zaretskii [Mon, 9 Oct 2017 13:46:23 +0000 (16:46 +0300)]
Avoid encoding errors in message.el

* lisp/gnus/message.el (message-clone-locals): Don't clone
message-default-charset.  (Bug#25645)

6 years agoImprove doc string and prompt of 'grep-read-files'
Eli Zaretskii [Mon, 9 Oct 2017 13:39:25 +0000 (16:39 +0300)]
Improve doc string and prompt of 'grep-read-files'

* lisp/progmodes/grep.el (grep-read-files): Clarify in the doc
string and in the prompt that shell wildcards can be used.
Suggested by Allen Li <vianchielfaura@gmail.com>.  (Bug#28615)

6 years agoAvoid assertion violations when line numbers are displayed
Eli Zaretskii [Mon, 9 Oct 2017 12:28:16 +0000 (15:28 +0300)]
Avoid assertion violations when line numbers are displayed

* src/xdisp.c (redisplay_window): Clear the window's desired glyph
matrix before calling try_window with the same starting point.
This avoids assertion violations when switching from a buffer
without line numbers to a buffer with line numbers.  (Bug28710)

6 years ago; * lisp/emacs-lisp/rmc.el: Minor fix for copyright and license.
Glenn Morris [Mon, 9 Oct 2017 11:44:37 +0000 (07:44 -0400)]
; * lisp/emacs-lisp/rmc.el: Minor fix for copyright and license.

6 years agoBe lazy when starting Flymake checks
João Távora [Mon, 9 Oct 2017 10:12:57 +0000 (11:12 +0100)]
Be lazy when starting Flymake checks

Don't start the check immediately if the buffer is not being
displayed.  Wait until it is, using window-configuration-change-hook.

This enables the user to batch-enable flymake-mode on many buffers and
not have that operation exhaust system resources for checking each
one.  Likewise, an editing or save operation in a currently
non-displayed buffer does not immediately start a check.

* lisp/progmodes/flymake.el (flymake-start-on-flymake-mode):
Rename from flymake-start-syntax-check-on-find-file.
(flymake-start-syntax-check-on-find-file): Obsolete alias for
flymake-start-on-flymake-mode.
(flymake-start): Redesign.  Affect the global post-command-hook
and local window-configuraiton-change-hook.
(flymake--schedule-timer-maybe)
(flymake-after-change-function, flymake-after-save-hook): Pass
t to flymake-start.

* test/lisp/progmodes/flymake-tests.el (flymake-tests--call-with-fixture)
(dummy-backends, recurrent-backend): Start flymake check
explicitly and immediately.

6 years agoFix last change in frameset.el
Eli Zaretskii [Mon, 9 Oct 2017 07:40:37 +0000 (10:40 +0300)]
Fix last change in frameset.el

* lisp/frameset.el (frameset-filter-font-param): Fix a thinko in
filtering the 'font' parameter.  (Bug#17352)

6 years agoDescribe how window dividers can replicate vertical borders (Bug#27830)
Martin Rudalics [Mon, 9 Oct 2017 07:29:52 +0000 (09:29 +0200)]
Describe how window dividers can replicate vertical borders (Bug#27830)

* doc/emacs/frames.texi (Scroll Bars): Describe how window
dividers can be used to replicate vertical borders when scroll
bars are disabled (Bug#27830).
* doc/emacs/frames.texi (Window Dividers): Mention their use
in replicating vertical borders.

6 years agoAdd line-number faces to the display-line-numbers group
Alexander Gramiak [Sat, 7 Oct 2017 21:02:01 +0000 (15:02 -0600)]
Add line-number faces to the display-line-numbers group

See https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00151.html
and its resulting thread.

* lisp/display-line-numbers.el (display-line-numbers): Add to the
convenience group.
* lisp/faces.el (line-number):
(line-number-current-line): Add to the display-line-numbers group.

6 years agoIncrease xterm click count only within double-click-fuzz
Alexander Gramiak [Sat, 30 Sep 2017 21:47:56 +0000 (15:47 -0600)]
Increase xterm click count only within double-click-fuzz

* lisp/xt-mouse.el (xterm-mouse-event): Save the last click's position
and check it against the current click's position.  (Bug#28658)

6 years agoChange pause in fullscreen toggling for NS port (bug#28496)
Alan Third [Sun, 8 Oct 2017 18:26:34 +0000 (19:26 +0100)]
Change pause in fullscreen toggling for NS port (bug#28496)

* lisp/frame.el (toggle-frame-fullscreen): Replace sit-for with
sleep-for, and reduce time.

6 years agoHandle PARENTS properly in tramp-*-handle-make-directory
Michael Albinus [Sun, 8 Oct 2017 11:55:20 +0000 (13:55 +0200)]
Handle PARENTS properly in tramp-*-handle-make-directory

* lisp/net/tramp-adb.el (tramp-adb-handle-make-directory):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-make-directory):
Handle PARENTS properly.

* test/lisp/net/tramp-tests.el (tramp-test13-make-directory):
Extend test.

6 years ago; Merge from Gnulib (comment changes only)
Paul Eggert [Sun, 8 Oct 2017 06:08:24 +0000 (23:08 -0700)]
; Merge from Gnulib (comment changes only)

6 years agoImprove test for unreachable dirs
Paul Eggert [Sun, 8 Oct 2017 05:56:29 +0000 (22:56 -0700)]
Improve test for unreachable dirs

* src/sysdep.c (get_current_dir_name_or_unreachable):
New function, with most of the old contents of
emacs_get_current_dir_name.
(emacs_get_current_dir_name): Use it.  Use a simpler
test for unreachable directory strings, and also apply
it to getcwd etc. (Bug#27871)

6 years ago* src/xsmfns.c (x_session_initialize): Fix memory leak.
Paul Eggert [Sun, 8 Oct 2017 05:48:49 +0000 (22:48 -0700)]
* src/xsmfns.c (x_session_initialize): Fix memory leak.

6 years agoMerge branch 'emacs-26' of git.sv.gnu.org:/srv/git/emacs into emacs-26
K. Handa [Sun, 8 Oct 2017 02:56:06 +0000 (11:56 +0900)]
Merge branch 'emacs-26' of git.sv.gnu.org:/srv/git/emacs into emacs-26

6 years agoNew option for handling ZWNJ in Arabic text rendering
K. Handa [Sun, 8 Oct 2017 02:48:01 +0000 (11:48 +0900)]
New option for handling ZWNJ in Arabic text rendering

Provide a new option 'arabic-shaper-ZWNJ-handling' that controls how
to display ZWNJ in Arabic text rendering (Bug#28339).
* lisp/language/misc-lang.el: Register arabic-shape-gstring in
composition-function-table.
(arabic-shaper-ZWNJ-handling): New variable.
(arabic-shape-log): New variable.
(arabic-shape-gstring): New function.
* lisp/composite.el (lgstring-remove-glyph): New function.

6 years agoMake python prettify symbols into a defvar (Bug#28713)
Noam Postavsky [Thu, 5 Oct 2017 23:16:46 +0000 (19:16 -0400)]
Make python prettify symbols into a defvar (Bug#28713)

* lisp/progmodes/python.el (python-prettify-symbols-alist): New
variable.
(python--prettify-symbols-alist): Make into obsolete alias for
`python-prettify-symbols-alist'.

6 years agoFix fullscreen crash on macOS (bug#28496)
Alan Third [Sat, 30 Sep 2017 23:06:23 +0000 (00:06 +0100)]
Fix fullscreen crash on macOS (bug#28496)

* lisp/frame.el (toggle-frame-fullscreen): Wait for animation to
complete on macOS.

6 years agoFix crash when closing fullscreen frame on macOS (bug#28661)
Alan Third [Sat, 7 Oct 2017 15:00:49 +0000 (16:00 +0100)]
Fix crash when closing fullscreen frame on macOS (bug#28661)

* src/nsterm.m (EmacsView::windowWillResize): Return new frame size
unmodified if the frame isn't live.

6 years agoSupport gio tool in Tramp
Michael Albinus [Sat, 7 Oct 2017 18:17:32 +0000 (20:17 +0200)]
Support gio tool in Tramp

"gvfs-<command>" utilities have been deprecated in GVFS 1.31.1.  We
must use "gio <command>" tool instead.

* lisp/net/tramp-gvfs.el (tramp-gvfs-gio-mapping): New defconst.
(tramp-gvfs-handle-file-notify-add-watch): Support also "gio monitor"
(tramp-gvfs-gio-tool-p): New defun.
(tramp-gvfs-send-command): Use it.  Call gio tool if available.

6 years agoFix flymake-goto-next-error when message has %-constructs
João Távora [Sat, 7 Oct 2017 15:55:04 +0000 (16:55 +0100)]
Fix flymake-goto-next-error when message has %-constructs

* lisp/progmodes/flymake.el (flymake-goto-next-error): Fix
message call.  Add missing period in docstring.

6 years ago* src/gnutls.c (syms_of_gnutls): Remove duplicated call to DEFSYM.
Piotr Trojanek [Sat, 7 Oct 2017 14:54:36 +0000 (17:54 +0300)]
* src/gnutls.c (syms_of_gnutls): Remove duplicated call to DEFSYM.

Copyright-paperwork-exempt: yes.

6 years agoMove the entry about 'format' into Incompatible Lisp Changes
Eli Zaretskii [Sat, 7 Oct 2017 11:32:12 +0000 (14:32 +0300)]
Move the entry about 'format' into Incompatible Lisp Changes

* etc/NEWS: Move the entry about 'format' refraining from allocating
new strings into Incompatible Lisp Changes.  (Bug#28625)

6 years agoFix glitches in displaying TTY menus
Eli Zaretskii [Sat, 7 Oct 2017 11:20:42 +0000 (14:20 +0300)]
Fix glitches in displaying TTY menus

* src/dispnew.c (update_frame_line): Accept an additional argument
UPDATING_MENU_P; if non-zero, home the cursor before updating a
frame's line.  All callers changed.
(update_frame_1): Accept an additional argument UPDATING_MENU_P,
and pass it to update_frame_line.  All callers changed.
(update_frame_with_menu): Call update_frame_1 with last argument
non-zero.  (Bug#17497)

6 years agoCreate new Edebug spec for docstrings and use it in closures
Gemini Lasswell [Fri, 6 Oct 2017 18:30:22 +0000 (11:30 -0700)]
Create new Edebug spec for docstrings and use it in closures

Since (:documentation FORM) can be used to create a docstring
when lexical-binding is on, allow for that possibility in Edebug
specs (bug#24773).
* lisp/emacs-lisp/edebug.el: Define an Edebug spec for docstrings
called lambda-doc and modify the Edebug specs for defun and
defmacro to use it.
(edebug-instrument-function): Check for generic functions first,
to fix bug where edebug-step-in didn't work on methods now that
cl-defgeneric has an Edebug spec.
* lisp/subr.el (lambda): Modify Edebug spec to use lambda-doc.
* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Add Edebug spec
(bug#27747).
(cl-defmethod): Use lambda-doc in Edebug spec.
* lisp/emacs-lisp/cl-macs.el: Modify Edebug spec for
cl-declarations-or-string to use lambda-doc, and modify Edebug
spec for cl-lambda-expr to use cl-declarations-or-string.
* lisp/emacs-lisp/pcase.el (pcase-lambda): Modify Edebug spec to
use lambda-doc, as well as &define and def-body which are
necessary for using Edebug on code wrapped by lambda.
* lisp/emacs-lisp/generator.el (iter-defun, iter-lambda): Add
Edebug specs.

6 years agoAvoid byte-compilation warnings in message.el
Eli Zaretskii [Fri, 6 Oct 2017 17:49:39 +0000 (20:49 +0300)]
Avoid byte-compilation warnings in message.el

* lisp/gnus/message.el: Require 'subr-x' when compiling, to
avoid compiler warnings.

6 years agoFix bug in recent styled_format change
Paul Eggert [Fri, 6 Oct 2017 17:32:46 +0000 (10:32 -0700)]
Fix bug in recent styled_format change

Problem reported by Kaushal Modi in:
http://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00141.html
* src/editfns.c (styled_format): Fix bug where USE_SAFE_ALLOCA was
not always followed by SAFE_FREE.  This bug was introduced in my
patch 2017-09-26T23:31:57Z!eggert@cs.ucla.edu entitled "Avoid some
unnecessary copying in Fformat etc."

6 years agoCleanup emacs-lisp-mode's use of Flymake
João Távora [Fri, 6 Oct 2017 16:51:40 +0000 (17:51 +0100)]
Cleanup emacs-lisp-mode's use of Flymake

* lisp/progmodes/elisp-mode.el (elisp-flymake--checkdoc-1):
Delete.
(elisp-flymake-checkdoc): Incorporate old
elisp-flymake--checkdoc-1.
(elisp-flymake--byte-compile-done): Simplify.  Don't cleanup
here.
(elisp-flymake-byte-compile): Remove spurious interactive spec.
Simplify.  Cleanup on every possible exit.

6 years agoFix @include directive in Flymake doc
João Távora [Fri, 6 Oct 2017 15:42:37 +0000 (16:42 +0100)]
Fix @include directive in Flymake doc

* doc/misc/flymake.texi: Don't @include a relative path.

6 years agoMove read-multiple-choice to its own library
Mark Oteiza [Fri, 6 Oct 2017 14:42:06 +0000 (10:42 -0400)]
Move read-multiple-choice to its own library

* lisp/emacs-lisp/rmc.el: New file.
* lisp/emacs-lisp/subr-x.el (read-multiple-choice): Remove.
* lisp/gnus/message.el:
* lisp/net/nsm.el: Change required library.

6 years ago* src/process.c (syms_of_process): Remove duplicated call to DEFSYM.
Piotr Trojanek [Fri, 6 Oct 2017 14:12:31 +0000 (17:12 +0300)]
* src/process.c (syms_of_process): Remove duplicated call to DEFSYM.

Fixes: Bug#28721
Copyright-paperwork-exempt: yes.

6 years agoFix typos in Flymake documentation
Lele Gaifax [Fri, 6 Oct 2017 13:08:49 +0000 (14:08 +0100)]
Fix typos in Flymake documentation

* doc/misc/flymake.texi (Syntax check statuses)
(Adding support for a new syntax check tool)
(Implementation overview, Locating the buildfile): Fix typos.

* lisp/progmodes/flymake-proc.el (flymake-proc--report-fn)
(flymake-proc--find-possible-master-files):Fix typos.
(flymake-proc--panic)
(flymake-proc-legacy-flymake): Fix function reference in doc.

* lisp/progmodes/flymake.el (flymake-error)
(flymake-diagnostic-functions): Fix typos.
(flymake-diagnostic-types-alist): Rephrase and fix typos.
(flymake--backend-state): Fix typos and rephrase.
(flymake--handle-report): Delete empty line.
(flymake--disable-backend)
(flymake--run-backend): Fix typos.
(flymake-goto-next-error, flymake-goto-prev-error): Rephrase.

6 years agoRevert last change in 'shr-descend'
Eli Zaretskii [Fri, 6 Oct 2017 12:42:22 +0000 (15:42 +0300)]
Revert last change in 'shr-descend'

* lisp/net/shr.el (shr-descend): Revert the part of the last
change which introduced calls to shr-indirect-call into this
function.  Add a comment explaining the rationale for that.
(Bug#28402)

6 years agoDon't error when turning on Flymake with no known backends
João Távora [Thu, 5 Oct 2017 23:07:53 +0000 (00:07 +0100)]
Don't error when turning on Flymake with no known backends

Leave it to the mode line indicator to inform the user that there
is still some configuration to do.

* lisp/progmodes/flymake.el (flymake-mode): Simplify.

6 years agoDelete a Flymake obsolete alias that can't possibly work
João Távora [Thu, 5 Oct 2017 21:23:24 +0000 (22:23 +0100)]
Delete a Flymake obsolete alias that can't possibly work

The function `flymake-ler-make-ler' can't possibly work as an backward
compatible interface to existing extensinos (even purely hypothetical
ones, since none are known).  This is because every diagnostic
considered by Flymake has to passed to a report-fn function.

* lisp/progmodes/flymake.el (flymake-ler-make-ler): Delete.

6 years agoFix bug with unmounted directory on GNU/Linux
Paul Eggert [Thu, 5 Oct 2017 22:55:10 +0000 (15:55 -0700)]
Fix bug with unmounted directory on GNU/Linux

* src/sysdep.c (emacs_get_current_dir_name): Do not use
get_current_dir_name result unless it is absolute (Bug#27871).

6 years ago; Update ChangeLog.3
Nicolas Petton [Thu, 5 Oct 2017 21:18:23 +0000 (23:18 +0200)]
; Update ChangeLog.3

6 years ago; * Makefile.in: set PREFERRED_BRANCH to emacs-26
Nicolas Petton [Thu, 5 Oct 2017 20:23:49 +0000 (22:23 +0200)]
; * Makefile.in: set PREFERRED_BRANCH to emacs-26

6 years agoUpdate authors.el
Nicolas Petton [Wed, 4 Oct 2017 19:49:22 +0000 (21:49 +0200)]
Update authors.el

* admin/authors.el (authors-renamed-files-alist)
(authors-valid-file-names): Additions.

6 years agoFix dynamic binding wrapper in iter-lambda (bug#25965)
Gemini Lasswell [Thu, 5 Oct 2017 19:41:35 +0000 (12:41 -0700)]
Fix dynamic binding wrapper in iter-lambda (bug#25965)

* lisp/emacs-lisp/generator.el (cps--make-dynamic-binding-wrapper):
Remove extra evaluation of form.
* test/lisp/emacs-lisp/generator-tests.el
(cps-iter-lambda-with-dynamic-binding): New test.

6 years agoUpdate Org to v9.1.2
Rasmus [Thu, 5 Oct 2017 19:30:05 +0000 (21:30 +0200)]
Update Org to v9.1.2

Please note this is a bugfix release.  See etc/ORG-NEWS for details.

6 years agoFix irregularities with CC Mode fontification, particularly with "known types"
Alan Mackenzie [Mon, 18 Sep 2017 08:52:24 +0000 (08:52 +0000)]
Fix irregularities with CC Mode fontification, particularly with "known types"

* lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Introduce a new
optional parameter, template-class.  In "class <X = Y>", fontify "Y" as a
type.
(c-font-lock-single-decl): New variable template-class, set to non-nil when we
have a construct like the above.  Pass this as argument to
c-font-lock-declarators.
(c-font-lock-cut-off-declarators): Check more rigorously that a declaration
being processed starts before the function's starting position.
(c-complex-decl-matchers): Remove the redundant clause which fontified "types
preceded by, e.g., "struct"".

* lisp/progmodes/cc-langs.el (c-template-typename-kwds)
(c-template-typename-key): New lang defconsts and defvar.

6 years agoFix breakage due to recent change in tabulated-list-print-entry
Eli Zaretskii [Thu, 5 Oct 2017 14:57:58 +0000 (17:57 +0300)]
Fix breakage due to recent change in tabulated-list-print-entry

* lisp/emacs-lisp/tabulated-list.el (tabulated-list-printer):
Update the doc string.
(tabulated-list-print-entry): Revert to using only 2 arguments.
Update the doc string.
(tabulated-list-entry-lnum-width): New defvar.
(tabulated-list-print): Compute the width of line-number display
once, then store that value in tabulated-list-entry-lnum-width,
for tabulated-list-printer to use.  (Bug#28704)

6 years ago* lisp/ses.el (ses-print-cell): Fix alignment of text cells. (Bug#27653)
Gemini Lasswell [Thu, 5 Oct 2017 13:49:34 +0000 (16:49 +0300)]
* lisp/ses.el (ses-print-cell): Fix alignment of text cells.  (Bug#27653)

6 years agoSet xterm click count to 1 even with no last click
Alexander Gramiak [Thu, 5 Oct 2017 10:50:02 +0000 (13:50 +0300)]
Set xterm click count to 1 even with no last click

* lisp/xt-mouse.el (xterm-mouse-event): Move the check for
the last click so that click-count is initialized properly.
Handle the value of t for double-click-time.
(Bug#28658)

6 years agoSupport indirection for all shr-tag-* calls
Vasilij Schneidermann [Thu, 5 Oct 2017 10:00:13 +0000 (13:00 +0300)]
Support indirection for all shr-tag-* calls

The 'shr-external-rendering-functions' variable was previously only
honored in the shr-descend function, now all direct calls to the
shr-tag-* functions have been replaced by a call to
'shr-indirect-call' which tries using an alternative rendering
function first.

* lisp/net/shr.el (shr-indirect-call): New helper function.
(shr-descend, shr-tag-object, shr-tag-video):
(shr-collect-extra-strings-in-table): Fix callers to call via
shr-indirect-call.  (Bug#28402)

6 years ago; * etc/NEWS: Fix the "manual-update" marker of a recent addition.
Eli Zaretskii [Thu, 5 Oct 2017 09:55:47 +0000 (12:55 +0300)]
; * etc/NEWS: Fix the "manual-update" marker of a recent addition.

6 years agoSpeed up list-packages when 'visual' line numbers are displayed
Eli Zaretskii [Thu, 5 Oct 2017 09:41:36 +0000 (12:41 +0300)]
Speed up list-packages when 'visual' line numbers are displayed

* lisp/emacs-lisp/tabulated-list.el (tabulated-list-printer):
Update the doc string.
(tabulated-list-print-entry): Accept an additional optional
argument INDENT.  Update the doc string.
(tabulated-list-print): Compute the width of line-number display
once, then call tabulated-list-printer with that value as 3rd
argument.  (Bug#28704)

6 years agoMisc. minor adjustments to Flymake
João Távora [Thu, 5 Oct 2017 01:42:01 +0000 (02:42 +0100)]
Misc. minor adjustments to Flymake

- Add a half-decent minor-mode menu;
- Fix "waiting for backends" mode line message;
- Adjust the flymake-diag-region API;
- Autoload the flymake-log macro;
- Auto-disable the legacy backend in more situations;
- Fix a couple of warnings in legacy backend.

* lisp/progmodes/flymake-proc.el
(flymake-proc--diagnostics-for-pattern): Use new
flymake-diag-region.

* lisp/progmodes/flymake-proc.el
(flymake-proc-legacy-flymake): Do error when no
buffer-file-name or not writable.
(flymake-proc-legacy-flymake)
(flymake-proc-simple-cleanup): Don't reference flymake-last-change-time

* lisp/progmodes/flymake.el (flymake-diag-region):
Autoload.  Take buffer as first argument.

* lisp/progmodes/flymake.el (flymake-switch-to-log-buffer):
New command.
(flymake-menu): Add a simple menu.
(flymake--mode-line-format): Use menu.  Fix message.  Switch to
log buffer when clicking exceptional warnings.

6 years agoFix search for ~/.Xdefaults-HOSTNAME
Johan Bockgård [Wed, 4 Oct 2017 22:24:43 +0000 (15:24 -0700)]
Fix search for ~/.Xdefaults-HOSTNAME

* src/xrdb.c (get_environ_db): Fix typo when handling
~/.Xdefaults-HOSTNAME (Bug#28708).

6 years agoSpeed up (format "%s" STRING) and the like
Paul Eggert [Wed, 4 Oct 2017 21:29:58 +0000 (14:29 -0700)]
Speed up (format "%s" STRING) and the like

Although the Lisp manual said that ‘format’ returns a
newly-allocated string, this was not true for a few cases like
(format "%s" ""), and fixing the documentation to allow reuse of
arguments lets us improve performance in common cases like
(format "foo") and (format "%s" "foo") (Bug#28625).
* doc/lispref/strings.texi (Formatting Strings):
* etc/NEWS:
Say that the result of ‘format’ might not be newly allocated.
* src/callint.c (Fcall_interactively):
* src/dbusbind.c (XD_OBJECT_TO_STRING):
* src/editfns.c (Fmessage, Fmessage_box):
* src/xdisp.c (vadd_to_log, Ftrace_to_stderr):
Just use Fformat or Fformat_message, as that’s simpler and no
longer makes unnecessary copies.
* src/editfns.c (styled_format): Remove last argument, as it
is no longer needed: all callers now want it to behave as if it
were true.  All remaining callers changed.  Make this function
static again.  Simplify the function now that we no longer
need to worry about whether the optimization is allowed.

6 years agoFontify untyped function declarations in C Mode correctly.
Alan Mackenzie [Wed, 4 Oct 2017 17:34:27 +0000 (17:34 +0000)]
Fontify untyped function declarations in C Mode correctly.

Also correct two bugs where deleting WS at a BOL could leave an untyped
function declaration unfontified.

* lisp/progmodes/cc-engine.el (c-find-decl-spots): Don't set the flag
"top-level" when we're in a macro.
(c-forward-decl-or-cast-1): Recognize top-level "foo(bar)" or "foo()" in C
Mode as a implicitly typed function declaration.
(c-just-after-func-arglist-p): Don't get confused by "defined (foo)" inside a
macro.  It's not a function plus arglist.

* lisp/progmodes/cc-langs.el (c-cpp-expr-functions-key): New defconst and
defvar.

* lisp/progmodes/cc-mode.el (c-fl-decl-end): After c-forward-declarator, move
over any following parenthesis expression (i.e. parameter list).
(c-change-expand-fl-region): When c-new-END is at a BOL, include that line in
the returned region, to cope with deletions at column 0.

6 years ago* lisp/net/tramp.el (tramp-tramp-file-p): Use `string-match-p'.
Michael Albinus [Wed, 4 Oct 2017 09:48:37 +0000 (11:48 +0200)]
* lisp/net/tramp.el (tramp-tramp-file-p): Use `string-match-p'.

Reported by Clément Pit-Claudel <cpitclaudel@gmail.com>.

6 years agoAvoid crashes on C-g when several threads wait for input
Eli Zaretskii [Wed, 4 Oct 2017 07:27:49 +0000 (10:27 +0300)]
Avoid crashes on C-g when several threads wait for input

* src/thread.h (m_getcjmp): New member of 'struct thread_state'.
(getcjmp): Define to current thread's 'm_getcjmp'.
* src/thread.c (maybe_reacquire_global_lock): Switch to main
thread, since this is called from a SIGINT handler, which always
runs in the context of the main thread.
* src/lisp.h (sys_jmp_buf, sys_setjmp, sys_longjmp): Move the
definitions before thread.h is included, as thread.h now uses
sys_jmp_buf.
* src/keyboard.c (getcjmp): Remove declaration.
(read_char): Don't call maybe_reacquire_global_lock here.
(handle_interrupt): Call maybe_reacquire_global_lock here, if
invoked from the SIGINT handler, to make sure
quit_throw_to_read_char runs with main thread's Lisp bindings and
uses the main thread's jmp_buf buffer.  (Bug#28630)

6 years ago; Spelling fixes
Paul Eggert [Tue, 3 Oct 2017 23:04:30 +0000 (16:04 -0700)]
; Spelling fixes

6 years agoWarn if --without-pop is now the default
Paul Eggert [Tue, 3 Oct 2017 22:42:10 +0000 (15:42 -0700)]
Warn if --without-pop is now the default

* configure.ac (with_pop): Set to no-by-default if defaulting to "no".
Warn about the change if defaulting to "no".  Update URLs.

6 years ago--with-pop is now the default only on MS-Windows
Paul Eggert [Tue, 3 Oct 2017 22:42:10 +0000 (15:42 -0700)]
--with-pop is now the default only on MS-Windows

Problem reported by N. Jackson (Bug#28597).
This improves an earlier suggestion by Robert Pluim (Bug#28597#47).
* INSTALL, configure.ac, etc/NEWS:
Make --with-pop the default only on native MS-Windows.

6 years agoMerge branch 'emacs-26' of git.sv.gnu.org:/srv/git/emacs into emacs-26
Michael Albinus [Tue, 3 Oct 2017 14:08:04 +0000 (16:08 +0200)]
Merge branch 'emacs-26' of git.sv.gnu.org:/srv/git/emacs into emacs-26

6 years agoAdd support for `file-system-info' in Tramp
Michael Albinus [Tue, 3 Oct 2017 14:07:32 +0000 (16:07 +0200)]
Add support for `file-system-info' in Tramp

* lisp/net/tramp.el (tramp-file-name-for-operation):
Add `file-system-info'.

* lisp/net/tramp-adb.el (tramp-adb-handle-file-system-info): New defun.
(tramp-adb-file-name-handler-alist): Use it.

* lisp/net/tramp-gvfs.el (tramp-gvfs-file-system-attributes)
(tramp-gvfs-file-system-attributes-regexp): New defconst.
(tramp-gvfs-handle-file-system-info): New defun.
(tramp-gvfs-file-name-handler-alist): Use it.
(tramp-gvfs-get-directory-attributes): Fix property name.
(tramp-gvfs-get-root-attributes): Support also file system attributes.

* lisp/net/tramp-sh.el (tramp-sh-handle-file-system-info): New defun.
(tramp-sh-file-name-handler-alist): Use it.
(tramp-sh-handle-insert-directory): Insert size information.
(tramp-get-remote-df): New defun.

* lisp/net/tramp-smb.el (tramp-smb-handle-file-system-info): New defun.
(tramp-smb-file-name-handler-alist): Use it.
(tramp-smb-handle-insert-directory): Insert size information.

* test/lisp/net/tramp-tests.el (tramp-test37-file-system-info):
New test.
(tramp-test38-asynchronous-requests)
(tramp-test39-recursive-load, tramp-test40-remote-load-path)
(tramp-test41-unload): Rename.

6 years agoMerge branch 'scratch/flymake-refactor-clean-for-emacs-26' into emacs-26
João Távora [Tue, 3 Oct 2017 13:48:22 +0000 (14:48 +0100)]
Merge branch 'scratch/flymake-refactor-clean-for-emacs-26' into emacs-26

6 years agoStart rewriting Flymake manual
João Távora [Wed, 27 Sep 2017 17:42:02 +0000 (18:42 +0100)]
Start rewriting Flymake manual

Missing the parts pertaining to the new customization API.

* doc/misc/flymake.texi (Overview of Flymake): Rewrite a bit.
(Installing Flymake): Delete most of this.
(Running the syntax check): Mention flymake-start.
(Navigating to error lines): Rewrite.
(Viewing error messages): Commente out.
(Syntax check statuses, Troubleshooting): Rewrite a bit.
(Customizable variables): New section under "Using
Flymake".  Don't mention any proc variables here.
(Configuring Flymake): Delete
(Proc backend): New chapter
(Proc customization variables): New chapter.

* doc/misc/flymake.texi (Overview of Flymake): Rewrite a bit.
(Installing Flymake): Mostly scratch. Flymake comes with Emacs.
(Running the syntax check): Simplify.
(Viewing error messages): Dekete,
(Syntax check statuses): Rewrite.
(Troubleshooting): Simplify.
(Customizable variables): Rewrite.
(Extending Flymake): New chapter, empty for now.
(The legacy Proc backend): New chapter.
(Proc customizable variables)
(Adding support for a new syntax check tool)
(Implementation overview)
(Making a temporary copy)
(Locating a master file)
(Getting the include directories)
(Locating the buildfile)
(Starting the syntax check process)
(Parsing the output)
(Interaction with other modes)
(Example---Configuring a tool called via make)
(Example---Configuring a tool called directly): Rewrite a bit.

6 years agoMinimal tweak as an attempt to future-proof Flymake API
João Távora [Mon, 2 Oct 2017 12:28:18 +0000 (13:28 +0100)]
Minimal tweak as an attempt to future-proof Flymake API

Discussed with Stefan that this should allow Flymake to request more
from backends in the future, while also allowing backends to report
more accurately.

* lisp/progmodes/elisp-mode.el (elisp-flymake-checkdoc)
(elisp-flymake-byte-compile): Adjust to new API.

* lisp/progmodes/flymake-proc.el ()
(flymake-proc-legacy-flymake): Adjust to new API.

* lisp/progmodes/flymake.el (flymake-diagnostic-functions):
Review API again.
(flymake--handle-report): Allow other keys.  Change ACTION to
REPORT-ACTION.

6 years agoIntegrate Flymake elisp checkers into elisp-mode.el directly
João Távora [Sun, 1 Oct 2017 14:24:15 +0000 (15:24 +0100)]
Integrate Flymake elisp checkers into elisp-mode.el directly

* lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Use
elisp-flymake-checkdoc and elisp-flymake-byte-compile.
(elisp-flymake--checkdoc-1, elisp-flymake-checkdoc)
(elisp-flymake--byte-compile-done)
(elisp-flymake--byte-compile-process)
(elisp-flymake-byte-compile): Rename from flymake-elisp
counterparts in deleted flymake-elisp.el
(elisp-flymake--batch-compile-for-flymake): New helper.
(checkdoc-create-error-function)
(checkdoc-autofix-flag)
(checkdoc-generate-compile-warnings-flag)
(checkdoc-diagnostic-buffer): Forward declare.

* lisp/progmodes/flymake-elisp.el: Delete.

6 years agoHook Flymake onto proper checkdoc and byte-compile interfaces
João Távora [Sun, 1 Oct 2017 12:30:38 +0000 (13:30 +0100)]
Hook Flymake onto proper checkdoc and byte-compile interfaces

The interfaces in bytecomp.el and checkdoc.el are mostly boilerplate,
with little knowledge of actual internals or thought given to the
usefulness of said interfaces in contexts other than Flymake's.

* lisp/emacs-lisp/bytecomp.el
(byte-compile-log-warning-function): New variable.
(byte-compile-log-warning): Use it.
(byte-compile--log-warning-for-byte-compile): New function.

* lisp/emacs-lisp/checkdoc.el
(checkdoc-create-error-function): New variable.
(checkdoc-create-error): Use it.
(checkdoc--create-error-for-checkdoc): New function.xo

* lisp/progmodes/flymake-elisp.el (flymake-elisp--checkdoc-1):
Use checkdoc-create-error-function.
(flymake-elisp--batch-byte-compile): Use
byte-compile-log-warning-function.

6 years agoTweak Flymake autoloads and dependencies
João Távora [Sun, 1 Oct 2017 00:24:31 +0000 (01:24 +0100)]
Tweak Flymake autoloads and dependencies

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

* lisp/progmodes/flymake-elisp.el[top]: Don't add to
emacs-lisp-mode-hook.  Don't call flymake-elisp-setup-backends in
every buffer.  (flymake-elisp-checkdoc) (flymake-elisp-byte-compile):
Autoload.  (flymake-elisp-setup-backends): Remove.

* lisp/progmodes/flymake.el: Add some top-level comments.
(flymake-make-diagnostic)
(flymake-mode, flymake-mode-on, flymake-mode-off): Add autoloads

Where to fixup this shit?

6 years agoCapitalize "Flymake" in docstrings and comments
João Távora [Sat, 30 Sep 2017 17:04:45 +0000 (18:04 +0100)]
Capitalize "Flymake" in docstrings and comments

* lisp/progmodes/flymake-elisp.el (flymake-elisp-checkdoc)
(flymake-elisp-setup-backends): Capitalize "Flymake"

* lisp/progmodes/flymake-proc.el:
(flymake-proc-reformat-err-line-patterns-from-compile-el)
(flymake-proc--panic, flymake-proc-legacy-flymake)
(flymake-start-syntax-check, flymake-proc-compile)
(define-obsolete-variable-alias): Capitalize "Flymake"

* lisp/progmodes/flymake.el (flymake-fringe-indicator-position)
(flymake-make-diagnostic, flymake-delete-own-overlays)
(flymake-diagnostic-functions)
(flymake-diagnostic-types-alist, flymake-is-running)
(flymake-make-report-fn, flymake-mode-on, flymake-mode-off)
(flymake-goto-next-error, flymake-goto-prev-error): Capitalize "Flymake"

6 years agoFlymake backends can report multiple times per check
João Távora [Sat, 30 Sep 2017 16:32:53 +0000 (17:32 +0100)]
Flymake backends can report multiple times per check

Rewrote a significant part of the Flymake backend API.  Flymake now
ignores the return value of backend functions: a function can either
returns or errors.  If it doesn't error, a backend is no longer
constrained to call REPORT-FN exactly once.  It may do so any number
of times, cumulatively reporting diagnostics.  Flymake keeps track of
outdated REPORT-FN instances and disconsiders obsolete reports.
Backends should avoid reporting obsolete data by cancelling any
ongoing processing at every renewed call to the backend function.

Consolidated flymake.el internal data structures to require less
buffer-local variables.  Adjusted Flymake's mode-line indicator to the
new semantics.

Adapted and simplified the implementation of elisp and legacy
backends, fixing potential race conditions when calling backends in
rapid succession.

Added a new test for a backend that calls REPORT-FN multiple
times.  Simplify test infrastructure.

* lisp/progmodes/flymake-elisp.el (flymake-elisp-checkdoc)
(flymake-elisp-byte-compile): Error instead of returning nil
if not in emacs-lisp-mode.
(flymake-elisp--byte-compile-process): New buffer-local variable.
(flymake-elisp-byte-compile): Mark (and kill) previous process
obsolete process before starting a new one.  Don't report if
obsolete process.

* lisp/progmodes/flymake-proc.el
(flymake-proc--current-process): New buffer-local variable.
(flymake-proc--processes): Remove.
(flymake-proc--process-filter): Don't bind
flymake-proc--report-fn.
(flymake-proc--process-sentinel): Rewrite.  Don't report if
obsolete process.
(flymake-proc-legacy-flymake): Rewrite.  Mark (and kill)
previous process obsolete process before starting a new
one.  Integrate flymake-proc--start-syntax-check-process
helper.
(flymake-proc--start-syntax-check-process): Delete.
(flymake-proc-stop-all-syntax-checks): Don't use
flymake-proc--processes, iterate buffers.
(flymake-proc-compile):

* lisp/progmodes/flymake.el (subr-x): Require it
explicitly.
(flymake-diagnostic-functions): Reword docstring.
(flymake--running-backends, flymake--disabled-backends)
(flymake--diagnostics-table): Delete.
(flymake--backend-state): New buffer-local variable and new defstruct.
(flymake--with-backend-state, flymake--collect)
(flymake-running-backends, flymake-disabled-backends)
(flymake-reporting-backends): New helpers.
(flymake-is-running): Use flymake-running-backends.
(flymake--handle-report): Rewrite.
(flymake-make-report-fn): Ensure REPORT-FN runs in the correct
buffer or not at all.
(flymake--disable-backend, flymake--run-backend): Rewrite.
(flymake-start): Rewrite.
(flymake-mode): Set flymake--backend-state.
(flymake--mode-line-format): Rewrite.

* test/lisp/progmodes/flymake-tests.el
(flymake-tests--wait-for-backends): New helper.
(flymake-tests--call-with-fixture): Use it.
(included-c-header-files): Fix whitespace.
(flymake-tests--diagnose-words): New helper.
(dummy-backends): Rewrite for new semantics.  Use cl-letf.
(flymake-tests--assert-set): Use quote.
(recurrent-backend): New test.

6 years agoFlymake uses proper idle timers
João Távora [Sat, 30 Sep 2017 09:45:48 +0000 (10:45 +0100)]
Flymake uses proper idle timers

Also, flymake-no-changes-timeout can be set to nil to disable
automatic periodic checks.  But even in that situation the idle timer
still runs at a reduced rate to detect changes in the variable and
revert that decision.

* lisp/progmodes/flymake.el (flymake-no-changes-timeout): Improve doc.
(flymake-last-change-time): Delete.
(flymake--schedule-timer-maybe): New helper.
(flymake-after-change-function): Use it.
(flymake-on-timer-event): Delete
(flymake-mode): Don't scheduler timer.

6 years agoFlymake variable flymake-diagnostic-functions now a special hook
João Távora [Fri, 29 Sep 2017 11:18:30 +0000 (12:18 +0100)]
Flymake variable flymake-diagnostic-functions now a special hook

* lisp/progmodes/flymake-proc.el: Use add-hook to affect
flymake-diagnostic-functions.

* lisp/progmodes/flymake-elisp.el
(flymake-elisp-setup-backends): Use add-hook.

* lisp/progmodes/flymake.el (flymake-diagnostic-functions):
Revise docstring.
(flymake-start): Use run-hook-wrapped.