Paul Eggert [Mon, 20 Jan 2020 09:08:42 +0000 (01:08 -0800)]
Work better if stat etc. are interrupted
Quit or retry if fstat, lstat, stat or openat fail with EINTR.
This should fix some bugs on platforms where accessing files via
NFS can fail that way (Bug#9256).
* src/dired.c (file_attributes):
* src/fileio.c (file_directory_p) [O_PATH]:
Use emacs_openat instead of openat.
* src/dired.c (file_attributes): Use emacs_fstatat instead of fstatat.
* src/fileio.c (barf_or_query_if_file_exists, Frename_file):
* src/filelock.c (rename_lock_file):
Use emacs_fstatat instead of lstat.
* src/fileio.c (file_directory_p, Ffile_regular_p, Ffile_modes)
(Ffile_newer_than_file_p, Fverify_visited_file_modtime)
(Fset_visited_file_modtime, auto_save_1):
* src/lread.c (Fload):
* src/sysdep.c (get_current_dir_name_or_unreachable):
Use emacs_fstatat instead of stat.
* src/sysdep.c (emacs_fstatat, emacs_openat): New functions.
(emacs_open): Redo in terms of emacs_open.
Paul Eggert [Mon, 20 Jan 2020 07:40:45 +0000 (23:40 -0800)]
Fix drag and drop from some Qt versions
* lisp/x-dnd.el (x-dnd-handle-xdnd): Fix XdndDrop time stamp bug.
Problem and tiny change reported by Urs Fleisch (Bug#20804).
Copyright-paperwork-exempt: yes
Stefan Monnier [Sun, 19 Jan 2020 22:10:57 +0000 (17:10 -0500)]
* lisp/international/mule-cmds.el (universal-coding-system-argument): Rewrite
Use the new `prefix-command-*` hooks and functions so it interacts
better with other prefix commands (and with itself), and so the
pre/post-command-hook and other command-loop operations are performed
"normally".
(mule-cmds--prefixed-command-next-coding-system)
(mule-cmds--prefixed-command-last-coding-system): New vars.
(mule-cmds--prefixed-command-pch, mule-cmds--prefixed-command-echo)
(mule-cmds--prefixed-command-preserve): New functions.
Stefan Kangas [Sun, 19 Jan 2020 14:58:06 +0000 (15:58 +0100)]
Improve error handling in dired-change-marks
* lisp/dired.el (dired-change-marks): Signal user-error if mark
character is invalid. Catch more invalid characters. (Bug#29842)
Stefan Kangas [Sun, 19 Jan 2020 14:43:46 +0000 (15:43 +0100)]
Make arguments to dired-chage-marks non-optional
* lisp/dired.el (dired-change-marks): Make arguments
non-optional. (Bug#29842)
Michael Albinus [Sun, 19 Jan 2020 13:11:25 +0000 (14:11 +0100)]
; * etc/NEWS: Fix typos.
Michael Albinus [Sun, 19 Jan 2020 13:11:07 +0000 (14:11 +0100)]
Sync with Tramp 2.5.0-pre
* doc/misc/tramp.texi: Protext Tramp x.y and Emacs x.y by @w{}.
(GVFS-based methods): Move "GNOME Online Accounts" index.
(Customizing Methods, Android shell setup, File name completion)
(Frequently Asked Questions): Fix typos.
* doc/misc/trampver.texi: Change version to "2.5.0-pre".
* lisp/net/trampver.el: Change version to "2.5.0-pre".
(inhibit-message): Don't declare.
* lisp/net/tramp.el: Bump version to 2.5.0-pre. Require Emacs 25.1.
(tramp-debug-message): Simplify.
(tramp-message): Don't use `tramp-message-show-message'.
(tramp-with-demoted-errors, with-parsed-tramp-file-name)
(with-tramp-file-property, with-tramp-connection-property):
Adapt `declare' form.
(with-tramp-progress-reporter): Suppress progress reporter when
noninteractive.
(tramp-completion-mode, tramp-completion-mode-p): Remove.
* lisp/net/tramp-compat.el (tramp-compat-process-running-p)
(format-message): Remove compatibility code.
(tramp-compat-directory-name-p)
(tramp-compat-tramp-file-name-slots): Remove.
* lisp/net/tramp.el (tramp-debug-message, tramp-message)
(tramp-backtrace, tramp-error, tramp-error-with-buffer)
(tramp-user-error, tramp-with-demoted-errors)
(tramp-signal-hook-function):
* lisp/net/tramp-compat.el (tramp-compat-funcall)
* lisp/net/tramp-gvfs.el (tramp-dbus-function):
Add `tramp-suppress-trace' property.
* lisp/net/tramp.el (tramp-get-method-parameter)
(tramp-dissect-file-name, tramp-error, tramp-error-with-buffer)
(tramp-user-error, with-parsed-tramp-file-name)
(with-tramp-progress-reporter, tramp-file-name-handler)
(tramp-completion-file-name-handler, tramp-autoload-file-name-handler)
(tramp-register-file-name-handlers, tramp-connectable-p)
(tramp-handle-file-modes, tramp-handle-file-regular-p)
(tramp-handle-file-truename, tramp-handle-insert-directory)
(tramp-handle-load, tramp-set-file-uid-gid):
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler)
(tramp-adb-handle-file-truename, tramp-adb-handle-copy-file)
(tramp-adb-handle-rename-file):
* lisp/net/tramp-archive.el (with-parsed-tramp-archive-file-name):
* lisp/net/tramp-cache.el (tramp-get-file-property, tramp-cache-print):
* lisp/net/tramp-compat.el (tramp-compat-process-running-p)
(tramp-compat-exec-path):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler)
(tramp-gvfs-dbus-byte-array-to-string)
(tramp-gvfs-do-copy-or-rename-file):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler)
(tramp-rclone-do-copy-or-rename-file):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-truename)
(tramp-sh-handle-copy-directory, tramp-do-copy-or-rename-file)
(tramp-sh-handle-insert-directory, tramp-sh-file-name-handler)
(tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler)
(tramp-smb-handle-copy-file, tramp-smb-handle-copy-directory)
(tramp-smb-handle-copy-file, tramp-smb-handle-insert-directory)
(tramp-smb-handle-rename-file, tramp-smb-maybe-open-connection):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler)
(tramp-sudoedit-do-copy-or-rename-file)
(tramp-sudoedit-handle-file-truename):
Use `if-let', `when-let', `directory-name-p', `inhibit-message',
`non-essential and `cl-struct-slot-info'. Don't use `seconds-to-time'.
* test/lisp/net/tramp-archive-tests.el (tramp-message-show-message):
Don't set.
* test/lisp/net/tramp-tests.el (inhibit-message): Don't declare.
(tramp-message-show-message): Don't set.
(tramp-test06-directory-file-name): Use `non-essential'.
(tramp-test10-write-region): Use `inhibit-message'.
(tramp-test36-vc-registered): No special handling for old Emacsen.
(tramp--test-emacs25-p): Remove.
(tramp-test45-unload): Special case of `tramp-completion-mode'.
Paul Eggert [Sun, 19 Jan 2020 04:54:29 +0000 (20:54 -0800)]
Remove Gnulib putenv code
It’s not needed, since Emacs always uses the system putenv and all
platforms have putenv. This improves on the fix for Bug#19874.
Suggested by Bruno Haible.
* admin/merge-gnulib (GNULIB_MODULES): Remove putenv.
* configure.ac: Remove workarounds for Gnulib putenv module.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* lib/putenv.c, m4/putenv.m4: Remove.
Paul Eggert [Sun, 19 Jan 2020 04:34:55 +0000 (20:34 -0800)]
Update from Gnulib
This incorporates:
2020-01-18 Rename ~~gnulib.m4 to zzgnulib.m4
2020-01-18 Fix "m4_require: circular dependency of AC_LANG_COMPILER(C)"
2020-01-18 Ensure Automake does not drop ~~gnulib.m4
2020-01-18 Fix major regression from 2020-01-10
* m4/00gnulib.m4, m4/gnulib-common.m4: Copy from Gnulib.
* m4/gnulib-comp.m4: Regenerate.
* m4/zzgnulib.m4: New file, from Gnulib.
Rüdiger Sonderfeld [Sun, 19 Jan 2020 01:02:28 +0000 (02:02 +0100)]
Add space before messsage in byte compiler warnings
According to the GNU coding standards (info "(standards) Errors"):
> If you want to mention the column number, use one of these formats:
> SOURCE-FILE-NAME:LINENO:COLUMN: MESSAGE
> SOURCE-FILE-NAME:LINENO.COLUMN: MESSAGE
* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-prefix): Add space
before message in byte compiler warnings to comply with the GNU coding
standards. (Bug#18969)
Paul Eggert [Sat, 18 Jan 2020 21:18:27 +0000 (13:18 -0800)]
Don’t assume sizeof (size_t) == 4 in allocators
This removes some old 32-bit assumptions in Emacs allocator tuning,
and improves performance of ‘make compile-always’ by about 7% on a
couple of 64-bit GNU/Linux platforms I tried it on. It should not
affect performance on 32-bit platforms.
* src/alloc.c (MALLOC_SIZE_NEAR): New macro.
(MALLOC_ALIGNMENT): New constant.
(INTERVAL_BLOCK_SIZE, SBLOCK_SIZE, STRING_BLOCK_SIZE): Use the new
macro. Make these enum constants since they need not be macros.
Eric Abrahamsen [Sat, 18 Jan 2020 19:08:11 +0000 (11:08 -0800)]
Ensure that gnus-summary-attach-article finds the right articles
* lisp/gnus/gnus-msg.el (gnus-summary-attach-article): Before
iterating over the articles to attach, first close any open
article. Using `set-buffer' required `gnus-summary-select-article' to
re-set the buffer every time, meaning we never got off the original
article.
Stefan Monnier [Sat, 18 Jan 2020 18:13:21 +0000 (13:13 -0500)]
* src/fns.c (sxhash_obj): Fix crash on sub-char-tables
Also, look inside overlays, like `internal_equal`.
(internal_equal): Cosmetic tweak.
Alan Third [Mon, 30 Dec 2019 16:38:47 +0000 (16:38 +0000)]
Add ability to find ObjC method names
* lisp/progmodes/cc-cmds.el (c-defun-name-1): Add Objective-C method
name ability.
Alan Third [Wed, 1 Jan 2020 11:44:21 +0000 (11:44 +0000)]
Don't error on non-toolkit NS scrollbars (bug#37042)
* configure.ac (HAVE_NS): Don't error, but warn, on non-toolkit
scrollbars.
Stefan Kangas [Sat, 18 Jan 2020 08:15:36 +0000 (09:15 +0100)]
Remove XEmacs and old Emacs compat code from ebnf2ps.el
* lisp/progmodes/ebnf2ps.el (ebnf-color-p)
(ebnf-style-database): Remove XEmacs and old Emacs compat code.
Paul Eggert [Sat, 18 Jan 2020 07:59:52 +0000 (23:59 -0800)]
Make Faset nonrecursive
* src/data.c (Faset): Refactor Faset so that it’s not recursive.
This helps the compiler and makes the code a bit clearer.
Paul Eggert [Sat, 18 Jan 2020 07:59:51 +0000 (23:59 -0800)]
Improve performance when a string's byte count changes
* src/alloc.c (allocate_string_data): Now static.
Remove code for when Faset calls this function when S
already has data assigned, as that can no longer happen.
(resize_string_data): New function, which avoids relocation in
more cases than the old code did, by not bothering to relocate
when the size changes falls within the alignment slop.
* src/data.c (Faset): Use resize_string_data.
Change a while to a do-while since it must iterate at least once.
Stefan Kangas [Sat, 18 Jan 2020 01:59:56 +0000 (02:59 +0100)]
Remove XEmacs compat code from allout.el
* lisp/allout.el (allout-overlay-preparations)
(allout-overlay-interior-modification-handler)
(allout-before-change-handler, allout-beginning-of-line)
(allout-solicit-alternate-bullet, allout-annotate-hidden)
(allout-hide-by-annotation, allout-yank-processing)
(allout-flag-region, allout-toggle-subtree-encryption)
(allout-mark-marker, allout-substring-no-properties)
(allout-select-safe-coding-system)
(allout-previous-single-char-property-change)
(allout-next-single-char-property-change)
(top-level): Remove XEmacs compat code.
Alan Mackenzie [Fri, 17 Jan 2020 21:53:13 +0000 (21:53 +0000)]
Introduce element &error into edebug specification lists for macros
This fixes bug #37540.
* lisp/emacs-lisp/edebug.el (top level): New entry for &error in alist used to
associate elements with their handling functions.
(edebug-match-&error): New function.
(nested-backquote-form): Use the new element &error to abort instrumentation
on encountering a three deep nesting of backquotes (without intervening
commas).
* doc/lispref/edebug.texi (Specification List): Add an entry for &error.
* etc/NEWS: Add an entry for &error.
Glenn Morris [Fri, 17 Jan 2020 15:50:28 +0000 (07:50 -0800)]
Merge from origin/emacs-27
4df0c1c6c4 (origin/emacs-27) ; * src/lread.c (force_new_style_backquo...
069741b2f7 ; * etc/NEWS: Mention latest changes in checkdoc. (Bug#38...
a785be29bf Fix wording and punctuation of a recent commit
0d3d3be35c Merge branch 'emacs-27' of git.savannah.gnu.org:/srv/git/e...
5da372e17e ; Minor edit in anti.texi
# Conflicts:
# etc/NEWS
Glenn Morris [Fri, 17 Jan 2020 15:50:23 +0000 (07:50 -0800)]
; Merge from origin/emacs-27
The following commit was skipped:
6338f69102 Add unattended spell-checking to checkdoc
Glenn Morris [Fri, 17 Jan 2020 15:50:23 +0000 (07:50 -0800)]
Merge from origin/emacs-27
5da372e17e ; Minor edit in anti.texi
Glenn Morris [Fri, 17 Jan 2020 15:50:23 +0000 (07:50 -0800)]
; Merge from origin/emacs-27
The following commit was skipped:
4453acbdc9 Fix the error message from makefile-move-to-macro
Glenn Morris [Fri, 17 Jan 2020 15:50:23 +0000 (07:50 -0800)]
Merge from origin/emacs-27
8d091f7fc2 ; Fix recent markup change
b78426526c ; * lisp/obsolete/vc-arch.el: Add missing "Obsolete-since"...
3fb37dc9a4 ; * lisp/ezimage.el: Fix typo.
778923afe5 Document feature requests in the Emacs manual
Simen Heggestøyl [Fri, 17 Jan 2020 13:51:19 +0000 (14:51 +0100)]
; * src/lread.c (force_new_style_backquotes): Fix reference.
Eli Zaretskii [Fri, 17 Jan 2020 09:47:19 +0000 (11:47 +0200)]
; * etc/NEWS: Mention latest changes in checkdoc. (Bug#38583)
Eli Zaretskii [Fri, 17 Jan 2020 09:35:35 +0000 (11:35 +0200)]
Fix wording and punctuation of a recent commit
* lisp/textmodes/ispell.el (ispell-correct-p): Doc fix.
* lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-init): Fix
capitalization and punctuation of comments.
Eli Zaretskii [Fri, 17 Jan 2020 09:30:55 +0000 (11:30 +0200)]
Merge branch 'emacs-27' of git.savannah.gnu.org:/srv/git/emacs into emacs-27
Damien Cassou [Fri, 27 Dec 2019 14:35:52 +0000 (15:35 +0100)]
Add unattended spell-checking to checkdoc
This commit makes checkdoc capable of spell-checking even when the
user isn't using it interactively. When TAKE-NOTES is non-nil,
checkdoc will run spell-checking (with ispell) and report spelling
mistakes.
Fixes: (bug#38583).
* lisp/textmodes/ispell.el (ispell-word): Extract part of it to
`ispell--run-on-word`.
(ispell--run-on-word): New function, extracted from `ispell-word`.
(ispell-error-checking-word): New function.
(ispell-correct-p): New function. Use `ispell--run-on-word` and
`ispell-error-checking-word`.
* lisp/emacs-lisp/checkdoc.el (checkdoc-current-buffer): Pass
TAKE-NOTES to `checkdoc-start`.
(checkdoc-continue): Pass TAKE-NOTES to `checkdoc-this-string-valid`.
(checkdoc-this-string-valid): Add optional argument TAKE-NOTES and
pass it to `checkdoc-this-string-valid-engine`.
(checkdoc-this-string-valid-engine): Add optional argument TAKE-NOTES
and pass it to `checkdoc-ispell-docstring-engine`.
(checkdoc-ispell-init): Call `ispell-set-spellchecker-params` and
`ispell-accept-buffer-local-defs`. These calls are required to
properly use ispell. The problem went unnoticed until now because
checkdoc was only using ispell through the high-level command
`ispell-word` which takes care of all the initialization for the user.
(checkdoc-ispell-docstring-engine): Add optional argument TAKE-NOTES
to force reporting of spell-checking errors. Throw error
when (checkdoc-ispell-init) fails configuring ispell. Replace a
few (if cond nil body) with (unless cond body). Replace (let ((var
nil))) with (let (var)). Replace (if (not (eq checkdoc-autofix-flag
'never)) body) with just body because `checkdoc-autofix-flag` is
checked at the beginning of the function.
(cherry picked from commit
25adbc4a5ecc3e16625c0171607e3153bbdf7ab1)
Robert Pluim [Fri, 17 Jan 2020 08:34:50 +0000 (09:34 +0100)]
; Minor edit in anti.texi
Lin Sun [Fri, 17 Jan 2020 00:08:54 +0000 (16:08 -0800)]
Fix the error message from makefile-move-to-macro
* lisp/cedet/ede/makefile-edit.el (makefile-macro-file-list):
regexp-quote the param in makefile-move-to-macro (Bug#39094).
(cherry picked from commit
a36495da1ec1419998c17fd64fb7439eaf940f36)
Robert Pluim [Fri, 17 Jan 2020 07:53:29 +0000 (08:53 +0100)]
; Fix recent markup change
* doc/emacs/custom.texi (Find Init): Fix variable markup.
Glenn Morris [Fri, 17 Jan 2020 07:14:00 +0000 (23:14 -0800)]
* lisp/progmodes/vhdl-mode.el (speedbar-load-hook): Silence compiler.
Glenn Morris [Fri, 17 Jan 2020 07:06:04 +0000 (23:06 -0800)]
Make more load-hooks obsolete
* lisp/align.el (align-load-hook):
* lisp/autorevert.el (auto-revert-load-hook):
* lisp/bookmark.el (bookmark-load-hook):
* lisp/cmuscheme.el (cmuscheme-load-hook):
* lisp/dired.el (dired-load-hook):
* lisp/expand.el (expand-load-hook):
* lisp/ibuffer.el (ibuffer-load-hook):
* lisp/msb.el (msb-after-load-hook):
* lisp/recentf.el (recentf-load-hook):
* lisp/speedbar.el (speedbar-load-hook):
* lisp/strokes.el (strokes-load-hook):
* lisp/calc/calc.el (calc-load-hook):
* lisp/calendar/timeclock.el (timeclock-load-hook):
* lisp/emulation/viper-init.el (viper-load-hook):
* lisp/progmodes/cwarn.el (cwarn-load-hook):
* lisp/progmodes/idlwave.el (idlwave-load-hook):
* lisp/progmodes/inf-lisp.el (inferior-lisp-load-hook):
* lisp/progmodes/meta-mode.el (meta-mode-load-hook):
* lisp/textmodes/reftex-vars.el (reftex-load-hook):
* lisp/textmodes/table.el (table-load-hook):
* lisp/url/url-vars.el (url-load-hook):
* lisp/vc/ediff-init.el (ediff-load-hook):
Obsolete for with-eval-after-load.
Stefan Kangas [Fri, 17 Jan 2020 06:03:41 +0000 (07:03 +0100)]
; * lisp/obsolete/vc-arch.el: Add missing "Obsolete-since" tag.
Stefan Kangas [Fri, 17 Jan 2020 05:55:30 +0000 (06:55 +0100)]
Make sb-image.el obsolete (Bug#37837)
* lisp/sb-image.el: Move from here...
* lisp/obsolete/sb-image.el: ...to here.
* lisp/speedbar.el (ezimage): Require instead of 'sb-image'.
(speedbar-use-images, speedbar-expand-image-button-alist)
(speedbar-insert-image-button-maybe, speedbar-image-dump): Move
here from 'sb-image.el'.
Glenn Morris [Fri, 17 Jan 2020 05:55:14 +0000 (21:55 -0800)]
* doc/misc/ido.texi (Ignoring): Reword per Texinfo warning.
Glenn Morris [Fri, 17 Jan 2020 05:53:37 +0000 (21:53 -0800)]
Replace doc references to load-hooks
with-eval-after-load is a cleaner, standard feature that works
for every file
* doc/misc/calc.texi (Hooks):
* doc/misc/dired-x.texi (Installation)
(Optional Installation File At Point, Omitting Files in Dired)
(Omitting Examples, Find File At Point):
* doc/misc/ediff.texi (Hooks, Selective Browsing)
(Highlighting Difference Regions):
* doc/misc/efaq.texi (Disabling backups):
* doc/misc/gnus.texi (Startup Variables):
* doc/misc/idlwave.texi (Structure Tag Completion, Misc Options):
* doc/misc/org.texi (Handling Links):
* doc/misc/reftex.texi (Key Bindings, Keymaps and Hooks):
* doc/misc/sem-user.texi (Speedbar):
* doc/misc/speedbar.texi (Hooks, Minor Display Modes):
* doc/misc/viper.texi (Rudimentary Changes):
Replace load-hooks with with-eval-after-load
Stefan Kangas [Fri, 17 Jan 2020 05:34:00 +0000 (06:34 +0100)]
; * lisp/ezimage.el: Fix typo.
Glenn Morris [Fri, 17 Jan 2020 05:21:29 +0000 (21:21 -0800)]
Replace add-hook load-hook with with-eval-after-load
* lisp/info.el (Info-install-speedbar-variables):
* lisp/cedet/ede.el (speedbar):
* lisp/cedet/semantic/imenu.el (speedbar):
* lisp/emacs-lisp/eieio-opt.el (eieio-class-speedbar-key-map):
* lisp/emacs-lisp/eieio-speedbar.el (eieio-speedbar-create):
* lisp/erc/erc-speedbar.el (erc-install-speedbar-variables):
* lisp/mail/rmail.el (rmail-install-speedbar-variables):
* lisp/progmodes/gud.el (gud-install-speedbar-variables):
Use with-eval-after-load.
Glenn Morris [Fri, 17 Jan 2020 05:15:28 +0000 (21:15 -0800)]
* lisp/obsolete/cust-print.el (print-circle): Doc tweak.
Glenn Morris [Fri, 17 Jan 2020 05:15:02 +0000 (21:15 -0800)]
edebug: remove ancient code for ancient XEmacs support libs
* lisp/emacs-lisp/edebug.el (edebug--require-cl-read): Remove.
(edebug-setup-hook, cl-read-load-hooks): Don't modify.
(edebug-unload-function): Don't modify cl-read-load-hooks.
Lin Sun [Fri, 17 Jan 2020 00:08:54 +0000 (16:08 -0800)]
Fix the error message from makefile-move-to-macro
* lisp/cedet/ede/makefile-edit.el (makefile-macro-file-list):
regexp-quote the param in makefile-move-to-macro (Bug#39094).
Stefan Kangas [Thu, 16 Jan 2020 23:23:06 +0000 (00:23 +0100)]
Remove a FIXME from package.el
* lisp/emacs-lisp/package.el (package-unpack): Remove FIXME about
maybe deleting the package directory. It was decided that this was
undesirable. (Bug#7756)
Stefan Kangas [Thu, 16 Jan 2020 23:02:09 +0000 (00:02 +0100)]
Add index entry "syntax highlighting" to the elisp manual
* doc/lispref/modes.texi (Font Lock Mode): Add an index entry for
"syntax highlighting". (Bug#24827)
Stefan Kangas [Thu, 16 Jan 2020 20:35:07 +0000 (21:35 +0100)]
Document feature requests in the Emacs manual
* doc/emacs/trouble.texi (Contributing): Document how to send feature
requests. (Bug20697)
Paul Eggert [Thu, 16 Jan 2020 18:49:29 +0000 (10:49 -0800)]
Fix hexl jumping to end of file
Plus some other small fixes nearby.
* lisp/hexl.el (hexl-end-of-line): Simplify to match next fix.
(hexl-end-of-1k-page, hexl-end-of-512b-page): Use min instead
of max. Tiny change by Vladimir Nikishkin (Bug#39131).
(hexl-insert-char): Use = instead of eq to compare integers.
Damien Cassou [Fri, 27 Dec 2019 14:35:52 +0000 (15:35 +0100)]
Add unattended spell-checking to checkdoc
This commit makes checkdoc capable of spell-checking even when the
user isn't using it interactively. When TAKE-NOTES is non-nil,
checkdoc will run spell-checking (with ispell) and report spelling
mistakes.
Fixes: (bug#38583).
* lisp/textmodes/ispell.el (ispell-word): Extract part of it to
`ispell--run-on-word`.
(ispell--run-on-word): New function, extracted from `ispell-word`.
(ispell-error-checking-word): New function.
(ispell-correct-p): New function. Use `ispell--run-on-word` and
`ispell-error-checking-word`.
* lisp/emacs-lisp/checkdoc.el (checkdoc-current-buffer): Pass
TAKE-NOTES to `checkdoc-start`.
(checkdoc-continue): Pass TAKE-NOTES to `checkdoc-this-string-valid`.
(checkdoc-this-string-valid): Add optional argument TAKE-NOTES and
pass it to `checkdoc-this-string-valid-engine`.
(checkdoc-this-string-valid-engine): Add optional argument TAKE-NOTES
and pass it to `checkdoc-ispell-docstring-engine`.
(checkdoc-ispell-init): Call `ispell-set-spellchecker-params` and
`ispell-accept-buffer-local-defs`. These calls are required to
properly use ispell. The problem went unnoticed until now because
checkdoc was only using ispell through the high-level command
`ispell-word` which takes care of all the initialization for the user.
(checkdoc-ispell-docstring-engine): Add optional argument TAKE-NOTES
to force reporting of spell-checking errors. Throw error
when (checkdoc-ispell-init) fails configuring ispell. Replace a
few (if cond nil body) with (unless cond body). Replace (let ((var
nil))) with (let (var)). Replace (if (not (eq checkdoc-autofix-flag
'never)) body) with just body because `checkdoc-autofix-flag` is
checked at the beginning of the function.
Stefan Kangas [Wed, 15 Jan 2020 19:01:25 +0000 (20:01 +0100)]
* admin/notes/font-backend: Remove outdated file. (Bug#34663)
(cherry picked from commit
2be48605c0e31566401853a405dc7ea1892b3ef7)
; Not sure how the automatic merge managed to succeed with this conflict
Glenn Morris [Thu, 16 Jan 2020 15:50:22 +0000 (07:50 -0800)]
Merge from origin/emacs-27
52080b5778 (origin/emacs-27) * lisp/minibuffer.el (read-file-name-def...
e4cec1fd10 ; * etc/NEWS: Fix some file name quotations.
13995f31a2 Make emacs prefer an existing ~/.emacs.d to an existing XD...
91cac24952 ; etc/NEWS minor edits
5505babc07 Describe --with-cairo non-support for bitmapped fonts.
caf00066ee Mention GTK font chooser changes in NEWS
23b87db628 ; Unmaintain fortran elisp
3b0d1a50aa f90: handle F2008 module function
55803cc189 Move shell-related menu items to "Shell Commands" submenu ...
2be48605c0 * admin/notes/font-backend: Remove outdated file. (Bug#34663)
f07a470124 Declare the ftx font backend driver obsolete
6c08a430fb ; Fix wording of a comment.
# Conflicts:
# admin/notes/font-backend
# etc/NEWS
Stefan Monnier [Thu, 16 Jan 2020 15:18:15 +0000 (10:18 -0500)]
* lisp/minibuffer.el (read-file-name-default): Fix bug#39057
Michael Albinus [Thu, 16 Jan 2020 15:17:26 +0000 (16:17 +0100)]
; * etc/NEWS: Fix some file name quotations.
Robert Pluim [Wed, 15 Jan 2020 11:24:43 +0000 (12:24 +0100)]
Make emacs prefer an existing ~/.emacs.d to an existing XDG location
* doc/emacs/custom.texi (Find Init): Update description of how Emacs
finds its init file directory and the interaction with
$XDG_CONFIG_HOME
(Early Init File): Correct XDG location of early-init.el
* etc/NEWS: Update description to make it clear the ~/.emacs.d is
preferred, even if the XDG location exists.
* lisp/startup.el: Prefer ~/.emacs.d even if the XDG location exists.
* lib-src/emacsclient.c (open_config): Prefer home directory the XDG
location.
Stefan Kangas [Mon, 28 Oct 2019 16:33:22 +0000 (17:33 +0100)]
Remove references to obsolete libraries
* doc/emacs/cmdargs.texi (General Variables):
* doc/lispintro/emacs-lisp-intro.texi (Lisp History):
* doc/lispref/processes.texi (Network):
* doc/misc/gnus-coding.texi (Gnus Coding Style):
* doc/misc/gnus.texi (Oort Gnus):
* doc/misc/smtpmail.texi (Encryption): Remove references to obsolete
libraries. (Bug#37964)
Robert Pluim [Thu, 16 Jan 2020 09:39:40 +0000 (10:39 +0100)]
; etc/NEWS minor edits
Robert Pluim [Thu, 16 Jan 2020 09:34:37 +0000 (10:34 +0100)]
Describe --with-cairo non-support for bitmapped fonts.
* etc/NEWS: Mention Pango's removal of support for bitmapped fonts.
Robert Pluim [Thu, 16 Jan 2020 09:33:01 +0000 (10:33 +0100)]
Mention GTK font chooser changes in NEWS
* etc/NEWS: Mention GTK font chooser changes.
Simon Josefsson [Fri, 3 Jan 2020 17:41:03 +0000 (18:41 +0100)]
Add SASL SCRAM-SHA-256 support.
* lisp/net/sasl.el (sasl-mechanisms): Add SCRAM-SHA-256.
(sasl-mechanism-alist): Ditto.
* lisp/net/sasl-scram-sha256.el: New file.
* tests/lisp/net/sasl-scram-rfc-tests.el (sasl-scram-sha-256-test):
New function.
Glenn Morris [Thu, 16 Jan 2020 02:49:21 +0000 (18:49 -0800)]
; Unmaintain fortran elisp
Glenn Morris [Thu, 16 Jan 2020 02:47:51 +0000 (18:47 -0800)]
f90: handle F2008 module function
* lisp/progmodes/f90.el (f90-font-lock-keywords-1)
(f90-looking-at-program-block-start):
Handle F2008 "module function" and subroutine. (Bug#38415)
* test/lisp/progmodes/f90-tests.el (f90-test-bug38415): New test.
Paul Eggert [Thu, 16 Jan 2020 01:53:43 +0000 (17:53 -0800)]
dns-query now represents SOA integers as integers (Bug#38937)
* lisp/net/dns.el (dns-read-int32): Declare obsolete.
Assume bignums.
(dns-read-type): Represent SOA integers as integers, not strings.
Paul Eggert [Thu, 16 Jan 2020 01:41:42 +0000 (17:41 -0800)]
Refactor parse-time-string
* lisp/calendar/parse-time.el (parse-time--rfc-822ish):
Remove, and fold its body into its only caller.
Paul Eggert [Thu, 16 Jan 2020 01:36:59 +0000 (17:36 -0800)]
parse-time-string now parses ISO 8601 format strings
* lisp/calendar/parse-time.el (parse-time-string):
Parse strings in ISO 8601 format too (Bug#39001).
(parse-time--rfc-822ish): New internal function,
containing most of the old parse-time-string implementation.
(parse-iso8601-time-string): Simplify, now that
parse-time-string groks ISO 8601.
Juri Linkov [Wed, 15 Jan 2020 23:30:33 +0000 (01:30 +0200)]
Move shell-related menu items to "Shell Commands" submenu (bug#37594)
* lisp/menu-bar.el (menu-bar-shell-commands-menu): New variable.
(menu-bar-tools-menu): Move shell-related menu items to
'menu-bar-shell-commands-menu' and add menu items for
'async-shell-command' and 'shell'.
Stefan Monnier [Wed, 15 Jan 2020 21:50:50 +0000 (16:50 -0500)]
* admin/unidata/unidata-gen.el: Use lexical-binding
(unidata-prop): Use defstruct to define the 6 accessor functions.
(unidata-gen-table-character, unidata-gen-table, unidata-gen-table-name)
(unidata-check): Move common code out of `if`.
(unidata-word-list-diff, unidata-split-decomposition):
Move common code out of `if`; use `push`.
Stefan Kangas [Wed, 15 Jan 2020 19:01:25 +0000 (20:01 +0100)]
* admin/notes/font-backend: Remove outdated file. (Bug#34663)
Stefan Kangas [Wed, 15 Jan 2020 18:57:27 +0000 (19:57 +0100)]
Remove unused ftx font backend driver
* src/ftxfont.c: Remove file.
* admin/notes/font-backend:
* configure.ac:
* src/Makefile.in:
* src/deps.mk (ftxfont.o):
* src/font.c (syms_of_font):
* src/font.h (top-level, font_property_index):
* src/xfns.c (Fx_create_frame, x_create_tip_frame): Remove unused ftx
font backend driver. Thanks to Glenn Morris for pointing out that it
can be removed. (Bug#34663)
Stefan Kangas [Wed, 15 Jan 2020 18:20:38 +0000 (19:20 +0100)]
Declare the ftx font backend driver obsolete
* etc/NEWS: Document that the ftx font driver is now
obsolete and will be removed in Emacs 28. (Bug#34663)
Eli Zaretskii [Wed, 15 Jan 2020 16:28:44 +0000 (18:28 +0200)]
; Fix wording of a comment.
* nt/inc/ms-w32.h (BROKEN_DATAGRAM_SOCKETS): Fix wording of
commentary.
Glenn Morris [Wed, 15 Jan 2020 15:50:22 +0000 (07:50 -0800)]
Merge from origin/emacs-27
0e936f18f8 (origin/emacs-27) Fix build failure with --with-cairo --wi...
c34f7e884b Add new node "Package Statuses" to manual
fdee034ac8 * lisp/isearch.el: Fix corner cases of isearch-lazy-count.
7b14329d86 ; * lisp/simple.el (messages-buffer): Doc fix. (Bug#39124)
7ec66a59e3 Document spacing issues with Xft for some fonts
08cd247fbd ; * etc/NEWS: Fix typo.
d645628e3c Always use lexical-binding in lisp-interaction-mode (bug#3...
c42198f78c ; *etc/NEWS: Fix typo.
0ed9cfa7dc vc-dir: ensure we don't use a pager with git
37e0d00c14 Improve ERC's matching of nicks and URLs (bug#38257)
d47b157969 Handle tab-bar clicks on a GPM-capable console.
e4791f3f8e ;* etc/TODO: Update.
# Conflicts:
# etc/NEWS
Andreas Schwab [Wed, 15 Jan 2020 09:02:10 +0000 (10:02 +0100)]
Fix implicit declaration of getenv and atol
* src/gtkutil.c: Include <stdlib.h>.
YAMAMOTO Mitsuharu [Wed, 15 Jan 2020 08:10:30 +0000 (17:10 +0900)]
Fix build failure with --with-cairo --without-png
* src/image.c: Don't enable PNG section only by USE_CAIRO.
Stefan Kangas [Wed, 15 Jan 2020 01:20:01 +0000 (02:20 +0100)]
Add new node "Package Statuses" to manual
* doc/emacs/emacs.texi (Top):
* doc/emacs/package.texi (Package Menu): New node "Package
Statuses". (Bug#29420)
Juri Linkov [Wed, 15 Jan 2020 00:02:53 +0000 (02:02 +0200)]
* lisp/isearch.el: Fix corner cases of isearch-lazy-count.
* lisp/isearch.el (isearch-mode): Reset isearch-lazy-count-current
and isearch-lazy-count-total to nil, so when isearch-mode is started,
there should be no counts from previous Isearch.
(isearch-lazy-highlight-new-loop): Call isearch-message after resetting
lazy-count variables only when isearch-mode is started. This avoids
the problem of inappropriate calls of isearch-message-function
when query-replace in the minibuffer performs lazy-highlighting that
used to call minibuffer-history-isearch-message unnecessarily.
Eli Zaretskii [Tue, 14 Jan 2020 15:46:39 +0000 (17:46 +0200)]
; * lisp/simple.el (messages-buffer): Doc fix. (Bug#39124)
Michael Albinus [Tue, 14 Jan 2020 10:46:42 +0000 (11:46 +0100)]
Refactor Tramp async process code
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
* lisp/net/tramp-sh.el (tramp-sh-handle-make-process):
Update stderr buffer when process has finished. Do not call
`auto-revert'.
* test/lisp/net/tramp-tests.el (tramp-test31-interrupt-process):
Tag it :unstable. Change `accept-process-output' arguments.
(tramp--test-async-shell-command): New defun.
(tramp--test-shell-command-to-string-asynchronously): Use it.
(tramp-test32-shell-command): Refactor code.
Robert Pluim [Tue, 14 Jan 2020 10:18:20 +0000 (11:18 +0100)]
Default cairo to enabled
* configure.ac (USE_CAIRO): Default cairo to enabled.
* etc/NEWS: Announce the change to use cairo if found.
Robert Pluim [Tue, 14 Jan 2020 09:49:28 +0000 (10:49 +0100)]
Document spacing issues with Xft for some fonts
* etc/PROBLEMS: Document issues with Xft and some recent fonts (Bug#39082).
Paul Eggert [Tue, 14 Jan 2020 00:25:28 +0000 (16:25 -0800)]
Update from gnulib
This incorporates:
2020-01-10 fix major regression from 2020-01-04
2020-01-05 tests: avoid GCC over-optimization
2020-01-04 fix AC_CHECK_DECL so it deactivates clang's built-ins
2020-01-03 getopt-posix: fix compilation failure in testdirs
2020-01-03 doc: mention the 64-bit inode number problem
2020-01-02 wchar: make the HP-UX workaround work on HP-UX 11.31
* build-aux/config.guess, build-aux/config.sub, lib/inttypes.in.h:
* lib/stdlib.in.h, lib/unistd.in.h, m4/00gnulib.m4, m4/largefile.m4:
* m4/unistd_h.m4: Copy from Gnulib
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
Paul Eggert [Tue, 14 Jan 2020 00:07:27 +0000 (16:07 -0800)]
Port configure.ac to future Gnulib
Rewrite an ancient Alpha ELF check to port to a future Gnulib
version that may require AC_CHECK_DECL to be set up properly as
per the ‘Expanded Before Required’ section of the Autoconf manual
Autoconf doesn’t guarantee that AC_CHECK_DECL will work properly
if called conditionally (e.g., inside a shell ‘case’ statement)
and the condition is false. Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-01/msg00088.html
* configure.ac (LD_SWITCH_MACHINE): Migrate ELF check later,
when AC_CHECK_DECL is properly set up.
Michael Albinus [Mon, 13 Jan 2020 20:11:46 +0000 (21:11 +0100)]
; * etc/NEWS: Fix typo.
Mattias Engdegård [Mon, 13 Jan 2020 13:53:11 +0000 (14:53 +0100)]
Always use lexical-binding in lisp-interaction-mode (bug#38835)
* lisp/progmodes/elisp-mode.el (lisp-interaction-mode):
Set lexical-binding.
* lisp/startup.el (command-line, startup--get-buffer-create-scratch):
Don't set lexical-binding here.
* doc/lispref/variables.texi:
* etc/NEWS:
Make it clear that lisp-interaction-mode uses lexical-binding.
Michael Albinus [Mon, 13 Jan 2020 15:03:15 +0000 (16:03 +0100)]
; *etc/NEWS: Fix typo.
Robert Pluim [Fri, 10 Jan 2020 15:36:57 +0000 (16:36 +0100)]
vc-dir: ensure we don't use a pager with git
* lisp/vc/vc-git.el (vc-git--call): Call git with '--no-pager' to
avoid hangs caused by remote pager settings (Bug#38688).
Amin Bandali [Mon, 18 Nov 2019 15:24:48 +0000 (10:24 -0500)]
Improve ERC's matching of nicks and URLs (bug#38257)
* lisp/erc/erc-{button,match}.el (erc-{button,match}-syntax-table):
Omit (, ), and '; as they're not valid nick characters, per RFC 2812
section 2.3.1. This enables correct matching/highlighting of nicks
when they're surrounded by parens, like (nick), and when adjacent to
an apostrophe, like nick's.
* lisp/erc/erc-button.el (erc-button-url-regexp): Use the regexp from
browse-url-button-regexp, which among other things, seems to handle
surrounding pair of parens better.
Juri Linkov [Sun, 12 Jan 2020 23:23:12 +0000 (01:23 +0200)]
Handle tab-bar clicks on a GPM-capable console.
* src/term.c (handle_one_term_event): Call tty_handle_tab_bar_click.
* src/xdisp.c (tty_handle_tab_bar_click): Force reset of up_modifier bit
from the event modifiers.
* lisp/tab-line.el (tab-line-tab-current): No need to use inverse-video
on console/xterm because the selected tab already uses inverse-video.
Philipp Stephani [Sun, 12 Jan 2020 23:17:35 +0000 (00:17 +0100)]
* src/pdumper.c (dump_vectorlike): Unbreak build after
724af7671590c
Philipp Stephani [Sun, 12 Jan 2020 23:07:07 +0000 (00:07 +0100)]
Use decode_string_utf_8 in emacs-module.c.
Now that decode_string_utf_8 is available, we can use it to signal
errors on invalid input.
* src/coding.c (syms_of_coding): Move Qutf_8_string_p from json.c
since it’s now used outside json.c.
* src/emacs-module.c (module_decode_utf_8): New helper function.
(module_make_function, module_copy_string_contents): Use it.
Alan Third [Sun, 12 Jan 2020 14:54:44 +0000 (14:54 +0000)]
;* etc/TODO: Update.
Glenn Morris [Sat, 11 Jan 2020 15:50:31 +0000 (07:50 -0800)]
Merge from origin/emacs-27
f0ebd919c1 (origin/emacs-27) ; * doc/lispref/anti.texi (Antinews): Fi...
6f059159ee Update Acknowledgments sections
e1262d45f9 Update Antinews in ELisp manual
fd8128f0c1 ; Move the description of define-inline to a different nod...
524441d6b3 Improve wording in the ELisp manual
8addfa91c8 Reset to the standard value when reverting session's custo...
d6f9b09777 Fix saving multiple themes
c556aabde8 Calc: fix interval entry (bug#39040)
91cd3c1372 Fix horizontal line display in Custom buffers
15c8e984ae ; * etc/NEWS: Fix a typo.
ff8996a337 flymake: fix typo in variable binding (bug#38752)
16eaaa07e6 ; Minor spelling fixes
5efe795659 Update Antinews in the Emacs manual
5841240295 Use NSNumber instead of BOOL (bug#39047)
beec9f64a5 Add comment on fido-mode's file-sorting semantics
eb3c6ad325 Consider non-string minibuffer-default in icomplete
# Conflicts:
# etc/NEWS
Michael Albinus [Sat, 11 Jan 2020 13:14:11 +0000 (14:14 +0100)]
; * doc/lispref/anti.texi (Antinews): Fix typo.
Eli Zaretskii [Sat, 11 Jan 2020 12:06:19 +0000 (14:06 +0200)]
Update Acknowledgments sections
* doc/emacs/ack.texi (Acknowledgments):
* doc/emacs/emacs.texi (Acknowledgments): Update for Emacs 27.
Eli Zaretskii [Sat, 11 Jan 2020 11:36:07 +0000 (13:36 +0200)]
Update Antinews in ELisp manual
* doc/lispref/anti.texi (Antinews): Rewrite for Emacs 27.
* doc/lispref/elisp.texi (Top): Update the top-level menu item for
Antinews.
Richard Stallman [Sun, 5 Jan 2020 22:21:41 +0000 (17:21 -0500)]
; Move the description of define-inline to a different node in functions.texi
Richard Stallman [Wed, 1 Jan 2020 23:18:44 +0000 (18:18 -0500)]
Improve wording in the ELisp manual
* doc/lispref/modes.texi (Setting Hooks): Improve and clarify
wording. (Bug#38818)
Mauro Aranda [Mon, 30 Dec 2019 21:10:28 +0000 (18:10 -0300)]
Reset to the standard value when reverting session's customizations
* lisp/cus-edit.el (custom-variable-reset-saved): When there is no
previous saved value, reset to the standard value. (Bug#15214)
Mauro Aranda [Mon, 6 Jan 2020 14:04:29 +0000 (11:04 -0300)]
Fix saving multiple themes
* lisp/custom.el (enable-theme): Be side-effect free when modifying
custom-enabled-themes. (Bug#19999)
Mattias Engdegård [Fri, 10 Jan 2020 18:49:56 +0000 (19:49 +0100)]
Calc: fix interval entry (bug#39040)
* lisp/calc/calc.el (calcDigit-start): Initialise calc-prev-char to
something more reasonable, so that non-algebraic entry of intervals
whose start is a single digit, like (1..10), works properly.
Reported by Michel Schinz.
Eli Zaretskii [Fri, 10 Jan 2020 19:02:52 +0000 (21:02 +0200)]
Fix horizontal line display in Custom buffers
* lisp/cus-edit.el (custom-group-value-create): Insert a newline
before calling 'custom-group--draw-horizontal-line'. (Bug#39074)