Paul Eggert [Fri, 3 Nov 2017 04:01:44 +0000 (21:01 -0700)]
Merge from origin/emacs-26
460fe4a1bc ; Doc fixes 41adf3281e Avoid duplicate calls to xfree for the same pointer 3e7ebbe1bd Don't clobber docstrings of explicitly-defined mode hook v... 9c8fe0248b Avoid fullscreen ediff control frames by default (Bug#29026) 7d32176acc Fix the bug#24034 change (revno 9eb028f) causing infloop (... ee493663ba Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/e... ca5eb0d0b7 Fix a typo in the ELisp manual d10c9479ca Fix doc and doc-strings for minibuffer window related func... 18331d00da Fix "Args out of range" error in c-determine-limit. Fixes... edde35e6f8 * lisp/progmodes/perl-mode.el: Fix electric indentation wi... 056587c45f Extend mhtml submode region when in comment 4c4ad80848 Fix mthml submode lighting at end of buffer 557e252aa2 Remember more variables in mhtml-mode 336cd0a11a ; * lisp/select.el (select-enable-primary): Add missing pe... 134099bc90 ; * etc/NEWS (EUDC): Mark as not requiring documentation. 1a340274bf * etc/NEWS (EUDC): Deprecate BBDB 2.x backward compatibility. 4189d0ef7b Fix minibuffer window related docs and strings (Bug#28978) 2ebdde6e9c Add ChkTeX flymake backend for latex-mode 5b59841791 Fix doc typos 82a16c547b Fix some duplicate word typos 266888b1d7 * doc/lispref/commands.texi (Adjusting Point): Fix wording... 00c3c6d88d Avoid segfaults in 64-bit Windows builds a8e6741066 Fix conversion of pixel coordinates to buffer position d43b486f6c Fix doc strings in desktop.el 9102fb603e Add Index to ERT manual 68182a4710 Make manuals and NEWS consistent 451823b0e5 Don't allow (minibuffer-window-active-p nil) to return t cc8f72ca22 Clarify obsolescence message for 'whitespace-tab' 50f711e7fa Fix some duplicate words typos 8bd9524a7c * lisp/button.el (button-activate): Fix doc typo. 0b0d91e60a * lisp/calendar/todo-mode.el (todo-toggle-mark-item): Fix ... e6b4e5ffdf Fix some doc typos e8636ac8cc Fix startup display on Cygwin 3926c5ad83 * src/fileio.c (Fset_default_file_modes): Fix typo in doc ... 9715317dfd * lisp/dired.el (dired-find-alternate-file): Doc fix. (Bu... 9e442a001a Improve documentation of how faces are applied to display ... 1bda71ec3b Improve pixel-scroll-mode 196106d37d Support Certification Authority Authorization in dns-mode.el ec08d70b4f Improve documentation of set-default-file-modes
Paul Eggert [Fri, 3 Nov 2017 04:01:04 +0000 (21:01 -0700)]
Merge from origin/emacs-26
7f089aa5f6 Require seq in rmc.el 53aaad1dfc Make an example code introduced in the Gnus info work (bug... 7b29db222f Enable gnus-read-ephemeral-* to run multiple times (bug#29... 015f0bb2d8 Port thread.c to OpenBSD ARM ad68bbd0da Fix another "wrong side of point" error in CC Mode. 646e56e150 Fix Bug#28959 685fd77959 Fix duplicate .o file on QNX e562356c3f Fix two js indentation problems b8cf159bbc Update documentation for windows build 46540a1c7a Fix a "wrong side of point" error in CC Mode. Fixes bug #... 57ca409111 Fix autoload of flymake from elisp-mode during bootstrap (... aee0bc8775 Fix non-native fullscreen on NS (bug#28872) d6c1a9cb8a ; Fix author email address in test/lisp/url/url-tramp-test... 761c630766 Fix Bug#28982 628b653209 Fix windows build errors e8a06a5f9a Fix compile warning for non-w32 builds 0c536a20fb Display commit in package description, if available (Bug#2... 1d83257a1d Port to QNX 19667f44ef * configure.ac: Tweak libcurses diagnostic. 3fc05cfaec Scripts to automate windows binary distribution 928a106939 Fix Edebug specs for map-let and with-maps-do 46f2ee0d4c * test/lisp/net/tramp-tests.el (tramp-test41-delay-load): ... b51009d7f0 * admin/authors.el (authors-canonical-author-name): Ignore... a015db90e3 * test/lisp/progmodes/sql-tests.el (sql-tests-postgres-lis... 529a9c09d3 Further work on Bug#28889 c6deabaf4d Improve Tramp backward compatibility 8093e82e42 Improve backward compatibility of tramp-tests.el 46cdc01daa Fix some ‘window-normalize-’ prefixed functions (Bug#28947) 6360611457 Port to OpenIndiana a012ec766c Don't fill keywords after Emacs Lisp docstring b7c4aa951c Refactor c-forward-token-2 with new function c-forward-ove... 3aee7be62e Avoid unnecessary rounding errors in timestamps 2bfa42855b Fix xdg timestamp error on 32-bit Emacs 237e96bc52 Test that advice doesn't trigger bytecomp warnings (Bug#28... d719ea6ad5 Another fix for unsafe directory error message (Bug#865) b060e091c3 Handle https url for debbugs mbox (Bug#28831) 9e4265ef91 Ignore string properties when saving eshell history (Bug#2... 0f286ca85a Fix Bug#28889
Stefan Monnier [Fri, 3 Nov 2017 03:52:06 +0000 (23:52 -0400)]
* lisp/gnus/gnus.el: Use lexical-binding and cl-lib
Remove unneeded use of `eval-when' for gnus-splash hack.
(gnus-find-subscribed-addresses): Don't use `add-to-list' with local var.
(gnus-info-buffer): Declare var.
(gnus-interactive): Remove unused arg `params'.
(gnus-symbolic-argument): Remove unused arg `arg`.
(gnus-sloppily-equal-method-parameters): Use \' to match end of string.
(gnus-short-group-name): Remove unused var `name'.
Sam Steingold [Thu, 2 Nov 2017 14:48:38 +0000 (10:48 -0400)]
make all related faces inherit from each other
* lisp/gnus/gnus.el (gnus-group-A-B): Inherit from `gnus-group-A-B-empty',
where "A" is "mail" and "news" and "B" is "1".."6" and "low".
(gnus-summary-high-A, gnus-summary-low-A): Inherit from
`gnus-summary-normal-A', where "A" is "ticked", "ancient",
"undownloaded", "unread", "read".
Sam Steingold [Wed, 1 Nov 2017 23:13:46 +0000 (19:13 -0400)]
Fix Bug#11728: show files updated by git
* lisp/vc/vc-git.el (vc-git--pushpull): Accept extra-args and set
`compilation-error-regexp-alist' to `vc-git-error-regexp-alist'.
(vc-git-pull): Pass "--stat" as `extra-args' to `vc-git--pushpull'.
(vc-git-push): Pass "" as `extra-args' to `vc-git--pushpull'.
Sam Steingold [Wed, 1 Nov 2017 13:36:41 +0000 (09:36 -0400)]
User can specify files never subject to flymake.
* lisp/progmodes/flymake-proc.el (flymake-proc-ignored-file-name-regexps):
Add user customization option.
(flymake-proc--get-file-name-mode-and-masks): Check it before
`flymake-proc-allowed-file-name-masks'.
Sam Steingold [Tue, 31 Oct 2017 21:01:39 +0000 (17:01 -0400)]
The user can now specify the time stamp format.
* lisp/textmodes/remember.el (remember-time-format): New user variable.
(remember-append-to-file): Pass it to `format-time-string' instead of
calling `current-time-string'.
Sam Steingold [Tue, 31 Oct 2017 19:33:40 +0000 (15:33 -0400)]
Highlight CL `with-' (context) and `do-' (iteration)
* lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2):
Highlight the Common Lisp conventional names as described in
http://www.cliki.net/Naming+conventions.
(lisp-el-font-lock-keywords-2): Remove the already commented out
code for `do-' and `with-' because Emacs Lisp does not have a similar
convention.
Sam Steingold [Tue, 31 Oct 2017 19:20:51 +0000 (15:20 -0400)]
Highlight uninterned symbols.
* lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2):
Highlight uninterned symbols, often used as string designators to
avoid namespace pollution (https://stackoverflow.com/a/46981940/850781).
Phil Sainty [Mon, 16 Oct 2017 10:38:42 +0000 (23:38 +1300)]
Don't clobber docstrings of explicitly-defined mode hook variables
* lisp/emacs-lisp/derived.el (define-derived-mode):
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode): When defining the
mode hook variable, do not clobber pre-existing docstrings.
Stefan Monnier [Tue, 31 Oct 2017 03:54:19 +0000 (23:54 -0400)]
* lisp/progmodes/ebnf2ps.el: Use lexical-binding; fix warnings
(ebnf-eps-executing): Declare var.
(ebnf-eps-string): Clarify regexp; don't use string-as-unibyte since we're
manipulating chars rather than bytes.
(ebnf-tree): Move declaration before first use.
(ebnf-generate-eps, ebnf-generate): Don't use dyn-var as argument.
(ebnf-generate-eps): Use cl-letf and unwind-protect.
(ebnf-eps-production-list): Get a ref rather than a symbol.
(ebnf-generate-eps): Adjust call accordingly.
Stefan Monnier [Mon, 30 Oct 2017 18:15:00 +0000 (14:15 -0400)]
* lisp/net/newst-backend.el: Use lexical scoping and fix warnings
(newsticker-stop, newsticker-get-all-news)
(newsticker--decode-rfc822-date, newsticker--lists-intersect-p)
(newsticker--update-process-ids, newsticker--cache-read)
(newsticker-opml-export, newsticker--run-auto-mark-filter)
(newsticker--do-run-auto-mark-filter): Use dolist.
(newsticker--insert-bytes): New function, to avoid string-to-multibyte.
(newsticker--get-news-by-funcall, newsticker--get-news-by-url-callback)
(newsticker--image-download-by-url-callback): Use it.
(newsticker--parse-rss-0.91, newsticker--parse-rss-0.92):
Remove unused var `pub-date`.
(newsticker--parse-generic-feed): Remove unused var `old-item`.
(newsticker--parse-generic-items): Use dolist and let rather than mapc
and setq.
(newsticker--image-download-by-url-callback): Simplify boolean expression.
Alan Mackenzie [Mon, 30 Oct 2017 17:33:03 +0000 (17:33 +0000)]
Fix "Args out of range" error in c-determine-limit. Fixes bug #28598.
* lisp/progmodes/cc-engine.el (c-determine-limit-get-base): If the candidate
position for BASE is below point-min, scan forward to the end of the current
literal.
(c-determine-limit): Add an extra arm to the final cond form, testing for BASE
being at point-min.
Mark Oteiza [Sun, 29 Oct 2017 00:32:50 +0000 (20:32 -0400)]
Add ChkTeX flymake backend for latex-mode
* lisp/textmodes/tex-mode.el (tex-flymake): New custom group.
(tex-chktex-program, tex-chktex-extra-flags): New custom variables.
(latex-mode): Add backend to flymake-diagnostic-functions.
(tex-chktex--process): New variable.
(tex-chktex-command, tex-chktex): New functions.
Eli Zaretskii [Sat, 28 Oct 2017 16:39:48 +0000 (19:39 +0300)]
Avoid segfaults in 64-bit Windows builds
* src/lisp.h (COMMON_MULTIPLE): Move here from alloc.c.
* src/thread.c (THREAD_ALIGNMENT): New macro.
(main_thread): Use THREAD_ALIGNMENT to align propertly. (Bug#29040)
Paul Pogonyshev [Sat, 28 Oct 2017 10:46:36 +0000 (13:46 +0300)]
Add 'ert-quiet' variable
* lisp/emacs-lisp/ert.el (ert-quiet): New variable.
(ert-run-tests-batch): When 'ert-quiet' is non-nil, don't
print non-important information. (Bug#29025)
* doc/misc/ert.texi (Running Tests in Batch Mode): Document it.
Eli Zaretskii [Fri, 27 Oct 2017 14:43:21 +0000 (17:43 +0300)]
Improve documentation of how faces are applied to display stings
* doc/lispref/display.texi (Displaying Faces): Describe how the
faces of the "underlying" text affect overlay and display strings.
(Display Margins): Add a cross-reference to "Displaying Faces".
Tak Kunihiro [Fri, 27 Oct 2017 14:17:42 +0000 (17:17 +0300)]
Improve pixel-scroll-mode
Scroll vertically by number of pixels returned by
'frame-char-height' with or without horizontally scrolled.
(Bug#28922)
* lisp/pixel-scroll.el (pixel-resolution-fine-flag): When t, scroll
by number of pixels returned by 'frame-char-height'.
(pixel-scroll-up): Scroll by 'frame-char-height'. Fix algorithm to
move cursor to avoid unexpected jump.
(pixel-scroll-down): Scroll by 'frame-char-height'.
(pixel-bob-at-top-p): Consider number of pixels that is about to
scroll.
(pixel-posn-y-at-point): Consider existence of an overlay string.
Return nil when horizontally scrolled.
(pixel-point-at-top-p): Consider number of pixels that is about to
scroll. Use different algorithm when horizontally scrolled.
(pixel-point-at-bottom-p): Consider number of pixels that is about
to scroll. Return nil when horizontally scrolled.
(pixel-scroll-pixel-down): Move cursor when horizontally scrolled.
(pixel--whistlestop-line-up): Change cosmetics and move cursor when
horizontally scrolled.
(pixel-line-height): Call 'pixel-visual-line-height' instead of
'line-pixel-height'.
(pixel-visual-line-height): New function to return height in pixels
of text line where cursor is with or without horizontally scrolled,
considering response of display engine.
(pixel-visible-pos-in-window): New function to return position of
a char shown on text line where cursor is on screen with or without
horizontally scrolled.
Stefan Monnier [Fri, 27 Oct 2017 02:15:41 +0000 (22:15 -0400)]
* lisp/vc/ediff-wind.el: Don't pop spurious frame in corner case
(ediff-setup-windows-multiframe-compare): Clarify control-flow.
Postpone the initial call to ediff-skip-unsuitable-frames until we're
sure it's needed to avoid creating a spurious new frame.
(ediff-setup-windows, ediff-setup-windows-plain)
(ediff-setup-windows-plain-merge, ediff-setup-control-frame)
(ediff-setup-windows-plain-compare, ediff-setup-windows-multiframe)
(ediff-setup-windows-multiframe-merge): Use with-current-buffer.
Katsumi Yamaoka [Fri, 27 Oct 2017 01:13:25 +0000 (01:13 +0000)]
Enable gnus-read-ephemeral-* to run multiple times (bug#29008)
NOTE: *DO NOT* merge this change to the trunk.
* lisp/gnus/gnus-group.el (gnus-read-ephemeral-gmane-group)
(gnus-read-ephemeral-bug-group): Make it work for any number of times
for the case `url-automatic-caching' is set (bug#29008).
* lisp/svg.el (svg--encode-text): The SVG driver doesn't like
it if we use ' for apostrophe, so use our own encoding
function instead of relying on the xml one.
Anders Lindgren [Thu, 26 Oct 2017 19:31:13 +0000 (21:31 +0200)]
New package, `faceup'
`faceup' is a framework for regression testing of font-lock
keywords in ert. It is based on a human-readable markup
language. (Bug#16063 and bug#28311).
Alan Mackenzie [Thu, 26 Oct 2017 18:29:39 +0000 (18:29 +0000)]
Fix another "wrong side of point" error in CC Mode.
This fixes (a follow-up to) bug #28850.
A internal generated form for scanning text to fontify had a LIMIT parameter.
It also locally bound LIMIT to a value possibly beyond the original LIMIT,
allowing point to move beyond the original LIMIT, and to create the wrong side
error. Fix it by checking point is not beyond LIMIT in the outer context
before using it.
* lisp/progmodes/cc-fonts.el (c-make-font-lock-search-form): Add a new
parameter CHECK-POINT which, when non-nil, directs the function to generate a
check on point.
(c-make-font-lock-context-search-function): Invoke the above function with new
argument value t.
Michael Albinus [Thu, 26 Oct 2017 14:24:28 +0000 (16:24 +0200)]
Fix Bug#28959
* lisp/net/tramp.el (tramp-handle-find-backup-file-name):
Use `tramp-tramp-file-p' rather than `tramp-file-name-p'. Add
hop to backup file name. (Bug#28959)
Paul Eggert [Thu, 26 Oct 2017 03:47:48 +0000 (20:47 -0700)]
Fix duplicate .o file on QNX
* configure.ac (CYGWIN_OBJ): Leave empty on QNX.
Problem reported by Elad Lahav in:
https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00750.html
Dmitry Gutov [Wed, 25 Oct 2017 23:43:33 +0000 (02:43 +0300)]
Fix two js indentation problems
Fix intentation problems reported in
https://github.com/mooz/js2-mode/issues/463.
* lisp/progmodes/js.el (js--continued-expression-p):
Check syntax state after /.
(js--multi-line-declaration-indentation):
Check syntax state before "const".
Alan Mackenzie [Wed, 25 Oct 2017 18:14:00 +0000 (18:14 +0000)]
Fix a "wrong side of point" error in CC Mode. Fixes bug #28850.
The cause was a scanning over a bracket pair taking us beyond the supplied
LIMIT parameter in c-forward-declarator.
* lisp/progmodes/cc-engine.el (c-forward-declarator): Add three checks (<
(point) limit) whilst dealing with tokens after the declared identifier.
* lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Don't supply a LIMIT
argument to `c-forward-declarator' (twice), since we want to fontify up till
the end of a declarator, not an arbitrary jit-lock chunk end.
Stefan Monnier [Wed, 25 Oct 2017 16:31:40 +0000 (12:31 -0400)]
Fix autoload of flymake from elisp-mode during bootstrap (bug#28994)
* lisp/loadup.el: add `progmodes` to load-path so we can find flymake.el.
* lisp/kmacro.el: Require `replace` since we use query-replace-map.
* lisp/replace.el: Require `text-mode` since we use text-mode-map.
Noam Postavsky [Tue, 24 Oct 2017 23:19:37 +0000 (19:19 -0400)]
Fix compile warning for non-w32 builds
Since 2017-07-25 "ls-lisp: Add an unload function and enable lexical
binding", the non-w32 builds would treat the undeclared
w32-collate-ignore-punctuation variable as lexical.
* lisp/ls-lisp.el (top-level): Declare it as a dynamic variable.
David Glasser [Tue, 10 Oct 2017 22:46:53 +0000 (15:46 -0700)]
Display commit in package description, if available (Bug#28637)
MELPA includes a :commit field in its
packages (https://github.com/melpa/package-build/pull/6). You can use
this to tell if MELPA has processed a recently-merged change. This
commit adds that metadata to the package description buffer.
* lisp/emacs-lisp/package.el: Display commit in package description.
Paul Eggert [Tue, 24 Oct 2017 19:54:28 +0000 (12:54 -0700)]
Port to QNX
Simplified version of a patch proposed by Elad Lahav in:
https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00716.html
which is based on a previous patch I proposed in:
https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00707.html
* configure.ac (opsys, CFLAGS, LIBS_SYSTEM, hybrid_malloc)
(system_alloc, FIRST_PTY_LETTER, CYGWIN_OBJ):
Set appropriately for QNX.
* src/unexelf.c [__QNX__]: Include <sys/elf.h> instead of <elf.h>.
(unexec): Check for sbrk failure, and fall back on old BSS end.
Gemini Lasswell [Mon, 16 Oct 2017 15:30:51 +0000 (08:30 -0700)]
Make Snake, Tetris and Pong adjust to display DPI
Replace gamegrid's constant 16x16 glyph with a generated one based
on display dimensions (bug#24658).
* lisp/play/gamegrid.el (gamegrid-glyph-height-mm): New variable.
(gamegrid-glyph-height): Deleted.
(gamegrid-xpm, gamegrid-xbm): Constants replaced with functions.
(gamegrid-colorize-glyph): Use new functions instead of constants.
(gamegrid-calculate-glyph-size, gamegrid-insert-xbm-bits): New
functions.
Martin Rudalics [Mon, 23 Oct 2017 07:53:41 +0000 (09:53 +0200)]
Fix some ‘window-normalize-’ prefixed functions (Bug#28947)
* lisp/window.el (window-normalize-buffer): Fix case where
BUFFER-OR-NAME is a string specifying a dead buffer. Fix
doc-string (Bug#28947).
(window-normalize-frame, window-normalize-window): Fix
doc-strings (Bug#28947).
Paul Eggert [Mon, 23 Oct 2017 05:44:42 +0000 (22:44 -0700)]
Port to OpenIndiana
Problem reported by Nelson H. F. Beebe (Bug#28893).
Also see Bug#23748, Bug#9736, and Bug#5735.
* configure.ac (tputs_library): Prefer libcurses to libtermcap,
since OpenIndiana libtermcap lacks tparm.
This approach does mean that keywords that have spaces before them
inside of docstrings aren't filled, but I think this is should be fine
until Bug#28937 is fixed.
* lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Add a colon to
paragraph-start unconditionally, but require that it follows at least
one space. (Bug#24622)
* test/lisp/emacs-lisp/lisp-tests.el: New tests for Bug#24622 and
Bug#7751.
Gemini Lasswell [Sat, 14 Oct 2017 16:13:36 +0000 (09:13 -0700)]
Change Edebug's behavior-changing hooks to variables
* lisp/emacs-lisp/edebug.el (edebug-after-instrumentation-functions)
(edebug-new-definition-functions): Deleted.
(edebug-after-instrumentation-function)
(edebug-new-definition-function): New variables.
(edebug-behavior-alist): Update docstring.
(edebug-read-and-maybe-wrap-form1, edebug-make-form-wrapper): Use new
variables.
* lisp/emacs-lisp/testcover.el (testcover-start)
(testcover-this-defun): Use `edebug-after-instrumentation-function' and
`edebug-new-definition-function'.
(testcover-after-instrumentation): Return passed form.
(testcover-init-definition): Use argument instead of `edebug-def-name'.
* doc/lispref/edebug.texi (Edebug Options): Replace descriptions of
`edebug-after-instrumentation-functions' and `edebug-new-definition-functions'
with `edebug-after-instrumentation-function' and
`edebug-new-definition-function'.