Glenn Morris [Sat, 2 Jun 2018 17:29:37 +0000 (10:29 -0700)]
Merge from origin/emacs-26
90bea37 ; * etc/PROBLEMS: Fix fvwm version number in last commit af82d1f * etc/PROBLEMS: Document stickyness problem with FVWM (Bug#31... 4a3aed2 Update Emacs Lisp Intro to match current behavior 21f2247 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac... 3257085 Fix previous commit 6d23525 Fix typos in several manuals (Bug#31610) 9188291 Add detailed documentation about lock files e5471b2 Add commentary for subtle aspect of frame.el
Glenn Morris [Sat, 2 Jun 2018 17:25:50 +0000 (10:25 -0700)]
Merge from origin/emacs-26
ca3f0a8 ; * etc/NEWS: Belated announcement of 2 changes made in Emacs... 99f92da Improve documentation of 'directory-files-and-attributes' df8649a * lisp/gnus/message.el (message-remove-header): Don't remove ... b682a7e ; * etc/NEWS: Add headings for Emacs 26.2 aa175a4 Adapt hexl-mode to native line-number display b8e7749 Fix example in Tramp manual f212fe5 Handle case where Xft is found but not XRender 186280f * doc/misc/tramp.texi (Frequently Asked Questions): Adapt zsh... 24ba633 Improve read-multiple-choice docstring (Bug#31628)
Eli Zaretskii [Sat, 2 Jun 2018 10:04:15 +0000 (13:04 +0300)]
Un-obsolete 'string-to-unibyte'
* lisp/subr.el (string-to-unibyte): No longer obsolete. See the
emacs-devel discussion around this message:
http://lists.gnu.org/archive/html/emacs-devel/2018-05/msg00656.html.
* src/xdisp.c (move_it_in_display_line_to): Don't exit the loop
under truncate-lines if the glyph at TO_CHARPOS was not yet
produced. This avoids bailing out too early when we are at
TO_CHARPOS, but didn't yet produce glyphs for that buffer
position, because the last call to PRODUCE_GLYPHS at this position
was for an object other than the buffer. For further details, see
http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00537.html.
João Távora [Fri, 1 Jun 2018 23:12:30 +0000 (00:12 +0100)]
Minimally support Flymake in Emacs C sources
The check-syntax target is enabled the use of Flymake's "legacy"
backend, flymake-proc-legacy-flymake in src/*.c. It works quite well
with C sources. The green light for this change had already been
given some time ago in
Eli Zaretskii [Fri, 1 Jun 2018 14:11:36 +0000 (17:11 +0300)]
Update Emacs Lisp Intro to match current behavior
* doc/lispintro/emacs-lisp-intro.texi (Wrong Type of Argument)
(debug, debug-on-entry, Void Function, Void Variable): Update the
*Backtrace* buffer display to current Emacs. (Bug#31654)
Robert Pluim [Fri, 1 Jun 2018 13:05:23 +0000 (15:05 +0200)]
Add detailed documentation about lock files
* doc/emacs/files.texi (Interlocking): Point user at detailed
file locking description in lisp reference manual. Add index
entry for '.#' to improve disoverability of information about locking.
* doc/lispref/files.texi (File Locks): Describe in detail what
the form of the lock file is. Add index entry for '.#' to
improve disoverability of information about locking.
* src/filelock.c (create-lockfiles): Add cross reference to
file locking in user manual and to 'lock-buffer'. Add string
'.#' to help users find the doc string.
Alan Mackenzie [Thu, 31 May 2018 11:32:15 +0000 (11:32 +0000)]
Amend c-before-change-check-unbalanced-strings to handle a quote at EOB.
* lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): Before
going back a sexp from the \n marked with a string-fence syntax-table text
property, check that it is indeed a \n. If not, simply delete that text
property from the isolated quote, not the quote and the \n which otherwise
delimit an unterminated string. Should we encounter a double quote marked
with a string-fence syntax-table text property at the end of the last line,
remove that property.
Eli Zaretskii [Wed, 30 May 2018 17:30:07 +0000 (20:30 +0300)]
Adapt hexl-mode to native line-number display
* lisp/hexl.el (hexl-mode-ruler): When display-line-numbers is in
effect, adjust offsets and columns to account for the line-number
display. (Bug#31595)
Roland Winkler [Wed, 30 May 2018 15:24:46 +0000 (10:24 -0500)]
bibtex-search-entry: Reuse the window displaying the buffer.
* textmodes/bibtex.el (bibtex-reposition-window): New optional arg
pos.
(bibtex-search-crossref, bibtex-search-entry): Use it.
(bibtex-search-entry): If possible, reuse the window displaying
the buffer that contains the entry found.
Simen Heggestøyl [Tue, 29 May 2018 17:14:34 +0000 (19:14 +0200)]
Add Imenu support to CSS mode and its derivatives
* lisp/textmodes/css-mode.el (css--join-nested-selectors)
(css--prev-index-position, css--extract-index-name): New helper
functions for supporting Imenu.
(css-mode): Set `imenu-space-replacement',
`imenu-prev-index-position-function', and
`imenu-extract-index-name-function'.
(css-current-defun-name): Reuse `css--prev-index-position' and
`css--extract-index-name' to support nested selectors.
* test/lisp/textmodes/css-mode-tests.el (css-test-current-defun-name):
Fix character index.
(css-test-join-nested-selectors): New tests for
`css--join-nested-selectors'.
Eli Zaretskii [Tue, 29 May 2018 17:52:17 +0000 (20:52 +0300)]
Allow access to MS-Windows Registry from Lisp programs
* src/w32.c (g_b_init_reg_open_key_ex_w)
(g_b_init_reg_query_value_ex_w)
(g_b_init_expand_environment_strings_w): New init flags.
(globals_of_w32): Initialize them at startup.
(RegOpenKeyExW_Proc, RegQueryValueExW_Proc)
(ExpandEnvironmentStringsW_Proc): New function typedefs.
(reg_open_key_ex_w, reg_query_value_ex_w)
(expand_environment_strings_w): New wrapper function.
(w32_read_registry): New function.
* src/w32fns.c (Fw32_read_registry) [WINDOWSNT]: New primitive.
(syms_of_w32fns) [WINDOWSNT]: Defsubr it. DEFSYM "HKLM", "HKCU",
etc. root keys.
Michael Albinus [Tue, 29 May 2018 08:07:21 +0000 (10:07 +0200)]
Merge from origin/emacs-26
9d6a3ac73a Mention pcase as a fifth conditional form 567cb9046d Overhaul pcase documentation 4d7e54acff Use EXPVAL in docstrings of patterns defined using pcase-d... 7e8227ed68 Introduce EXPVAL for pcase, pcase-defmacro docstrings e6de5b3d51 Ensure pcase doc shows `QPAT first among extensions
* lisp/net/tramp-cmds.el (tramp-change-syntax):
Use `customize-set-variable'.
* lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
Ensure proper EOL handling for Darwin.
(tramp-find-inline-compress): Improve command quoting for w32.
Reported by Chris Zheng <chriszheng99@gmail.com>.
(tramp-open-connection-setup-interactive-shell): Wrap both echo
calls in parentheses, in order to avoid double prompt.
* lisp/net/tramp.el (tramp-default-user-alist)
(tramp-default-host-alist): Fix docstring.
(tramp-dissect-file-name): Adapt docstring. (Bug#30904)
(tramp-make-tramp-file-name): Check, that method is
not empty. (Bug#30038)
(tramp-message-show-message): Change default.
* lisp/net/trampver.el: Change version to "2.3.4-pre".
* test/lisp/net/tramp-tests.el (ert-x): Require it.
(tramp-test10-write-region): Extend test.
(tramp--test-emacs27-p, tramp--test-windows-nt): New defuns.
(tramp-test11-copy-file, tramp-test12-rename-file)
(tramp-test21-file-links, tramp-test24-file-acl)
(tramp-test25-file-selinux, tramp--test-check-files): Use them.
(tramp-test21-file-links): Do not call `make-symbolic-link' on w32.
Fix file name quoting test.
(tramp-test32-environment-variables-and-port-numbers):
Adapt check for systems which do not support "echo -n". (Bug#29712)
(tramp-test36-find-backup-file-name): Call also
`convert-standard-filename' due to w32.
(tramp-test41-asynchronous-requests):
Use $REMOTE_PARALLEL_PROCESSES. Flush cache prior file operations.
(tramp-test42-auto-load, tramp-test42-delay-load)
(tramp-test42-recursive-load, tramp-test42-remote-load-path):
Quote command due to w32.
Gemini Lasswell [Sun, 27 May 2018 18:38:00 +0000 (11:38 -0700)]
Make cl-print respect print-level and print-length (bug#31559)
* lisp/emacs-lisp/cl-print.el (cl-print--depth): New variable.
(cl-print-object) <cons>: Print ellipsis if printing depth greater
than 'print-level' or length of list greater than 'print-length'.
(cl-print-object) <vector>: Truncate printing with ellipsis if
vector is longer than 'print-length'.
(cl-print-object) <cl-structure-object>: Truncate printing with
ellipsis if structure has more slots than 'print-length'.
(cl-print-object) <:around>: Bind 'cl-print--depth'.
* test/lisp/emacs-lisp/cl-print-tests.el
(cl-print-tests-3, cl-print-tests-4): New tests.
This is needed to avoid losing user settings made under the obsolete
name (Bug#31603).
* lisp/epa.el (epa-pinentry-mode): Move obsolete varalias from here...
* lisp/epg-config.el (epg-pinentry-mode): ...to here.
Thien-Thi Nguyen [Mon, 21 May 2018 15:11:55 +0000 (17:11 +0200)]
Introduce EXPVAL for pcase, pcase-defmacro docstrings
Suggested by Drew Adams (Bug#31311).
* lisp/emacs-lisp/pcase.el (pcase): Use EXPVAL in
docstring to stand for the result of evaluating EXP.
(pcase-defmacro): Add (fn ...) form in docstring
that includes [DOC], and the EXPVAL convention.
Thien-Thi Nguyen [Mon, 21 May 2018 14:57:49 +0000 (16:57 +0200)]
Ensure pcase doc shows `QPAT first among extensions
* lisp/emacs-lisp/pcase.el (pcase--make-docstring):
Split extensions display into two phases, collection
and display, separated by a reordering step that
ensures backquote is the first.
Paul Eggert [Sat, 26 May 2018 20:29:06 +0000 (13:29 -0700)]
Don’t set EMACS=t if Bash is 4.4 or newer
(Thanks to Stefan Monnier for improvements to this patch.)
* lisp/term.el (term--bash-needs-EMACS-status): New var.
(term--bash-needs-EMACSp): New function.
(term-exec-1): Use it instead of always setting EMACS.
Tino Calancha [Sat, 26 May 2018 15:58:48 +0000 (00:58 +0900)]
replace-tests.el: Refactor undo tests
* test/lisp/replace-tests.el (replace-tests-bind-read-string): New variable.
(replace-tests-with-undo): Add helper macro to generate the boilerplate code.
(replace-tests--query-replace-undo, query-replace-undo-bug31073)
(query-replace-undo-bug31492, query-replace-undo-bug31538): Use it.
Tino Calancha [Sat, 26 May 2018 03:45:55 +0000 (12:45 +0900)]
replace-tests.el: Fix broken tests
After previous commit, all tests using helper function
`replace-tests-clauses' fail: during the expansion
of macro `replace-tests-with-undo', the function
`replace-tests-clauses' is unbound.
Delete those helpers and reimplement test
`query-replace-undo-bug31538'.
* test/lisp/replace-tests.el (query-replace-undo-bug31538):
Reimplement this test without using any helper function/macro.
Tino Calancha [Sat, 26 May 2018 02:28:21 +0000 (11:28 +0900)]
query-replace undo: Handle when user edits the replacement string
* lisp/replace.el (perform-replace): Update the replacement string
after the user edit it (Fix Bug#31538).
* test/lisp/replace-tests.el (replace-tests-clauses): New function.
(replace-tests-bind-read-string): New variable.
(replace-tests-with-undo): Macro to create boilerplate code.
(query-replace-undo-bug31073): Use it.
(query-replace-undo-bug31538): New test.
Noam Postavsky [Thu, 24 May 2018 23:49:11 +0000 (19:49 -0400)]
Note caveat for backward regexp searching in docstring (Bug#31584)
* src/search.c (Fre_search_backward): Emphasize that backwards
searches may give shorter than expected matches.
* doc/lispref/searching.texi (Regexp Search): Add an anchor for
re-search-backward to reference.
Eli Zaretskii [Thu, 24 May 2018 17:37:15 +0000 (20:37 +0300)]
More fixes of Intro to Emacs Lisp
* doc/lispintro/emacs-lisp-intro.texi (Finding More): Tell the
reader how to invoke 'M-.' without a tags table. Add a
cross-reference to the Emacs manual for when a tags table does
need to be created.
(append save-excursion): Rephrase a confusing sentence.
(Bug#31578)
Eli Zaretskii [Thu, 24 May 2018 16:49:34 +0000 (19:49 +0300)]
Add a footnote to Emacs Lisp Intro
* doc/lispintro/emacs-lisp-intro.texi (Run a Program): Describe
the detailed output of integer value evaluation in a footnote, to
prevent confusion. (Bug#31579)
Eli Zaretskii [Wed, 23 May 2018 16:31:38 +0000 (19:31 +0300)]
Fix some cross-references in emacs-lisp-intro.texi
* doc/lispintro/emacs-lisp-intro.texi (List Processing)
(Determining the Element, graph-body-print): Fix cross-references
to subsections that don't exist in the printed version of the
manual. (Bug#31567)
Noam Postavsky [Fri, 11 May 2018 17:44:46 +0000 (13:44 -0400)]
Honor print-charset-text-property value of nil (Bug#31376)
* src/print.c (print_check_string_charset_prop): Move check
for nil Vprint_charset_text_property from here...
(print_prune_string_charset): ... to here.
(syms_of_print) <print-charset-text-property>: Clarify that any
non-boolean values are treated the same as `default'.
* doc/lispref/streams.texi (Output Variables): Add
print-prune-string-charset.
* test/src/print-tests.el (print-charset-text-property-nil)
(print-charset-text-property-default)
(print-charset-text-property-t): New tests.
(print-tests--prints-with-charset-p): New helper function.
* lisp/epa.el (epa-pinentry-mode): Make into obsolete alias for...
* lisp/epg-config.el (epg-pinentry-mode): ...this new user option.
* lisp/epg.el (epg-context): Use it as the default value for
pinentry-mode.
* etc/NEWS: Announce name change.
* lisp/epa-file.el (epa-file-insert-file-contents)
(epa-file-write-region):
* lisp/epa.el (epa-decrypt-file, epa-sign-file)
(epa-encrypt-file, epa-decrypt-region)
(epa-sign-region, epa-encrypt-region): Don't change
epg-context-pinentry-mode from the default.
Drop some epg/epa backwards compat code for ancient Emacs versions
* lisp/epa.el (epa--select-safe-coding-system): Remove,
`select-safe-coding-system' has been present since Emacs 20.3.
(epa--encode-coding-string, epa--decode-coding-string):
* lisp/epg.el (epg--decode-coding-string, epg--encode-coding-string)
(epg--clear-string): Remove, the corresponding Emacs functions are so
old they don't show up in NEWS. Furthermore, the fallback for
the *-coding-string functions was `identity' which wouldn't have
worked anyway, since it only takes a single argument.
(epg--make-temp-file): Remove, `make-temp-file' has been present since
Emacs 21.1.
* lisp/epg-config.el (epg-gpg-program, epg-gpgsm-program)
(epg-gpgconf-program, epg-gpg-home-directory)
(epg-passphrase-coding-system, epg-debug): Remove unneeded :group
parameter.
Glenn Morris [Wed, 23 May 2018 08:37:54 +0000 (01:37 -0700)]
Merge from origin/emacs-26
e3f00f5 (origin/emacs-26) Clarify when to use advice-add vs add-function c0f3e6b Minor formatting tweak in the Emacs manual fadf653 Update comments in Intro to Emacs Lisp 52ccb24 ; * doc/os.texi (Batch Mode): use = after --eval d65430f * etc/NEWS: Mention change in `edebug-prin1-to-string'. ef4aec1 ; * doc/lispref/hash.texi (Defining Hash): Fix typos. 2981952 Another attempt to fix sql.el b1b96d7 Update binding of 'M-.' in Intro to Emacs Lisp b239a09 Fix a typo in last change in sql.el 0d8bae5 Fix capitalization of mail headers 845fe03 Fix buffer names in sql.el a3885f5 Minor fixes in the Emacs manual 542f830 Fix a typo in rmail.texi eb0bc6f * etc/PROBLEMS: Document Bug#31305.
Paul Eggert [Tue, 22 May 2018 20:05:19 +0000 (13:05 -0700)]
Work around GCC bug with function attributes
* src/alloc.c (PNTR_ADD): Put attributes after ‘static’ and before
returned type. Problem reported by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2018-05/msg00559.html
Paul Eggert [Tue, 22 May 2018 19:26:22 +0000 (12:26 -0700)]
Fix failed assertion when load-force-doc-strings
Problem reported by Philipp Stephani (Bug#31556).
* src/lread.c (read_vector): When load_force_doc_strings, check
for byte code vectors that are invalid because they are too short.
* test/src/lread-tests.el (lread-invalid-bytecodes): New test.
Paul Eggert [Tue, 22 May 2018 16:13:20 +0000 (09:13 -0700)]
Minor tweaks to recent fix for Bug#31545
* src/xwidget.c (webkit_javascript_finished_cb)
(Fxwidget_webkit_execute_script): Use intptr_t to avoid warnings
in the (unlikely) event that ptrdiff_t and void * differ in width.
(save_script_callback): Simplify by using xlispdstrdup and
larger_vector.